Project

General

Profile

Bug #11243 » fcc__version.i

version.i generated by fcc - ngoto (Naohisa Goto), 06/10/2015 02:23 PM

 
# 1 "version.c"










# 1 "./include/ruby/ruby.h" 1






















# 1 ".ext/include/sparc64-solaris2.10/ruby/config.h" 1

























































































































































































































































































































# 25 "./include/ruby/ruby.h" 2




# 1 "./include/ruby/defines.h" 1


















# 1 ".ext/include/sparc64-solaris2.10/ruby/config.h" 1


























































































































































































































































































































# 21 "./include/ruby/defines.h" 2




# 1 "/usr/include/stdio.h" 1











#pragma ident "@(#)stdio.h 1.85 11/01/07 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1






#pragma ident "@(#)feature_tests.h 1.26 11/04/12 SMI"

# 1 "/usr/include/sys/ccompile.h" 1







#pragma ident "@(#)ccompile.h 1.2 04/11/08 SMI"






























































































# 11 "/usr/include/sys/feature_tests.h" 2
# 1 "/usr/include/sys/isa_defs.h" 1






#pragma ident "@(#)isa_defs.h 1.30 11/03/31 SMI"
















































































































































































































































































































































































































































































































# 12 "/usr/include/sys/feature_tests.h" 2

































































































































































































































































































































































# 22 "/usr/include/stdio.h" 2









































# 1 "/usr/include/iso/stdio_iso.h" 1























#pragma ident "@(#)stdio_iso.h 1.8 05/08/16 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 35 "/usr/include/iso/stdio_iso.h" 2
# 1 "/usr/include/sys/va_list.h" 1









#pragma ident "@(#)va_list.h 1.15 04/11/19 SMI"
































# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 52 "/usr/include/sys/va_list.h" 2

























































typedef void *__va_list;








# 36 "/usr/include/iso/stdio_iso.h" 2
# 1 "/usr/include/stdio_tag.h" 1







#pragma ident "@(#)stdio_tag.h 1.4 04/09/28 SMI"











typedef struct __FILE __FILE;







# 37 "/usr/include/iso/stdio_iso.h" 2
# 1 "/usr/include/stdio_impl.h" 1







#pragma ident "@(#)stdio_impl.h 1.15 07/03/05 SMI"

# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 12 "/usr/include/stdio_impl.h" 2

















struct __FILE
{




int _cnt;
unsigned char *_ptr;

unsigned char *_base;
unsigned char _flag;
unsigned char _file;
unsigned __orientation:2;
unsigned __ionolock:1;
unsigned __seekable:1;
unsigned __extendedfd:1;
unsigned __xf_nocheck:1;
unsigned __filler:10;
};








# 38 "/usr/include/iso/stdio_iso.h" 2


















typedef long long __longlong_t;















typedef __FILE FILE;







typedef unsigned int size_t;




typedef long fpos_t;

























































extern __FILE __iob[ 20 ];










































extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char * , const char * );
extern FILE *freopen(const char * ,
const char * , FILE * );
extern void setbuf(FILE * , char * );
extern int setvbuf(FILE * , char * , int,
size_t);
extern int fprintf(FILE * , const char * , ...);
extern int fscanf(FILE * , const char * , ...);
extern int printf(const char * , ...);
extern int scanf(const char * , ...);
extern int sprintf(char * , const char * , ...);
extern int sscanf(const char * ,
const char * , ...);
extern int vfprintf(FILE * , const char * ,
__va_list);
extern int vprintf(const char * , __va_list);
extern int vsprintf(char * , const char * ,
__va_list);
extern int fgetc(FILE *);
extern char *fgets(char * , int, FILE * );
extern int fputc(int, FILE *);
extern int fputs(const char * , FILE * );


extern int getc(FILE *);
extern int putc(int, FILE *);



extern int getchar(void);
extern int putchar(int);

extern char *gets(char *);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void * , size_t, size_t,
FILE * );
extern size_t fwrite(const void * , size_t, size_t,
FILE * );

extern int fgetpos(FILE * , fpos_t * );
extern int fsetpos(FILE *, const fpos_t *);

extern int fseek(FILE *, long, int);
extern long ftell(FILE *);
extern void rewind(FILE *);


extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);

extern void perror(const char *);


extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);






















































































































# 67 "/usr/include/stdio.h" 2

































































# 1 "/usr/include/iso/stdio_c99.h" 1

















#pragma ident "@(#)stdio_c99.h 1.2 04/03/29 SMI"
































extern int vfscanf(FILE * , const char * , __va_list);
extern int vscanf(const char * , __va_list);
extern int vsscanf(const char * , const char * ,
__va_list);










extern int snprintf(char * , size_t, const char * ,
...);
extern int vsnprintf(char * , size_t, const char * ,
__va_list);












# 136 "/usr/include/stdio.h" 2









typedef long off_t;







typedef __longlong_t off64_t;









typedef __longlong_t fpos64_t;































extern unsigned char _sibuf[], _sobuf[];






























extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;





















extern char *tmpnam_r(char *);




extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int asprintf(char **, const char *, ...);
extern int vasprintf(char **, const char *, __va_list);







extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);







extern void flockfile(FILE *);
extern int ftrylockfile(FILE *);
extern void funlockfile(FILE *);
extern int getc_unlocked(FILE *);
extern int getchar_unlocked(void);
extern int putc_unlocked(int, FILE *);
extern int putchar_unlocked(int);







extern FILE *popen(const char *, const char *);
extern char *tempnam(const char *, const char *);
extern int pclose(FILE *);

extern int getsubopt(char **, char *const *, char **);



extern char *cuserid(char *);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);







extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);







extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);















































































































# 27 "./include/ruby/defines.h" 2

# 1 "/usr/include/sys/types.h" 1








#pragma ident "@(#)types.h 1.90 14/04/07 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 18 "/usr/include/sys/types.h" 2
# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 19 "/usr/include/sys/types.h" 2



# 1 "/usr/include/sys/machtypes.h" 1









#pragma ident "@(#)machtypes.h 1.13 99/05/04 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/sys/machtypes.h" 2













typedef struct _label_t { long val[2]; } label_t;



typedef unsigned char lock_t;






# 24 "/usr/include/sys/types.h" 2










# 1 "/usr/include/sys/int_types.h" 1







#pragma ident "@(#)int_types.h 1.10 04/09/28 SMI"























# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 35 "/usr/include/sys/int_types.h" 2


















typedef char int8_t;





typedef short int16_t;
typedef int int32_t;






typedef long long int64_t;



typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;




typedef unsigned long long uint64_t;







typedef int64_t intmax_t;
typedef uint64_t uintmax_t;













typedef int intptr_t;
typedef unsigned int uintptr_t;






typedef char int_fast8_t;





typedef int int_fast16_t;
typedef int int_fast32_t;




typedef long long int_fast64_t;



typedef unsigned char uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;




typedef unsigned long long uint_fast64_t;







typedef char int_least8_t;





typedef short int_least16_t;
typedef int int_least32_t;




typedef long long int_least64_t;



typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;




typedef unsigned long long uint_least64_t;








# 36 "/usr/include/sys/types.h" 2















typedef long long longlong_t;
typedef unsigned long long u_longlong_t;




















typedef long t_scalar_t;
typedef unsigned long t_uscalar_t;




typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;

typedef char *caddr_t;
typedef long daddr_t;
typedef short cnt_t;






typedef int ptrdiff_t;





typedef ulong_t pfn_t;
typedef ulong_t pgcnt_t;
typedef long spgcnt_t;

typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef void *timeout_id_t;
typedef void *bufcall_id_t;




























typedef ulong_t ino_t;
typedef long blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;














typedef u_longlong_t ino64_t;
typedef longlong_t blkcnt64_t;
typedef u_longlong_t fsblkcnt64_t;
typedef u_longlong_t fsfilcnt64_t;






typedef long blksize_t;





typedef enum { B_FALSE, B_TRUE } boolean_t;














typedef int64_t pad64_t;
typedef uint64_t upad64_t;












typedef union {
long double _q;
int32_t _l[4];
} pad128_t;

typedef union {
long double _q;
uint32_t _l[4];
} upad128_t;

typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
typedef u_longlong_t len_t;
typedef u_longlong_t diskaddr_t;



















typedef union {
offset_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lloff_t;













typedef union {
longlong_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lldaddr_t;


typedef uint_t k_fltset_t;












typedef long id_t;


typedef id_t lgrp_id_t;




typedef uint_t useconds_t;



typedef long suseconds_t;








typedef ulong_t major_t;
typedef ulong_t minor_t;




typedef short pri_t;




typedef ushort_t cpu_flag_t;











typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;




typedef int key_t;



typedef ulong_t mode_t;







typedef long uid_t;



typedef uid_t gid_t;

typedef id_t taskid_t;
typedef id_t projid_t;
typedef id_t poolid_t;
typedef id_t zoneid_t;
typedef id_t ctid_t;





typedef uint_t pthread_t;
typedef uint_t pthread_key_t;






typedef struct _pthread_mutex {
struct {
uint16_t __pthread_mutex_flag1;
uint8_t __pthread_mutex_flag2;
uint8_t __pthread_mutex_ceiling;
uint16_t __pthread_mutex_type;
uint16_t __pthread_mutex_magic;
} __pthread_mutex_flags;
union {
struct {
uint8_t __pthread_mutex_pad[8];
} __pthread_mutex_lock64;
struct {
uint32_t __pthread_ownerpid;
uint32_t __pthread_lockword;
} __pthread_mutex_lock32;
upad64_t __pthread_mutex_owner64;
} __pthread_mutex_lock;
upad64_t __pthread_mutex_data;
} pthread_mutex_t;

typedef struct _pthread_cond {
struct {
uint8_t __pthread_cond_flag[4];
uint16_t __pthread_cond_type;
uint16_t __pthread_cond_magic;
} __pthread_cond_flags;
upad64_t __pthread_cond_data;
} pthread_cond_t;



typedef struct _pthread_rwlock {
int32_t __pthread_rwlock_readers;
uint16_t __pthread_rwlock_type;
uint16_t __pthread_rwlock_magic;
pthread_mutex_t __pthread_rwlock_mutex;
pthread_cond_t __pthread_rwlock_readercv;
pthread_cond_t __pthread_rwlock_writercv;
} pthread_rwlock_t;



typedef struct {
uint32_t __pthread_barrier_count;
uint32_t __pthread_barrier_current;
upad64_t __pthread_barrier_cycle;
upad64_t __pthread_barrier_reserved;
pthread_mutex_t __pthread_barrier_lock;
pthread_cond_t __pthread_barrier_cond;
} pthread_barrier_t;

typedef pthread_mutex_t pthread_spinlock_t;



typedef struct _pthread_attr {
void *__pthread_attrp;
} pthread_attr_t;



typedef struct _pthread_mutexattr {
void *__pthread_mutexattrp;
} pthread_mutexattr_t;



typedef struct _pthread_condattr {
void *__pthread_condattrp;
} pthread_condattr_t;



typedef struct _once {
upad64_t __pthread_once_pad[4];
} pthread_once_t;




typedef struct _pthread_rwlockattr {
void *__pthread_rwlockattrp;
} pthread_rwlockattr_t;




typedef struct {
void *__pthread_barrierattrp;
} pthread_barrierattr_t;

typedef ulong_t dev_t;





typedef ulong_t nlink_t;
typedef long pid_t;
















typedef int ssize_t;





typedef long time_t;




typedef long clock_t;




typedef int clockid_t;




typedef int timer_t;




typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
































































typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { int val[2]; } quad_t;
typedef quad_t quad;









typedef struct klgrpset {
ulong_t klgb[ 6 ];
} klgrpset_t;




# 1 "/usr/include/sys/select.h" 1









#pragma ident "@(#)select.h 1.19 04/01/28 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 18 "/usr/include/sys/select.h" 2



# 1 "/usr/include/sys/time_impl.h" 1
















#pragma ident "@(#)time_impl.h 1.11 05/05/19 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 22 "/usr/include/sys/time_impl.h" 2















typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;




















typedef struct timespec timestruc_t;











typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;










































# 22 "/usr/include/sys/select.h" 2

# 1 "/usr/include/sys/time.h" 1













#pragma ident "@(#)time.h 2.79 13/07/01 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 24 "/usr/include/sys/time.h" 2























struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};




























struct timezone {
int tz_minuteswest;
int tz_dsttime;
};













# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 99 "/usr/include/sys/time.h" 2












































struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};









































typedef longlong_t hrtime_t;































































































































int adjtime(struct timeval *, struct timeval *);








int futimesat(int, const char *, const struct timeval *);










int getitimer(int, struct itimerval *);
int utimes(const char *, const struct timeval *);




int setitimer(int, struct itimerval * ,
struct itimerval * );





























int settimeofday(struct timeval *, void *);

hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);















int gettimeofday(struct timeval * , void * );


















# 1 "/usr/include/time.h" 1









#pragma ident "@(#)time.h 1.45 08/01/09 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/time.h" 2
# 1 "/usr/include/iso/time_iso.h" 1




















#pragma ident "@(#)time_iso.h 1.4 04/09/07 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 31 "/usr/include/iso/time_iso.h" 2






































struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};




extern char *asctime(const struct tm *);
extern clock_t clock(void);
extern char *ctime(const time_t *);
extern double difftime(time_t, time_t);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern size_t strftime(char * , size_t, const char * ,
const struct tm * );
























# 20 "/usr/include/time.h" 2


# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 23 "/usr/include/time.h" 2
# 1 "/usr/include/sys/time_impl.h" 1























































































































# 24 "/usr/include/time.h" 2








































extern struct tm *gmtime_r(const time_t * ,
struct tm * );
extern struct tm *localtime_r(const time_t * ,
struct tm * );














extern char *strptime(const char * , const char * ,
struct tm * );

















union sigval {
int sival_int;
void *sival_ptr;
};




struct sigevent {
int sigev_notify;
int sigev_signo;
union sigval sigev_value;
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
int __sigev_pad2;
};


extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent * ,
timer_t * );
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec * ,
struct itimerspec * );

extern int nanosleep(const struct timespec *, struct timespec *);
extern int clock_nanosleep(clockid_t, int,
const struct timespec *, struct timespec *);






extern void tzset(void);
extern char *tzname[2];



extern long _sysconf(int);






extern long timezone;
extern int daylight;






extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;




extern struct tm *getdate(const char *);



extern int *_getdate_err_addr(void);
























































































#pragma redefine_extname ctime_r __posix_ctime_r
#pragma redefine_extname asctime_r __posix_asctime_r
extern char *asctime_r(const struct tm * , char * );
extern char *ctime_r(const time_t *, char *);


























































































# 422 "/usr/include/sys/time.h" 2










# 1 "/usr/include/sys/select.h" 1




























































































































































# 434 "/usr/include/sys/time.h" 2









# 24 "/usr/include/sys/select.h" 2



















typedef struct {
unsigned int __sigbits[4];
} sigset_t;








































typedef long fd_mask;

typedef long fds_mask;
























typedef struct fd_set {



long fds_bits[ ((( 1024 )+(( (sizeof (fds_mask) * 8 ) )-1))/( (sizeof (fds_mask) * 8 ) )) ];
} fd_set;


















extern int select(int, fd_set * , fd_set * ,
fd_set * , struct timeval * );


extern int pselect(int, fd_set * , fd_set * ,
fd_set * , const struct timespec * ,
const sigset_t * );















# 630 "/usr/include/sys/types.h" 2


















# 29 "./include/ruby/defines.h" 2


# 1 "/usr/include/sys/stat.h" 1









#pragma ident "@(#)stat.h 1.12 10/01/15 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 21 "/usr/include/sys/stat.h" 2
# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 22 "/usr/include/sys/stat.h" 2


















# 1 "/usr/include/sys/time_impl.h" 1























































































































# 42 "/usr/include/sys/stat.h" 2






















































































































































































struct stat {
dev_t st_dev;
long st_pad1[3];
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
long st_pad2[2];
off_t st_size;

long st_pad3;


timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;





blksize_t st_blksize;
blkcnt_t st_blocks;
char st_fstype[ 16 ];
long st_pad4[8];
};
































