#include <stdio.h>
typedef int (*TFuncPtr)(void);
static TFuncPtr FuncPtrDetonate=NULL;
static int Detonate1(void) {
printf("*********************\n"); printf("****** KABOOM 1 *****\n"); printf("*********************\n"); return 0;
}
static int Detonate2(void) {
printf("**********************\n"); printf("****** KABOOM 2 ******\n"); printf("**********************\n"); return 0;
}
void SetDetonate(void) {
FuncPtrDetonate = Detonate1;
FuncPtrDetonate = Detonate2;
printf("SetDetonate Called\n"); }
int main() {
#if 0
SetDetonate();
#endif
if (FuncPtrDetonate==NULL) {
printf("^^^^^^^^^^^^^^^^^^^^\n"); printf("^^^^^^^ NULL ^^^^^^^\n"); printf("^^^^^^^^^^^^^^^^^^^^\n"); }
return FuncPtrDetonate();
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIGludCAoKlRGdW5jUHRyKSh2b2lkKTsKCnN0YXRpYyBURnVuY1B0ciBGdW5jUHRyRGV0b25hdGU9TlVMTDsKCnN0YXRpYyBpbnQgRGV0b25hdGUxKHZvaWQpIHsKcHJpbnRmKCIqKioqKioqKioqKioqKioqKioqKipcbiIpOwpwcmludGYoIioqKioqKiBLQUJPT00gMSAqKioqKlxuIik7CnByaW50ZigiKioqKioqKioqKioqKioqKioqKioqXG4iKTsKcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgRGV0b25hdGUyKHZvaWQpIHsKcHJpbnRmKCIqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKcHJpbnRmKCIqKioqKiogS0FCT09NIDIgKioqKioqXG4iKTsKcHJpbnRmKCIqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKcmV0dXJuIDA7Cn0KCnZvaWQgU2V0RGV0b25hdGUodm9pZCkgewogRnVuY1B0ckRldG9uYXRlID0gRGV0b25hdGUxOwogRnVuY1B0ckRldG9uYXRlID0gRGV0b25hdGUyOwogcHJpbnRmKCJTZXREZXRvbmF0ZSBDYWxsZWRcbiIpOwp9CgppbnQgbWFpbigpIHsKI2lmIDAKU2V0RGV0b25hdGUoKTsKI2VuZGlmCsKgwqDCoCBpZiAoRnVuY1B0ckRldG9uYXRlPT1OVUxMKSB7CsKgwqDCoMKgIHByaW50ZigiXl5eXl5eXl5eXl5eXl5eXl5eXl5cbiIpOwrCoMKgwqDCoCBwcmludGYoIl5eXl5eXl4gTlVMTCBeXl5eXl5eXG4iKTsKwqDCoMKgwqAgcHJpbnRmKCJeXl5eXl5eXl5eXl5eXl5eXl5eXlxuIik7CsKgwqDCoCB9CgpyZXR1cm4gRnVuY1B0ckRldG9uYXRlKCk7Cn0=