#include <stdio.h>
typedef void(* dummy_f_type)(void);
void foo(dummy_f_type x, int y)
{
if (y == 0)
return;
void (* f) (dummy_f_type, int) = (void (*) (dummy_f_type, int)) x;
f(x, y - 1);
}
int main()
{
foo((dummy_f_type)foo, 10);
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHZvaWQoKiBkdW1teV9mX3R5cGUpKHZvaWQpOwoKdm9pZCBmb28oZHVtbXlfZl90eXBlIHgsIGludCB5KQp7CglwcmludGYoIiVkXG4iLCB5KTsKCQogICAgaWYgKHkgPT0gMCkKICAgICAgICByZXR1cm47CiAgICAKICAgIHZvaWQgKCogZikgKGR1bW15X2ZfdHlwZSwgaW50KSA9ICh2b2lkICgqKSAoZHVtbXlfZl90eXBlLCBpbnQpKSB4OwogICAgZih4LCB5IC0gMSk7Cn0KCmludCBtYWluKCkKewogICAgZm9vKChkdW1teV9mX3R5cGUpZm9vLCAxMCk7Cn0=