struct stat64 {
dev_t st_dev;
long st_pad1[3];
ino64_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
long st_pad2[2];
off64_t st_size;

timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;





blksize_t st_blksize;
blkcnt64_t st_blocks;
char st_fstype[ 16 ];
long st_pad4[8];
};

























































































































































extern int fchmod(int, mode_t);


extern int chmod(const char *, mode_t);
extern int mkdir(const char *, mode_t);
extern int mkfifo(const char *, mode_t);
extern mode_t umask(mode_t);



extern int fstat64(int, struct stat64 *);
extern int stat64(const char * , struct stat64 * );
extern int lstat64(const char * , struct stat64 * );


extern int fstatat64(int, const char *, struct stat64 *, int);





extern int futimens(int, const struct timespec[2]);
extern int utimensat(int, const char *, const struct timespec[2], int);



































# 1 "/usr/include/sys/stat_impl.h" 1







#pragma ident "@(#)stat_impl.h 1.4 03/12/04 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 12 "/usr/include/sys/stat_impl.h" 2
# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 13 "/usr/include/sys/stat_impl.h" 2












extern int fstat(int, struct stat *);
extern int stat(const char * , struct stat * );


extern int fstatat(int, const char *, struct stat *, int);



extern int lstat(const char * , struct stat * );
extern int mknod(const char *, mode_t, dev_t);
























# 534 "/usr/include/sys/stat.h" 2








# 32 "./include/ruby/defines.h" 2


# 1 "/usr/include/stdlib.h" 1








#pragma ident "@(#)stdlib.h 1.52 12/08/01 SMI"

# 1 "/usr/include/iso/stdlib_iso.h" 1




















#pragma ident "@(#)stdlib_iso.h 1.9 04/09/28 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 31 "/usr/include/iso/stdlib_iso.h" 2






extern unsigned char __ctype[];










typedef struct {
int quot;
int rem;
} div_t;

typedef struct {
long quot;
long rem;
} ldiv_t;









































typedef long wchar_t;







extern void abort(void) ;
extern int abs(int);
extern int atexit(void (*)(void));
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));






extern void *calloc(size_t, size_t);
extern div_t div(int, int);
extern void exit(int)
;
extern void free(void *);
extern char *getenv(const char *);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern void *malloc(size_t);
extern int mblen(const char *, size_t);
extern size_t mbstowcs(wchar_t * , const char * ,
size_t);
extern int mbtowc(wchar_t * , const char * , size_t);
extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *));





extern int rand(void);
extern void *realloc(void *, size_t);
extern void srand(unsigned int);
extern double strtod(const char * , char ** );
extern long int strtol(const char * , char ** , int);
extern unsigned long int strtoul(const char * ,
char ** , int);
extern int system(const char *);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char * , const wchar_t * ,
size_t);


















































# 18 "/usr/include/stdlib.h" 2
# 1 "/usr/include/iso/stdlib_c99.h" 1

















#pragma ident "@(#)stdlib_c99.h 1.2 04/03/29 SMI"













typedef struct {
long long quot;
long long rem;
} lldiv_t;







extern void _Exit(int);
extern float strtof(const char * , char ** );
extern long double strtold(const char * , char ** );


extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern long long strtoll(const char * , char ** ,
int);
extern unsigned long long strtoull(const char * ,
char ** , int);





























# 19 "/usr/include/stdlib.h" 2


# 1 "/usr/include/sys/wait.h" 1









#pragma ident "@(#)wait.h 1.23 04/06/03 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/sys/wait.h" 2

# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 21 "/usr/include/sys/wait.h" 2


# 1 "/usr/include/sys/resource.h" 1









#pragma ident "@(#)resource.h 1.37 07/02/07 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/sys/resource.h" 2

# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 21 "/usr/include/sys/resource.h" 2
# 1 "/usr/include/sys/time.h" 1



















































































































































































































































































































































































































































# 22 "/usr/include/sys/resource.h" 2














































typedef unsigned long rlim_t;


































struct rlimit {
rlim_t rlim_cur;
rlim_t rlim_max;
};



typedef u_longlong_t rlim64_t;





struct rlimit64 {
rlim64_t rlim_cur;
rlim64_t rlim_max;
};




















struct rusage {
struct timeval ru_utime;
struct timeval ru_stime;
long ru_maxrss;
long ru_ixrss;
long ru_idrss;
long ru_isrss;
long ru_minflt;
long ru_majflt;
long ru_nswap;
long ru_inblock;
long ru_oublock;
long ru_msgsnd;
long ru_msgrcv;
long ru_nsignals;
long ru_nvcsw;
long ru_nivcsw;
};










































































extern int setrlimit(int, const struct rlimit *);
extern int getrlimit(int, struct rlimit *);



extern int setrlimit64(int, const struct rlimit64 *);
extern int getrlimit64(int, struct rlimit64 *);


extern int getpriority(int, id_t);
extern int setpriority(int, id_t, int);
extern int getrusage(int, struct rusage *);


























# 24 "/usr/include/sys/wait.h" 2
# 1 "/usr/include/sys/siginfo.h" 1













#pragma ident "@(#)siginfo.h 1.59 04/07/15 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 24 "/usr/include/sys/siginfo.h" 2
# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 25 "/usr/include/sys/siginfo.h" 2








































































































# 1 "/usr/include/sys/machsig.h" 1









#pragma ident "@(#)machsig.h 1.15 99/08/15 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/sys/machsig.h" 2





















































































# 135 "/usr/include/sys/siginfo.h" 2









































































# 1 "/usr/include/sys/time_impl.h" 1























































































































# 214 "/usr/include/sys/siginfo.h" 2









# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 225 "/usr/include/sys/siginfo.h" 2


typedef struct siginfo {



int si_signo;
int si_code;
int si_errno;



union {

int __pad[ (( 128 / sizeof (int)) - 3) ];

struct {
pid_t __pid;
union {
struct {
uid_t __uid;


union sigval __value;



} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
ctid_t __ctid;
zoneid_t __zoneid;
} __proc;

struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;

struct {
int __fd;
long __band;
} __file;

struct {
caddr_t __faddr;

timestruc_t __tstamp;



short __syscall;
char __nsysarg;
char __fault;
long __sysarg[8];
int __mstate[10];
} __prof;

struct {
int32_t __entity;
} __rctl;
} __data;

} siginfo_t;









































































typedef struct k_siginfo {
int si_signo;
int si_code;
int si_errno;



union {
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
union sigval __value;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
ctid_t __ctid;
zoneid_t __zoneid;
} __proc;

struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;

struct {
int __fd;
long __band;
} __file;

struct {
caddr_t __faddr;


timestruc_t __tstamp;



short __syscall;
char __nsysarg;
char __fault;
} __prof;

struct {
int32_t __entity;
} __rctl;

} __data;

} k_siginfo_t;

typedef struct sigqueue {
struct sigqueue *sq_next;
k_siginfo_t sq_info;
void (*sq_func)(struct sigqueue *);
void *sq_backptr;
int sq_external;
} sigqueue_t;











































# 25 "/usr/include/sys/wait.h" 2
# 1 "/usr/include/sys/procset.h" 1








#pragma ident "@(#)procset.h 1.26 11/04/18 SMI"





# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 22 "/usr/include/sys/procset.h" 2
# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 23 "/usr/include/sys/procset.h" 2
# 1 "/usr/include/sys/signal.h" 1









#pragma ident "@(#)signal.h 1.66 04/09/28 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/sys/signal.h" 2
# 1 "/usr/include/sys/iso/signal_iso.h" 1




















#pragma ident "@(#)signal_iso.h 1.6 03/05/02 SMI"

# 1 "/usr/include/sys/unistd.h" 1



















#pragma ident "@(#)unistd.h 1.46 12/01/17 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 26 "/usr/include/sys/unistd.h" 2













































































































































































































































































































































# 31 "/usr/include/sys/iso/signal_iso.h" 2



















































extern long _sysconf(int);














































# 20 "/usr/include/sys/signal.h" 2













# 1 "/usr/include/sys/siginfo.h" 1


























































































































































































































































































































































































































































































# 35 "/usr/include/sys/signal.h" 2




















typedef struct {
unsigned int __sigbits[2];
} k_sigset_t;













struct sigaction {
int sa_flags;
union {



void (*_handler)();




void (*_sigaction)(int, siginfo_t *, void *);

} _funcptr;
sigset_t sa_mask;

int sa_resv[2];

};






























































typedef struct sigaltstack {



void *ss_sp;
size_t ss_size;
int ss_flags;
} stack_t;




















typedef struct signotify_id {
pid_t sn_pid;
int sn_index;
int sn_pad;
} signotify_id_t;























struct sigstack {
void *ss_sp;
int ss_onstack;
};




























































































# 24 "/usr/include/sys/procset.h" 2















typedef enum

idtype

{
P_PID,
P_PPID,
P_PGID,
P_SID,
P_CID,
P_UID,
P_GID,
P_ALL,
P_LWPID,
P_TASKID,
P_PROJID,
P_POOLID,
P_ZONEID,
P_CTID,
P_CPUID,
P_PSETID
} idtype_t;







typedef enum idop {
POP_DIFF,
POP_AND,
POP_OR,
POP_XOR
} idop_t;






typedef struct procset {
idop_t p_op;

idtype_t p_lidtype;
id_t p_lid;

idtype_t p_ridtype;
id_t p_rid;
} procset_t;
































# 26 "/usr/include/sys/wait.h" 2






















































extern pid_t wait(int *);
extern pid_t waitpid(pid_t, int *, int);


extern int waitid(idtype_t, id_t, siginfo_t *, int);

extern pid_t wait3(int *, int, struct rusage *);




extern pid_t wait4(pid_t, int *, int, struct rusage *);


























# 22 "/usr/include/stdlib.h" 2













































































extern int rand_r(unsigned int *);


extern void _exithandle(void);




extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);





















extern void swab(const char *, char *, ssize_t);





extern int mkstemp(char *);




extern int mkstemp64(char *);





extern long a64l(const char *);
extern char *ecvt(double, int, int * , int * );
extern char *fcvt(double, int, int * , int * );
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char * , char * );
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int unlockpt(int);

extern int ttyslot(void);
extern void *valloc(size_t);






extern int posix_openpt(int);
extern int setenv(const char *, const char *, int);
extern int unsetenv(const char *);




extern void closefrom(int);
extern int dup2(int, int);
extern int fdwalk(int (*)(void *, int), void *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern char *mkdtemp(char *);


extern char *lltostr(long long, char *);
extern char *ulltostr(unsigned long long, char *);









































































































# 35 "./include/ruby/defines.h" 2
# 1 "/usr/include/stddef.h" 1









#pragma ident "@(#)stddef.h 1.18 04/09/28 SMI"

# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 19 "/usr/include/stddef.h" 2
# 1 "/usr/include/iso/stddef_iso.h" 1




















#pragma ident "@(#)stddef_iso.h 1.2 03/03/06 SMI"

# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 31 "/usr/include/iso/stddef_iso.h" 2


















































# 20 "/usr/include/stddef.h" 2































# 36 "./include/ruby/defines.h" 2









# 1 "/usr/include/string.h" 1









#pragma ident "@(#)string.h 1.27 07/01/14 SMI"

# 1 "/usr/include/iso/string_iso.h" 1




















#pragma ident "@(#)string_iso.h 1.5 04/06/18 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 31 "/usr/include/iso/string_iso.h" 2




























extern int memcmp(const void *, const void *, size_t);
extern void *memcpy(void * , const void * , size_t);
extern void *memmove(void *, const void *, size_t);
extern void *memset(void *, int, size_t);
extern char *strcat(char * , const char * );
extern int strcmp(const char *, const char *);
extern char *strcpy(char * , const char * );
extern int strcoll(const char *, const char *);
extern size_t strcspn(const char *, const char *);
extern char *strerror(int);
extern size_t strlen(const char *);
extern char *strncat(char * , const char * , size_t);
extern int strncmp(const char *, const char *, size_t);
extern char *strncpy(char * , const char * , size_t);
extern size_t strspn(const char *, const char *);
extern char *strtok(char * , const char * );
extern size_t strxfrm(char * , const char * , size_t);




















































extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern char *strstr(const char *, const char *);






































# 19 "/usr/include/string.h" 2







































extern int strerror_r(int, char *, size_t);





extern char *strtok_r(char * , const char * ,
char ** );




extern void *memccpy(void * , const void * ,
int, size_t);




extern int uucopy(const void * , void * , size_t);
extern int uucopystr(const void * , void * , size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern size_t strlcat(char *, const char *, size_t);





extern char *strdup(const char *);









































# 46 "./include/ruby/defines.h" 2


# 1 "/usr/include/strings.h" 1







#pragma ident "@(#)strings.h 1.3 96/03/12 SMI"

# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 12 "/usr/include/strings.h" 2
# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 13 "/usr/include/strings.h" 2


# 1 "/usr/include/string.h" 1





























































































































# 16 "/usr/include/strings.h" 2








extern int bcmp(const void *, const void *, size_t);
extern void bcopy(const void *, void *, size_t);
extern void bzero(void *, size_t);

extern char *index(const char *, int);
extern char *rindex(const char *, int);






































# 49 "./include/ruby/defines.h" 2


# 1 "/usr/include/inttypes.h" 1







#pragma ident "@(#)inttypes.h 1.4 04/04/29 SMI"









# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 21 "/usr/include/inttypes.h" 2
# 1 "/usr/include/sys/inttypes.h" 1







#pragma ident "@(#)inttypes.h 1.3 03/12/04 SMI"










# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 22 "/usr/include/sys/inttypes.h" 2
# 1 "/usr/include/sys/int_types.h" 1















































































































































































# 23 "/usr/include/sys/inttypes.h" 2

# 1 "/usr/include/sys/int_limits.h" 1







#pragma ident "@(#)int_limits.h 1.9 04/09/28 SMI"
























# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 36 "/usr/include/sys/int_limits.h" 2




















































































































































































































# 25 "/usr/include/sys/inttypes.h" 2
# 1 "/usr/include/sys/int_const.h" 1







#pragma ident "@(#)int_const.h 1.5 04/09/28 SMI"






















# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 34 "/usr/include/sys/int_const.h" 2








































































# 26 "/usr/include/sys/inttypes.h" 2
# 1 "/usr/include/sys/int_fmtio.h" 1







#pragma ident "@(#)int_fmtio.h 1.6 04/09/28 SMI"



















# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 31 "/usr/include/sys/int_fmtio.h" 2









































































































































































































































































































































# 27 "/usr/include/sys/inttypes.h" 2



# 22 "/usr/include/inttypes.h" 2



# 1 "/usr/include/sys/stdint.h" 1







#pragma ident "@(#)stdint.h 1.1 03/12/04 SMI"






# 1 "/usr/include/sys/int_types.h" 1















































































































































































# 18 "/usr/include/sys/stdint.h" 2
# 1 "/usr/include/sys/int_limits.h" 1



































































































































































































































































# 19 "/usr/include/sys/stdint.h" 2
# 1 "/usr/include/sys/int_const.h" 1

















































































































# 20 "/usr/include/sys/stdint.h" 2


# 26 "/usr/include/inttypes.h" 2
































typedef struct {
intmax_t quot;
intmax_t rem;
} imaxdiv_t;
























extern intmax_t imaxabs(intmax_t);
extern imaxdiv_t imaxdiv(intmax_t, intmax_t);
extern intmax_t strtoimax(const char * , char ** ,
int);
extern uintmax_t strtoumax(const char * , char ** ,
int);
extern intmax_t wcstoimax(const wchar_t * ,
wchar_t ** , int);
extern uintmax_t wcstoumax(const wchar_t * ,
wchar_t ** , int);
















# 52 "./include/ruby/defines.h" 2


# 1 "/usr/include/stdint.h" 1







#pragma ident "@(#)stdint.h 1.1 03/12/04 SMI"






# 1 "/usr/include/sys/stdint.h" 1




















# 18 "/usr/include/stdint.h" 2


# 55 "./include/ruby/defines.h" 2


# 1 "/usr/include/unistd.h" 1









#pragma ident "@(#)unistd.h 1.76 06/03/10 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 19 "/usr/include/unistd.h" 2

# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 21 "/usr/include/unistd.h" 2
# 1 "/usr/include/sys/unistd.h" 1































































































































































































































































































































































































# 22 "/usr/include/unistd.h" 2

































































































































































































extern int access(const char *, int);

extern int acct(const char *);

extern unsigned alarm(unsigned);


extern int brk(void *);

extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);


extern int chroot(const char *);

extern int close(int);

extern size_t confstr(int, char *, size_t);
extern char *crypt(const char *, const char *);



extern char *ctermid(char *);


extern char *ctermid_r(char *);


extern char *cuserid(char *);

extern int dup(int);
extern int dup2(int, int);

extern void encrypt(char *, int);


extern void endusershell(void);

extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int)
;





