/* Generated by CIL v. 1.7.0 */
/* print_CIL_Input is false */

struct __sFILE;
struct __sFILEX;
struct __sbuf;
struct timespec;
struct timeval;
extern int pthread_cond_signal(int *cond ) ;
extern void exit(int status ) ;
typedef long long __int64_t;
extern int fclose(void *stream ) ;
extern int fseek(struct __sFILE *stream , long offs , int whence ) ;
extern int close(int filedes ) ;
typedef struct __sFILE FILE;
extern int __swbuf(int  , FILE * ) ;
extern int pthread_create(void *thread , void *attr , void *start_routine , void *arg ) ;
char **_global_argv  =    (char **)0;
extern int fcntl(int filedes , int cmd  , ...) ;
extern void *dlsym(void *handle , char *symbol ) ;
extern int unlink(char const   *filename ) ;
extern int pthread_mutex_lock(int *mutex ) ;
struct timeval {
   long tv_sec ;
   int tv_usec ;
};
extern int pthread_cond_init(int *cond , int *attr ) ;
extern unsigned long strtoul(char const   *str , char const   *endptr , int base ) ;
typedef __int64_t __darwin_off_t;
extern int raise(int sig ) ;
extern void abort() ;
extern int atoi(char const   *s ) ;
void fac(int n ) ;
extern void *malloc(unsigned long size ) ;
extern double ceil(double x ) ;
extern int getpagesize() ;
extern int posix_memalign(void **memptr , unsigned long alignment , unsigned long size ) ;
extern int pthread_cond_broadcast(int *cond ) ;
extern int pthread_join(void *thread , void **value_ptr ) ;
extern int rand() ;
extern int pthread_barrier_destroy(int *barrier ) ;
extern void free(void *ptr ) ;
extern unsigned long strlen(char const   *s ) ;
extern int ptrace(int request , void *pid , void *addr , int data ) ;
int main(int argc , char **argv , char **_formal_envp ) ;
extern long write(int filedes , void *buf , unsigned long nbyte ) ;
typedef long __darwin_time_t;
struct timespec {
   __darwin_time_t tv_sec ;
   long tv_nsec ;
};
extern long strtol(char const   *str , char const   *endptr , int base ) ;
extern int gettimeofday(struct timeval *tv , void *tz ) ;
int _global_argc  =    0;
char **_global_envp  =    (char **)0;
void megaInit(void) ;
extern int fscanf(struct __sFILE *stream , char const   *format  , ...) ;
extern int ( /* format attribute */  printf)(char const   * __restrict    , ...) ;
void fib(int bogus___1 , void *bogus___4 , long bogus___2 , double bogus___3 , int n ) ;
extern long clock(void) ;
extern int scanf(char const   *format  , ...) ;
extern void perror(char const   *str ) ;
extern int mprotect(void *addr , unsigned long len , int prot ) ;
extern int pthread_barrier_init(int *barrier , int *attr , unsigned int count ) ;
extern int nanosleep(struct timespec  const  *__rqtp , struct timespec *__rmtp )  __asm__("_nanosleep")  ;
extern long read(int filedes , void *buf , unsigned long nbyte ) ;
extern int pthread_mutex_unlock(int *mutex ) ;
typedef __darwin_off_t fpos_t;
extern int pthread_cond_wait(int *cond , int *mutex ) ;
extern float strtof(char const   *str , char const   *endptr ) ;
extern int gethostname(char *name , unsigned long namelen ) ;
struct __sbuf {
   unsigned char *_base ;
   int _size ;
};
struct __sFILE {
   unsigned char *_p ;
   int _r ;
   int _w ;
   short _flags ;
   short _file ;
   struct __sbuf _bf ;
   int _lbfsize ;
   void *_cookie ;
   int (*_close)(void * ) ;
   int (*_read)(void * , char * , int  ) ;
   fpos_t (*_seek)(void * , fpos_t  , int  ) ;
   int (*_write)(void * , char const   * , int  ) ;
   struct __sbuf _ub ;
   struct __sFILEX *_extra ;
   int _ur ;
   unsigned char _ubuf[3] ;
   unsigned char _nbuf[1] ;
   struct __sbuf _lb ;
   int _blksize ;
   fpos_t _offset ;
};
extern void qsort(void *base , unsigned long nel , unsigned long width , int (*compar)(void *a ,
                                                                                       void *b ) ) ;
extern unsigned long strnlen(char const   *s , unsigned long maxlen ) ;
extern double strtod(char const   *str , char const   *endptr ) ;
extern int pthread_mutex_init(int *mutex , int *attr ) ;
extern int strcmp(char const   *a , char const   *b ) ;
extern void *fopen(char const   *filename , char const   *mode ) ;
extern double difftime(long tv1 , long tv0 ) ;
extern void signal(int sig , void *func ) ;
extern long time(long *tloc ) ;
__inline int ( __attribute__((__always_inline__)) __sputc)(int _c , FILE *_p ) ;
extern int fprintf(struct __sFILE *stream , char const   *format  , ...) ;
extern int strncmp(char const   *s1 , char const   *s2 , unsigned long maxlen ) ;
extern int open(char const   *filename , int oflag  , ...) ;
extern double sqrt(double x ) ;
extern int pthread_barrier_wait(int *barrier ) ;
extern double log(double x ) ;
extern int snprintf(char *str , unsigned long size , char const   *format  , ...) ;
extern void *memcpy(void *s1 , void const   *s2 , unsigned long size ) ;
void fac(int n ) 
{ 
  int s ;
  int i ;

  {
  s = 1;
  i = 2;
  while (i <= n) {
    s *= i;
    i ++;
  }
  printf((char const   */* __restrict  */)"fac(%i)=%i\n", n, s);
  return;
}
}
__inline int ( __attribute__((__always_inline__)) __sputc)(int _c , FILE *_p ) 
{ 
  unsigned char *tmp ;
  unsigned char tmp___0 ;
  int tmp___1 ;

  {
  (_p->_w) --;
  if (_p->_w >= 0) {
    tmp = _p->_p;
    (_p->_p) ++;
    tmp___0 = (unsigned char )_c;
    *tmp = tmp___0;
    return ((int )tmp___0);
  } else
  if (_p->_w >= _p->_lbfsize) {
    if ((int )((char )_c) != 10) {
      tmp = _p->_p;
      (_p->_p) ++;
      tmp___0 = (unsigned char )_c;
      *tmp = tmp___0;
      return ((int )tmp___0);
    } else {
      tmp___1 = __swbuf(_c, _p);
      return (tmp___1);
    }
  } else {
    tmp___1 = __swbuf(_c, _p);
    return (tmp___1);
  }
}
}
int main(int argc , char **argv , char **_formal_envp ) 
{ 


  {
  megaInit();
  _global_argc = argc;
  _global_argv = argv;
  _global_envp = _formal_envp;
  fac(1);
  fib(argc, 0, 5L, 4., 1);
  fac(5);
  fib(argc, 0, 5L, 1., 5);
  fac(10);
  fib(argc, 0, 6L, 9., 10);
  return (0);
}
}
void fib(int bogus___1 , void *bogus___4 , long bogus___2 , double bogus___3 , int n ) 
{ 
  int a ;
  int b ;
  int s ;
  int i ;

  {
  a = 0;
  b = 1;
  s = 1;
  i = 1;
  while (i < n) {
    s = a + b;
    a = b;
    b = s;
    i ++;
  }
  printf((char const   */* __restrict  */)"fib(%i)=%i\n", n, s);
  return;
}
}
void megaInit(void) 
{ 


  {

}
}
