/* Stuff needed by cdizy: */
typedef short Guard;
/* External functions, don't include standard libs because cdizy is weird */
extern int atoi (const char *nptr);
extern int printf(const char *format, ...);
/* In order to be able to inspect the result... */
int res, T_res;
void fibonacci(int O_n)
{
/* Declare guards */
Guard T_G11101 = 1;
Guard G11101 = 1;
Guard T_G1110 = 1;
Guard G1110 = 1;
Guard T_G10 = 1;
/* Declare/initialize tagged params */
int T_O_n = O_n;
/* Declare other variables */
int O_tmp;
int O_result;
int O_i;
int O_b;
int O_a;
int T_O_tmp;
int T_O_result;
int T_O_i;
int T_O_b;
int T_O_a;
/* Here is the body! */
O_i = 0;
T_O_i = 0;
T_G10 = 0 <= T_O_n;
if (T_G10) T_O_a = 1;
O_a = 0;
if (!T_G10) T_O_a = 0;
O_b = 1;
T_O_b = 1;
G1110 = O_i <= O_n;
T_G1110 = (T_O_i + 1) <= T_O_n;
G1110__v__T_G1110:
if (G1110) G11101 = 1;
if (T_G1110) T_G11101 = 1;
if (G1110) if (G11101) O_tmp = (O_a + O_b);
if (T_G1110) if (T_G11101) T_O_i = (T_O_i + 1);
if (T_G1110) if (T_G11101) T_O_tmp = T_O_a;
if (G1110) if (G11101) O_a = O_b;
if (T_G1110) if (T_G11101) T_O_a = T_O_b;
if (T_G1110) if (T_G11101) T_O_b = (T_O_b + T_O_tmp);
if (G1110) if (G11101) O_b = O_tmp;
if (G1110) if (G11101) O_i = (O_i + 1);
if (G1110) G1110 = O_i <= O_n;
if (T_G1110) T_G1110 = (T_O_i + 1) <= T_O_n;
if (G1110) goto G1110__v__T_G1110;
if (T_G1110) goto G1110__v__T_G1110;
O_result = O_a;
T_O_result = T_O_a;
/* Correlating point */
{ char *CP0; }
/* Set the output... */
res = O_result;
T_res = T_O_result;
}