extern int fattach(int, const char *);


extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);


extern int fchownat(int, const char *, uid_t, gid_t, int);



extern int fchroot(int);



extern int fdatasync(int);






extern int fdetach(const char *);

extern pid_t fork(void);

extern pid_t fork1(void);
extern pid_t forkall(void);

extern long fpathconf(int, int);


extern int fsync(int);




extern int ftruncate(int, off_t);

extern char *getcwd(char *, size_t);


extern int getdtablesize(void);

extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);

extern long gethostid(void);




extern int gethostname(char *, int);

extern char *getlogin(void);

extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int opterr, optind, optopt;

extern char *getpass(const char *);




extern int getpagesize(void);

extern pid_t getpgid(pid_t);

extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);


char *gettxt(const char *, const char *);


extern pid_t getsid(pid_t);

extern uid_t getuid(void);

extern char *getusershell(void);


extern char *getwd(char *);






extern int ioctl(int, int, ...);
extern int isaexec(const char *, char *const *, char *const *);
extern int issetugid(void);

extern int isatty(int);

extern int lchown(const char *, uid_t, gid_t);

extern int link(const char *, const char *);

extern offset_t llseek(int, offset_t, int);




extern int lockf(int, int, off_t);

extern off_t lseek(int, off_t, int);


extern int nice(int);


extern int mincore(caddr_t, size_t, char *);

extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);



extern ssize_t pread(int, void *, size_t, off_t);


extern void profil(unsigned short *, size_t, unsigned long, unsigned int);










extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));



extern int ptrace(int, pid_t, int, int);




extern ssize_t pwrite(int, const void *, size_t, off_t);


extern int rcmd_af(char **, unsigned short, const char *, const char *,
const char *, int *, int);

extern ssize_t read(int, void *, size_t);


extern ssize_t readlink(const char * , char * ,
size_t);



extern int rename(const char *, const char *);



extern int renameat(int, const char *, int, const char *);


extern int resolvepath(const char *, char *, size_t);
extern int rexec_af(char **, unsigned short, const char *, const char *,
const char *, int *, int);

extern int rmdir(const char *);

extern int rresvport_af(int *, int);




extern void *sbrk(intptr_t);


extern int setegid(gid_t);
extern int seteuid(uid_t);

extern int setgid(gid_t);

extern int setgroups(int, const gid_t *);

extern int setpgid(pid_t, pid_t);

extern pid_t setpgrp(void);
extern int setregid(gid_t, gid_t);
extern int setreuid(uid_t, uid_t);

extern pid_t setsid(void);
extern int setuid(uid_t);

extern void setusershell(void);

extern unsigned sleep(unsigned);

extern int stime(const time_t *);






extern int symlink(const char *, const char *);
extern void sync(void);








extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);



extern off_t tell(int);




extern int truncate(const char *, off_t);

extern char *ttyname(int);

extern useconds_t ualarm(useconds_t, useconds_t);

extern int unlink(const char *);


extern int unlinkat(int, const char *, int);


extern int usleep(useconds_t);


extern pid_t vfork(void);


extern void vhangup(void);

extern ssize_t write(int, const void *, size_t);

extern void yield(void);




extern int ftruncate64(int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
extern off64_t tell64(int);
extern int truncate64(const char *, off64_t);
extern int lockf64(int, int, off64_t);


















































































































































































































































































































#pragma unknown_control_flow(vfork)














































#pragma redefine_extname getlogin_r __posix_getlogin_r
#pragma redefine_extname ttyname_r __posix_ttyname_r
extern int getlogin_r(char *, int);
extern int ttyname_r(int, char *, size_t);
























































































# 58 "./include/ruby/defines.h" 2



# 1 "/usr/include/sys/select.h" 1




























































































































































# 62 "./include/ruby/defines.h" 2






# 1 "./include/ruby/missing.h" 1



















# 1 ".ext/include/sparc64-solaris2.10/ruby/config.h" 1


























































































































































































































































































































# 22 "./include/ruby/missing.h" 2
# 1 "/usr/include/stddef.h" 1














































# 23 "./include/ruby/missing.h" 2
# 1 "/usr/include/math.h" 1







#pragma ident "@(#)math.h 2.25 09/05/19 SMI"

# 1 "/usr/include/iso/math_iso.h" 1







#pragma ident "@(#)math_iso.h 1.9 04/10/23 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 12 "/usr/include/iso/math_iso.h" 2














typedef union _h_val {
unsigned long _i[sizeof (double) / sizeof (unsigned long)];
double _d;
} _h_val;


extern const _h_val __huge_val;











extern double acos (double) ;
extern double asin (double) ;
extern double atan (double) ;
extern double atan2 (double, double) ;
extern double cos (double) ;
extern double sin (double) ;
extern double tan (double) ;

extern double cosh (double) ;
extern double sinh (double) ;
extern double tanh (double) ;

extern double exp (double) ;
extern double frexp (double, int *) ;
extern double ldexp (double, int) ;
extern double log (double) ;
extern double log10 (double) ;
extern double modf (double, double *) ;

extern double pow (double, double) ;
extern double sqrt (double) ;

extern double ceil (double) ;
extern double fabs (double) ;
extern double floor (double) ;
extern double fmod (double, double) ;














































































































































# 12 "/usr/include/math.h" 2
# 1 "/usr/include/iso/math_c99.h" 1







#pragma ident "@(#)math_c99.h 1.10 09/05/19 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 12 "/usr/include/iso/math_c99.h" 2























































































































































typedef float float_t;
typedef double double_t;









































extern double acosh (double) ;
extern double asinh (double) ;
extern double atanh (double) ;

extern double exp2 (double) ;
extern double expm1 (double) ;
extern int ilogb (double) ;
extern double log1p (double) ;
extern double log2 (double) ;
extern double logb (double) ;
extern double scalbn (double, int) ;
extern double scalbln (double, long int) ;

extern double cbrt (double) ;
extern double hypot (double, double) ;

extern double erf (double) ;
extern double erfc (double) ;
extern double lgamma (double) ;
extern double tgamma (double) ;

extern double nearbyint (double) ;
extern double rint (double) ;
extern long int lrint (double) ;
extern double round (double) ;
extern long int lround (double) ;
extern double trunc (double) ;

extern double remainder (double, double) ;
extern double remquo (double, double, int *) ;

extern double copysign (double, double) ;
extern double nan (const char *) ;
extern double nextafter (double, double) ;
extern double nexttoward (double, long double) ;

extern double fdim (double, double) ;
extern double fmax (double, double) ;
extern double fmin (double, double) ;

extern double fma (double, double, double) ;

extern float acosf (float) ;
extern float asinf (float) ;
extern float atanf (float) ;
extern float atan2f (float, float) ;
extern float cosf (float) ;
extern float sinf (float) ;
extern float tanf (float) ;

extern float acoshf (float) ;
extern float asinhf (float) ;
extern float atanhf (float) ;
extern float coshf (float) ;
extern float sinhf (float) ;
extern float tanhf (float) ;

extern float expf (float) ;
extern float exp2f (float) ;
extern float expm1f (float) ;
extern float frexpf (float, int *) ;
extern int ilogbf (float) ;
extern float ldexpf (float, int) ;
extern float logf (float) ;
extern float log10f (float) ;
extern float log1pf (float) ;
extern float log2f (float) ;
extern float logbf (float) ;
extern float modff (float, float *) ;
extern float scalbnf (float, int) ;
extern float scalblnf (float, long int) ;

extern float cbrtf (float) ;
extern float fabsf (float) ;
extern float hypotf (float, float) ;
extern float powf (float, float) ;
extern float sqrtf (float) ;

extern float erff (float) ;
extern float erfcf (float) ;
extern float lgammaf (float) ;
extern float tgammaf (float) ;

extern float ceilf (float) ;
extern float floorf (float) ;
extern float nearbyintf (float) ;
extern float rintf (float) ;
extern long int lrintf (float) ;
extern float roundf (float) ;
extern long int lroundf (float) ;
extern float truncf (float) ;

extern float fmodf (float, float) ;
extern float remainderf (float, float) ;
extern float remquof (float, float, int *) ;

extern float copysignf (float, float) ;
extern float nanf (const char *) ;
extern float nextafterf (float, float) ;
extern float nexttowardf (float, long double) ;

extern float fdimf (float, float) ;
extern float fmaxf (float, float) ;
extern float fminf (float, float) ;

extern float fmaf (float, float, float) ;

extern long double acosl (long double) ;
extern long double asinl (long double) ;
extern long double atanl (long double) ;
extern long double atan2l (long double, long double) ;
extern long double cosl (long double) ;
extern long double sinl (long double) ;
extern long double tanl (long double) ;

extern long double acoshl (long double) ;
extern long double asinhl (long double) ;
extern long double atanhl (long double) ;
extern long double coshl (long double) ;
extern long double sinhl (long double) ;
extern long double tanhl (long double) ;

extern long double expl (long double) ;
extern long double exp2l (long double) ;
extern long double expm1l (long double) ;
extern long double frexpl (long double, int *) ;
extern int ilogbl (long double) ;
extern long double ldexpl (long double, int) ;
extern long double logl (long double) ;
extern long double log10l (long double) ;
extern long double log1pl (long double) ;
extern long double log2l (long double) ;
extern long double logbl (long double) ;
extern long double modfl (long double, long double *) ;
extern long double scalbnl (long double, int) ;
extern long double scalblnl (long double, long int) ;

extern long double cbrtl (long double) ;
extern long double fabsl (long double) ;
extern long double hypotl (long double, long double) ;
extern long double powl (long double, long double) ;
extern long double sqrtl (long double) ;

extern long double erfl (long double) ;
extern long double erfcl (long double) ;
extern long double lgammal (long double) ;
extern long double tgammal (long double) ;

extern long double ceill (long double) ;
extern long double floorl (long double) ;
extern long double nearbyintl (long double) ;
extern long double rintl (long double) ;
extern long int lrintl (long double) ;
extern long double roundl (long double) ;
extern long int lroundl (long double) ;
extern long double truncl (long double) ;

extern long double fmodl (long double, long double) ;
extern long double remainderl (long double, long double) ;
extern long double remquol (long double, long double, int *) ;

extern long double copysignl (long double, long double) ;
extern long double nanl (const char *) ;
extern long double nextafterl (long double, long double) ;
extern long double nexttowardl (long double, long double) ;

extern long double fdiml (long double, long double) ;
extern long double fmaxl (long double, long double) ;
extern long double fminl (long double, long double) ;

extern long double fmal (long double, long double, long double) ;



extern long long int llrint (double) ;
extern long long int llround (double) ;

extern long long int llrintf (float) ;
extern long long int llroundf (float) ;

extern long long int llrintl (long double) ;
extern long long int llroundl (long double) ;



#pragma does_not_read_global_data(asinh, exp2, expm1)
#pragma does_not_read_global_data(ilogb, log2)
#pragma does_not_read_global_data(scalbn, scalbln, cbrt)
#pragma does_not_read_global_data(erf, erfc, tgamma)
#pragma does_not_read_global_data(nearbyint, rint, lrint, round, lround, trunc)
#pragma does_not_read_global_data(remquo)
#pragma does_not_read_global_data(copysign, nan, nexttoward)
#pragma does_not_read_global_data(fdim, fmax, fmin, fma)
#pragma does_not_write_global_data(asinh, exp2, expm1)
#pragma does_not_write_global_data(ilogb, log2)
#pragma does_not_write_global_data(scalbn, scalbln, cbrt)
#pragma does_not_write_global_data(erf, erfc, tgamma)
#pragma does_not_write_global_data(nearbyint, rint, lrint, round, lround, trunc)
#pragma does_not_write_global_data(copysign, nan, nexttoward)
#pragma does_not_write_global_data(fdim, fmax, fmin, fma)

#pragma does_not_read_global_data(acosf, asinf, atanf, atan2f)
#pragma does_not_read_global_data(cosf, sinf, tanf)
#pragma does_not_read_global_data(acoshf, asinhf, atanhf, coshf, sinhf, tanhf)
#pragma does_not_read_global_data(expf, exp2f, expm1f, frexpf, ilogbf, ldexpf)
#pragma does_not_read_global_data(logf, log10f, log1pf, log2f, logbf)
#pragma does_not_read_global_data(modff, scalbnf, scalblnf)
#pragma does_not_read_global_data(cbrtf, fabsf, hypotf, powf, sqrtf)
#pragma does_not_read_global_data(erff, erfcf, lgammaf, tgammaf)
#pragma does_not_read_global_data(ceilf, floorf, nearbyintf)
#pragma does_not_read_global_data(rintf, lrintf, roundf, lroundf, truncf)
#pragma does_not_read_global_data(fmodf, remainderf, remquof)
#pragma does_not_read_global_data(copysignf, nanf, nextafterf, nexttowardf)
#pragma does_not_read_global_data(fdimf, fmaxf, fminf, fmaf)
#pragma does_not_write_global_data(acosf, asinf, atanf, atan2f)
#pragma does_not_write_global_data(cosf, sinf, tanf)
#pragma does_not_write_global_data(acoshf, asinhf, atanhf, coshf, sinhf, tanhf)
#pragma does_not_write_global_data(expf, exp2f, expm1f, ilogbf, ldexpf)
#pragma does_not_write_global_data(logf, log10f, log1pf, log2f, logbf)
#pragma does_not_write_global_data(cbrtf, fabsf, hypotf, powf, sqrtf)
#pragma does_not_write_global_data(erff, erfcf, tgammaf)
#pragma does_not_write_global_data(ceilf, floorf, nearbyintf)
#pragma does_not_write_global_data(rintf, lrintf, roundf, lroundf, truncf)
#pragma does_not_write_global_data(fmodf, remainderf)
#pragma does_not_write_global_data(copysignf, nanf, nextafterf, nexttowardf)
#pragma does_not_write_global_data(fdimf, fmaxf, fminf, fmaf)

#pragma does_not_read_global_data(acosl, asinl, atanl, atan2l)
#pragma does_not_read_global_data(cosl, sinl, tanl)
#pragma does_not_read_global_data(acoshl, asinhl, atanhl, coshl, sinhl, tanhl)
#pragma does_not_read_global_data(expl, exp2l, expm1l, frexpl, ilogbl, ldexpl)
#pragma does_not_read_global_data(logl, log10l, log1pl, log2l, logbl)
#pragma does_not_read_global_data(modfl, scalbnl, scalblnl)
#pragma does_not_read_global_data(cbrtl, fabsl, hypotl, powl, sqrtl)
#pragma does_not_read_global_data(erfl, erfcl, lgammal, tgammal)
#pragma does_not_read_global_data(ceill, floorl, nearbyintl)
#pragma does_not_read_global_data(rintl, lrintl, roundl, lroundl, truncl)
#pragma does_not_read_global_data(fmodl, remainderl, remquol)
#pragma does_not_read_global_data(copysignl, nanl, nextafterl, nexttowardl)
#pragma does_not_read_global_data(fdiml, fmaxl, fminl, fmal)
#pragma does_not_write_global_data(acosl, asinl, atanl, atan2l)
#pragma does_not_write_global_data(cosl, sinl, tanl)
#pragma does_not_write_global_data(acoshl, asinhl, atanhl, coshl, sinhl, tanhl)
#pragma does_not_write_global_data(expl, exp2l, expm1l, ilogbl, ldexpl)
#pragma does_not_write_global_data(logl, log10l, log1pl, log2l, logbl)
#pragma does_not_write_global_data(cbrtl, fabsl, hypotl, powl, sqrtl)
#pragma does_not_write_global_data(erfl, erfcl, tgammal)
#pragma does_not_write_global_data(ceill, floorl, nearbyintl)
#pragma does_not_write_global_data(rintl, lrintl, roundl, lroundl, truncl)
#pragma does_not_write_global_data(fmodl, remainderl)
#pragma does_not_write_global_data(copysignl, nanl, nextafterl, nexttowardl)
#pragma does_not_write_global_data(fdiml, fmaxl, fminl, fmal)



#pragma does_not_read_global_data(llrint, llround)
#pragma does_not_read_global_data(llrintf, llroundf, llrintl, llroundl)
#pragma does_not_write_global_data(llrint, llround)
#pragma does_not_write_global_data(llrintf, llroundf, llrintl, llroundl)
























































# 13 "/usr/include/math.h" 2






























































extern int signgam;






enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi};


extern const enum version _lib_version;




struct exception {
int type;
char *name;
double arg1;
double arg2;
double retval;
};





























extern double erf (double) ;
extern double erfc (double) ;
extern double hypot (double, double) ;
extern double lgamma (double) ;








extern int isnan (double) ;

#pragma does_not_read_global_data(isnan)
#pragma does_not_write_global_data(isnan)
#pragma no_side_effect(isnan)



extern double gamma (double) ;

extern double j0 (double) ;
extern double j1 (double) ;
extern double jn (int, double) ;
extern double y0 (double) ;
extern double y1 (double) ;
extern double yn (int, double) ;











extern double scalb (double, double) ;







extern double acosh (double) ;
extern double asinh (double) ;
extern double atanh (double) ;
extern double cbrt (double) ;
extern double logb (double) ;
extern double nextafter (double, double) ;
extern double remainder (double, double) ;



extern double expm1 (double) ;
extern int ilogb (double) ;
extern double log1p (double) ;
extern double rint (double) ;

















extern int matherr (struct exception *) ;



extern double significand (double) ;







extern int signgamf;
extern int signgaml;

extern int isnanf (float) ;
extern int isnanl (long double) ;
extern float gammaf (float) ;
extern float gammaf_r (float, int *) ;
extern float j0f (float) ;
extern float j1f (float) ;
extern float jnf (int, float) ;
extern float lgammaf_r (float, int *) ;
extern float scalbf (float, float) ;
extern float significandf (float) ;
extern float y0f (float) ;
extern float y1f (float) ;
extern float ynf (int, float) ;
extern long double gammal (long double) ;
extern long double gammal_r (long double, int *) ;
extern long double j0l (long double) ;
extern long double j1l (long double) ;
extern long double jnl (int, long double) ;
extern long double lgammal_r (long double, int *) ;
extern long double scalbl (long double, long double) ;
extern long double significandl (long double) ;
extern long double y0l (long double) ;
extern long double y1l (long double) ;
extern long double ynl (int, long double) ;





















extern void sincos (double, double *, double *) ;
extern void sincosf (float, float *, float *) ;
extern void sincosl (long double, long double *, long double *) ;







extern double copysign (double, double) ;
extern double scalbn (double, int) ;










extern double gamma_r (double, int *) ;
extern double lgamma_r (double, int *) ;





extern float modff (float, float *) ;






# 1 "/usr/include/floatingpoint.h" 1









#pragma ident "@(#)floatingpoint.h 2.10 09/05/19 SMI"

# 1 "/usr/include/sys/ieeefp.h" 1







#pragma ident "@(#)ieeefp.h 2.12 04/10/23 SMI"








enum fp_direction_type {
fp_nearest = 0,
fp_tozero = 1,
fp_positive = 2,
fp_negative = 3
};

enum fp_precision_type {
fp_extended = 0,
fp_single = 1,
fp_double = 2,
fp_precision_3 = 3
};

enum fp_exception_type {
fp_inexact = 0,
fp_division = 1,
fp_underflow = 2,
fp_overflow = 3,
fp_invalid = 4
};

enum fp_trap_enable_type {
fp_trap_inexact = 0,
fp_trap_division = 1,
fp_trap_underflow = 2,
fp_trap_overflow = 3,
fp_trap_invalid = 4
};




































enum fp_class_type {
fp_zero = 0,
fp_subnormal = 1,
fp_normal = 2,
fp_infinity = 3,
fp_quiet = 4,
fp_signaling = 5
};






# 19 "/usr/include/floatingpoint.h" 2

























# 1 "/usr/include/stdio_tag.h" 1



























# 47 "/usr/include/floatingpoint.h" 2

















typedef int sigfpe_code_type;

typedef void (*sigfpe_handler_type)();





extern sigfpe_handler_type sigfpe (sigfpe_code_type, sigfpe_handler_type) ;



typedef float single;



typedef unsigned extended[3];


typedef long double quadruple;

typedef unsigned fp_exception_field_type;







typedef char decimal_string[ 512 ];

typedef struct {
enum fp_class_type fpclass;
int sign;
int exponent;
decimal_string ds;
int more;
int ndigits;
} decimal_record;

enum decimal_form {
fixed_form,
floating_form
};

typedef struct {
enum fp_direction_type rd;
enum decimal_form df;
int ndigits;
} decimal_mode;

enum decimal_string_form {
invalid_form,
whitespace_form,
fixed_int_form,
fixed_intdot_form,
fixed_dotfrac_form,
fixed_intdotfrac_form,
floating_int_form,
floating_intdot_form,
floating_dotfrac_form,
floating_intdotfrac_form,
inf_form,
infinity_form,
nan_form,
nanstring_form
};

extern void single_to_decimal
(single *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void double_to_decimal
(double *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void extended_to_decimal
(extended *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void quadruple_to_decimal
(quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;

extern void decimal_to_single
(single *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void decimal_to_double
(double *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void decimal_to_extended
(extended *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;
extern void decimal_to_quadruple
(quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *) ;

extern void string_to_decimal
(char **, int, int, decimal_record *, enum decimal_string_form *, char **) ;
extern void func_to_decimal

(char **, int, int, decimal_record *, enum decimal_string_form *, char **, int (*)(void), int *, int (*)(int)) ;
extern void file_to_decimal

(char **, int, int, decimal_record *, enum decimal_string_form *, char **, FILE *, int *) ;

extern char *seconvert (single *, int, int *, int *, char *) ;
extern char *sfconvert (single *, int, int *, int *, char *) ;
extern char *sgconvert (single *, int, int, char *) ;
extern char *econvert (double, int, int *, int *, char *) ;
extern char *fconvert (double, int, int *, int *, char *) ;
extern char *gconvert (double, int, int, char *) ;
extern char *qeconvert (quadruple *, int, int *, int *, char *) ;
extern char *qfconvert (quadruple *, int, int *, int *, char *) ;
extern char *qgconvert (quadruple *, int, int, char *) ;

extern char *ecvt (double, int, int *, int *) ;
extern char *fcvt (double, int, int *, int *) ;
extern char *gcvt (double, int, char *) ;




extern double atof (const char *) ;
extern double strtod (const char *, char **) ;








# 319 "/usr/include/math.h" 2














# 24 "./include/ruby/missing.h" 2

































































extern int eaccess(const char*, int);











extern int flock(int, int);





























union bytesequence4_or_float {
unsigned char bytesequence[4];
float float_value;
};





extern const union bytesequence4_or_float rb_infinity;






extern const union bytesequence4_or_float rb_nan;







# 1 "/usr/include/ieeefp.h" 1










#pragma ident "@(#)ieeefp.h 1.22 04/10/18 SMI"






















typedef enum fpclass_t {
FP_SNAN = 0,
FP_QNAN = 1,
FP_NINF = 2,
FP_PINF = 3,
FP_NDENORM = 4,
FP_PDENORM = 5,
FP_NZERO = 6,
FP_PZERO = 7,
FP_NNORM = 8,
FP_PNORM = 9
} fpclass_t;


extern fpclass_t fpclass(double);
extern int finite(double);
extern int unordered(double, double);






























typedef enum fp_rnd {
FP_RN = 0,
FP_RZ = 1,
FP_RP = 2,
FP_RM = 3
} fp_rnd;




extern fp_rnd fpsetround(fp_rnd);
extern fp_rnd fpgetround(void);































































extern int fpgetmask(void);
extern int fpsetmask( int );
extern int fpgetsticky(void);
extern int fpsetsticky( int );













extern int isnanf(float);
extern int isnand(double);


























































































































# 160 "./include/ruby/missing.h" 2



























































extern int signbit(double x);
















extern void setproctitle(const char *fmt, ...);











# 69 "./include/ruby/defines.h" 2



















































void * ruby_xmalloc (size_t) ;
void * ruby_xmalloc2 (size_t,size_t) ;
void * ruby_xcalloc (size_t,size_t) ;
void * ruby_xrealloc (void*,size_t) ;
void * ruby_xrealloc2 (void*,size_t,size_t) ;
void ruby_xfree (void*);












































































void rb_sparc_flush_register_windows(void);




















































































# 30 "./include/ruby/ruby.h" 2































# 1 "/usr/include/stdarg.h" 1









#pragma ident "@(#)stdarg.h 1.47 04/09/28 SMI"














# 1 "/usr/include/iso/stdarg_iso.h" 1




















#pragma ident "@(#)stdarg_iso.h 1.4 04/11/19 SMI"











# 1 "/usr/include/sys/va_impl.h" 1









#pragma ident "@(#)va_impl.h 1.1 04/11/19 SMI"

































































# 1 "/usr/include/sys/va_list.h" 1















































































































# 88 "/usr/include/sys/va_impl.h" 2







































































# 42 "/usr/include/iso/stdarg_iso.h" 2











typedef __va_list va_list;











# 33 "/usr/include/stdarg.h" 2
# 1 "/usr/include/iso/stdarg_c99.h" 1









#pragma ident "@(#)stdarg_c99.h 1.2 04/09/28 SMI"
















# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 35 "/usr/include/iso/stdarg_c99.h" 2






















# 34 "/usr/include/stdarg.h" 2















# 62 "./include/ruby/ruby.h" 2










# 1 "/usr/include/alloca.h" 1







#pragma ident "@(#)alloca.h 1.16 04/09/28 SMI"

# 1 "/usr/include/sys/types.h" 1



































































































































































































































































































































































































































































































































































































































































# 12 "/usr/include/alloca.h" 2


























extern void *__builtin_alloca(size_t);



















# 75 "./include/ruby/ruby.h" 2


















typedef unsigned long VALUE;
typedef unsigned long ID;














typedef char ruby_check_sizeof_int[ 4 == sizeof(int) ? 1 : -1];
typedef char ruby_check_sizeof_long[ 8 == sizeof(long) ? 1 : -1];

typedef char ruby_check_sizeof_long_long[ 8 == sizeof( long long ) ? 1 : -1];

typedef char ruby_check_sizeof_voidp[ 8 == sizeof(void*) ? 1 : -1];











































































# 1 "/usr/include/limits.h" 1








#pragma ident "@(#)limits.h 1.60 11/04/12 SMI"

# 1 "/usr/include/sys/feature_tests.h" 1



























































































































































































































































































































































































# 18 "/usr/include/limits.h" 2
# 1 "/usr/include/sys/isa_defs.h" 1


































































































































































































































































































































































































































































































































# 19 "/usr/include/limits.h" 2
# 1 "/usr/include/iso/limits_iso.h" 1




















#pragma ident "@(#)limits_iso.h 1.2 03/12/04 SMI"





















































# 20 "/usr/include/limits.h" 2










# 1 "/usr/include/sys/int_limits.h" 1



































































































































































































































































# 32 "/usr/include/limits.h" 2




















































































































































































































































# 1 "/usr/include/sys/unistd.h" 1































































































































































































































































































































































































# 293 "/usr/include/limits.h" 2










extern long _sysconf(int);












# 191 "./include/ruby/ruby.h" 2

















































VALUE rb_int2inum( long );


VALUE rb_uint2inum(VALUE);




VALUE rb_ll2inum( long long );

VALUE rb_ull2inum(unsigned long long );

























































void rb_out_of_int( long num) ;



static int
rb_long2int_inline(long n)
{
int i = (int)n;
if ((long)i != n)
rb_out_of_int(n);

return i;
}







































ID rb_sym2id(VALUE);
VALUE rb_id2sym(ID);






















enum ruby_special_consts {

RUBY_Qfalse = 0x00,
RUBY_Qtrue = 0x14,
RUBY_Qnil = 0x08,
RUBY_Qundef = 0x34,

RUBY_IMMEDIATE_MASK = 0x07,
RUBY_FIXNUM_FLAG = 0x01,
RUBY_FLONUM_MASK = 0x03,
RUBY_FLONUM_FLAG = 0x02,
RUBY_SYMBOL_FLAG = 0x0c,












RUBY_SPECIAL_SHIFT = 8
};


















enum ruby_value_type {
RUBY_T_NONE = 0x00,

RUBY_T_OBJECT = 0x01,
RUBY_T_CLASS = 0x02,
RUBY_T_MODULE = 0x03,
RUBY_T_FLOAT = 0x04,
RUBY_T_STRING = 0x05,
RUBY_T_REGEXP = 0x06,
RUBY_T_ARRAY = 0x07,
RUBY_T_HASH = 0x08,
RUBY_T_STRUCT = 0x09,
RUBY_T_BIGNUM = 0x0a,
RUBY_T_FILE = 0x0b,
RUBY_T_DATA = 0x0c,
RUBY_T_MATCH = 0x0d,
RUBY_T_COMPLEX = 0x0e,
RUBY_T_RATIONAL = 0x0f,

RUBY_T_NIL = 0x11,
RUBY_T_TRUE = 0x12,
RUBY_T_FALSE = 0x13,
RUBY_T_SYMBOL = 0x14,
RUBY_T_FIXNUM = 0x15,
RUBY_T_UNDEF = 0x16,

RUBY_T_IMEMO = 0x1a,
RUBY_T_NODE = 0x1b,
RUBY_T_ICLASS = 0x1c,
RUBY_T_ZOMBIE = 0x1d,

RUBY_T_MASK = 0x1f
};































static int rb_type(VALUE obj);
























volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);
















void rb_check_type(VALUE,int);


VALUE rb_str_to_str(VALUE);
VALUE rb_string_value(volatile VALUE*);
char *rb_string_value_ptr(volatile VALUE*);
char *rb_string_value_cstr(volatile VALUE*);





void rb_check_safe_obj(VALUE);












VALUE rb_str_export(VALUE);




VALUE rb_str_export_locale(VALUE);

VALUE rb_get_path(VALUE);


VALUE rb_get_path_no_checksafe(VALUE);



void rb_secure(int);
int rb_safe_level(void);
void rb_set_safe_level(int);



























void rb_set_safe_level_force(int);
void rb_secure_update(VALUE);
void rb_insecure_operation(void) ;

VALUE rb_errinfo(void);
void rb_set_errinfo(VALUE);

long rb_num2long(VALUE);
unsigned long rb_num2ulong(VALUE);
static long
rb_num2long_inline(VALUE x)
{
if ( (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) )
return ((long) (( ( long )( x ) )>>(int)( 1 )) ) ;
else
return rb_num2long(x);
}

static unsigned long
rb_num2ulong_inline(VALUE x)
{
if ( (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) )
return (unsigned long) ((long) (( ( long )( x ) )>>(int)( 1 )) ) ;
else
return rb_num2ulong(x);
}


long rb_num2int(VALUE);
long rb_fix2int(VALUE);


static int
rb_num2int_inline(VALUE x)
{
if ( (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) )
return ((int)rb_fix2int((VALUE)( x ))) ;
else
return (int)rb_num2int(x);
}


unsigned long rb_num2uint(VALUE);

unsigned long rb_fix2uint(VALUE);








short rb_num2short(VALUE);
unsigned short rb_num2ushort(VALUE);
short rb_fix2short(VALUE);
unsigned short rb_fix2ushort(VALUE);

static short
rb_num2short_inline(VALUE x)
{
if ( (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) )
return (rb_fix2short((VALUE)( x ))) ;
else
return rb_num2short(x);
}





long long rb_num2ll(VALUE);
unsigned long long rb_num2ull(VALUE);
static long long
rb_num2ll_inline(VALUE x)
{
if ( (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) )
return ((long) (( ( long )( x ) )>>(int)( 1 )) ) ;
else
return rb_num2ll(x);
}




















double rb_num2dbl(VALUE);


VALUE rb_uint2big(VALUE);
VALUE rb_int2big( long );

VALUE rb_newobj(void);
VALUE rb_newobj_of(VALUE, VALUE);
VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type);





























































struct RBasic {
VALUE flags;
const VALUE klass;
}



;

VALUE rb_obj_hide(VALUE obj);
VALUE rb_obj_reveal(VALUE obj, VALUE klass);




struct RObject {
struct RBasic basic;
union {
struct {
long numiv;
VALUE *ivptr;
struct st_table *iv_index_tbl;
} heap;
VALUE ary[ 3 ];
} as;
};














typedef struct rb_classext_struct rb_classext_t;

struct RClass {
struct RBasic basic;
VALUE super;
rb_classext_t *ptr;
struct st_table *m_tbl;
};









double rb_float_value(VALUE);
VALUE rb_float_new(double);
VALUE rb_float_new_in_heap(double);







struct RString {
struct RBasic basic;
union {
struct {
long len;
char *ptr;
union {
long capa;
VALUE shared;
} aux;
} heap;
char ary[ ((int)((sizeof(VALUE)*3)/sizeof(char)-1)) + 1];
} as;
};


























struct RArray {
struct RBasic basic;
union {
struct {
long len;
union {
long capa;
VALUE shared;
} aux;
const VALUE *ptr;
} heap;
const VALUE ary[ 3 ];
} as;
};




































struct RRegexp {
struct RBasic basic;
struct re_pattern_buffer *ptr;
const VALUE src;
unsigned long usecnt;
};












struct RFile {
struct RBasic basic;
struct rb_io_t *fptr;
};




struct RData {
struct RBasic basic;
void (*dmark)(void*);
void (*dfree)(void*);
void *data;
};

typedef struct rb_data_type_struct rb_data_type_t;

struct rb_data_type_struct {
const char *wrap_struct_name;
struct {
void (*dmark)(void*);
void (*dfree)(void*);
size_t (*dsize)(const void *);
void *reserved[2];

} function;
const rb_data_type_t *parent;
void *data;

VALUE flags;
};





struct RTypedData {
struct RBasic basic;
const rb_data_type_t *type;
VALUE typed_flag;
void *data;
};









typedef void (*RUBY_DATA_FUNC)(void*);








VALUE rb_data_object_wrap(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
VALUE rb_data_object_zalloc(VALUE,size_t,RUBY_DATA_FUNC,RUBY_DATA_FUNC);
VALUE rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *);
VALUE rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type);
int rb_typeddata_inherited_p(const rb_data_type_t *child, const rb_data_type_t *parent);
int rb_typeddata_is_kind_of(VALUE, const rb_data_type_t *);
void *rb_check_typeddata(VALUE, const rb_data_type_t *);























































struct RStruct {
struct RBasic basic;
union {
struct {
long len;
const VALUE *ptr;
} heap;
const VALUE ary[ 3 ];
} as;
};



























































































void rb_freeze_singleton_class(VALUE klass);

static void
rb_obj_freeze_inline(VALUE x)
{
if ( (! ( ((VALUE)( x ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( x ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) && (int)(((struct RBasic*)( x ))->flags & RUBY_T_MASK ) != RUBY_T_NODE ) ) {
( ( (struct RBasic *) ( x )) ->flags |= (((VALUE)1)<<11) ) ;
if ( ( ( (struct RBasic *) ( x )) ->klass) && !( ( (struct RBasic *) ( x )) ->flags & (((VALUE)1)<<( 12 +0)) )) {
rb_freeze_singleton_class(x);
}
}
}










static void *rb_data_object_get_warning(VALUE) ;

static VALUE
rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DATA_FUNC free)
{
return rb_data_object_wrap(klass, ptr, mark, free);
}










static void *
rb_data_object_get(VALUE obj)
{
rb_check_type((VALUE)( obj ),( RUBY_T_DATA )) ;
return ((struct RData *)obj)->data;
}

static void *
rb_data_object_get_warning(VALUE obj)
{
return rb_data_object_get(obj);
}

static VALUE
rb_data_object_make(VALUE klass, RUBY_DATA_FUNC mark_func, RUBY_DATA_FUNC free_func, void **datap, size_t size)
{
VALUE result = rb_data_object_zalloc(( klass ), ( size ), (RUBY_DATA_FUNC)( mark_func ), (RUBY_DATA_FUNC)( free_func )); (void)(( *datap ) = ( void *) ( ( (struct RData *) ( result )) ->data) ); ;
return result;
}

static VALUE
rb_data_typed_object_make(VALUE klass, const rb_data_type_t *type, void **datap, size_t size)
{
VALUE result = rb_data_typed_object_zalloc( klass , size , type ); (void)(( *datap ) = ( void *) ( ( (struct RData *) ( result )) ->data) ); ;
return result;
}


static VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC) ;
static VALUE
rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)
{
return rb_data_object_wrap(klass, data, dmark, dfree);
}



static VALUE rb_data_typed_object_alloc(VALUE,void*,const rb_data_type_t*) ;
static VALUE
rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type)
{
return rb_data_typed_object_wrap(klass, datap, type);
}

















void rb_gc_writebarrier(VALUE a, VALUE b);
void rb_gc_writebarrier_unprotect(VALUE obj);




























static VALUE
rb_obj_wb_unprotect(VALUE x, const char *filename , int line )
{




rb_gc_writebarrier_unprotect(x);

return x;
}

static VALUE
rb_obj_written(VALUE a, VALUE oldv , VALUE b, const char *filename , int line )
{





if (! ( ((VALUE)( b ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( b ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) ) {
rb_gc_writebarrier(a, b);
}


return a;
}

static VALUE
rb_obj_write(VALUE a, VALUE *slot, VALUE b, const char *filename , int line )
{




*slot = b;


rb_obj_written(a, ((VALUE)RUBY_Qundef) , b, filename, line);

return a;
}


























static VALUE
rb_long2num_inline(long v)
{
if ( ( (( v ) < ( 2147483647L >>1) +1) && (( v ) >= (( (long) (-2147483647L-1L) )>>(int)( 1 )) ) ) )
return (((VALUE)( v ))<<1 | RUBY_FIXNUM_FLAG ) ;
else
return rb_int2big(v);
}


static VALUE
rb_ulong2num_inline(unsigned long v)
{
if ( (( v ) < ( 2147483647L >>1) +1) )
return (((VALUE)( v ))<<1 | RUBY_FIXNUM_FLAG ) ;
else
return rb_uint2big(v);
}


static char
rb_num2char_inline(VALUE x)
{
if ( ( (( RUBY_T_STRING ) == RUBY_T_FIXNUM ) ? (((int)( long )( x ))& RUBY_FIXNUM_FLAG ) : (( RUBY_T_STRING ) == RUBY_T_TRUE ) ? (( x ) == ((VALUE)RUBY_Qtrue) ) : (( RUBY_T_STRING ) == RUBY_T_FALSE ) ? (( x ) == ((VALUE)RUBY_Qfalse) ) : (( RUBY_T_STRING ) == RUBY_T_NIL ) ? (( x ) == ((VALUE)RUBY_Qnil) ) : (( RUBY_T_STRING ) == RUBY_T_UNDEF ) ? (( x ) == ((VALUE)RUBY_Qundef) ) : (( RUBY_T_STRING ) == RUBY_T_SYMBOL ) ? ( (((VALUE)( x )&~((~(VALUE)0)<<RUBY_SPECIAL_SHIFT))== RUBY_SYMBOL_FLAG ) || (! ( ((VALUE)( x ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( x ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) && (int)(((struct RBasic*)( x ))->flags & RUBY_T_MASK ) == ( RUBY_T_SYMBOL )) ) : (( RUBY_T_STRING ) == RUBY_T_FLOAT ) ? ( ((((int)( long )( x ))& RUBY_FLONUM_MASK ) == RUBY_FLONUM_FLAG ) || (! ( ((VALUE)( x ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( x ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) && (int)(((struct RBasic*)( x ))->flags & RUBY_T_MASK ) == RUBY_T_FLOAT )) : (! ( ((VALUE)( x ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( x ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) && (int)(((struct RBasic*)( x ))->flags & RUBY_T_MASK ) == ( RUBY_T_STRING ))) && ( (!( ( (struct RBasic *) ( x )) ->flags & (((VALUE)1)<<( 12 +1)) ) ? (long)(( ( (struct RBasic *) ( x )) ->flags >> ( 12 +2) ) & ( ( (((VALUE)1)<<( 12 +2)) | (((VALUE)1)<<( 12 +3)) | (((VALUE)1)<<( 12 +4)) | (((VALUE)1)<<( 12 +5)) | (((VALUE)1)<<( 12 +6)) ) >> ( 12 +2) )) : ( (struct RString *) ( x )) ->as.heap.len) >=1))
return (!( ( (struct RBasic *) ( x )) ->flags & (((VALUE)1)<<( 12 +1)) ) ? ( (struct RString *) ( x )) ->as.ary : ( (struct RString *) ( x )) ->as.heap.ptr) [0];
else
return (char)( rb_num2int_inline( x ) & 0xff);
}












void *rb_alloc_tmp_buffer(volatile VALUE *store, long len) ;
void rb_free_tmp_buffer(volatile VALUE *store);














void rb_obj_infect(VALUE,VALUE);

typedef int ruby_glob_func(const char*,VALUE, void*);
void rb_glob(const char*,void(*)(const char*,VALUE,void*),VALUE);
int ruby_glob(const char*,int,ruby_glob_func*,VALUE);
int ruby_brace_glob(const char*,int,ruby_glob_func*,VALUE);

VALUE rb_define_class(const char*,VALUE);
VALUE rb_define_module(const char*);
VALUE rb_define_class_under(VALUE, const char*, VALUE);
VALUE rb_define_module_under(VALUE, const char*);

void rb_include_module(VALUE,VALUE);
void rb_extend_object(VALUE,VALUE);
void rb_prepend_module(VALUE,VALUE);

struct rb_global_variable;

typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
typedef void rb_gvar_marker_t(VALUE *var);

VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_undef_marker(VALUE *var);

VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_val_marker(VALUE *var);

VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
void rb_gvar_var_marker(VALUE *var);

void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);

void rb_define_variable(const char*,VALUE*);
void rb_define_virtual_variable(const char*,VALUE(*)( ),void(*)( ));
void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)( ),void(*)( ));
void rb_define_readonly_variable(const char*,const VALUE*);
void rb_define_const(VALUE,const char*,VALUE);
void rb_define_global_const(const char*,VALUE);


void rb_define_method(VALUE,const char*,VALUE(*)( ),int);
void rb_define_module_function(VALUE,const char*,VALUE(*)( ),int);
void rb_define_global_function(const char*,VALUE(*)( ),int);

void rb_undef_method(VALUE,const char*);
void rb_define_alias(VALUE,const char*,const char*);
void rb_define_attr(VALUE,const char*,int,int);

void rb_global_variable(VALUE*);
void rb_gc_register_mark_object(VALUE);
void rb_gc_register_address(VALUE*);
void rb_gc_unregister_address(VALUE*);

ID rb_intern(const char*);
ID rb_intern2(const char*, long);
ID rb_intern_str(VALUE str);
const char *rb_id2name(ID);
ID rb_check_id(volatile VALUE *);
ID rb_to_id(VALUE);
VALUE rb_id2str(ID);
VALUE rb_sym2str(VALUE);
VALUE rb_to_symbol(VALUE name);
VALUE rb_check_symbol(volatile VALUE *namep);

























const char *rb_class2name(VALUE);
const char *rb_obj_classname(VALUE);

void rb_p(VALUE);

VALUE rb_eval_string(const char*);
VALUE rb_eval_string_protect(const char*, int*);
VALUE rb_eval_string_wrap(const char*, int*);
VALUE rb_funcall(VALUE, ID, int, ...);
VALUE rb_funcallv(VALUE, ID, int, const VALUE*);
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE*);


VALUE rb_funcall_passing_block(VALUE, ID, int, const VALUE*);
VALUE rb_funcall_with_block(VALUE, ID, int, const VALUE*, VALUE);
int rb_scan_args(int, const VALUE*, const char*, ...);
VALUE rb_call_super(int, const VALUE*);
VALUE rb_current_receiver(void);
int rb_get_kwargs(VALUE keyword_hash, const ID *table, int required, int optional, VALUE *);
VALUE rb_extract_keywords(VALUE *orighash);



VALUE rb_gv_set(const char*, VALUE);
VALUE rb_gv_get(const char*);
VALUE rb_iv_get(VALUE, const char*);
VALUE rb_iv_set(VALUE, const char*, VALUE);

VALUE rb_equal(VALUE,VALUE);

VALUE *rb_ruby_verbose_ptr(void);
VALUE *rb_ruby_debug_ptr(void);



void rb_raise(VALUE, const char*, ...) ;
void rb_fatal(const char*, ...) ;
void rb_bug(const char*, ...) ;
void rb_bug_errno(const char*, int) ;
void rb_sys_fail(const char*) ;
void rb_sys_fail_str(VALUE) ;
void rb_mod_sys_fail(VALUE, const char*) ;
void rb_mod_sys_fail_str(VALUE, VALUE) ;
void rb_readwrite_sys_fail(int, const char*) ;
void rb_iter_break(void) ;
void rb_iter_break_value(VALUE) ;
void rb_exit(int) ;
void rb_notimplement(void) ;
VALUE rb_syserr_new(int, const char *);
VALUE rb_syserr_new_str(int n, VALUE arg);
void rb_syserr_fail(int, const char*) ;
void rb_syserr_fail_str(int, VALUE) ;
void rb_mod_syserr_fail(VALUE, int, const char*) ;
void rb_mod_syserr_fail_str(VALUE, int, VALUE) ;

void rb_warning(const char*, ...) ;
void rb_compile_warning(const char *, int, const char*, ...) ;
void rb_sys_warning(const char*, ...) ;
void rb_warn(const char*, ...) ;
void rb_compile_warn(const char *, int, const char*, ...) ;







typedef VALUE rb_block_call_func( VALUE yielded_arg , VALUE callback_arg , int argc, const VALUE *argv, VALUE blockarg );




typedef VALUE (*rb_block_call_func_t)( );


VALUE rb_each(VALUE);
VALUE rb_yield(VALUE);
VALUE rb_yield_values(int n, ...);
VALUE rb_yield_values2(int n, const VALUE *argv);
VALUE rb_yield_splat(VALUE);
VALUE rb_yield_block(VALUE, VALUE, int, const VALUE *, VALUE);
int rb_block_given_p(void);
void rb_need_block(void);
VALUE rb_iterate(VALUE(*)(VALUE),VALUE,VALUE(*)( ),VALUE);
VALUE rb_block_call(VALUE,ID,int,const VALUE*,rb_block_call_func_t,VALUE);
VALUE rb_rescue(VALUE(*)( ),VALUE,VALUE(*)( ),VALUE);
VALUE rb_rescue2(VALUE(*)( ),VALUE,VALUE(*)( ),VALUE,...);
VALUE rb_ensure(VALUE(*)( ),VALUE,VALUE(*)( ),VALUE);
VALUE rb_catch(const char*,VALUE(*)( ),VALUE);
VALUE rb_catch_obj(VALUE,VALUE(*)( ),VALUE);
void rb_throw(const char*,VALUE) ;
void rb_throw_obj(VALUE,VALUE) ;

VALUE rb_require(const char*);

extern VALUE rb_mKernel;
extern VALUE rb_mComparable;
extern VALUE rb_mEnumerable;
extern VALUE rb_mErrno;
extern VALUE rb_mFileTest;
extern VALUE rb_mGC;
extern VALUE rb_mMath;
extern VALUE rb_mProcess;
extern VALUE rb_mWaitReadable;
extern VALUE rb_mWaitWritable;

extern VALUE rb_cBasicObject;
extern VALUE rb_cObject;
extern VALUE rb_cArray;
extern VALUE rb_cBignum;
extern VALUE rb_cBinding;
extern VALUE rb_cClass;
extern VALUE rb_cCont;
extern VALUE rb_cDir;
extern VALUE rb_cData;
extern VALUE rb_cFalseClass;
extern VALUE rb_cEncoding;
extern VALUE rb_cEnumerator;
extern VALUE rb_cFile;
extern VALUE rb_cFixnum;
extern VALUE rb_cFloat;
extern VALUE rb_cHash;
extern VALUE rb_cInteger;
extern VALUE rb_cIO;
extern VALUE rb_cMatch;
extern VALUE rb_cMethod;
extern VALUE rb_cModule;
extern VALUE rb_cNameErrorMesg;
extern VALUE rb_cNilClass;
extern VALUE rb_cNumeric;
extern VALUE rb_cProc;
extern VALUE rb_cRandom;
extern VALUE rb_cRange;
extern VALUE rb_cRational;
extern VALUE rb_cComplex;
extern VALUE rb_cRegexp;
extern VALUE rb_cStat;
extern VALUE rb_cString;
extern VALUE rb_cStruct;
extern VALUE rb_cSymbol;
extern VALUE rb_cThread;
extern VALUE rb_cTime;
extern VALUE rb_cTrueClass;
extern VALUE rb_cUnboundMethod;

extern VALUE rb_eException;
extern VALUE rb_eStandardError;
extern VALUE rb_eSystemExit;
extern VALUE rb_eInterrupt;
extern VALUE rb_eSignal;
extern VALUE rb_eFatal;
extern VALUE rb_eArgError;
extern VALUE rb_eEOFError;
extern VALUE rb_eIndexError;
extern VALUE rb_eStopIteration;
extern VALUE rb_eKeyError;
extern VALUE rb_eRangeError;
extern VALUE rb_eIOError;
extern VALUE rb_eRuntimeError;
extern VALUE rb_eSecurityError;
extern VALUE rb_eSystemCallError;
extern VALUE rb_eThreadError;
extern VALUE rb_eTypeError;
extern VALUE rb_eZeroDivError;
extern VALUE rb_eNotImpError;
extern VALUE rb_eNoMemError;
extern VALUE rb_eNoMethodError;
extern VALUE rb_eFloatDomainError;
extern VALUE rb_eLocalJumpError;
extern VALUE rb_eSysStackError;
extern VALUE rb_eRegexpError;
extern VALUE rb_eEncodingError;
extern VALUE rb_eEncCompatError;

extern VALUE rb_eScriptError;
extern VALUE rb_eNameError;
extern VALUE rb_eSyntaxError;
extern VALUE rb_eLoadError;

extern VALUE rb_eMathDomainError;

extern VALUE rb_stdin, rb_stdout, rb_stderr;

static VALUE
rb_class_of(VALUE obj)
{
if ( ((VALUE)( obj ) & RUBY_IMMEDIATE_MASK ) ) {
if ( (((int)( long )( obj ))& RUBY_FIXNUM_FLAG ) ) return rb_cFixnum;
if ( ((((int)( long )( obj ))& RUBY_FLONUM_MASK ) == RUBY_FLONUM_FLAG ) ) return rb_cFloat;
if (obj == ((VALUE)RUBY_Qtrue) ) return rb_cTrueClass;
if ( (((VALUE)( obj )&~((~(VALUE)0)<<RUBY_SPECIAL_SHIFT))== RUBY_SYMBOL_FLAG ) ) return rb_cSymbol;
}
else if (! !(((VALUE)( obj ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) {
if (obj == ((VALUE)RUBY_Qnil) ) return rb_cNilClass;
if (obj == ((VALUE)RUBY_Qfalse) ) return rb_cFalseClass;
}
return ( (struct RBasic *) ( obj )) ->klass;
}

static int
rb_type(VALUE obj)
{
if ( ((VALUE)( obj ) & RUBY_IMMEDIATE_MASK ) ) {
if ( (((int)( long )( obj ))& RUBY_FIXNUM_FLAG ) ) return RUBY_T_FIXNUM ;
if ( ((((int)( long )( obj ))& RUBY_FLONUM_MASK ) == RUBY_FLONUM_FLAG ) ) return RUBY_T_FLOAT ;
if (obj == ((VALUE)RUBY_Qtrue) ) return RUBY_T_TRUE ;
if ( (((VALUE)( obj )&~((~(VALUE)0)<<RUBY_SPECIAL_SHIFT))== RUBY_SYMBOL_FLAG ) ) return RUBY_T_SYMBOL ;
if (obj == ((VALUE)RUBY_Qundef) ) return RUBY_T_UNDEF ;
}
else if (! !(((VALUE)( obj ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) {
if (obj == ((VALUE)RUBY_Qnil) ) return RUBY_T_NIL ;
if (obj == ((VALUE)RUBY_Qfalse) ) return RUBY_T_FALSE ;
}
return (int)(((struct RBasic*)( obj ))->flags & RUBY_T_MASK ) ;
}













static int
rb_special_const_p(VALUE obj)
{
if ( ( ((VALUE)( obj ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( obj ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) ) return (int) ((VALUE)RUBY_Qtrue) ;
return (int) ((VALUE)RUBY_Qfalse) ;
}


# 1 "./include/ruby/intern.h" 1






















# 1 "./include/ruby/defines.h" 1
































































































































































































































































































# 25 "./include/ruby/intern.h" 2





# 1 "/usr/include/stdarg.h" 1











































# 31 "./include/ruby/intern.h" 2




# 1 "./include/ruby/st.h" 1












# 1 "./include/ruby/defines.h" 1
































































































































































































































































































# 16 "./include/ruby/st.h" 2



typedef unsigned long st_data_t;

























typedef struct st_table st_table;

typedef st_data_t st_index_t;
typedef int st_compare_func(st_data_t, st_data_t);
typedef st_index_t st_hash_func(st_data_t);

typedef char st_check_for_sizeof_st_index_t[ 8 == (int)sizeof(st_index_t) ? 1 : -1];


struct st_hash_type {
int (*compare)( );
st_index_t (*hash)( );
};










struct st_table {
const struct st_hash_type *type;
st_index_t num_bins;
unsigned int entries_packed : 1;












st_index_t num_entries : (sizeof(st_index_t) * 8 ) - 1;
union {
struct {
struct st_table_entry **bins;
struct st_table_entry *head, *tail;
} big;
struct {
struct st_packed_entry *entries;
st_index_t real_entries;
} packed;
} as;
};



enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};

st_table *st_init_table(const struct st_hash_type *);
st_table *st_init_table_with_size(const struct st_hash_type *, st_index_t);
st_table *st_init_numtable(void);
st_table *st_init_numtable_with_size(st_index_t);
st_table *st_init_strtable(void);
st_table *st_init_strtable_with_size(st_index_t);
st_table *st_init_strcasetable(void);
st_table *st_init_strcasetable_with_size(st_index_t);
int st_delete(st_table *, st_data_t *, st_data_t *);
int st_delete_safe(st_table *, st_data_t *, st_data_t *, st_data_t);
int st_shift(st_table *, st_data_t *, st_data_t *);
int st_insert(st_table *, st_data_t, st_data_t);
int st_insert2(st_table *, st_data_t, st_data_t, st_data_t (*)(st_data_t));
int st_lookup(st_table *, st_data_t, st_data_t *);
int st_get_key(st_table *, st_data_t, st_data_t *);
typedef int st_update_callback_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing);


int st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg);
int st_foreach(st_table *, int (*)( ), st_data_t);
int st_foreach_check(st_table *, int (*)( ), st_data_t, st_data_t);
int st_reverse_foreach(st_table *, int (*)( ), st_data_t);
st_index_t st_keys(st_table *table, st_data_t *keys, st_index_t size);
st_index_t st_keys_check(st_table *table, st_data_t *keys, st_index_t size, st_data_t never);
st_index_t st_values(st_table *table, st_data_t *values, st_index_t size);
st_index_t st_values_check(st_table *table, st_data_t *values, st_index_t size, st_data_t never);
void st_add_direct(st_table *, st_data_t, st_data_t);
void st_free_table(st_table *);
void st_cleanup_safe(st_table *, st_data_t);
void st_clear(st_table *);
st_table *st_copy(st_table *);
int st_numcmp(st_data_t, st_data_t);
st_index_t st_numhash(st_data_t);
int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);
int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);


size_t st_memsize(const st_table *);
st_index_t st_hash(const void *ptr, size_t len, st_index_t h);
st_index_t st_hash_uint32(st_index_t h, uint32_t i);
st_index_t st_hash_uint(st_index_t h, st_index_t i);
st_index_t st_hash_end(st_index_t h);
st_index_t st_hash_start(st_index_t h);











# 36 "./include/ruby/intern.h" 2








void rb_mem_clear(register VALUE*, register long);
VALUE rb_assoc_new(VALUE, VALUE);
VALUE rb_check_array_type(VALUE);
VALUE rb_ary_new(void);
VALUE rb_ary_new_capa(long capa);
VALUE rb_ary_new_from_args(long n, ...);
VALUE rb_ary_new_from_values(long n, const VALUE *elts);
VALUE rb_ary_tmp_new(long);
void rb_ary_free(VALUE);
void rb_ary_modify(VALUE);
VALUE rb_ary_freeze(VALUE);
VALUE rb_ary_shared_with_p(VALUE, VALUE);
VALUE rb_ary_aref(int, const VALUE*, VALUE);
VALUE rb_ary_subseq(VALUE, long, long);
void rb_ary_store(VALUE, long, VALUE);
VALUE rb_ary_dup(VALUE);
VALUE rb_ary_resurrect(VALUE ary);
VALUE rb_ary_to_ary(VALUE);
VALUE rb_ary_to_s(VALUE);
VALUE rb_ary_cat(VALUE, const VALUE *, long);
VALUE rb_ary_push(VALUE, VALUE);
VALUE rb_ary_pop(VALUE);
VALUE rb_ary_shift(VALUE);
VALUE rb_ary_unshift(VALUE, VALUE);
VALUE rb_ary_entry(VALUE, long);
VALUE rb_ary_each(VALUE);
VALUE rb_ary_join(VALUE, VALUE);
VALUE rb_ary_reverse(VALUE);
VALUE rb_ary_rotate(VALUE, long);
VALUE rb_ary_sort(VALUE);
VALUE rb_ary_sort_bang(VALUE);
VALUE rb_ary_delete(VALUE, VALUE);
VALUE rb_ary_delete_at(VALUE, long);
VALUE rb_ary_clear(VALUE);
VALUE rb_ary_plus(VALUE, VALUE);
VALUE rb_ary_concat(VALUE, VALUE);
VALUE rb_ary_assoc(VALUE, VALUE);
VALUE rb_ary_rassoc(VALUE, VALUE);
VALUE rb_ary_includes(VALUE, VALUE);
VALUE rb_ary_cmp(VALUE, VALUE);
VALUE rb_ary_replace(VALUE copy, VALUE orig);
VALUE rb_get_values_at(VALUE, long, int, const VALUE*, VALUE(*)(VALUE,long));
VALUE rb_ary_resize(VALUE ary, long len);



VALUE rb_big_new(size_t, int);
int rb_bigzero_p(VALUE x);
VALUE rb_big_clone(VALUE);
void rb_big_2comp(VALUE);
VALUE rb_big_norm(VALUE);
void rb_big_resize(VALUE big, size_t len);
VALUE rb_cstr_to_inum(const char*, int, int);
VALUE rb_str_to_inum(VALUE, int, int);
VALUE rb_cstr2inum(const char*, int);
VALUE rb_str2inum(VALUE, int);
VALUE rb_big2str(VALUE, int);
long rb_big2long(VALUE);

unsigned long rb_big2ulong(VALUE);


long long rb_big2ll(VALUE);
unsigned long long rb_big2ull(VALUE);

void rb_big_pack(VALUE val, unsigned long *buf, long num_longs);
VALUE rb_big_unpack(unsigned long *buf, long num_longs);
int rb_uv_to_utf8(char[6],unsigned long);
VALUE rb_dbl2big(double);
double rb_big2dbl(VALUE);
VALUE rb_big_cmp(VALUE, VALUE);
VALUE rb_big_eq(VALUE, VALUE);
VALUE rb_big_eql(VALUE, VALUE);
VALUE rb_big_plus(VALUE, VALUE);
VALUE rb_big_minus(VALUE, VALUE);
VALUE rb_big_mul(VALUE, VALUE);
VALUE rb_big_div(VALUE, VALUE);
VALUE rb_big_idiv(VALUE, VALUE);
VALUE rb_big_modulo(VALUE, VALUE);
VALUE rb_big_divmod(VALUE, VALUE);
VALUE rb_big_pow(VALUE, VALUE);
VALUE rb_big_and(VALUE, VALUE);
VALUE rb_big_or(VALUE, VALUE);
VALUE rb_big_xor(VALUE, VALUE);
VALUE rb_big_lshift(VALUE, VALUE);
VALUE rb_big_rshift(VALUE, VALUE);
















int rb_integer_pack(VALUE val, void *words, size_t numwords, size_t wordsize, size_t nails, int flags);
VALUE rb_integer_unpack(const void *words, size_t numwords, size_t wordsize, size_t nails, int flags);
size_t rb_absint_size(VALUE val, int *nlz_bits_ret);
size_t rb_absint_numwords(VALUE val, size_t word_numbits, size_t *nlz_bits_ret);
int rb_absint_singlebit_p(VALUE val);

VALUE rb_rational_raw(VALUE, VALUE);


VALUE rb_rational_new(VALUE, VALUE);


VALUE rb_Rational(VALUE, VALUE);


VALUE rb_rational_num(VALUE rat);
VALUE rb_rational_den(VALUE rat);
VALUE rb_flt_rationalize_with_prec(VALUE, VALUE);
VALUE rb_flt_rationalize(VALUE);
VALUE rb_complex_raw(VALUE, VALUE);


VALUE rb_complex_new(VALUE, VALUE);


VALUE rb_complex_polar(VALUE, VALUE);
VALUE rb_Complex(VALUE, VALUE);


VALUE rb_complex_set_real(VALUE, VALUE) ;
VALUE rb_complex_set_imag(VALUE, VALUE) ;
VALUE rb_class_boot(VALUE);
VALUE rb_class_new(VALUE);
VALUE rb_mod_init_copy(VALUE, VALUE);
VALUE rb_singleton_class_clone(VALUE);
void rb_singleton_class_attached(VALUE,VALUE);
VALUE rb_make_metaclass(VALUE, VALUE);
void rb_check_inheritable(VALUE);
VALUE rb_class_inherited(VALUE, VALUE);
VALUE rb_define_class_id(ID, VALUE);
VALUE rb_define_class_id_under(VALUE, ID, VALUE);
VALUE rb_module_new(void);
VALUE rb_define_module_id(ID);
VALUE rb_define_module_id_under(VALUE, ID);
VALUE rb_include_class_new(VALUE, VALUE);
VALUE rb_mod_included_modules(VALUE);
VALUE rb_mod_include_p(VALUE, VALUE);
VALUE rb_mod_ancestors(VALUE);
VALUE rb_class_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_public_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_protected_instance_methods(int, const VALUE*, VALUE);
VALUE rb_class_private_instance_methods(int, const VALUE*, VALUE);
VALUE rb_obj_singleton_methods(int, const VALUE*, VALUE);
void rb_define_method_id(VALUE, ID, VALUE (*)( ), int);
void rb_frozen_class_p(VALUE);
void rb_undef(VALUE, ID);
void rb_define_protected_method(VALUE, const char*, VALUE (*)( ), int);
void rb_define_private_method(VALUE, const char*, VALUE (*)( ), int);
void rb_define_singleton_method(VALUE, const char*, VALUE(*)( ), int);
VALUE rb_singleton_class(VALUE);
int rb_cmpint(VALUE, VALUE, VALUE);
void rb_cmperr(VALUE, VALUE) ;
VALUE rb_fiber_new(VALUE (*)( ), VALUE);
VALUE rb_fiber_resume(VALUE fib, int argc, const VALUE *argv);
VALUE rb_fiber_yield(int argc, const VALUE *argv);
VALUE rb_fiber_current(void);
VALUE rb_fiber_alive_p(VALUE);
VALUE rb_enum_values_pack(int, const VALUE*);
VALUE rb_enumeratorize(VALUE, VALUE, int, const VALUE *);
typedef VALUE rb_enumerator_size_func(VALUE, VALUE, VALUE);
VALUE rb_enumeratorize_with_size(VALUE, VALUE, int, const VALUE *, rb_enumerator_size_func *);












VALUE rb_exc_new(VALUE, const char*, long);
VALUE rb_exc_new_cstr(VALUE, const char*);
VALUE rb_exc_new_str(VALUE, VALUE);


void rb_loaderror(const char*, ...) ;
void rb_loaderror_with_path(VALUE path, const char*, ...) ;
void rb_name_error(ID, const char*, ...) ;
void rb_name_error_str(VALUE, const char*, ...) ;
void rb_invalid_str(const char*, const char*) ;
void rb_compile_error(const char*, int, const char*, ...) ;
void rb_compile_error_with_enc(const char*, int, void *, const char*, ...) ;
void rb_compile_error_append(const char*, ...) ;
void rb_error_frozen(const char*) ;
void rb_error_frozen_object(VALUE) ;
void rb_error_untrusted(VALUE);
void rb_check_frozen(VALUE);
void rb_check_trusted(VALUE);











static void
rb_check_frozen_inline(VALUE obj)
{
do { VALUE frozen_obj = ( obj ); if ( ( (! ( ((VALUE)( frozen_obj ) & RUBY_IMMEDIATE_MASK ) || ! !(((VALUE)( frozen_obj ) & ~ ((VALUE)RUBY_Qnil) ) == 0) ) && (int)(((struct RBasic*)( frozen_obj ))->flags & RUBY_T_MASK ) != RUBY_T_NODE ) ? !!( ( (struct RBasic *) ( frozen_obj )) ->flags& (((VALUE)1)<<11) ) : 1) ) { rb_error_frozen_object(frozen_obj); } } while (0) ;
}

static void
rb_check_trusted_inline(VALUE obj)
{
((void) 0) ;
}


void rb_check_copyable(VALUE obj, VALUE orig);




int rb_sourceline(void);
const char *rb_sourcefile(void);
VALUE rb_check_funcall(VALUE, ID, int, const VALUE*);

void rb_error_arity(int, int, int) ;

static void
rb_check_arity (int argc, int min, int max)
{
if ((argc < min) || (max != (-1) && argc > max))
rb_error_arity(argc, min, max);
}


typedef struct {
int maxfd;
fd_set *fdset;
} rb_fdset_t;

void rb_fd_init(rb_fdset_t *);
void rb_fd_term(rb_fdset_t *);
void rb_fd_zero(rb_fdset_t *);
void rb_fd_set(int, rb_fdset_t *);
void rb_fd_clr(int, rb_fdset_t *);
int rb_fd_isset(int, const rb_fdset_t *);
void rb_fd_copy(rb_fdset_t *, const fd_set *, int);
void rb_fd_dup(rb_fdset_t *dst, const rb_fdset_t *src);

struct timeval;
int rb_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);














































void rb_exc_raise(VALUE) ;
void rb_exc_fatal(VALUE) ;
VALUE rb_f_exit(int, const VALUE*);
VALUE rb_f_abort(int, const VALUE*);
void rb_remove_method(VALUE, const char*);
void rb_remove_method_id(VALUE, ID);
static void rb_disable_super(void) ;
static void rb_enable_super(void) ;
static void rb_disable_super(void)
{
}
static void rb_enable_super(void)
{
rb_warning("rb_enable_super() is obsolete");
}



typedef VALUE (*rb_alloc_func_t)(VALUE);
void rb_define_alloc_func(VALUE, rb_alloc_func_t);
void rb_undef_alloc_func(VALUE);
rb_alloc_func_t rb_get_alloc_func(VALUE);
void rb_clear_cache(void) ;
void rb_clear_constant_cache(void);
void rb_clear_method_cache_by_class(VALUE);
void rb_alias(VALUE, ID, ID);
void rb_attr(VALUE,ID,int,int,int);
int rb_method_boundp(VALUE, ID, int);
int rb_method_basic_definition_p(VALUE, ID);
VALUE rb_eval_cmd(VALUE, VALUE, int);
int rb_obj_respond_to(VALUE, ID, int);
int rb_respond_to(VALUE, ID);
VALUE rb_f_notimplement(int argc, const VALUE *argv, VALUE obj);




void rb_interrupt(void);
VALUE rb_apply(VALUE, ID, VALUE);
void rb_backtrace(void);
ID rb_frame_this_func(void);
VALUE rb_obj_instance_eval(int, const VALUE*, VALUE);
VALUE rb_obj_instance_exec(int, const VALUE*, VALUE);
VALUE rb_mod_module_eval(int, const VALUE*, VALUE);
VALUE rb_mod_module_exec(int, const VALUE*, VALUE);
void rb_load(VALUE, int);
void rb_load_protect(VALUE, int, int*);
void rb_jump_tag(int) ;
int rb_provided(const char*);
int rb_feature_provided(const char *, const char **);
void rb_provide(const char*);
VALUE rb_f_require(VALUE, VALUE);
VALUE rb_require_safe(VALUE, int);
void rb_obj_call_init(VALUE, int, const VALUE*);
VALUE rb_class_new_instance(int, const VALUE*, VALUE);
VALUE rb_block_proc(void);
VALUE rb_block_lambda(void);
VALUE rb_proc_new(VALUE (*)( ), VALUE);
VALUE rb_obj_is_proc(VALUE);
VALUE rb_proc_call(VALUE, VALUE);
VALUE rb_proc_call_with_block(VALUE, int argc, const VALUE *argv, VALUE);
int rb_proc_arity(VALUE);
VALUE rb_proc_lambda_p(VALUE);
VALUE rb_binding_new(void);
VALUE rb_obj_method(VALUE, VALUE);
VALUE rb_obj_is_method(VALUE);
VALUE rb_method_call(int, const VALUE*, VALUE);
VALUE rb_method_call_with_block(int, const VALUE *, VALUE, VALUE);
int rb_mod_method_arity(VALUE, ID);
int rb_obj_method_arity(VALUE, ID);
VALUE rb_protect(VALUE (*)(VALUE), VALUE, int*);
void rb_set_end_proc(void (*)(VALUE), VALUE);
void rb_exec_end_proc(void);
void rb_thread_schedule(void);
void rb_thread_wait_fd(int);
int rb_thread_fd_writable(int);
void rb_thread_fd_close(int);
int rb_thread_alone(void);
void rb_thread_sleep(int);
void rb_thread_sleep_forever(void);
void rb_thread_sleep_deadly(void);
VALUE rb_thread_stop(void);
VALUE rb_thread_wakeup(VALUE);
VALUE rb_thread_wakeup_alive(VALUE);
VALUE rb_thread_run(VALUE);
VALUE rb_thread_kill(VALUE);
VALUE rb_thread_create(VALUE (*)( ), void*);
int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
void rb_thread_wait_for(struct timeval);
VALUE rb_thread_current(void);
VALUE rb_thread_main(void);
VALUE rb_thread_local_aref(VALUE, ID);
VALUE rb_thread_local_aset(VALUE, ID, VALUE);
void rb_thread_atfork(void);
void rb_thread_atfork_before_exec(void);
VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
VALUE rb_exec_recursive_paired(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);
VALUE rb_exec_recursive_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
VALUE rb_exec_recursive_paired_outer(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE,VALUE);
VALUE rb_dir_getwd(void);
VALUE rb_file_s_expand_path(int, const VALUE *);
VALUE rb_file_expand_path(VALUE, VALUE);
VALUE rb_file_s_absolute_path(int, const VALUE *);
VALUE rb_file_absolute_path(VALUE, VALUE);
VALUE rb_file_dirname(VALUE fname);
int rb_find_file_ext_safe(VALUE*, const char* const*, int);
VALUE rb_find_file_safe(VALUE, int);
int rb_find_file_ext(VALUE*, const char* const*);
VALUE rb_find_file(VALUE);
VALUE rb_file_directory_p(VALUE,VALUE);
VALUE rb_str_encode_ospath(VALUE);
int rb_is_absolute_path(const char *);
void rb_memerror(void) ;
int rb_during_gc(void);
void rb_gc_mark_locations(const VALUE*, const VALUE*);
void rb_mark_tbl(struct st_table*);
void rb_mark_set(struct st_table*);
void rb_mark_hash(struct st_table*);
void rb_gc_mark_maybe(VALUE);
void rb_gc_mark(VALUE);
void rb_gc_force_recycle(VALUE);
void rb_gc(void);
void rb_gc_copy_finalizer(VALUE,VALUE);
void rb_gc_finalize_deferred(void);
void rb_gc_call_finalizer_at_exit(void);
VALUE rb_gc_enable(void);
VALUE rb_gc_disable(void);
VALUE rb_gc_start(void);
VALUE rb_define_finalizer(VALUE, VALUE);
VALUE rb_undefine_finalizer(VALUE);
size_t rb_gc_count(void);
size_t rb_gc_stat(VALUE);
VALUE rb_gc_latest_gc_info(VALUE);
void st_foreach_safe(struct st_table *, int (*)( ), st_data_t);
VALUE rb_check_hash_type(VALUE);
void rb_hash_foreach(VALUE, int (*)( ), VALUE);
VALUE rb_hash(VALUE);
VALUE rb_hash_new(void);
VALUE rb_hash_dup(VALUE);
VALUE rb_hash_freeze(VALUE);
VALUE rb_hash_aref(VALUE, VALUE);
VALUE rb_hash_lookup(VALUE, VALUE);
VALUE rb_hash_lookup2(VALUE, VALUE, VALUE);
VALUE rb_hash_fetch(VALUE, VALUE);
VALUE rb_hash_aset(VALUE, VALUE, VALUE);
VALUE rb_hash_clear(VALUE);
VALUE rb_hash_delete_if(VALUE);
VALUE rb_hash_delete(VALUE,VALUE);
VALUE rb_hash_set_ifnone(VALUE hash, VALUE ifnone);
typedef VALUE rb_hash_update_func(VALUE newkey, VALUE oldkey, VALUE value);
VALUE rb_hash_update_by(VALUE hash1, VALUE hash2, rb_hash_update_func *func);
struct st_table *rb_hash_tbl(VALUE);
int rb_path_check(const char*);
int rb_env_path_tainted(void);
VALUE rb_env_clear(void);
VALUE rb_hash_size(VALUE);
int rb_hash_iter_lev(VALUE) ;
VALUE rb_hash_ifnone(VALUE) ;

extern VALUE rb_fs;
extern VALUE rb_output_fs;
extern VALUE rb_rs;
extern VALUE rb_default_rs;
extern VALUE rb_output_rs;
VALUE rb_io_write(VALUE, VALUE);
VALUE rb_io_gets(VALUE);
VALUE rb_io_getbyte(VALUE);
VALUE rb_io_ungetc(VALUE, VALUE);
VALUE rb_io_ungetbyte(VALUE, VALUE);
VALUE rb_io_close(VALUE);
VALUE rb_io_flush(VALUE);
VALUE rb_io_eof(VALUE);
VALUE rb_io_binmode(VALUE);
VALUE rb_io_ascii8bit_binmode(VALUE);
VALUE rb_io_addstr(VALUE, VALUE);
VALUE rb_io_printf(int, const VALUE*, VALUE);
VALUE rb_io_print(int, const VALUE*, VALUE);
VALUE rb_io_puts(int, const VALUE*, VALUE);
VALUE rb_io_fdopen(int, int, const char*);
VALUE rb_io_get_io(VALUE);
VALUE rb_file_open(const char*, const char*);
VALUE rb_file_open_str(VALUE, const char*);
VALUE rb_gets(void);
void rb_write_error(const char*);
void rb_write_error2(const char*, long);
void rb_close_before_exec(int lowfd, int maxhint, VALUE noclose_fds);
int rb_pipe(int *pipes);
int rb_reserved_fd_p(int fd);
int rb_cloexec_open(const char *pathname, int flags, mode_t mode);
int rb_cloexec_dup(int oldfd);
int rb_cloexec_dup2(int oldfd, int newfd);
int rb_cloexec_pipe(int fildes[2]);
int rb_cloexec_fcntl_dupfd(int fd, int minfd);

void rb_update_max_fd(int fd);
void rb_fd_fix_cloexec(int fd);
VALUE rb_marshal_dump(VALUE, VALUE);
VALUE rb_marshal_load(VALUE);
void rb_marshal_define_compat(VALUE newclass, VALUE oldclass, VALUE (*dumper)(VALUE), VALUE (*loader)(VALUE, VALUE));
void rb_num_zerodiv(void) ;

VALUE rb_num_coerce_bin(VALUE, VALUE, ID);
VALUE rb_num_coerce_cmp(VALUE, VALUE, ID);
VALUE rb_num_coerce_relop(VALUE, VALUE, ID);
VALUE rb_num_coerce_bit(VALUE, VALUE, ID);
VALUE rb_num2fix(VALUE);
VALUE rb_fix2str(VALUE, int);
VALUE rb_dbl_cmp(double, double);
int rb_eql(VALUE, VALUE);
VALUE rb_any_to_s(VALUE);
VALUE rb_inspect(VALUE);
VALUE rb_obj_is_instance_of(VALUE, VALUE);
VALUE rb_obj_is_kind_of(VALUE, VALUE);
VALUE rb_obj_alloc(VALUE);
VALUE rb_obj_clone(VALUE);
VALUE rb_obj_dup(VALUE);
VALUE rb_obj_init_copy(VALUE,VALUE);
VALUE rb_obj_taint(VALUE);
VALUE rb_obj_tainted(VALUE);
VALUE rb_obj_untaint(VALUE);
VALUE rb_obj_untrust(VALUE);
VALUE rb_obj_untrusted(VALUE);
VALUE rb_obj_trust(VALUE);
VALUE rb_obj_freeze(VALUE);
VALUE rb_obj_frozen_p(VALUE);
VALUE rb_obj_id(VALUE);
VALUE rb_obj_class(VALUE);
VALUE rb_class_real(VALUE);
VALUE rb_class_inherited_p(VALUE, VALUE);
VALUE rb_class_superclass(VALUE);
VALUE rb_class_get_superclass(VALUE);
VALUE rb_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_to_integer(VALUE, const char *);
VALUE rb_check_to_float(VALUE);
VALUE rb_to_int(VALUE);
VALUE rb_check_to_int(VALUE);
VALUE rb_Integer(VALUE);
VALUE rb_to_float(VALUE);
VALUE rb_Float(VALUE);
VALUE rb_String(VALUE);
VALUE rb_Array(VALUE);
VALUE rb_Hash(VALUE);
double rb_cstr_to_dbl(const char*, int);
double rb_str_to_dbl(VALUE, int);
ID rb_id_attrset(ID);
int rb_is_const_id(ID);
int rb_is_global_id(ID);
int rb_is_instance_id(ID);
int rb_is_attrset_id(ID);
int rb_is_class_id(ID);
int rb_is_local_id(ID);
int rb_is_junk_id(ID);
int rb_symname_p(const char*);
int rb_sym_interned_p(VALUE);
VALUE rb_backref_get(void);
void rb_backref_set(VALUE);
VALUE rb_lastline_get(void);
void rb_lastline_set(VALUE);
void rb_last_status_set(int status, pid_t pid);
VALUE rb_last_status_get(void);
int rb_proc_exec(const char*);
VALUE rb_f_exec(int, const VALUE*);
pid_t rb_waitpid( pid_t pid, int *status, int flags);
void rb_syswait( pid_t pid);
pid_t rb_spawn(int, const VALUE*);
pid_t rb_spawn_err(int, const VALUE*, char*, size_t);
VALUE rb_proc_times(VALUE);
VALUE rb_detach_process( pid_t pid);
VALUE rb_range_new(VALUE, VALUE, int);
VALUE rb_range_beg_len(VALUE, long*, long*, long, int);
int rb_range_values(VALUE range, VALUE *begp, VALUE *endp, int *exclp);
unsigned int rb_genrand_int32(void);
double rb_genrand_real(void);
void rb_reset_random_seed(void);
VALUE rb_random_bytes(VALUE rnd, long n);
VALUE rb_random_int(VALUE rnd, VALUE max);
unsigned int rb_random_int32(VALUE rnd);
double rb_random_real(VALUE rnd);
unsigned long rb_random_ulong_limited(VALUE rnd, unsigned long limit);
unsigned long rb_genrand_ulong_limited(unsigned long i);

int rb_memcicmp(const void*,const void*,long);
void rb_match_busy(VALUE);
VALUE rb_reg_nth_defined(int, VALUE);
VALUE rb_reg_nth_match(int, VALUE);
int rb_reg_backref_number(VALUE match, VALUE backref);
VALUE rb_reg_last_match(VALUE);
VALUE rb_reg_match_pre(VALUE);
VALUE rb_reg_match_post(VALUE);
VALUE rb_reg_match_last(VALUE);

VALUE rb_reg_new_str(VALUE, int);
VALUE rb_reg_new(const char *, long, int);
VALUE rb_reg_alloc(void);
VALUE rb_reg_init_str(VALUE re, VALUE s, int options);
VALUE rb_reg_match(VALUE, VALUE);
VALUE rb_reg_match2(VALUE);
int rb_reg_options(VALUE);

extern VALUE rb_argv0;
VALUE rb_get_argv(void);
void *rb_load_file(const char*);
void *rb_load_file_str(VALUE);
VALUE rb_f_kill(int, const VALUE*);


void (* ruby_posix_signal (int, void (*)(int)))(int);

void rb_trap_exit(void);
void rb_trap_exec(void);
const char *ruby_signal_name(int);
void ruby_default_signal(int);
VALUE rb_f_sprintf(int, const VALUE*);
VALUE rb_sprintf(const char*, ...) ;
VALUE rb_vsprintf(const char*, va_list);
VALUE rb_str_catf(VALUE, const char*, ...) ;
VALUE rb_str_vcatf(VALUE, const char*, va_list);
VALUE rb_str_format(int, const VALUE *, VALUE);
VALUE rb_str_new(const char*, long);
VALUE rb_str_new_cstr(const char*);
VALUE rb_str_new_shared(VALUE);
VALUE rb_str_new_frozen(VALUE);
VALUE rb_str_new_with_class(VALUE, const char*, long);
VALUE rb_tainted_str_new_cstr(const char*);
VALUE rb_tainted_str_new(const char*, long);
VALUE rb_external_str_new(const char*, long);
VALUE rb_external_str_new_cstr(const char*);
VALUE rb_locale_str_new(const char*, long);
VALUE rb_locale_str_new_cstr(const char*);
VALUE rb_filesystem_str_new(const char*, long);
VALUE rb_filesystem_str_new_cstr(const char*);
VALUE rb_str_buf_new(long);
VALUE rb_str_buf_new_cstr(const char*);
VALUE rb_str_buf_new2(const char*);
VALUE rb_str_tmp_new(long);
VALUE rb_usascii_str_new(const char*, long);
VALUE rb_usascii_str_new_cstr(const char*);
VALUE rb_utf8_str_new(const char*, long);
VALUE rb_utf8_str_new_cstr(const char*);
VALUE rb_str_new_static(const char *, long);
VALUE rb_usascii_str_new_static(const char *, long);
VALUE rb_utf8_str_new_static(const char *, long);
void rb_str_free(VALUE);
void rb_str_shared_replace(VALUE, VALUE);
VALUE rb_str_buf_append(VALUE, VALUE);
VALUE rb_str_buf_cat(VALUE, const char*, long);
VALUE rb_str_buf_cat2(VALUE, const char*);
VALUE rb_str_buf_cat_ascii(VALUE, const char*);
VALUE rb_obj_as_string(VALUE);
VALUE rb_check_string_type(VALUE);
void rb_must_asciicompat(VALUE);
VALUE rb_str_dup(VALUE);
VALUE rb_str_resurrect(VALUE str);
VALUE rb_str_locktmp(VALUE);
VALUE rb_str_unlocktmp(VALUE);
VALUE rb_str_dup_frozen(VALUE);

VALUE rb_str_plus(VALUE, VALUE);
VALUE rb_str_times(VALUE, VALUE);
long rb_str_sublen(VALUE, long);
VALUE rb_str_substr(VALUE, long, long);
VALUE rb_str_subseq(VALUE, long, long);
char *rb_str_subpos(VALUE, long, long*);
void rb_str_modify(VALUE);
void rb_str_modify_expand(VALUE, long);
VALUE rb_str_freeze(VALUE);
void rb_str_set_len(VALUE, long);
VALUE rb_str_resize(VALUE, long);
VALUE rb_str_cat(VALUE, const char*, long);
VALUE rb_str_cat_cstr(VALUE, const char*);
VALUE rb_str_cat2(VALUE, const char*);
VALUE rb_str_append(VALUE, VALUE);
VALUE rb_str_concat(VALUE, VALUE);
st_index_t rb_memhash(const void *ptr, long len);
st_index_t rb_hash_start(st_index_t);
st_index_t rb_hash_uint32(st_index_t, uint32_t);
st_index_t rb_hash_uint(st_index_t, st_index_t);
st_index_t rb_hash_end(st_index_t);



st_index_t rb_str_hash(VALUE);
int rb_str_hash_cmp(VALUE,VALUE);
int rb_str_comparable(VALUE, VALUE);
int rb_str_cmp(VALUE, VALUE);
VALUE rb_str_equal(VALUE str1, VALUE str2);
VALUE rb_str_drop_bytes(VALUE, long);
void rb_str_update(VALUE, long, long, VALUE);
VALUE rb_str_replace(VALUE, VALUE);
VALUE rb_str_inspect(VALUE);
VALUE rb_str_dump(VALUE);
VALUE rb_str_split(VALUE, const char*);
void rb_str_associate(VALUE, VALUE) ;
VALUE rb_str_associated(VALUE) ;
void rb_str_setter(VALUE, ID, VALUE*);
VALUE rb_str_intern(VALUE);
VALUE rb_sym_to_s(VALUE);
long rb_str_strlen(VALUE);
VALUE rb_str_length(VALUE);
long rb_str_offset(VALUE, long);
size_t rb_str_capacity(VALUE);
VALUE rb_str_ellipsize(VALUE, long);
VALUE rb_str_scrub(VALUE, VALUE);
VALUE rb_sym_all_symbols(void);



























































































VALUE rb_struct_new(VALUE, ...);
VALUE rb_struct_define(const char*, ...);
VALUE rb_struct_define_under(VALUE, const char*, ...);
VALUE rb_struct_alloc(VALUE, VALUE);
VALUE rb_struct_initialize(VALUE, VALUE);
VALUE rb_struct_aref(VALUE, VALUE);
VALUE rb_struct_aset(VALUE, VALUE, VALUE);
VALUE rb_struct_getmember(VALUE, ID);
VALUE rb_struct_s_members(VALUE);
VALUE rb_struct_members(VALUE);
VALUE rb_struct_alloc_noinit(VALUE);
VALUE rb_struct_define_without_accessor(const char *, VALUE, rb_alloc_func_t, ...);
VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...);

typedef void rb_unblock_function_t(void *);
typedef VALUE rb_blocking_function_t(void *);
void rb_thread_check_ints(void);
int rb_thread_interrupted(VALUE thval);



VALUE rb_mutex_new(void);
VALUE rb_mutex_locked_p(VALUE mutex);
VALUE rb_mutex_trylock(VALUE mutex);
VALUE rb_mutex_lock(VALUE mutex);
VALUE rb_mutex_unlock(VALUE mutex);
VALUE rb_mutex_sleep(VALUE self, VALUE timeout);
VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);
VALUE rb_time_new(time_t, long);
VALUE rb_time_nano_new(time_t, long);
VALUE rb_time_num_new(VALUE, VALUE);
struct timeval rb_time_interval(VALUE num);
struct timeval rb_time_timeval(VALUE time);
struct timespec rb_time_timespec(VALUE time);
VALUE rb_mod_name(VALUE);
VALUE rb_class_path(VALUE);
VALUE rb_class_path_cached(VALUE);
void rb_set_class_path(VALUE, VALUE, const char*);
void rb_set_class_path_string(VALUE, VALUE, VALUE);
VALUE rb_path_to_class(VALUE);
VALUE rb_path2class(const char*);
void rb_name_class(VALUE, ID);
VALUE rb_class_name(VALUE);
void rb_autoload(VALUE, ID, const char*);
VALUE rb_autoload_load(VALUE, ID);
VALUE rb_autoload_p(VALUE, ID);
VALUE rb_f_trace_var(int, const VALUE*);
VALUE rb_f_untrace_var(int, const VALUE*);
VALUE rb_f_global_variables(void);
void rb_alias_variable(ID, ID);
struct st_table* rb_generic_ivar_table(VALUE) ;
void rb_copy_generic_ivar(VALUE,VALUE);
void rb_free_generic_ivar(VALUE);
VALUE rb_ivar_get(VALUE, ID);
VALUE rb_ivar_set(VALUE, ID, VALUE);
VALUE rb_ivar_defined(VALUE, ID);
void rb_ivar_foreach(VALUE, int (*)( ), st_data_t);
st_index_t rb_ivar_count(VALUE);
VALUE rb_attr_get(VALUE, ID);
VALUE rb_obj_instance_variables(VALUE);
VALUE rb_obj_remove_instance_variable(VALUE, VALUE);
void *rb_mod_const_at(VALUE, void*);
void *rb_mod_const_of(VALUE, void*);
VALUE rb_const_list(void*);
VALUE rb_mod_constants(int, const VALUE *, VALUE);
VALUE rb_mod_remove_const(VALUE, VALUE);
int rb_const_defined(VALUE, ID);
int rb_const_defined_at(VALUE, ID);
int rb_const_defined_from(VALUE, ID);
VALUE rb_const_get(VALUE, ID);
VALUE rb_const_get_at(VALUE, ID);
VALUE rb_const_get_from(VALUE, ID);
void rb_const_set(VALUE, ID, VALUE);
VALUE rb_const_remove(VALUE, ID);
VALUE rb_mod_const_missing(VALUE,VALUE);
VALUE rb_cvar_defined(VALUE, ID);
void rb_cvar_set(VALUE, ID, VALUE);
VALUE rb_cvar_get(VALUE, ID);
void rb_cv_set(VALUE, const char*, VALUE);
VALUE rb_cv_get(VALUE, const char*);
void rb_define_class_variable(VALUE, const char*, VALUE);
VALUE rb_mod_class_variables(int, const VALUE*, VALUE);
VALUE rb_mod_remove_cvar(VALUE, VALUE);

ID rb_frame_callee(void);
VALUE rb_str_succ(VALUE);
VALUE rb_time_succ(VALUE);
int rb_frame_method_id_and_class(ID *idp, VALUE *klassp);
VALUE rb_make_backtrace(void);
VALUE rb_make_exception(int, const VALUE*);

void rb_frame_pop(void) ;











# 1768 "./include/ruby/ruby.h" 2








int ruby_native_thread_p(void);

































typedef uint32_t rb_event_flag_t;
typedef void (*rb_event_hook_func_t)(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass);


void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data);
int rb_remove_event_hook(rb_event_hook_func_t func);



int rb_isalnum(int c);
int rb_isalpha(int c);
int rb_isblank(int c);
int rb_iscntrl(int c);
int rb_isdigit(int c);
int rb_isgraph(int c);
int rb_islower(int c);
int rb_isprint(int c);
int rb_ispunct(int c);
int rb_isspace(int c);
int rb_isupper(int c);
int rb_isxdigit(int c);
int rb_tolower(int c);
int rb_toupper(int c);

















int st_locale_insensitive_strcasecmp(const char *s1, const char *s2);
int st_locale_insensitive_strncasecmp(const char *s1, const char *s2, size_t n);



unsigned long ruby_strtoul(const char *str, char **endptr, int base);




int ruby_snprintf(char *str, size_t n, char const *fmt, ...) ;
int ruby_vsnprintf(char *str, size_t n, char const *fmt, va_list ap);


# 1 "./include/ruby/subst.h" 1



















# 1871 "./include/ruby/ruby.h" 2
















void ruby_sysinit(int *argc, char ***argv);
void ruby_init(void);
void* ruby_options(int argc, char** argv);
int ruby_executable_node(void *n, int *status);
int ruby_run_node(void *n);

void ruby_show_version(void);
void ruby_show_copyright(void);











void ruby_init_stack(volatile VALUE*);



int ruby_setup(void);
int ruby_cleanup(volatile int);

void ruby_finalize(void);
void ruby_stop(int) ;

void ruby_set_stack_size(size_t);
int ruby_stack_check(void);
size_t ruby_stack_length(VALUE**);

int ruby_exec_node(void *n);

void ruby_script(const char* name);
void ruby_set_script_name(VALUE name);

void ruby_prog_init(void);
void ruby_set_argv(int, char**);
void *ruby_process_options(int, char**);
void ruby_init_loadpath(void);
void ruby_incpush(const char*);
void ruby_sig_finalize(void);










# 13 "version.c" 2
# 1 "./version.h" 1








# 1 "./include/ruby/version.h" 1
















































extern const int ruby_api_version[3];
extern const char ruby_version[];
extern const char ruby_release_date[];
extern const char ruby_platform[];
extern const int ruby_patchlevel;
extern const char ruby_description[];
extern const char ruby_copyright[];
extern const char ruby_engine[];











# 10 "./version.h" 2
















# 1 "./revision.h" 1
# 27 "./version.h" 2





























# 14 "version.c" 2
# 1 "/usr/include/stdio.h" 1

























































































































































































































































































































































































































































# 15 "version.c" 2








const int ruby_api_version[] = {
2 ,
3 ,
0 ,
};
const char ruby_version[] = "2.3.0" ;
const char ruby_release_date[] = "2015-06-10" ;
const char ruby_platform[] = "sparc64-solaris2.10" ;
const int ruby_patchlevel = -1 ;
const char ruby_description[] = "ruby " "2.3.0" "dev" " (" "2015-06-10" "" ") " "[" "sparc64-solaris2.10" "]" ;
const char ruby_copyright[] = "ruby - Copyright (C) " "1993" "-" "2015" " " "Yukihiro Matsumoto" ;
const char ruby_engine[] = "ruby";
VALUE ruby_engine_name = ((VALUE)RUBY_Qnil) ;

void
Init_version(void)
{
VALUE version;


rb_define_global_const("RUBY_VERSION", (version = rb_obj_freeze(rb_usascii_str_new_static(ruby_version, sizeof(ruby_version)-1)) ));


rb_define_global_const("RUBY_RELEASE_DATE", rb_obj_freeze(rb_usascii_str_new_static(ruby_release_date, sizeof(ruby_release_date)-1)) );


rb_define_global_const("RUBY_PLATFORM", rb_obj_freeze(rb_usascii_str_new_static(ruby_platform, sizeof(ruby_platform)-1)) );



rb_define_global_const("RUBY_PATCHLEVEL", (((VALUE)( -1 ))<<1 | RUBY_FIXNUM_FLAG ) );


rb_define_global_const("RUBY_REVISION", (((VALUE)( 0 ))<<1 | RUBY_FIXNUM_FLAG ) );


rb_define_global_const("RUBY_DESCRIPTION", rb_obj_freeze(rb_usascii_str_new_static(ruby_description, sizeof(ruby_description)-1)) );


rb_define_global_const("RUBY_COPYRIGHT", rb_obj_freeze(rb_usascii_str_new_static(ruby_copyright, sizeof(ruby_copyright)-1)) );


rb_define_global_const("RUBY_ENGINE", ruby_engine_name = rb_obj_freeze(rb_usascii_str_new_static(ruby_engine, sizeof(ruby_engine)-1)) );


rb_define_global_const("RUBY_ENGINE_VERSION", (1 ? version : rb_obj_freeze(rb_usascii_str_new_static(ruby_version, sizeof(ruby_version)-1)) ));
}

void
ruby_show_version(void)
{
puts(ruby_description) ;






fflush( (&__iob[1]) );
}



void
ruby_show_copyright(void)
{
puts(ruby_copyright) ;
exit( 0 );
}
(5-5/6)