Showing error 1767

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/email_spec4_product31_unsafe.cil.c
Line in file: 1713
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1extern int __VERIFIER_nondet_int(void);
   2/* Generated by CIL v. 1.3.7 */
   3/* print_CIL_Input is true */
   4
   5#line 2 "libacc.c"
   6struct JoinPoint {
   7   void **(*fp)(struct JoinPoint * ) ;
   8   void **args ;
   9   int argsCount ;
  10   char const   **argsType ;
  11   void *(*arg)(int  , struct JoinPoint * ) ;
  12   char const   *(*argType)(int  , struct JoinPoint * ) ;
  13   void **retValue ;
  14   char const   *retType ;
  15   char const   *funcName ;
  16   char const   *targetName ;
  17   char const   *fileName ;
  18   char const   *kind ;
  19   void *excep_return ;
  20};
  21#line 18 "libacc.c"
  22struct __UTAC__CFLOW_FUNC {
  23   int (*func)(int  , int  ) ;
  24   int val ;
  25   struct __UTAC__CFLOW_FUNC *next ;
  26};
  27#line 18 "libacc.c"
  28struct __UTAC__EXCEPTION {
  29   void *jumpbuf ;
  30   unsigned long long prtValue ;
  31   int pops ;
  32   struct __UTAC__CFLOW_FUNC *cflowfuncs ;
  33};
  34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
  35typedef unsigned long size_t;
  36#line 76 "libacc.c"
  37struct __ACC__ERR {
  38   void *v ;
  39   struct __ACC__ERR *next ;
  40};
  41#line 1 "ClientLib.o"
  42#pragma merger(0,"ClientLib.i","")
  43#line 4 "ClientLib.h"
  44int initClient(void) ;
  45#line 6
  46char *getClientName(int handle ) ;
  47#line 8
  48void setClientName(int handle , char *value ) ;
  49#line 10
  50int getClientOutbuffer(int handle ) ;
  51#line 12
  52void setClientOutbuffer(int handle , int value ) ;
  53#line 14
  54int getClientAddressBookSize(int handle ) ;
  55#line 16
  56void setClientAddressBookSize(int handle , int value ) ;
  57#line 18
  58int createClientAddressBookEntry(int handle ) ;
  59#line 20
  60int getClientAddressBookAlias(int handle , int index ) ;
  61#line 22
  62void setClientAddressBookAlias(int handle , int index , int value ) ;
  63#line 24
  64int getClientAddressBookAddress(int handle , int index ) ;
  65#line 26
  66void setClientAddressBookAddress(int handle , int index , int value ) ;
  67#line 29
  68int getClientAutoResponse(int handle ) ;
  69#line 31
  70void setClientAutoResponse(int handle , int value ) ;
  71#line 33
  72int getClientPrivateKey(int handle ) ;
  73#line 35
  74void setClientPrivateKey(int handle , int value ) ;
  75#line 37
  76int getClientKeyringSize(int handle ) ;
  77#line 39
  78int createClientKeyringEntry(int handle ) ;
  79#line 41
  80int getClientKeyringUser(int handle , int index ) ;
  81#line 43
  82void setClientKeyringUser(int handle , int index , int value ) ;
  83#line 45
  84int getClientKeyringPublicKey(int handle , int index ) ;
  85#line 47
  86void setClientKeyringPublicKey(int handle , int index , int value ) ;
  87#line 49
  88int getClientForwardReceiver(int handle ) ;
  89#line 51
  90void setClientForwardReceiver(int handle , int value ) ;
  91#line 53
  92int getClientId(int handle ) ;
  93#line 55
  94void setClientId(int handle , int value ) ;
  95#line 57
  96int findPublicKey(int handle , int userid ) ;
  97#line 59
  98int findClientAddressBookAlias(int handle , int userid ) ;
  99#line 5 "ClientLib.c"
 100int __ste_Client_counter  =    0;
 101#line 7 "ClientLib.c"
 102int initClient(void) 
 103{ int retValue_acc ;
 104
 105  {
 106#line 12 "ClientLib.c"
 107  if (__ste_Client_counter < 3) {
 108#line 684
 109    __ste_Client_counter = __ste_Client_counter + 1;
 110#line 684
 111    retValue_acc = __ste_Client_counter;
 112#line 686
 113    return (retValue_acc);
 114  } else {
 115#line 692 "ClientLib.c"
 116    retValue_acc = -1;
 117#line 694
 118    return (retValue_acc);
 119  }
 120#line 701 "ClientLib.c"
 121  return (retValue_acc);
 122}
 123}
 124#line 15 "ClientLib.c"
 125char *__ste_client_name0  =    (char *)0;
 126#line 17 "ClientLib.c"
 127char *__ste_client_name1  =    (char *)0;
 128#line 19 "ClientLib.c"
 129char *__ste_client_name2  =    (char *)0;
 130#line 22 "ClientLib.c"
 131char *getClientName(int handle ) 
 132{ char *retValue_acc ;
 133  void *__cil_tmp3 ;
 134
 135  {
 136#line 31 "ClientLib.c"
 137  if (handle == 1) {
 138#line 732
 139    retValue_acc = __ste_client_name0;
 140#line 734
 141    return (retValue_acc);
 142  } else {
 143#line 736
 144    if (handle == 2) {
 145#line 741
 146      retValue_acc = __ste_client_name1;
 147#line 743
 148      return (retValue_acc);
 149    } else {
 150#line 745
 151      if (handle == 3) {
 152#line 750
 153        retValue_acc = __ste_client_name2;
 154#line 752
 155        return (retValue_acc);
 156      } else {
 157#line 758 "ClientLib.c"
 158        __cil_tmp3 = (void *)0;
 159#line 758
 160        retValue_acc = (char *)__cil_tmp3;
 161#line 760
 162        return (retValue_acc);
 163      }
 164    }
 165  }
 166#line 767 "ClientLib.c"
 167  return (retValue_acc);
 168}
 169}
 170#line 34 "ClientLib.c"
 171void setClientName(int handle , char *value ) 
 172{ 
 173
 174  {
 175#line 42
 176  if (handle == 1) {
 177#line 36
 178    __ste_client_name0 = value;
 179  } else {
 180#line 37
 181    if (handle == 2) {
 182#line 38
 183      __ste_client_name1 = value;
 184    } else {
 185#line 39
 186      if (handle == 3) {
 187#line 40
 188        __ste_client_name2 = value;
 189      } else {
 190
 191      }
 192    }
 193  }
 194#line 802 "ClientLib.c"
 195  return;
 196}
 197}
 198#line 44 "ClientLib.c"
 199int __ste_client_outbuffer0  =    0;
 200#line 46 "ClientLib.c"
 201int __ste_client_outbuffer1  =    0;
 202#line 48 "ClientLib.c"
 203int __ste_client_outbuffer2  =    0;
 204#line 50 "ClientLib.c"
 205int __ste_client_outbuffer3  =    0;
 206#line 53 "ClientLib.c"
 207int getClientOutbuffer(int handle ) 
 208{ int retValue_acc ;
 209
 210  {
 211#line 62 "ClientLib.c"
 212  if (handle == 1) {
 213#line 831
 214    retValue_acc = __ste_client_outbuffer0;
 215#line 833
 216    return (retValue_acc);
 217  } else {
 218#line 835
 219    if (handle == 2) {
 220#line 840
 221      retValue_acc = __ste_client_outbuffer1;
 222#line 842
 223      return (retValue_acc);
 224    } else {
 225#line 844
 226      if (handle == 3) {
 227#line 849
 228        retValue_acc = __ste_client_outbuffer2;
 229#line 851
 230        return (retValue_acc);
 231      } else {
 232#line 857 "ClientLib.c"
 233        retValue_acc = 0;
 234#line 859
 235        return (retValue_acc);
 236      }
 237    }
 238  }
 239#line 866 "ClientLib.c"
 240  return (retValue_acc);
 241}
 242}
 243#line 65 "ClientLib.c"
 244void setClientOutbuffer(int handle , int value ) 
 245{ 
 246
 247  {
 248#line 73
 249  if (handle == 1) {
 250#line 67
 251    __ste_client_outbuffer0 = value;
 252  } else {
 253#line 68
 254    if (handle == 2) {
 255#line 69
 256      __ste_client_outbuffer1 = value;
 257    } else {
 258#line 70
 259      if (handle == 3) {
 260#line 71
 261        __ste_client_outbuffer2 = value;
 262      } else {
 263
 264      }
 265    }
 266  }
 267#line 901 "ClientLib.c"
 268  return;
 269}
 270}
 271#line 77 "ClientLib.c"
 272int __ste_ClientAddressBook_size0  =    0;
 273#line 79 "ClientLib.c"
 274int __ste_ClientAddressBook_size1  =    0;
 275#line 81 "ClientLib.c"
 276int __ste_ClientAddressBook_size2  =    0;
 277#line 84 "ClientLib.c"
 278int getClientAddressBookSize(int handle ) 
 279{ int retValue_acc ;
 280
 281  {
 282#line 93 "ClientLib.c"
 283  if (handle == 1) {
 284#line 928
 285    retValue_acc = __ste_ClientAddressBook_size0;
 286#line 930
 287    return (retValue_acc);
 288  } else {
 289#line 932
 290    if (handle == 2) {
 291#line 937
 292      retValue_acc = __ste_ClientAddressBook_size1;
 293#line 939
 294      return (retValue_acc);
 295    } else {
 296#line 941
 297      if (handle == 3) {
 298#line 946
 299        retValue_acc = __ste_ClientAddressBook_size2;
 300#line 948
 301        return (retValue_acc);
 302      } else {
 303#line 954 "ClientLib.c"
 304        retValue_acc = 0;
 305#line 956
 306        return (retValue_acc);
 307      }
 308    }
 309  }
 310#line 963 "ClientLib.c"
 311  return (retValue_acc);
 312}
 313}
 314#line 96 "ClientLib.c"
 315void setClientAddressBookSize(int handle , int value ) 
 316{ 
 317
 318  {
 319#line 104
 320  if (handle == 1) {
 321#line 98
 322    __ste_ClientAddressBook_size0 = value;
 323  } else {
 324#line 99
 325    if (handle == 2) {
 326#line 100
 327      __ste_ClientAddressBook_size1 = value;
 328    } else {
 329#line 101
 330      if (handle == 3) {
 331#line 102
 332        __ste_ClientAddressBook_size2 = value;
 333      } else {
 334
 335      }
 336    }
 337  }
 338#line 998 "ClientLib.c"
 339  return;
 340}
 341}
 342#line 106 "ClientLib.c"
 343int createClientAddressBookEntry(int handle ) 
 344{ int retValue_acc ;
 345  int size ;
 346  int tmp ;
 347  int __cil_tmp5 ;
 348
 349  {
 350  {
 351#line 107
 352  tmp = getClientAddressBookSize(handle);
 353#line 107
 354  size = tmp;
 355  }
 356#line 108 "ClientLib.c"
 357  if (size < 3) {
 358    {
 359#line 109 "ClientLib.c"
 360    __cil_tmp5 = size + 1;
 361#line 109
 362    setClientAddressBookSize(handle, __cil_tmp5);
 363#line 1025 "ClientLib.c"
 364    retValue_acc = size + 1;
 365    }
 366#line 1027
 367    return (retValue_acc);
 368  } else {
 369#line 1031 "ClientLib.c"
 370    retValue_acc = -1;
 371#line 1033
 372    return (retValue_acc);
 373  }
 374#line 1040 "ClientLib.c"
 375  return (retValue_acc);
 376}
 377}
 378#line 115 "ClientLib.c"
 379int __ste_Client_AddressBook0_Alias0  =    0;
 380#line 117 "ClientLib.c"
 381int __ste_Client_AddressBook0_Alias1  =    0;
 382#line 119 "ClientLib.c"
 383int __ste_Client_AddressBook0_Alias2  =    0;
 384#line 121 "ClientLib.c"
 385int __ste_Client_AddressBook1_Alias0  =    0;
 386#line 123 "ClientLib.c"
 387int __ste_Client_AddressBook1_Alias1  =    0;
 388#line 125 "ClientLib.c"
 389int __ste_Client_AddressBook1_Alias2  =    0;
 390#line 127 "ClientLib.c"
 391int __ste_Client_AddressBook2_Alias0  =    0;
 392#line 129 "ClientLib.c"
 393int __ste_Client_AddressBook2_Alias1  =    0;
 394#line 131 "ClientLib.c"
 395int __ste_Client_AddressBook2_Alias2  =    0;
 396#line 134 "ClientLib.c"
 397int getClientAddressBookAlias(int handle , int index ) 
 398{ int retValue_acc ;
 399
 400  {
 401#line 167
 402  if (handle == 1) {
 403#line 144 "ClientLib.c"
 404    if (index == 0) {
 405#line 1086
 406      retValue_acc = __ste_Client_AddressBook0_Alias0;
 407#line 1088
 408      return (retValue_acc);
 409    } else {
 410#line 1090
 411      if (index == 1) {
 412#line 1095
 413        retValue_acc = __ste_Client_AddressBook0_Alias1;
 414#line 1097
 415        return (retValue_acc);
 416      } else {
 417#line 1099
 418        if (index == 2) {
 419#line 1104
 420          retValue_acc = __ste_Client_AddressBook0_Alias2;
 421#line 1106
 422          return (retValue_acc);
 423        } else {
 424#line 1112
 425          retValue_acc = 0;
 426#line 1114
 427          return (retValue_acc);
 428        }
 429      }
 430    }
 431  } else {
 432#line 1116 "ClientLib.c"
 433    if (handle == 2) {
 434#line 154 "ClientLib.c"
 435      if (index == 0) {
 436#line 1124
 437        retValue_acc = __ste_Client_AddressBook1_Alias0;
 438#line 1126
 439        return (retValue_acc);
 440      } else {
 441#line 1128
 442        if (index == 1) {
 443#line 1133
 444          retValue_acc = __ste_Client_AddressBook1_Alias1;
 445#line 1135
 446          return (retValue_acc);
 447        } else {
 448#line 1137
 449          if (index == 2) {
 450#line 1142
 451            retValue_acc = __ste_Client_AddressBook1_Alias2;
 452#line 1144
 453            return (retValue_acc);
 454          } else {
 455#line 1150
 456            retValue_acc = 0;
 457#line 1152
 458            return (retValue_acc);
 459          }
 460        }
 461      }
 462    } else {
 463#line 1154 "ClientLib.c"
 464      if (handle == 3) {
 465#line 164 "ClientLib.c"
 466        if (index == 0) {
 467#line 1162
 468          retValue_acc = __ste_Client_AddressBook2_Alias0;
 469#line 1164
 470          return (retValue_acc);
 471        } else {
 472#line 1166
 473          if (index == 1) {
 474#line 1171
 475            retValue_acc = __ste_Client_AddressBook2_Alias1;
 476#line 1173
 477            return (retValue_acc);
 478          } else {
 479#line 1175
 480            if (index == 2) {
 481#line 1180
 482              retValue_acc = __ste_Client_AddressBook2_Alias2;
 483#line 1182
 484              return (retValue_acc);
 485            } else {
 486#line 1188
 487              retValue_acc = 0;
 488#line 1190
 489              return (retValue_acc);
 490            }
 491          }
 492        }
 493      } else {
 494#line 1196 "ClientLib.c"
 495        retValue_acc = 0;
 496#line 1198
 497        return (retValue_acc);
 498      }
 499    }
 500  }
 501#line 1205 "ClientLib.c"
 502  return (retValue_acc);
 503}
 504}
 505#line 171 "ClientLib.c"
 506int findClientAddressBookAlias(int handle , int userid ) 
 507{ int retValue_acc ;
 508
 509  {
 510#line 204
 511  if (handle == 1) {
 512#line 181 "ClientLib.c"
 513    if (userid == __ste_Client_AddressBook0_Alias0) {
 514#line 1233
 515      retValue_acc = 0;
 516#line 1235
 517      return (retValue_acc);
 518    } else {
 519#line 1237
 520      if (userid == __ste_Client_AddressBook0_Alias1) {
 521#line 1242
 522        retValue_acc = 1;
 523#line 1244
 524        return (retValue_acc);
 525      } else {
 526#line 1246
 527        if (userid == __ste_Client_AddressBook0_Alias2) {
 528#line 1251
 529          retValue_acc = 2;
 530#line 1253
 531          return (retValue_acc);
 532        } else {
 533#line 1259
 534          retValue_acc = -1;
 535#line 1261
 536          return (retValue_acc);
 537        }
 538      }
 539    }
 540  } else {
 541#line 1263 "ClientLib.c"
 542    if (handle == 2) {
 543#line 191 "ClientLib.c"
 544      if (userid == __ste_Client_AddressBook1_Alias0) {
 545#line 1271
 546        retValue_acc = 0;
 547#line 1273
 548        return (retValue_acc);
 549      } else {
 550#line 1275
 551        if (userid == __ste_Client_AddressBook1_Alias1) {
 552#line 1280
 553          retValue_acc = 1;
 554#line 1282
 555          return (retValue_acc);
 556        } else {
 557#line 1284
 558          if (userid == __ste_Client_AddressBook1_Alias2) {
 559#line 1289
 560            retValue_acc = 2;
 561#line 1291
 562            return (retValue_acc);
 563          } else {
 564#line 1297
 565            retValue_acc = -1;
 566#line 1299
 567            return (retValue_acc);
 568          }
 569        }
 570      }
 571    } else {
 572#line 1301 "ClientLib.c"
 573      if (handle == 3) {
 574#line 201 "ClientLib.c"
 575        if (userid == __ste_Client_AddressBook2_Alias0) {
 576#line 1309
 577          retValue_acc = 0;
 578#line 1311
 579          return (retValue_acc);
 580        } else {
 581#line 1313
 582          if (userid == __ste_Client_AddressBook2_Alias1) {
 583#line 1318
 584            retValue_acc = 1;
 585#line 1320
 586            return (retValue_acc);
 587          } else {
 588#line 1322
 589            if (userid == __ste_Client_AddressBook2_Alias2) {
 590#line 1327
 591              retValue_acc = 2;
 592#line 1329
 593              return (retValue_acc);
 594            } else {
 595#line 1335
 596              retValue_acc = -1;
 597#line 1337
 598              return (retValue_acc);
 599            }
 600          }
 601        }
 602      } else {
 603#line 1343 "ClientLib.c"
 604        retValue_acc = -1;
 605#line 1345
 606        return (retValue_acc);
 607      }
 608    }
 609  }
 610#line 1352 "ClientLib.c"
 611  return (retValue_acc);
 612}
 613}
 614#line 208 "ClientLib.c"
 615void setClientAddressBookAlias(int handle , int index , int value ) 
 616{ 
 617
 618  {
 619#line 234
 620  if (handle == 1) {
 621#line 217
 622    if (index == 0) {
 623#line 211
 624      __ste_Client_AddressBook0_Alias0 = value;
 625    } else {
 626#line 212
 627      if (index == 1) {
 628#line 213
 629        __ste_Client_AddressBook0_Alias1 = value;
 630      } else {
 631#line 214
 632        if (index == 2) {
 633#line 215
 634          __ste_Client_AddressBook0_Alias2 = value;
 635        } else {
 636
 637        }
 638      }
 639    }
 640  } else {
 641#line 216
 642    if (handle == 2) {
 643#line 225
 644      if (index == 0) {
 645#line 219
 646        __ste_Client_AddressBook1_Alias0 = value;
 647      } else {
 648#line 220
 649        if (index == 1) {
 650#line 221
 651          __ste_Client_AddressBook1_Alias1 = value;
 652        } else {
 653#line 222
 654          if (index == 2) {
 655#line 223
 656            __ste_Client_AddressBook1_Alias2 = value;
 657          } else {
 658
 659          }
 660        }
 661      }
 662    } else {
 663#line 224
 664      if (handle == 3) {
 665#line 233
 666        if (index == 0) {
 667#line 227
 668          __ste_Client_AddressBook2_Alias0 = value;
 669        } else {
 670#line 228
 671          if (index == 1) {
 672#line 229
 673            __ste_Client_AddressBook2_Alias1 = value;
 674          } else {
 675#line 230
 676            if (index == 2) {
 677#line 231
 678              __ste_Client_AddressBook2_Alias2 = value;
 679            } else {
 680
 681            }
 682          }
 683        }
 684      } else {
 685
 686      }
 687    }
 688  }
 689#line 1420 "ClientLib.c"
 690  return;
 691}
 692}
 693#line 236 "ClientLib.c"
 694int __ste_Client_AddressBook0_Address0  =    0;
 695#line 238 "ClientLib.c"
 696int __ste_Client_AddressBook0_Address1  =    0;
 697#line 240 "ClientLib.c"
 698int __ste_Client_AddressBook0_Address2  =    0;
 699#line 242 "ClientLib.c"
 700int __ste_Client_AddressBook1_Address0  =    0;
 701#line 244 "ClientLib.c"
 702int __ste_Client_AddressBook1_Address1  =    0;
 703#line 246 "ClientLib.c"
 704int __ste_Client_AddressBook1_Address2  =    0;
 705#line 248 "ClientLib.c"
 706int __ste_Client_AddressBook2_Address0  =    0;
 707#line 250 "ClientLib.c"
 708int __ste_Client_AddressBook2_Address1  =    0;
 709#line 252 "ClientLib.c"
 710int __ste_Client_AddressBook2_Address2  =    0;
 711#line 255 "ClientLib.c"
 712int getClientAddressBookAddress(int handle , int index ) 
 713{ int retValue_acc ;
 714
 715  {
 716#line 288
 717  if (handle == 1) {
 718#line 265 "ClientLib.c"
 719    if (index == 0) {
 720#line 1462
 721      retValue_acc = __ste_Client_AddressBook0_Address0;
 722#line 1464
 723      return (retValue_acc);
 724    } else {
 725#line 1466
 726      if (index == 1) {
 727#line 1471
 728        retValue_acc = __ste_Client_AddressBook0_Address1;
 729#line 1473
 730        return (retValue_acc);
 731      } else {
 732#line 1475
 733        if (index == 2) {
 734#line 1480
 735          retValue_acc = __ste_Client_AddressBook0_Address2;
 736#line 1482
 737          return (retValue_acc);
 738        } else {
 739#line 1488
 740          retValue_acc = 0;
 741#line 1490
 742          return (retValue_acc);
 743        }
 744      }
 745    }
 746  } else {
 747#line 1492 "ClientLib.c"
 748    if (handle == 2) {
 749#line 275 "ClientLib.c"
 750      if (index == 0) {
 751#line 1500
 752        retValue_acc = __ste_Client_AddressBook1_Address0;
 753#line 1502
 754        return (retValue_acc);
 755      } else {
 756#line 1504
 757        if (index == 1) {
 758#line 1509
 759          retValue_acc = __ste_Client_AddressBook1_Address1;
 760#line 1511
 761          return (retValue_acc);
 762        } else {
 763#line 1513
 764          if (index == 2) {
 765#line 1518
 766            retValue_acc = __ste_Client_AddressBook1_Address2;
 767#line 1520
 768            return (retValue_acc);
 769          } else {
 770#line 1526
 771            retValue_acc = 0;
 772#line 1528
 773            return (retValue_acc);
 774          }
 775        }
 776      }
 777    } else {
 778#line 1530 "ClientLib.c"
 779      if (handle == 3) {
 780#line 285 "ClientLib.c"
 781        if (index == 0) {
 782#line 1538
 783          retValue_acc = __ste_Client_AddressBook2_Address0;
 784#line 1540
 785          return (retValue_acc);
 786        } else {
 787#line 1542
 788          if (index == 1) {
 789#line 1547
 790            retValue_acc = __ste_Client_AddressBook2_Address1;
 791#line 1549
 792            return (retValue_acc);
 793          } else {
 794#line 1551
 795            if (index == 2) {
 796#line 1556
 797              retValue_acc = __ste_Client_AddressBook2_Address2;
 798#line 1558
 799              return (retValue_acc);
 800            } else {
 801#line 1564
 802              retValue_acc = 0;
 803#line 1566
 804              return (retValue_acc);
 805            }
 806          }
 807        }
 808      } else {
 809#line 1572 "ClientLib.c"
 810        retValue_acc = 0;
 811#line 1574
 812        return (retValue_acc);
 813      }
 814    }
 815  }
 816#line 1581 "ClientLib.c"
 817  return (retValue_acc);
 818}
 819}
 820#line 291 "ClientLib.c"
 821void setClientAddressBookAddress(int handle , int index , int value ) 
 822{ 
 823
 824  {
 825#line 317
 826  if (handle == 1) {
 827#line 300
 828    if (index == 0) {
 829#line 294
 830      __ste_Client_AddressBook0_Address0 = value;
 831    } else {
 832#line 295
 833      if (index == 1) {
 834#line 296
 835        __ste_Client_AddressBook0_Address1 = value;
 836      } else {
 837#line 297
 838        if (index == 2) {
 839#line 298
 840          __ste_Client_AddressBook0_Address2 = value;
 841        } else {
 842
 843        }
 844      }
 845    }
 846  } else {
 847#line 299
 848    if (handle == 2) {
 849#line 308
 850      if (index == 0) {
 851#line 302
 852        __ste_Client_AddressBook1_Address0 = value;
 853      } else {
 854#line 303
 855        if (index == 1) {
 856#line 304
 857          __ste_Client_AddressBook1_Address1 = value;
 858        } else {
 859#line 305
 860          if (index == 2) {
 861#line 306
 862            __ste_Client_AddressBook1_Address2 = value;
 863          } else {
 864
 865          }
 866        }
 867      }
 868    } else {
 869#line 307
 870      if (handle == 3) {
 871#line 316
 872        if (index == 0) {
 873#line 310
 874          __ste_Client_AddressBook2_Address0 = value;
 875        } else {
 876#line 311
 877          if (index == 1) {
 878#line 312
 879            __ste_Client_AddressBook2_Address1 = value;
 880          } else {
 881#line 313
 882            if (index == 2) {
 883#line 314
 884              __ste_Client_AddressBook2_Address2 = value;
 885            } else {
 886
 887            }
 888          }
 889        }
 890      } else {
 891
 892      }
 893    }
 894  }
 895#line 1649 "ClientLib.c"
 896  return;
 897}
 898}
 899#line 319 "ClientLib.c"
 900int __ste_client_autoResponse0  =    0;
 901#line 321 "ClientLib.c"
 902int __ste_client_autoResponse1  =    0;
 903#line 323 "ClientLib.c"
 904int __ste_client_autoResponse2  =    0;
 905#line 326 "ClientLib.c"
 906int getClientAutoResponse(int handle ) 
 907{ int retValue_acc ;
 908
 909  {
 910#line 335 "ClientLib.c"
 911  if (handle == 1) {
 912#line 1676
 913    retValue_acc = __ste_client_autoResponse0;
 914#line 1678
 915    return (retValue_acc);
 916  } else {
 917#line 1680
 918    if (handle == 2) {
 919#line 1685
 920      retValue_acc = __ste_client_autoResponse1;
 921#line 1687
 922      return (retValue_acc);
 923    } else {
 924#line 1689
 925      if (handle == 3) {
 926#line 1694
 927        retValue_acc = __ste_client_autoResponse2;
 928#line 1696
 929        return (retValue_acc);
 930      } else {
 931#line 1702 "ClientLib.c"
 932        retValue_acc = -1;
 933#line 1704
 934        return (retValue_acc);
 935      }
 936    }
 937  }
 938#line 1711 "ClientLib.c"
 939  return (retValue_acc);
 940}
 941}
 942#line 338 "ClientLib.c"
 943void setClientAutoResponse(int handle , int value ) 
 944{ 
 945
 946  {
 947#line 346
 948  if (handle == 1) {
 949#line 340
 950    __ste_client_autoResponse0 = value;
 951  } else {
 952#line 341
 953    if (handle == 2) {
 954#line 342
 955      __ste_client_autoResponse1 = value;
 956    } else {
 957#line 343
 958      if (handle == 3) {
 959#line 344
 960        __ste_client_autoResponse2 = value;
 961      } else {
 962
 963      }
 964    }
 965  }
 966#line 1746 "ClientLib.c"
 967  return;
 968}
 969}
 970#line 348 "ClientLib.c"
 971int __ste_client_privateKey0  =    0;
 972#line 350 "ClientLib.c"
 973int __ste_client_privateKey1  =    0;
 974#line 352 "ClientLib.c"
 975int __ste_client_privateKey2  =    0;
 976#line 355 "ClientLib.c"
 977int getClientPrivateKey(int handle ) 
 978{ int retValue_acc ;
 979
 980  {
 981#line 364 "ClientLib.c"
 982  if (handle == 1) {
 983#line 1773
 984    retValue_acc = __ste_client_privateKey0;
 985#line 1775
 986    return (retValue_acc);
 987  } else {
 988#line 1777
 989    if (handle == 2) {
 990#line 1782
 991      retValue_acc = __ste_client_privateKey1;
 992#line 1784
 993      return (retValue_acc);
 994    } else {
 995#line 1786
 996      if (handle == 3) {
 997#line 1791
 998        retValue_acc = __ste_client_privateKey2;
 999#line 1793
1000        return (retValue_acc);
1001      } else {
1002#line 1799 "ClientLib.c"
1003        retValue_acc = 0;
1004#line 1801
1005        return (retValue_acc);
1006      }
1007    }
1008  }
1009#line 1808 "ClientLib.c"
1010  return (retValue_acc);
1011}
1012}
1013#line 367 "ClientLib.c"
1014void setClientPrivateKey(int handle , int value ) 
1015{ 
1016
1017  {
1018#line 375
1019  if (handle == 1) {
1020#line 369
1021    __ste_client_privateKey0 = value;
1022  } else {
1023#line 370
1024    if (handle == 2) {
1025#line 371
1026      __ste_client_privateKey1 = value;
1027    } else {
1028#line 372
1029      if (handle == 3) {
1030#line 373
1031        __ste_client_privateKey2 = value;
1032      } else {
1033
1034      }
1035    }
1036  }
1037#line 1843 "ClientLib.c"
1038  return;
1039}
1040}
1041#line 377 "ClientLib.c"
1042int __ste_ClientKeyring_size0  =    0;
1043#line 379 "ClientLib.c"
1044int __ste_ClientKeyring_size1  =    0;
1045#line 381 "ClientLib.c"
1046int __ste_ClientKeyring_size2  =    0;
1047#line 384 "ClientLib.c"
1048int getClientKeyringSize(int handle ) 
1049{ int retValue_acc ;
1050
1051  {
1052#line 393 "ClientLib.c"
1053  if (handle == 1) {
1054#line 1870
1055    retValue_acc = __ste_ClientKeyring_size0;
1056#line 1872
1057    return (retValue_acc);
1058  } else {
1059#line 1874
1060    if (handle == 2) {
1061#line 1879
1062      retValue_acc = __ste_ClientKeyring_size1;
1063#line 1881
1064      return (retValue_acc);
1065    } else {
1066#line 1883
1067      if (handle == 3) {
1068#line 1888
1069        retValue_acc = __ste_ClientKeyring_size2;
1070#line 1890
1071        return (retValue_acc);
1072      } else {
1073#line 1896 "ClientLib.c"
1074        retValue_acc = 0;
1075#line 1898
1076        return (retValue_acc);
1077      }
1078    }
1079  }
1080#line 1905 "ClientLib.c"
1081  return (retValue_acc);
1082}
1083}
1084#line 396 "ClientLib.c"
1085void setClientKeyringSize(int handle , int value ) 
1086{ 
1087
1088  {
1089#line 404
1090  if (handle == 1) {
1091#line 398
1092    __ste_ClientKeyring_size0 = value;
1093  } else {
1094#line 399
1095    if (handle == 2) {
1096#line 400
1097      __ste_ClientKeyring_size1 = value;
1098    } else {
1099#line 401
1100      if (handle == 3) {
1101#line 402
1102        __ste_ClientKeyring_size2 = value;
1103      } else {
1104
1105      }
1106    }
1107  }
1108#line 1940 "ClientLib.c"
1109  return;
1110}
1111}
1112#line 406 "ClientLib.c"
1113int createClientKeyringEntry(int handle ) 
1114{ int retValue_acc ;
1115  int size ;
1116  int tmp ;
1117  int __cil_tmp5 ;
1118
1119  {
1120  {
1121#line 407
1122  tmp = getClientKeyringSize(handle);
1123#line 407
1124  size = tmp;
1125  }
1126#line 408 "ClientLib.c"
1127  if (size < 2) {
1128    {
1129#line 409 "ClientLib.c"
1130    __cil_tmp5 = size + 1;
1131#line 409
1132    setClientKeyringSize(handle, __cil_tmp5);
1133#line 1967 "ClientLib.c"
1134    retValue_acc = size + 1;
1135    }
1136#line 1969
1137    return (retValue_acc);
1138  } else {
1139#line 1973 "ClientLib.c"
1140    retValue_acc = -1;
1141#line 1975
1142    return (retValue_acc);
1143  }
1144#line 1982 "ClientLib.c"
1145  return (retValue_acc);
1146}
1147}
1148#line 414 "ClientLib.c"
1149int __ste_Client_Keyring0_User0  =    0;
1150#line 416 "ClientLib.c"
1151int __ste_Client_Keyring0_User1  =    0;
1152#line 418 "ClientLib.c"
1153int __ste_Client_Keyring0_User2  =    0;
1154#line 420 "ClientLib.c"
1155int __ste_Client_Keyring1_User0  =    0;
1156#line 422 "ClientLib.c"
1157int __ste_Client_Keyring1_User1  =    0;
1158#line 424 "ClientLib.c"
1159int __ste_Client_Keyring1_User2  =    0;
1160#line 426 "ClientLib.c"
1161int __ste_Client_Keyring2_User0  =    0;
1162#line 428 "ClientLib.c"
1163int __ste_Client_Keyring2_User1  =    0;
1164#line 430 "ClientLib.c"
1165int __ste_Client_Keyring2_User2  =    0;
1166#line 433 "ClientLib.c"
1167int getClientKeyringUser(int handle , int index ) 
1168{ int retValue_acc ;
1169
1170  {
1171#line 466
1172  if (handle == 1) {
1173#line 443 "ClientLib.c"
1174    if (index == 0) {
1175#line 2028
1176      retValue_acc = __ste_Client_Keyring0_User0;
1177#line 2030
1178      return (retValue_acc);
1179    } else {
1180#line 2032
1181      if (index == 1) {
1182#line 2037
1183        retValue_acc = __ste_Client_Keyring0_User1;
1184#line 2039
1185        return (retValue_acc);
1186      } else {
1187#line 2045
1188        retValue_acc = 0;
1189#line 2047
1190        return (retValue_acc);
1191      }
1192    }
1193  } else {
1194#line 2049 "ClientLib.c"
1195    if (handle == 2) {
1196#line 453 "ClientLib.c"
1197      if (index == 0) {
1198#line 2057
1199        retValue_acc = __ste_Client_Keyring1_User0;
1200#line 2059
1201        return (retValue_acc);
1202      } else {
1203#line 2061
1204        if (index == 1) {
1205#line 2066
1206          retValue_acc = __ste_Client_Keyring1_User1;
1207#line 2068
1208          return (retValue_acc);
1209        } else {
1210#line 2074
1211          retValue_acc = 0;
1212#line 2076
1213          return (retValue_acc);
1214        }
1215      }
1216    } else {
1217#line 2078 "ClientLib.c"
1218      if (handle == 3) {
1219#line 463 "ClientLib.c"
1220        if (index == 0) {
1221#line 2086
1222          retValue_acc = __ste_Client_Keyring2_User0;
1223#line 2088
1224          return (retValue_acc);
1225        } else {
1226#line 2090
1227          if (index == 1) {
1228#line 2095
1229            retValue_acc = __ste_Client_Keyring2_User1;
1230#line 2097
1231            return (retValue_acc);
1232          } else {
1233#line 2103
1234            retValue_acc = 0;
1235#line 2105
1236            return (retValue_acc);
1237          }
1238        }
1239      } else {
1240#line 2111 "ClientLib.c"
1241        retValue_acc = 0;
1242#line 2113
1243        return (retValue_acc);
1244      }
1245    }
1246  }
1247#line 2120 "ClientLib.c"
1248  return (retValue_acc);
1249}
1250}
1251#line 473 "ClientLib.c"
1252void setClientKeyringUser(int handle , int index , int value ) 
1253{ 
1254
1255  {
1256#line 499
1257  if (handle == 1) {
1258#line 482
1259    if (index == 0) {
1260#line 476
1261      __ste_Client_Keyring0_User0 = value;
1262    } else {
1263#line 477
1264      if (index == 1) {
1265#line 478
1266        __ste_Client_Keyring0_User1 = value;
1267      } else {
1268
1269      }
1270    }
1271  } else {
1272#line 479
1273    if (handle == 2) {
1274#line 490
1275      if (index == 0) {
1276#line 484
1277        __ste_Client_Keyring1_User0 = value;
1278      } else {
1279#line 485
1280        if (index == 1) {
1281#line 486
1282          __ste_Client_Keyring1_User1 = value;
1283        } else {
1284
1285        }
1286      }
1287    } else {
1288#line 487
1289      if (handle == 3) {
1290#line 498
1291        if (index == 0) {
1292#line 492
1293          __ste_Client_Keyring2_User0 = value;
1294        } else {
1295#line 493
1296          if (index == 1) {
1297#line 494
1298            __ste_Client_Keyring2_User1 = value;
1299          } else {
1300
1301          }
1302        }
1303      } else {
1304
1305      }
1306    }
1307  }
1308#line 2176 "ClientLib.c"
1309  return;
1310}
1311}
1312#line 501 "ClientLib.c"
1313int __ste_Client_Keyring0_PublicKey0  =    0;
1314#line 503 "ClientLib.c"
1315int __ste_Client_Keyring0_PublicKey1  =    0;
1316#line 505 "ClientLib.c"
1317int __ste_Client_Keyring0_PublicKey2  =    0;
1318#line 507 "ClientLib.c"
1319int __ste_Client_Keyring1_PublicKey0  =    0;
1320#line 509 "ClientLib.c"
1321int __ste_Client_Keyring1_PublicKey1  =    0;
1322#line 511 "ClientLib.c"
1323int __ste_Client_Keyring1_PublicKey2  =    0;
1324#line 513 "ClientLib.c"
1325int __ste_Client_Keyring2_PublicKey0  =    0;
1326#line 515 "ClientLib.c"
1327int __ste_Client_Keyring2_PublicKey1  =    0;
1328#line 517 "ClientLib.c"
1329int __ste_Client_Keyring2_PublicKey2  =    0;
1330#line 520 "ClientLib.c"
1331int getClientKeyringPublicKey(int handle , int index ) 
1332{ int retValue_acc ;
1333
1334  {
1335#line 553
1336  if (handle == 1) {
1337#line 530 "ClientLib.c"
1338    if (index == 0) {
1339#line 2218
1340      retValue_acc = __ste_Client_Keyring0_PublicKey0;
1341#line 2220
1342      return (retValue_acc);
1343    } else {
1344#line 2222
1345      if (index == 1) {
1346#line 2227
1347        retValue_acc = __ste_Client_Keyring0_PublicKey1;
1348#line 2229
1349        return (retValue_acc);
1350      } else {
1351#line 2235
1352        retValue_acc = 0;
1353#line 2237
1354        return (retValue_acc);
1355      }
1356    }
1357  } else {
1358#line 2239 "ClientLib.c"
1359    if (handle == 2) {
1360#line 540 "ClientLib.c"
1361      if (index == 0) {
1362#line 2247
1363        retValue_acc = __ste_Client_Keyring1_PublicKey0;
1364#line 2249
1365        return (retValue_acc);
1366      } else {
1367#line 2251
1368        if (index == 1) {
1369#line 2256
1370          retValue_acc = __ste_Client_Keyring1_PublicKey1;
1371#line 2258
1372          return (retValue_acc);
1373        } else {
1374#line 2264
1375          retValue_acc = 0;
1376#line 2266
1377          return (retValue_acc);
1378        }
1379      }
1380    } else {
1381#line 2268 "ClientLib.c"
1382      if (handle == 3) {
1383#line 550 "ClientLib.c"
1384        if (index == 0) {
1385#line 2276
1386          retValue_acc = __ste_Client_Keyring2_PublicKey0;
1387#line 2278
1388          return (retValue_acc);
1389        } else {
1390#line 2280
1391          if (index == 1) {
1392#line 2285
1393            retValue_acc = __ste_Client_Keyring2_PublicKey1;
1394#line 2287
1395            return (retValue_acc);
1396          } else {
1397#line 2293
1398            retValue_acc = 0;
1399#line 2295
1400            return (retValue_acc);
1401          }
1402        }
1403      } else {
1404#line 2301 "ClientLib.c"
1405        retValue_acc = 0;
1406#line 2303
1407        return (retValue_acc);
1408      }
1409    }
1410  }
1411#line 2310 "ClientLib.c"
1412  return (retValue_acc);
1413}
1414}
1415#line 557 "ClientLib.c"
1416int findPublicKey(int handle , int userid ) 
1417{ int retValue_acc ;
1418
1419  {
1420#line 591
1421  if (handle == 1) {
1422#line 568 "ClientLib.c"
1423    if (userid == __ste_Client_Keyring0_User0) {
1424#line 2338
1425      retValue_acc = __ste_Client_Keyring0_PublicKey0;
1426#line 2340
1427      return (retValue_acc);
1428    } else {
1429#line 2342
1430      if (userid == __ste_Client_Keyring0_User1) {
1431#line 2347
1432        retValue_acc = __ste_Client_Keyring0_PublicKey1;
1433#line 2349
1434        return (retValue_acc);
1435      } else {
1436#line 2355
1437        retValue_acc = 0;
1438#line 2357
1439        return (retValue_acc);
1440      }
1441    }
1442  } else {
1443#line 2359 "ClientLib.c"
1444    if (handle == 2) {
1445#line 578 "ClientLib.c"
1446      if (userid == __ste_Client_Keyring1_User0) {
1447#line 2367
1448        retValue_acc = __ste_Client_Keyring1_PublicKey0;
1449#line 2369
1450        return (retValue_acc);
1451      } else {
1452#line 2371
1453        if (userid == __ste_Client_Keyring1_User1) {
1454#line 2376
1455          retValue_acc = __ste_Client_Keyring1_PublicKey1;
1456#line 2378
1457          return (retValue_acc);
1458        } else {
1459#line 2384
1460          retValue_acc = 0;
1461#line 2386
1462          return (retValue_acc);
1463        }
1464      }
1465    } else {
1466#line 2388 "ClientLib.c"
1467      if (handle == 3) {
1468#line 588 "ClientLib.c"
1469        if (userid == __ste_Client_Keyring2_User0) {
1470#line 2396
1471          retValue_acc = __ste_Client_Keyring2_PublicKey0;
1472#line 2398
1473          return (retValue_acc);
1474        } else {
1475#line 2400
1476          if (userid == __ste_Client_Keyring2_User1) {
1477#line 2405
1478            retValue_acc = __ste_Client_Keyring2_PublicKey1;
1479#line 2407
1480            return (retValue_acc);
1481          } else {
1482#line 2413
1483            retValue_acc = 0;
1484#line 2415
1485            return (retValue_acc);
1486          }
1487        }
1488      } else {
1489#line 2421 "ClientLib.c"
1490        retValue_acc = 0;
1491#line 2423
1492        return (retValue_acc);
1493      }
1494    }
1495  }
1496#line 2430 "ClientLib.c"
1497  return (retValue_acc);
1498}
1499}
1500#line 595 "ClientLib.c"
1501void setClientKeyringPublicKey(int handle , int index , int value ) 
1502{ 
1503
1504  {
1505#line 621
1506  if (handle == 1) {
1507#line 604
1508    if (index == 0) {
1509#line 598
1510      __ste_Client_Keyring0_PublicKey0 = value;
1511    } else {
1512#line 599
1513      if (index == 1) {
1514#line 600
1515        __ste_Client_Keyring0_PublicKey1 = value;
1516      } else {
1517
1518      }
1519    }
1520  } else {
1521#line 601
1522    if (handle == 2) {
1523#line 612
1524      if (index == 0) {
1525#line 606
1526        __ste_Client_Keyring1_PublicKey0 = value;
1527      } else {
1528#line 607
1529        if (index == 1) {
1530#line 608
1531          __ste_Client_Keyring1_PublicKey1 = value;
1532        } else {
1533
1534        }
1535      }
1536    } else {
1537#line 609
1538      if (handle == 3) {
1539#line 620
1540        if (index == 0) {
1541#line 614
1542          __ste_Client_Keyring2_PublicKey0 = value;
1543        } else {
1544#line 615
1545          if (index == 1) {
1546#line 616
1547            __ste_Client_Keyring2_PublicKey1 = value;
1548          } else {
1549
1550          }
1551        }
1552      } else {
1553
1554      }
1555    }
1556  }
1557#line 2486 "ClientLib.c"
1558  return;
1559}
1560}
1561#line 623 "ClientLib.c"
1562int __ste_client_forwardReceiver0  =    0;
1563#line 625 "ClientLib.c"
1564int __ste_client_forwardReceiver1  =    0;
1565#line 627 "ClientLib.c"
1566int __ste_client_forwardReceiver2  =    0;
1567#line 629 "ClientLib.c"
1568int __ste_client_forwardReceiver3  =    0;
1569#line 631 "ClientLib.c"
1570int getClientForwardReceiver(int handle ) 
1571{ int retValue_acc ;
1572
1573  {
1574#line 640 "ClientLib.c"
1575  if (handle == 1) {
1576#line 2515
1577    retValue_acc = __ste_client_forwardReceiver0;
1578#line 2517
1579    return (retValue_acc);
1580  } else {
1581#line 2519
1582    if (handle == 2) {
1583#line 2524
1584      retValue_acc = __ste_client_forwardReceiver1;
1585#line 2526
1586      return (retValue_acc);
1587    } else {
1588#line 2528
1589      if (handle == 3) {
1590#line 2533
1591        retValue_acc = __ste_client_forwardReceiver2;
1592#line 2535
1593        return (retValue_acc);
1594      } else {
1595#line 2541 "ClientLib.c"
1596        retValue_acc = 0;
1597#line 2543
1598        return (retValue_acc);
1599      }
1600    }
1601  }
1602#line 2550 "ClientLib.c"
1603  return (retValue_acc);
1604}
1605}
1606#line 643 "ClientLib.c"
1607void setClientForwardReceiver(int handle , int value ) 
1608{ 
1609
1610  {
1611#line 651
1612  if (handle == 1) {
1613#line 645
1614    __ste_client_forwardReceiver0 = value;
1615  } else {
1616#line 646
1617    if (handle == 2) {
1618#line 647
1619      __ste_client_forwardReceiver1 = value;
1620    } else {
1621#line 648
1622      if (handle == 3) {
1623#line 649
1624        __ste_client_forwardReceiver2 = value;
1625      } else {
1626
1627      }
1628    }
1629  }
1630#line 2585 "ClientLib.c"
1631  return;
1632}
1633}
1634#line 653 "ClientLib.c"
1635int __ste_client_idCounter0  =    0;
1636#line 655 "ClientLib.c"
1637int __ste_client_idCounter1  =    0;
1638#line 657 "ClientLib.c"
1639int __ste_client_idCounter2  =    0;
1640#line 660 "ClientLib.c"
1641int getClientId(int handle ) 
1642{ int retValue_acc ;
1643
1644  {
1645#line 669 "ClientLib.c"
1646  if (handle == 1) {
1647#line 2612
1648    retValue_acc = __ste_client_idCounter0;
1649#line 2614
1650    return (retValue_acc);
1651  } else {
1652#line 2616
1653    if (handle == 2) {
1654#line 2621
1655      retValue_acc = __ste_client_idCounter1;
1656#line 2623
1657      return (retValue_acc);
1658    } else {
1659#line 2625
1660      if (handle == 3) {
1661#line 2630
1662        retValue_acc = __ste_client_idCounter2;
1663#line 2632
1664        return (retValue_acc);
1665      } else {
1666#line 2638 "ClientLib.c"
1667        retValue_acc = 0;
1668#line 2640
1669        return (retValue_acc);
1670      }
1671    }
1672  }
1673#line 2647 "ClientLib.c"
1674  return (retValue_acc);
1675}
1676}
1677#line 672 "ClientLib.c"
1678void setClientId(int handle , int value ) 
1679{ 
1680
1681  {
1682#line 680
1683  if (handle == 1) {
1684#line 674
1685    __ste_client_idCounter0 = value;
1686  } else {
1687#line 675
1688    if (handle == 2) {
1689#line 676
1690      __ste_client_idCounter1 = value;
1691    } else {
1692#line 677
1693      if (handle == 3) {
1694#line 678
1695        __ste_client_idCounter2 = value;
1696      } else {
1697
1698      }
1699    }
1700  }
1701#line 2682 "ClientLib.c"
1702  return;
1703}
1704}
1705#line 1 "wsllib_check.o"
1706#pragma merger(0,"wsllib_check.i","")
1707#line 3 "wsllib_check.c"
1708void __automaton_fail(void) 
1709{ 
1710
1711  {
1712  goto ERROR;
1713  ERROR: ;
1714#line 53 "wsllib_check.c"
1715  return;
1716}
1717}
1718#line 1 "libacc.o"
1719#pragma merger(0,"libacc.i","")
1720#line 73 "/usr/include/assert.h"
1721extern  __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const   *__assertion ,
1722                                                                      char const   *__file ,
1723                                                                      unsigned int __line ,
1724                                                                      char const   *__function ) ;
1725#line 471 "/usr/include/stdlib.h"
1726extern  __attribute__((__nothrow__)) void *malloc(size_t __size )  __attribute__((__malloc__)) ;
1727#line 488
1728extern  __attribute__((__nothrow__)) void free(void *__ptr ) ;
1729#line 32 "libacc.c"
1730void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int  ,
1731                                                                           int  ) ,
1732                                       int val ) 
1733{ struct __UTAC__EXCEPTION *excep ;
1734  struct __UTAC__CFLOW_FUNC *cf ;
1735  void *tmp ;
1736  unsigned long __cil_tmp7 ;
1737  unsigned long __cil_tmp8 ;
1738  unsigned long __cil_tmp9 ;
1739  unsigned long __cil_tmp10 ;
1740  unsigned long __cil_tmp11 ;
1741  unsigned long __cil_tmp12 ;
1742  unsigned long __cil_tmp13 ;
1743  unsigned long __cil_tmp14 ;
1744  int (**mem_15)(int  , int  ) ;
1745  int *mem_16 ;
1746  struct __UTAC__CFLOW_FUNC **mem_17 ;
1747  struct __UTAC__CFLOW_FUNC **mem_18 ;
1748  struct __UTAC__CFLOW_FUNC **mem_19 ;
1749
1750  {
1751  {
1752#line 33
1753  excep = (struct __UTAC__EXCEPTION *)exception;
1754#line 34
1755  tmp = malloc(24UL);
1756#line 34
1757  cf = (struct __UTAC__CFLOW_FUNC *)tmp;
1758#line 36
1759  mem_15 = (int (**)(int  , int  ))cf;
1760#line 36
1761  *mem_15 = cflow_func;
1762#line 37
1763  __cil_tmp7 = (unsigned long )cf;
1764#line 37
1765  __cil_tmp8 = __cil_tmp7 + 8;
1766#line 37
1767  mem_16 = (int *)__cil_tmp8;
1768#line 37
1769  *mem_16 = val;
1770#line 38
1771  __cil_tmp9 = (unsigned long )cf;
1772#line 38
1773  __cil_tmp10 = __cil_tmp9 + 16;
1774#line 38
1775  __cil_tmp11 = (unsigned long )excep;
1776#line 38
1777  __cil_tmp12 = __cil_tmp11 + 24;
1778#line 38
1779  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
1780#line 38
1781  mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
1782#line 38
1783  *mem_17 = *mem_18;
1784#line 39
1785  __cil_tmp13 = (unsigned long )excep;
1786#line 39
1787  __cil_tmp14 = __cil_tmp13 + 24;
1788#line 39
1789  mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1790#line 39
1791  *mem_19 = cf;
1792  }
1793#line 654 "libacc.c"
1794  return;
1795}
1796}
1797#line 44 "libacc.c"
1798void __utac__exception__cf_handler_free(void *exception ) 
1799{ struct __UTAC__EXCEPTION *excep ;
1800  struct __UTAC__CFLOW_FUNC *cf ;
1801  struct __UTAC__CFLOW_FUNC *tmp ;
1802  unsigned long __cil_tmp5 ;
1803  unsigned long __cil_tmp6 ;
1804  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1805  unsigned long __cil_tmp8 ;
1806  unsigned long __cil_tmp9 ;
1807  unsigned long __cil_tmp10 ;
1808  unsigned long __cil_tmp11 ;
1809  void *__cil_tmp12 ;
1810  unsigned long __cil_tmp13 ;
1811  unsigned long __cil_tmp14 ;
1812  struct __UTAC__CFLOW_FUNC **mem_15 ;
1813  struct __UTAC__CFLOW_FUNC **mem_16 ;
1814  struct __UTAC__CFLOW_FUNC **mem_17 ;
1815
1816  {
1817#line 45
1818  excep = (struct __UTAC__EXCEPTION *)exception;
1819#line 46
1820  __cil_tmp5 = (unsigned long )excep;
1821#line 46
1822  __cil_tmp6 = __cil_tmp5 + 24;
1823#line 46
1824  mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1825#line 46
1826  cf = *mem_15;
1827  {
1828#line 49
1829  while (1) {
1830    while_0_continue: /* CIL Label */ ;
1831    {
1832#line 49
1833    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1834#line 49
1835    __cil_tmp8 = (unsigned long )__cil_tmp7;
1836#line 49
1837    __cil_tmp9 = (unsigned long )cf;
1838#line 49
1839    if (__cil_tmp9 != __cil_tmp8) {
1840
1841    } else {
1842      goto while_0_break;
1843    }
1844    }
1845    {
1846#line 50
1847    tmp = cf;
1848#line 51
1849    __cil_tmp10 = (unsigned long )cf;
1850#line 51
1851    __cil_tmp11 = __cil_tmp10 + 16;
1852#line 51
1853    mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
1854#line 51
1855    cf = *mem_16;
1856#line 52
1857    __cil_tmp12 = (void *)tmp;
1858#line 52
1859    free(__cil_tmp12);
1860    }
1861  }
1862  while_0_break: /* CIL Label */ ;
1863  }
1864#line 55
1865  __cil_tmp13 = (unsigned long )excep;
1866#line 55
1867  __cil_tmp14 = __cil_tmp13 + 24;
1868#line 55
1869  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1870#line 55
1871  *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
1872#line 694 "libacc.c"
1873  return;
1874}
1875}
1876#line 59 "libacc.c"
1877void __utac__exception__cf_handler_reset(void *exception ) 
1878{ struct __UTAC__EXCEPTION *excep ;
1879  struct __UTAC__CFLOW_FUNC *cf ;
1880  unsigned long __cil_tmp5 ;
1881  unsigned long __cil_tmp6 ;
1882  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1883  unsigned long __cil_tmp8 ;
1884  unsigned long __cil_tmp9 ;
1885  int (*__cil_tmp10)(int  , int  ) ;
1886  unsigned long __cil_tmp11 ;
1887  unsigned long __cil_tmp12 ;
1888  int __cil_tmp13 ;
1889  unsigned long __cil_tmp14 ;
1890  unsigned long __cil_tmp15 ;
1891  struct __UTAC__CFLOW_FUNC **mem_16 ;
1892  int (**mem_17)(int  , int  ) ;
1893  int *mem_18 ;
1894  struct __UTAC__CFLOW_FUNC **mem_19 ;
1895
1896  {
1897#line 60
1898  excep = (struct __UTAC__EXCEPTION *)exception;
1899#line 61
1900  __cil_tmp5 = (unsigned long )excep;
1901#line 61
1902  __cil_tmp6 = __cil_tmp5 + 24;
1903#line 61
1904  mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1905#line 61
1906  cf = *mem_16;
1907  {
1908#line 64
1909  while (1) {
1910    while_1_continue: /* CIL Label */ ;
1911    {
1912#line 64
1913    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1914#line 64
1915    __cil_tmp8 = (unsigned long )__cil_tmp7;
1916#line 64
1917    __cil_tmp9 = (unsigned long )cf;
1918#line 64
1919    if (__cil_tmp9 != __cil_tmp8) {
1920
1921    } else {
1922      goto while_1_break;
1923    }
1924    }
1925    {
1926#line 65
1927    mem_17 = (int (**)(int  , int  ))cf;
1928#line 65
1929    __cil_tmp10 = *mem_17;
1930#line 65
1931    __cil_tmp11 = (unsigned long )cf;
1932#line 65
1933    __cil_tmp12 = __cil_tmp11 + 8;
1934#line 65
1935    mem_18 = (int *)__cil_tmp12;
1936#line 65
1937    __cil_tmp13 = *mem_18;
1938#line 65
1939    (*__cil_tmp10)(4, __cil_tmp13);
1940#line 66
1941    __cil_tmp14 = (unsigned long )cf;
1942#line 66
1943    __cil_tmp15 = __cil_tmp14 + 16;
1944#line 66
1945    mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
1946#line 66
1947    cf = *mem_19;
1948    }
1949  }
1950  while_1_break: /* CIL Label */ ;
1951  }
1952  {
1953#line 69
1954  __utac__exception__cf_handler_free(exception);
1955  }
1956#line 732 "libacc.c"
1957  return;
1958}
1959}
1960#line 80 "libacc.c"
1961void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
1962#line 80 "libacc.c"
1963static struct __ACC__ERR *head  =    (struct __ACC__ERR *)0;
1964#line 79 "libacc.c"
1965void *__utac__error_stack_mgt(void *env , int mode , int count ) 
1966{ void *retValue_acc ;
1967  struct __ACC__ERR *new ;
1968  void *tmp ;
1969  struct __ACC__ERR *temp ;
1970  struct __ACC__ERR *next ;
1971  void *excep ;
1972  unsigned long __cil_tmp10 ;
1973  unsigned long __cil_tmp11 ;
1974  unsigned long __cil_tmp12 ;
1975  unsigned long __cil_tmp13 ;
1976  void *__cil_tmp14 ;
1977  unsigned long __cil_tmp15 ;
1978  unsigned long __cil_tmp16 ;
1979  void *__cil_tmp17 ;
1980  void **mem_18 ;
1981  struct __ACC__ERR **mem_19 ;
1982  struct __ACC__ERR **mem_20 ;
1983  void **mem_21 ;
1984  struct __ACC__ERR **mem_22 ;
1985  void **mem_23 ;
1986  void **mem_24 ;
1987
1988  {
1989#line 82 "libacc.c"
1990  if (count == 0) {
1991#line 758 "libacc.c"
1992    return (retValue_acc);
1993  } else {
1994
1995  }
1996#line 86 "libacc.c"
1997  if (mode == 0) {
1998    {
1999#line 87
2000    tmp = malloc(16UL);
2001#line 87
2002    new = (struct __ACC__ERR *)tmp;
2003#line 88
2004    mem_18 = (void **)new;
2005#line 88
2006    *mem_18 = env;
2007#line 89
2008    __cil_tmp10 = (unsigned long )new;
2009#line 89
2010    __cil_tmp11 = __cil_tmp10 + 8;
2011#line 89
2012    mem_19 = (struct __ACC__ERR **)__cil_tmp11;
2013#line 89
2014    *mem_19 = head;
2015#line 90
2016    head = new;
2017#line 776 "libacc.c"
2018    retValue_acc = (void *)new;
2019    }
2020#line 778
2021    return (retValue_acc);
2022  } else {
2023
2024  }
2025#line 94 "libacc.c"
2026  if (mode == 1) {
2027#line 95
2028    temp = head;
2029    {
2030#line 98
2031    while (1) {
2032      while_2_continue: /* CIL Label */ ;
2033#line 98
2034      if (count > 1) {
2035
2036      } else {
2037        goto while_2_break;
2038      }
2039      {
2040#line 99
2041      __cil_tmp12 = (unsigned long )temp;
2042#line 99
2043      __cil_tmp13 = __cil_tmp12 + 8;
2044#line 99
2045      mem_20 = (struct __ACC__ERR **)__cil_tmp13;
2046#line 99
2047      next = *mem_20;
2048#line 100
2049      mem_21 = (void **)temp;
2050#line 100
2051      excep = *mem_21;
2052#line 101
2053      __cil_tmp14 = (void *)temp;
2054#line 101
2055      free(__cil_tmp14);
2056#line 102
2057      __utac__exception__cf_handler_reset(excep);
2058#line 103
2059      temp = next;
2060#line 104
2061      count = count - 1;
2062      }
2063    }
2064    while_2_break: /* CIL Label */ ;
2065    }
2066    {
2067#line 107
2068    __cil_tmp15 = (unsigned long )temp;
2069#line 107
2070    __cil_tmp16 = __cil_tmp15 + 8;
2071#line 107
2072    mem_22 = (struct __ACC__ERR **)__cil_tmp16;
2073#line 107
2074    head = *mem_22;
2075#line 108
2076    mem_23 = (void **)temp;
2077#line 108
2078    excep = *mem_23;
2079#line 109
2080    __cil_tmp17 = (void *)temp;
2081#line 109
2082    free(__cil_tmp17);
2083#line 110
2084    __utac__exception__cf_handler_reset(excep);
2085#line 820 "libacc.c"
2086    retValue_acc = excep;
2087    }
2088#line 822
2089    return (retValue_acc);
2090  } else {
2091
2092  }
2093#line 114
2094  if (mode == 2) {
2095#line 118 "libacc.c"
2096    if (head) {
2097#line 831
2098      mem_24 = (void **)head;
2099#line 831
2100      retValue_acc = *mem_24;
2101#line 833
2102      return (retValue_acc);
2103    } else {
2104#line 837 "libacc.c"
2105      retValue_acc = (void *)0;
2106#line 839
2107      return (retValue_acc);
2108    }
2109  } else {
2110
2111  }
2112#line 846 "libacc.c"
2113  return (retValue_acc);
2114}
2115}
2116#line 122 "libacc.c"
2117void *__utac__get_this_arg(int i , struct JoinPoint *this ) 
2118{ void *retValue_acc ;
2119  unsigned long __cil_tmp4 ;
2120  unsigned long __cil_tmp5 ;
2121  int __cil_tmp6 ;
2122  int __cil_tmp7 ;
2123  unsigned long __cil_tmp8 ;
2124  unsigned long __cil_tmp9 ;
2125  void **__cil_tmp10 ;
2126  void **__cil_tmp11 ;
2127  int *mem_12 ;
2128  void ***mem_13 ;
2129
2130  {
2131#line 123
2132  if (i > 0) {
2133    {
2134#line 123
2135    __cil_tmp4 = (unsigned long )this;
2136#line 123
2137    __cil_tmp5 = __cil_tmp4 + 16;
2138#line 123
2139    mem_12 = (int *)__cil_tmp5;
2140#line 123
2141    __cil_tmp6 = *mem_12;
2142#line 123
2143    if (i <= __cil_tmp6) {
2144
2145    } else {
2146      {
2147#line 123
2148      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2149                    123U, "__utac__get_this_arg");
2150      }
2151    }
2152    }
2153  } else {
2154    {
2155#line 123
2156    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2157                  123U, "__utac__get_this_arg");
2158    }
2159  }
2160#line 870 "libacc.c"
2161  __cil_tmp7 = i - 1;
2162#line 870
2163  __cil_tmp8 = (unsigned long )this;
2164#line 870
2165  __cil_tmp9 = __cil_tmp8 + 8;
2166#line 870
2167  mem_13 = (void ***)__cil_tmp9;
2168#line 870
2169  __cil_tmp10 = *mem_13;
2170#line 870
2171  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
2172#line 870
2173  retValue_acc = *__cil_tmp11;
2174#line 872
2175  return (retValue_acc);
2176#line 879
2177  return (retValue_acc);
2178}
2179}
2180#line 129 "libacc.c"
2181char const   *__utac__get_this_argtype(int i , struct JoinPoint *this ) 
2182{ char const   *retValue_acc ;
2183  unsigned long __cil_tmp4 ;
2184  unsigned long __cil_tmp5 ;
2185  int __cil_tmp6 ;
2186  int __cil_tmp7 ;
2187  unsigned long __cil_tmp8 ;
2188  unsigned long __cil_tmp9 ;
2189  char const   **__cil_tmp10 ;
2190  char const   **__cil_tmp11 ;
2191  int *mem_12 ;
2192  char const   ***mem_13 ;
2193
2194  {
2195#line 131
2196  if (i > 0) {
2197    {
2198#line 131
2199    __cil_tmp4 = (unsigned long )this;
2200#line 131
2201    __cil_tmp5 = __cil_tmp4 + 16;
2202#line 131
2203    mem_12 = (int *)__cil_tmp5;
2204#line 131
2205    __cil_tmp6 = *mem_12;
2206#line 131
2207    if (i <= __cil_tmp6) {
2208
2209    } else {
2210      {
2211#line 131
2212      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2213                    131U, "__utac__get_this_argtype");
2214      }
2215    }
2216    }
2217  } else {
2218    {
2219#line 131
2220    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2221                  131U, "__utac__get_this_argtype");
2222    }
2223  }
2224#line 903 "libacc.c"
2225  __cil_tmp7 = i - 1;
2226#line 903
2227  __cil_tmp8 = (unsigned long )this;
2228#line 903
2229  __cil_tmp9 = __cil_tmp8 + 24;
2230#line 903
2231  mem_13 = (char const   ***)__cil_tmp9;
2232#line 903
2233  __cil_tmp10 = *mem_13;
2234#line 903
2235  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
2236#line 903
2237  retValue_acc = *__cil_tmp11;
2238#line 905
2239  return (retValue_acc);
2240#line 912
2241  return (retValue_acc);
2242}
2243}
2244#line 1 "Test.o"
2245#pragma merger(0,"Test.i","")
2246#line 359 "/usr/include/stdio.h"
2247extern int printf(char const   * __restrict  __format  , ...) ;
2248#line 688
2249extern int puts(char const   *__s ) ;
2250#line 8 "featureselect.h"
2251int __SELECTED_FEATURE_Base  ;
2252#line 11 "featureselect.h"
2253int __SELECTED_FEATURE_Keys  ;
2254#line 14 "featureselect.h"
2255int __SELECTED_FEATURE_Encrypt  ;
2256#line 17 "featureselect.h"
2257int __SELECTED_FEATURE_AutoResponder  ;
2258#line 20 "featureselect.h"
2259int __SELECTED_FEATURE_AddressBook  ;
2260#line 23 "featureselect.h"
2261int __SELECTED_FEATURE_Sign  ;
2262#line 26 "featureselect.h"
2263int __SELECTED_FEATURE_Forward  ;
2264#line 29 "featureselect.h"
2265int __SELECTED_FEATURE_Verify  ;
2266#line 32 "featureselect.h"
2267int __SELECTED_FEATURE_Decrypt  ;
2268#line 35 "featureselect.h"
2269int __GUIDSL_ROOT_PRODUCTION  ;
2270#line 37 "featureselect.h"
2271int __GUIDSL_NON_TERMINAL_main  ;
2272#line 43
2273void select_features(void) ;
2274#line 45
2275void select_helpers(void) ;
2276#line 47
2277int valid_product(void) ;
2278#line 17 "Client.h"
2279int is_queue_empty(void) ;
2280#line 19
2281int get_queued_client(void) ;
2282#line 21
2283int get_queued_email(void) ;
2284#line 26
2285void outgoing(int client , int msg ) ;
2286#line 35
2287void sendEmail(int sender , int receiver ) ;
2288#line 44
2289void generateKeyPair(int client , int seed ) ;
2290#line 2 "Test.h"
2291int bob  ;
2292#line 5 "Test.h"
2293int rjh  ;
2294#line 8 "Test.h"
2295int chuck  ;
2296#line 11
2297void setup_bob(int bob___0 ) ;
2298#line 14
2299void setup_rjh(int rjh___0 ) ;
2300#line 17
2301void setup_chuck(int chuck___0 ) ;
2302#line 23
2303void bobToRjh(void) ;
2304#line 26
2305void rjhToBob(void) ;
2306#line 29
2307void test(void) ;
2308#line 32
2309void setup(void) ;
2310#line 35
2311int main(void) ;
2312#line 36
2313void bobKeyAdd(void) ;
2314#line 39
2315void bobKeyAddChuck(void) ;
2316#line 42
2317void rjhKeyAdd(void) ;
2318#line 45
2319void rjhKeyAddChuck(void) ;
2320#line 48
2321void chuckKeyAdd(void) ;
2322#line 51
2323void bobKeyChange(void) ;
2324#line 54
2325void rjhKeyChange(void) ;
2326#line 57
2327void rjhDeletePrivateKey(void) ;
2328#line 60
2329void chuckKeyAddRjh(void) ;
2330#line 61
2331void rjhEnableForwarding(void) ;
2332#line 18 "Test.c"
2333void setup_bob__wrappee__Base(int bob___0 ) 
2334{ 
2335
2336  {
2337  {
2338#line 19
2339  setClientId(bob___0, bob___0);
2340  }
2341#line 1330 "Test.c"
2342  return;
2343}
2344}
2345#line 23 "Test.c"
2346void setup_bob(int bob___0 ) 
2347{ 
2348
2349  {
2350  {
2351#line 24
2352  setup_bob__wrappee__Base(bob___0);
2353#line 25
2354  setClientPrivateKey(bob___0, 123);
2355  }
2356#line 1352 "Test.c"
2357  return;
2358}
2359}
2360#line 33 "Test.c"
2361void setup_rjh__wrappee__Base(int rjh___0 ) 
2362{ 
2363
2364  {
2365  {
2366#line 34
2367  setClientId(rjh___0, rjh___0);
2368  }
2369#line 1372 "Test.c"
2370  return;
2371}
2372}
2373#line 40 "Test.c"
2374void setup_rjh(int rjh___0 ) 
2375{ 
2376
2377  {
2378  {
2379#line 42
2380  setup_rjh__wrappee__Base(rjh___0);
2381#line 43
2382  setClientPrivateKey(rjh___0, 456);
2383  }
2384#line 1394 "Test.c"
2385  return;
2386}
2387}
2388#line 50 "Test.c"
2389void setup_chuck__wrappee__Base(int chuck___0 ) 
2390{ 
2391
2392  {
2393  {
2394#line 51
2395  setClientId(chuck___0, chuck___0);
2396  }
2397#line 1414 "Test.c"
2398  return;
2399}
2400}
2401#line 57 "Test.c"
2402void setup_chuck(int chuck___0 ) 
2403{ 
2404
2405  {
2406  {
2407#line 58
2408  setup_chuck__wrappee__Base(chuck___0);
2409#line 59
2410  setClientPrivateKey(chuck___0, 789);
2411  }
2412#line 1436 "Test.c"
2413  return;
2414}
2415}
2416#line 69 "Test.c"
2417void bobToRjh(void) 
2418{ int tmp ;
2419  int tmp___0 ;
2420  int tmp___1 ;
2421
2422  {
2423  {
2424#line 71
2425  puts("Please enter a subject and a message body.\n");
2426#line 72
2427  sendEmail(bob, rjh);
2428#line 73
2429  tmp___1 = is_queue_empty();
2430  }
2431#line 73
2432  if (tmp___1) {
2433
2434  } else {
2435    {
2436#line 74
2437    tmp = get_queued_email();
2438#line 74
2439    tmp___0 = get_queued_client();
2440#line 74
2441    outgoing(tmp___0, tmp);
2442    }
2443  }
2444#line 1463 "Test.c"
2445  return;
2446}
2447}
2448#line 81 "Test.c"
2449void rjhToBob(void) 
2450{ 
2451
2452  {
2453  {
2454#line 83
2455  puts("Please enter a subject and a message body.\n");
2456#line 84
2457  sendEmail(rjh, bob);
2458  }
2459#line 1485 "Test.c"
2460  return;
2461}
2462}
2463#line 88 "Test.c"
2464#line 95 "Test.c"
2465void setup(void) 
2466{ char const   * __restrict  __cil_tmp1 ;
2467  char const   * __restrict  __cil_tmp2 ;
2468  char const   * __restrict  __cil_tmp3 ;
2469
2470  {
2471  {
2472#line 96
2473  bob = 1;
2474#line 97
2475  setup_bob(bob);
2476#line 98
2477  __cil_tmp1 = (char const   * __restrict  )"bob: %d\n";
2478#line 98
2479  printf(__cil_tmp1, bob);
2480#line 100
2481  rjh = 2;
2482#line 101
2483  setup_rjh(rjh);
2484#line 102
2485  __cil_tmp2 = (char const   * __restrict  )"rjh: %d\n";
2486#line 102
2487  printf(__cil_tmp2, rjh);
2488#line 104
2489  chuck = 3;
2490#line 105
2491  setup_chuck(chuck);
2492#line 106
2493  __cil_tmp3 = (char const   * __restrict  )"chuck: %d\n";
2494#line 106
2495  printf(__cil_tmp3, chuck);
2496  }
2497#line 1556 "Test.c"
2498  return;
2499}
2500}
2501#line 112 "Test.c"
2502int main(void) 
2503{ int retValue_acc ;
2504  int tmp ;
2505
2506  {
2507  {
2508#line 113
2509  select_helpers();
2510#line 114
2511  select_features();
2512#line 115
2513  tmp = valid_product();
2514  }
2515#line 115
2516  if (tmp) {
2517    {
2518#line 116
2519    setup();
2520#line 117
2521    test();
2522    }
2523  } else {
2524
2525  }
2526#line 1587 "Test.c"
2527  return (retValue_acc);
2528}
2529}
2530#line 125 "Test.c"
2531void bobKeyAdd(void) 
2532{ int tmp ;
2533  int tmp___0 ;
2534  char const   * __restrict  __cil_tmp3 ;
2535  char const   * __restrict  __cil_tmp4 ;
2536
2537  {
2538  {
2539#line 126
2540  createClientKeyringEntry(bob);
2541#line 127
2542  setClientKeyringUser(bob, 0, 2);
2543#line 128
2544  setClientKeyringPublicKey(bob, 0, 456);
2545#line 129
2546  puts("bob added rjhs key");
2547#line 130
2548  tmp = getClientKeyringUser(bob, 0);
2549#line 130
2550  __cil_tmp3 = (char const   * __restrict  )"%d\n";
2551#line 130
2552  printf(__cil_tmp3, tmp);
2553#line 131
2554  tmp___0 = getClientKeyringPublicKey(bob, 0);
2555#line 131
2556  __cil_tmp4 = (char const   * __restrict  )"%d\n";
2557#line 131
2558  printf(__cil_tmp4, tmp___0);
2559  }
2560#line 1621 "Test.c"
2561  return;
2562}
2563}
2564#line 137 "Test.c"
2565void rjhKeyAdd(void) 
2566{ 
2567
2568  {
2569  {
2570#line 138
2571  createClientKeyringEntry(rjh);
2572#line 139
2573  setClientKeyringUser(rjh, 0, 1);
2574#line 140
2575  setClientKeyringPublicKey(rjh, 0, 123);
2576  }
2577#line 1645 "Test.c"
2578  return;
2579}
2580}
2581#line 146 "Test.c"
2582void rjhKeyAddChuck(void) 
2583{ 
2584
2585  {
2586  {
2587#line 147
2588  createClientKeyringEntry(rjh);
2589#line 148
2590  setClientKeyringUser(rjh, 0, 3);
2591#line 149
2592  setClientKeyringPublicKey(rjh, 0, 789);
2593  }
2594#line 1669 "Test.c"
2595  return;
2596}
2597}
2598#line 156 "Test.c"
2599void bobKeyAddChuck(void) 
2600{ 
2601
2602  {
2603  {
2604#line 157
2605  createClientKeyringEntry(bob);
2606#line 158
2607  setClientKeyringUser(bob, 1, 3);
2608#line 159
2609  setClientKeyringPublicKey(bob, 1, 789);
2610  }
2611#line 1693 "Test.c"
2612  return;
2613}
2614}
2615#line 165 "Test.c"
2616void chuckKeyAdd(void) 
2617{ 
2618
2619  {
2620  {
2621#line 166
2622  createClientKeyringEntry(chuck);
2623#line 167
2624  setClientKeyringUser(chuck, 0, 1);
2625#line 168
2626  setClientKeyringPublicKey(chuck, 0, 123);
2627  }
2628#line 1717 "Test.c"
2629  return;
2630}
2631}
2632#line 174 "Test.c"
2633void chuckKeyAddRjh(void) 
2634{ 
2635
2636  {
2637  {
2638#line 175
2639  createClientKeyringEntry(chuck);
2640#line 176
2641  setClientKeyringUser(chuck, 0, 2);
2642#line 177
2643  setClientKeyringPublicKey(chuck, 0, 456);
2644  }
2645#line 1741 "Test.c"
2646  return;
2647}
2648}
2649#line 183 "Test.c"
2650void rjhDeletePrivateKey(void) 
2651{ 
2652
2653  {
2654  {
2655#line 184
2656  setClientPrivateKey(rjh, 0);
2657  }
2658#line 1761 "Test.c"
2659  return;
2660}
2661}
2662#line 190 "Test.c"
2663void bobKeyChange(void) 
2664{ 
2665
2666  {
2667  {
2668#line 191
2669  generateKeyPair(bob, 777);
2670  }
2671#line 1781 "Test.c"
2672  return;
2673}
2674}
2675#line 197 "Test.c"
2676void rjhKeyChange(void) 
2677{ 
2678
2679  {
2680  {
2681#line 198
2682  generateKeyPair(rjh, 666);
2683  }
2684#line 1801 "Test.c"
2685  return;
2686}
2687}
2688#line 204 "Test.c"
2689void rjhEnableForwarding(void) 
2690{ 
2691
2692  {
2693  {
2694#line 205
2695  setClientForwardReceiver(rjh, chuck);
2696  }
2697#line 1821 "Test.c"
2698  return;
2699}
2700}
2701#line 1 "EmailLib.o"
2702#pragma merger(0,"EmailLib.i","")
2703#line 4 "EmailLib.h"
2704int initEmail(void) ;
2705#line 6
2706int getEmailId(int handle ) ;
2707#line 8
2708void setEmailId(int handle , int value ) ;
2709#line 10
2710int getEmailFrom(int handle ) ;
2711#line 12
2712void setEmailFrom(int handle , int value ) ;
2713#line 14
2714int getEmailTo(int handle ) ;
2715#line 16
2716void setEmailTo(int handle , int value ) ;
2717#line 18
2718char *getEmailSubject(int handle ) ;
2719#line 20
2720void setEmailSubject(int handle , char *value ) ;
2721#line 22
2722char *getEmailBody(int handle ) ;
2723#line 24
2724void setEmailBody(int handle , char *value ) ;
2725#line 26
2726int isEncrypted(int handle ) ;
2727#line 28
2728void setEmailIsEncrypted(int handle , int value ) ;
2729#line 30
2730int getEmailEncryptionKey(int handle ) ;
2731#line 32
2732void setEmailEncryptionKey(int handle , int value ) ;
2733#line 34
2734int isSigned(int handle ) ;
2735#line 36
2736void setEmailIsSigned(int handle , int value ) ;
2737#line 38
2738int getEmailSignKey(int handle ) ;
2739#line 40
2740void setEmailSignKey(int handle , int value ) ;
2741#line 42
2742int isVerified(int handle ) ;
2743#line 44
2744void setEmailIsSignatureVerified(int handle , int value ) ;
2745#line 5 "EmailLib.c"
2746int __ste_Email_counter  =    0;
2747#line 7 "EmailLib.c"
2748int initEmail(void) 
2749{ int retValue_acc ;
2750
2751  {
2752#line 12 "EmailLib.c"
2753  if (__ste_Email_counter < 2) {
2754#line 670
2755    __ste_Email_counter = __ste_Email_counter + 1;
2756#line 670
2757    retValue_acc = __ste_Email_counter;
2758#line 672
2759    return (retValue_acc);
2760  } else {
2761#line 678 "EmailLib.c"
2762    retValue_acc = -1;
2763#line 680
2764    return (retValue_acc);
2765  }
2766#line 687 "EmailLib.c"
2767  return (retValue_acc);
2768}
2769}
2770#line 15 "EmailLib.c"
2771int __ste_email_id0  =    0;
2772#line 17 "EmailLib.c"
2773int __ste_email_id1  =    0;
2774#line 19 "EmailLib.c"
2775int getEmailId(int handle ) 
2776{ int retValue_acc ;
2777
2778  {
2779#line 26 "EmailLib.c"
2780  if (handle == 1) {
2781#line 716
2782    retValue_acc = __ste_email_id0;
2783#line 718
2784    return (retValue_acc);
2785  } else {
2786#line 720
2787    if (handle == 2) {
2788#line 725
2789      retValue_acc = __ste_email_id1;
2790#line 727
2791      return (retValue_acc);
2792    } else {
2793#line 733 "EmailLib.c"
2794      retValue_acc = 0;
2795#line 735
2796      return (retValue_acc);
2797    }
2798  }
2799#line 742 "EmailLib.c"
2800  return (retValue_acc);
2801}
2802}
2803#line 29 "EmailLib.c"
2804void setEmailId(int handle , int value ) 
2805{ 
2806
2807  {
2808#line 35
2809  if (handle == 1) {
2810#line 31
2811    __ste_email_id0 = value;
2812  } else {
2813#line 32
2814    if (handle == 2) {
2815#line 33
2816      __ste_email_id1 = value;
2817    } else {
2818
2819    }
2820  }
2821#line 773 "EmailLib.c"
2822  return;
2823}
2824}
2825#line 37 "EmailLib.c"
2826int __ste_email_from0  =    0;
2827#line 39 "EmailLib.c"
2828int __ste_email_from1  =    0;
2829#line 41 "EmailLib.c"
2830int getEmailFrom(int handle ) 
2831{ int retValue_acc ;
2832
2833  {
2834#line 48 "EmailLib.c"
2835  if (handle == 1) {
2836#line 798
2837    retValue_acc = __ste_email_from0;
2838#line 800
2839    return (retValue_acc);
2840  } else {
2841#line 802
2842    if (handle == 2) {
2843#line 807
2844      retValue_acc = __ste_email_from1;
2845#line 809
2846      return (retValue_acc);
2847    } else {
2848#line 815 "EmailLib.c"
2849      retValue_acc = 0;
2850#line 817
2851      return (retValue_acc);
2852    }
2853  }
2854#line 824 "EmailLib.c"
2855  return (retValue_acc);
2856}
2857}
2858#line 51 "EmailLib.c"
2859void setEmailFrom(int handle , int value ) 
2860{ 
2861
2862  {
2863#line 57
2864  if (handle == 1) {
2865#line 53
2866    __ste_email_from0 = value;
2867  } else {
2868#line 54
2869    if (handle == 2) {
2870#line 55
2871      __ste_email_from1 = value;
2872    } else {
2873
2874    }
2875  }
2876#line 855 "EmailLib.c"
2877  return;
2878}
2879}
2880#line 59 "EmailLib.c"
2881int __ste_email_to0  =    0;
2882#line 61 "EmailLib.c"
2883int __ste_email_to1  =    0;
2884#line 63 "EmailLib.c"
2885int getEmailTo(int handle ) 
2886{ int retValue_acc ;
2887
2888  {
2889#line 70 "EmailLib.c"
2890  if (handle == 1) {
2891#line 880
2892    retValue_acc = __ste_email_to0;
2893#line 882
2894    return (retValue_acc);
2895  } else {
2896#line 884
2897    if (handle == 2) {
2898#line 889
2899      retValue_acc = __ste_email_to1;
2900#line 891
2901      return (retValue_acc);
2902    } else {
2903#line 897 "EmailLib.c"
2904      retValue_acc = 0;
2905#line 899
2906      return (retValue_acc);
2907    }
2908  }
2909#line 906 "EmailLib.c"
2910  return (retValue_acc);
2911}
2912}
2913#line 73 "EmailLib.c"
2914void setEmailTo(int handle , int value ) 
2915{ 
2916
2917  {
2918#line 79
2919  if (handle == 1) {
2920#line 75
2921    __ste_email_to0 = value;
2922  } else {
2923#line 76
2924    if (handle == 2) {
2925#line 77
2926      __ste_email_to1 = value;
2927    } else {
2928
2929    }
2930  }
2931#line 937 "EmailLib.c"
2932  return;
2933}
2934}
2935#line 81 "EmailLib.c"
2936char *__ste_email_subject0  ;
2937#line 83 "EmailLib.c"
2938char *__ste_email_subject1  ;
2939#line 85 "EmailLib.c"
2940char *getEmailSubject(int handle ) 
2941{ char *retValue_acc ;
2942  void *__cil_tmp3 ;
2943
2944  {
2945#line 92 "EmailLib.c"
2946  if (handle == 1) {
2947#line 962
2948    retValue_acc = __ste_email_subject0;
2949#line 964
2950    return (retValue_acc);
2951  } else {
2952#line 966
2953    if (handle == 2) {
2954#line 971
2955      retValue_acc = __ste_email_subject1;
2956#line 973
2957      return (retValue_acc);
2958    } else {
2959#line 979 "EmailLib.c"
2960      __cil_tmp3 = (void *)0;
2961#line 979
2962      retValue_acc = (char *)__cil_tmp3;
2963#line 981
2964      return (retValue_acc);
2965    }
2966  }
2967#line 988 "EmailLib.c"
2968  return (retValue_acc);
2969}
2970}
2971#line 95 "EmailLib.c"
2972void setEmailSubject(int handle , char *value ) 
2973{ 
2974
2975  {
2976#line 101
2977  if (handle == 1) {
2978#line 97
2979    __ste_email_subject0 = value;
2980  } else {
2981#line 98
2982    if (handle == 2) {
2983#line 99
2984      __ste_email_subject1 = value;
2985    } else {
2986
2987    }
2988  }
2989#line 1019 "EmailLib.c"
2990  return;
2991}
2992}
2993#line 103 "EmailLib.c"
2994char *__ste_email_body0  =    (char *)0;
2995#line 105 "EmailLib.c"
2996char *__ste_email_body1  =    (char *)0;
2997#line 107 "EmailLib.c"
2998char *getEmailBody(int handle ) 
2999{ char *retValue_acc ;
3000  void *__cil_tmp3 ;
3001
3002  {
3003#line 114 "EmailLib.c"
3004  if (handle == 1) {
3005#line 1044
3006    retValue_acc = __ste_email_body0;
3007#line 1046
3008    return (retValue_acc);
3009  } else {
3010#line 1048
3011    if (handle == 2) {
3012#line 1053
3013      retValue_acc = __ste_email_body1;
3014#line 1055
3015      return (retValue_acc);
3016    } else {
3017#line 1061 "EmailLib.c"
3018      __cil_tmp3 = (void *)0;
3019#line 1061
3020      retValue_acc = (char *)__cil_tmp3;
3021#line 1063
3022      return (retValue_acc);
3023    }
3024  }
3025#line 1070 "EmailLib.c"
3026  return (retValue_acc);
3027}
3028}
3029#line 117 "EmailLib.c"
3030void setEmailBody(int handle , char *value ) 
3031{ 
3032
3033  {
3034#line 123
3035  if (handle == 1) {
3036#line 119
3037    __ste_email_body0 = value;
3038  } else {
3039#line 120
3040    if (handle == 2) {
3041#line 121
3042      __ste_email_body1 = value;
3043    } else {
3044
3045    }
3046  }
3047#line 1101 "EmailLib.c"
3048  return;
3049}
3050}
3051#line 125 "EmailLib.c"
3052int __ste_email_isEncrypted0  =    0;
3053#line 127 "EmailLib.c"
3054int __ste_email_isEncrypted1  =    0;
3055#line 129 "EmailLib.c"
3056int isEncrypted(int handle ) 
3057{ int retValue_acc ;
3058
3059  {
3060#line 136 "EmailLib.c"
3061  if (handle == 1) {
3062#line 1126
3063    retValue_acc = __ste_email_isEncrypted0;
3064#line 1128
3065    return (retValue_acc);
3066  } else {
3067#line 1130
3068    if (handle == 2) {
3069#line 1135
3070      retValue_acc = __ste_email_isEncrypted1;
3071#line 1137
3072      return (retValue_acc);
3073    } else {
3074#line 1143 "EmailLib.c"
3075      retValue_acc = 0;
3076#line 1145
3077      return (retValue_acc);
3078    }
3079  }
3080#line 1152 "EmailLib.c"
3081  return (retValue_acc);
3082}
3083}
3084#line 139 "EmailLib.c"
3085void setEmailIsEncrypted(int handle , int value ) 
3086{ 
3087
3088  {
3089#line 145
3090  if (handle == 1) {
3091#line 141
3092    __ste_email_isEncrypted0 = value;
3093  } else {
3094#line 142
3095    if (handle == 2) {
3096#line 143
3097      __ste_email_isEncrypted1 = value;
3098    } else {
3099
3100    }
3101  }
3102#line 1183 "EmailLib.c"
3103  return;
3104}
3105}
3106#line 147 "EmailLib.c"
3107int __ste_email_encryptionKey0  =    0;
3108#line 149 "EmailLib.c"
3109int __ste_email_encryptionKey1  =    0;
3110#line 151 "EmailLib.c"
3111int getEmailEncryptionKey(int handle ) 
3112{ int retValue_acc ;
3113
3114  {
3115#line 158 "EmailLib.c"
3116  if (handle == 1) {
3117#line 1208
3118    retValue_acc = __ste_email_encryptionKey0;
3119#line 1210
3120    return (retValue_acc);
3121  } else {
3122#line 1212
3123    if (handle == 2) {
3124#line 1217
3125      retValue_acc = __ste_email_encryptionKey1;
3126#line 1219
3127      return (retValue_acc);
3128    } else {
3129#line 1225 "EmailLib.c"
3130      retValue_acc = 0;
3131#line 1227
3132      return (retValue_acc);
3133    }
3134  }
3135#line 1234 "EmailLib.c"
3136  return (retValue_acc);
3137}
3138}
3139#line 161 "EmailLib.c"
3140void setEmailEncryptionKey(int handle , int value ) 
3141{ 
3142
3143  {
3144#line 167
3145  if (handle == 1) {
3146#line 163
3147    __ste_email_encryptionKey0 = value;
3148  } else {
3149#line 164
3150    if (handle == 2) {
3151#line 165
3152      __ste_email_encryptionKey1 = value;
3153    } else {
3154
3155    }
3156  }
3157#line 1265 "EmailLib.c"
3158  return;
3159}
3160}
3161#line 169 "EmailLib.c"
3162int __ste_email_isSigned0  =    0;
3163#line 171 "EmailLib.c"
3164int __ste_email_isSigned1  =    0;
3165#line 173 "EmailLib.c"
3166int isSigned(int handle ) 
3167{ int retValue_acc ;
3168
3169  {
3170#line 180 "EmailLib.c"
3171  if (handle == 1) {
3172#line 1290
3173    retValue_acc = __ste_email_isSigned0;
3174#line 1292
3175    return (retValue_acc);
3176  } else {
3177#line 1294
3178    if (handle == 2) {
3179#line 1299
3180      retValue_acc = __ste_email_isSigned1;
3181#line 1301
3182      return (retValue_acc);
3183    } else {
3184#line 1307 "EmailLib.c"
3185      retValue_acc = 0;
3186#line 1309
3187      return (retValue_acc);
3188    }
3189  }
3190#line 1316 "EmailLib.c"
3191  return (retValue_acc);
3192}
3193}
3194#line 183 "EmailLib.c"
3195void setEmailIsSigned(int handle , int value ) 
3196{ 
3197
3198  {
3199#line 189
3200  if (handle == 1) {
3201#line 185
3202    __ste_email_isSigned0 = value;
3203  } else {
3204#line 186
3205    if (handle == 2) {
3206#line 187
3207      __ste_email_isSigned1 = value;
3208    } else {
3209
3210    }
3211  }
3212#line 1347 "EmailLib.c"
3213  return;
3214}
3215}
3216#line 191 "EmailLib.c"
3217int __ste_email_signKey0  =    0;
3218#line 193 "EmailLib.c"
3219int __ste_email_signKey1  =    0;
3220#line 195 "EmailLib.c"
3221int getEmailSignKey(int handle ) 
3222{ int retValue_acc ;
3223
3224  {
3225#line 202 "EmailLib.c"
3226  if (handle == 1) {
3227#line 1372
3228    retValue_acc = __ste_email_signKey0;
3229#line 1374
3230    return (retValue_acc);
3231  } else {
3232#line 1376
3233    if (handle == 2) {
3234#line 1381
3235      retValue_acc = __ste_email_signKey1;
3236#line 1383
3237      return (retValue_acc);
3238    } else {
3239#line 1389 "EmailLib.c"
3240      retValue_acc = 0;
3241#line 1391
3242      return (retValue_acc);
3243    }
3244  }
3245#line 1398 "EmailLib.c"
3246  return (retValue_acc);
3247}
3248}
3249#line 205 "EmailLib.c"
3250void setEmailSignKey(int handle , int value ) 
3251{ 
3252
3253  {
3254#line 211
3255  if (handle == 1) {
3256#line 207
3257    __ste_email_signKey0 = value;
3258  } else {
3259#line 208
3260    if (handle == 2) {
3261#line 209
3262      __ste_email_signKey1 = value;
3263    } else {
3264
3265    }
3266  }
3267#line 1429 "EmailLib.c"
3268  return;
3269}
3270}
3271#line 213 "EmailLib.c"
3272int __ste_email_isSignatureVerified0  ;
3273#line 215 "EmailLib.c"
3274int __ste_email_isSignatureVerified1  ;
3275#line 217 "EmailLib.c"
3276int isVerified(int handle ) 
3277{ int retValue_acc ;
3278
3279  {
3280#line 224 "EmailLib.c"
3281  if (handle == 1) {
3282#line 1454
3283    retValue_acc = __ste_email_isSignatureVerified0;
3284#line 1456
3285    return (retValue_acc);
3286  } else {
3287#line 1458
3288    if (handle == 2) {
3289#line 1463
3290      retValue_acc = __ste_email_isSignatureVerified1;
3291#line 1465
3292      return (retValue_acc);
3293    } else {
3294#line 1471 "EmailLib.c"
3295      retValue_acc = 0;
3296#line 1473
3297      return (retValue_acc);
3298    }
3299  }
3300#line 1480 "EmailLib.c"
3301  return (retValue_acc);
3302}
3303}
3304#line 227 "EmailLib.c"
3305void setEmailIsSignatureVerified(int handle , int value ) 
3306{ 
3307
3308  {
3309#line 233
3310  if (handle == 1) {
3311#line 229
3312    __ste_email_isSignatureVerified0 = value;
3313  } else {
3314#line 230
3315    if (handle == 2) {
3316#line 231
3317      __ste_email_isSignatureVerified1 = value;
3318    } else {
3319
3320    }
3321  }
3322#line 1511 "EmailLib.c"
3323  return;
3324}
3325}
3326#line 1 "Client.o"
3327#pragma merger(0,"Client.i","")
3328#line 6 "Email.h"
3329void printMail(int msg ) ;
3330#line 9
3331int isReadable(int msg ) ;
3332#line 12
3333int createEmail(int from , int to ) ;
3334#line 14 "Client.h"
3335void queue(int client , int msg ) ;
3336#line 24
3337void mail(int client , int msg ) ;
3338#line 28
3339void deliver(int client , int msg ) ;
3340#line 30
3341void incoming(int client , int msg ) ;
3342#line 32
3343int createClient(char *name ) ;
3344#line 40
3345int isKeyPairValid(int publicKey , int privateKey ) ;
3346#line 46
3347void sign(int client , int msg ) ;
3348#line 48
3349void forward(int client , int msg ) ;
3350#line 50
3351void verify(int client , int msg ) ;
3352#line 6 "Client.c"
3353int queue_empty  =    1;
3354#line 9 "Client.c"
3355int queued_message  ;
3356#line 12 "Client.c"
3357int queued_client  ;
3358#line 13
3359void __utac_acc__SignForward_spec__1(int client , int msg ) ;
3360#line 18 "Client.c"
3361void mail(int client , int msg ) 
3362{ int __utac__ad__arg1 ;
3363  int __utac__ad__arg2 ;
3364  int tmp ;
3365
3366  {
3367  {
3368#line 726 "Client.c"
3369  __utac__ad__arg1 = client;
3370#line 727
3371  __utac__ad__arg2 = msg;
3372#line 728
3373  __utac_acc__SignForward_spec__1(__utac__ad__arg1, __utac__ad__arg2);
3374#line 19 "Client.c"
3375  puts("mail sent");
3376#line 20
3377  tmp = getEmailTo(msg);
3378#line 20
3379  incoming(tmp, msg);
3380  }
3381#line 745 "Client.c"
3382  return;
3383}
3384}
3385#line 27 "Client.c"
3386void outgoing__wrappee__Keys(int client , int msg ) 
3387{ int tmp ;
3388
3389  {
3390  {
3391#line 28
3392  tmp = getClientId(client);
3393#line 28
3394  setEmailFrom(msg, tmp);
3395#line 29
3396  mail(client, msg);
3397  }
3398#line 767 "Client.c"
3399  return;
3400}
3401}
3402#line 33 "Client.c"
3403void outgoing__wrappee__Encrypt(int client , int msg ) 
3404{ int receiver ;
3405  int tmp ;
3406  int pubkey ;
3407  int tmp___0 ;
3408
3409  {
3410  {
3411#line 36
3412  tmp = getEmailTo(msg);
3413#line 36
3414  receiver = tmp;
3415#line 37
3416  tmp___0 = findPublicKey(client, receiver);
3417#line 37
3418  pubkey = tmp___0;
3419  }
3420#line 38
3421  if (pubkey) {
3422    {
3423#line 39
3424    setEmailEncryptionKey(msg, pubkey);
3425#line 40
3426    setEmailIsEncrypted(msg, 1);
3427    }
3428  } else {
3429
3430  }
3431  {
3432#line 45
3433  outgoing__wrappee__Keys(client, msg);
3434  }
3435#line 802 "Client.c"
3436  return;
3437}
3438}
3439#line 51 "Client.c"
3440void outgoing(int client , int msg ) 
3441{ 
3442
3443  {
3444  {
3445#line 52
3446  sign(client, msg);
3447#line 53
3448  outgoing__wrappee__Encrypt(client, msg);
3449  }
3450#line 824 "Client.c"
3451  return;
3452}
3453}
3454#line 60 "Client.c"
3455void deliver(int client , int msg ) 
3456{ 
3457
3458  {
3459  {
3460#line 61
3461  puts("mail delivered\n");
3462  }
3463#line 844 "Client.c"
3464  return;
3465}
3466}
3467#line 68 "Client.c"
3468void incoming__wrappee__Sign(int client , int msg ) 
3469{ 
3470
3471  {
3472  {
3473#line 69
3474  deliver(client, msg);
3475  }
3476#line 864 "Client.c"
3477  return;
3478}
3479}
3480#line 75 "Client.c"
3481void incoming__wrappee__Forward(int client , int msg ) 
3482{ int fwreceiver ;
3483  int tmp ;
3484
3485  {
3486  {
3487#line 76
3488  incoming__wrappee__Sign(client, msg);
3489#line 77
3490  tmp = getClientForwardReceiver(client);
3491#line 77
3492  fwreceiver = tmp;
3493  }
3494#line 78
3495  if (fwreceiver) {
3496    {
3497#line 80
3498    setEmailTo(msg, fwreceiver);
3499#line 81
3500    forward(client, msg);
3501    }
3502  } else {
3503
3504  }
3505#line 895 "Client.c"
3506  return;
3507}
3508}
3509#line 89 "Client.c"
3510void incoming__wrappee__Verify(int client , int msg ) 
3511{ 
3512
3513  {
3514  {
3515#line 90
3516  verify(client, msg);
3517#line 91
3518  incoming__wrappee__Forward(client, msg);
3519  }
3520#line 917 "Client.c"
3521  return;
3522}
3523}
3524#line 96 "Client.c"
3525void incoming(int client , int msg ) 
3526{ int privkey ;
3527  int tmp ;
3528  int tmp___0 ;
3529  int tmp___1 ;
3530  int tmp___2 ;
3531
3532  {
3533  {
3534#line 99
3535  tmp = getClientPrivateKey(client);
3536#line 99
3537  privkey = tmp;
3538  }
3539#line 100
3540  if (privkey) {
3541    {
3542#line 108
3543    tmp___0 = isEncrypted(msg);
3544    }
3545#line 108
3546    if (tmp___0) {
3547      {
3548#line 108
3549      tmp___1 = getEmailEncryptionKey(msg);
3550#line 108
3551      tmp___2 = isKeyPairValid(tmp___1, privkey);
3552      }
3553#line 108
3554      if (tmp___2) {
3555        {
3556#line 105
3557        setEmailIsEncrypted(msg, 0);
3558#line 106
3559        setEmailEncryptionKey(msg, 0);
3560        }
3561      } else {
3562
3563      }
3564    } else {
3565
3566    }
3567  } else {
3568
3569  }
3570  {
3571#line 111
3572  incoming__wrappee__Verify(client, msg);
3573  }
3574#line 951 "Client.c"
3575  return;
3576}
3577}
3578#line 115 "Client.c"
3579int createClient(char *name ) 
3580{ int retValue_acc ;
3581  int client ;
3582  int tmp ;
3583
3584  {
3585  {
3586#line 116
3587  tmp = initClient();
3588#line 116
3589  client = tmp;
3590#line 973 "Client.c"
3591  retValue_acc = client;
3592  }
3593#line 975
3594  return (retValue_acc);
3595#line 982
3596  return (retValue_acc);
3597}
3598}
3599#line 123 "Client.c"
3600void sendEmail(int sender , int receiver ) 
3601{ int email ;
3602  int tmp ;
3603
3604  {
3605  {
3606#line 124
3607  tmp = createEmail(0, receiver);
3608#line 124
3609  email = tmp;
3610#line 125
3611  outgoing(sender, email);
3612  }
3613#line 1010 "Client.c"
3614  return;
3615}
3616}
3617#line 133 "Client.c"
3618void queue(int client , int msg ) 
3619{ 
3620
3621  {
3622#line 134
3623  queue_empty = 0;
3624#line 135
3625  queued_message = msg;
3626#line 136
3627  queued_client = client;
3628#line 1034 "Client.c"
3629  return;
3630}
3631}
3632#line 142 "Client.c"
3633int is_queue_empty(void) 
3634{ int retValue_acc ;
3635
3636  {
3637#line 1052 "Client.c"
3638  retValue_acc = queue_empty;
3639#line 1054
3640  return (retValue_acc);
3641#line 1061
3642  return (retValue_acc);
3643}
3644}
3645#line 149 "Client.c"
3646int get_queued_client(void) 
3647{ int retValue_acc ;
3648
3649  {
3650#line 1083 "Client.c"
3651  retValue_acc = queued_client;
3652#line 1085
3653  return (retValue_acc);
3654#line 1092
3655  return (retValue_acc);
3656}
3657}
3658#line 156 "Client.c"
3659int get_queued_email(void) 
3660{ int retValue_acc ;
3661
3662  {
3663#line 1114 "Client.c"
3664  retValue_acc = queued_message;
3665#line 1116
3666  return (retValue_acc);
3667#line 1123
3668  return (retValue_acc);
3669}
3670}
3671#line 162 "Client.c"
3672int isKeyPairValid(int publicKey , int privateKey ) 
3673{ int retValue_acc ;
3674  char const   * __restrict  __cil_tmp4 ;
3675
3676  {
3677  {
3678#line 163
3679  __cil_tmp4 = (char const   * __restrict  )"keypair valid %d %d";
3680#line 163
3681  printf(__cil_tmp4, publicKey, privateKey);
3682  }
3683#line 164 "Client.c"
3684  if (! publicKey) {
3685#line 1148 "Client.c"
3686    retValue_acc = 0;
3687#line 1150
3688    return (retValue_acc);
3689  } else {
3690#line 164 "Client.c"
3691    if (! privateKey) {
3692#line 1148 "Client.c"
3693      retValue_acc = 0;
3694#line 1150
3695      return (retValue_acc);
3696    } else {
3697
3698    }
3699  }
3700#line 1155 "Client.c"
3701  retValue_acc = privateKey == publicKey;
3702#line 1157
3703  return (retValue_acc);
3704#line 1164
3705  return (retValue_acc);
3706}
3707}
3708#line 172 "Client.c"
3709void generateKeyPair(int client , int seed ) 
3710{ 
3711
3712  {
3713  {
3714#line 173
3715  setClientPrivateKey(client, seed);
3716  }
3717#line 1188 "Client.c"
3718  return;
3719}
3720}
3721#line 178 "Client.c"
3722void sign(int client , int msg ) 
3723{ int privkey ;
3724  int tmp ;
3725
3726  {
3727  {
3728#line 179
3729  tmp = getClientPrivateKey(client);
3730#line 179
3731  privkey = tmp;
3732  }
3733#line 180
3734  if (! privkey) {
3735#line 181
3736    return;
3737  } else {
3738
3739  }
3740  {
3741#line 182
3742  setEmailIsSigned(msg, 1);
3743#line 183
3744  setEmailSignKey(msg, privkey);
3745  }
3746#line 1218 "Client.c"
3747  return;
3748}
3749}
3750#line 188 "Client.c"
3751void forward(int client , int msg ) 
3752{ 
3753
3754  {
3755  {
3756#line 189
3757  puts("Forwarding message.\n");
3758#line 190
3759  printMail(msg);
3760#line 191
3761  queue(client, msg);
3762  }
3763#line 1242 "Client.c"
3764  return;
3765}
3766}
3767#line 197 "Client.c"
3768void verify(int client , int msg ) 
3769{ int tmp ;
3770  int tmp___0 ;
3771  int pubkey ;
3772  int tmp___1 ;
3773  int tmp___2 ;
3774  int tmp___3 ;
3775  int tmp___4 ;
3776
3777  {
3778  {
3779#line 202
3780  tmp = isReadable(msg);
3781  }
3782#line 202
3783  if (tmp) {
3784    {
3785#line 202
3786    tmp___0 = isSigned(msg);
3787    }
3788#line 202
3789    if (tmp___0) {
3790
3791    } else {
3792#line 203
3793      return;
3794    }
3795  } else {
3796#line 203
3797    return;
3798  }
3799  {
3800#line 202
3801  tmp___1 = getEmailFrom(msg);
3802#line 202
3803  tmp___2 = findPublicKey(client, tmp___1);
3804#line 202
3805  pubkey = tmp___2;
3806  }
3807#line 203
3808  if (pubkey) {
3809    {
3810#line 203
3811    tmp___3 = getEmailSignKey(msg);
3812#line 203
3813    tmp___4 = isKeyPairValid(tmp___3, pubkey);
3814    }
3815#line 203
3816    if (tmp___4) {
3817      {
3818#line 204
3819      setEmailIsSignatureVerified(msg, 1);
3820      }
3821    } else {
3822
3823    }
3824  } else {
3825
3826  }
3827#line 1273 "Client.c"
3828  return;
3829}
3830}
3831#line 1 "SignForward_spec.o"
3832#pragma merger(0,"SignForward_spec.i","")
3833#line 13 "SignForward_spec.c"
3834void __utac_acc__SignForward_spec__1(int client , int msg ) 
3835{ int tmp ;
3836  int tmp___0 ;
3837
3838  {
3839  {
3840#line 15
3841  puts("before mail\n");
3842#line 16
3843  tmp___0 = isSigned(msg);
3844  }
3845#line 16
3846  if (tmp___0) {
3847    {
3848#line 20
3849    tmp = getClientPrivateKey(client);
3850    }
3851#line 20
3852    if (tmp == 0) {
3853      {
3854#line 18
3855      __automaton_fail();
3856      }
3857    } else {
3858
3859    }
3860  } else {
3861
3862  }
3863#line 18
3864  return;
3865}
3866}
3867#line 1 "Email.o"
3868#pragma merger(0,"Email.i","")
3869#line 15 "Email.h"
3870int cloneEmail(int msg ) ;
3871#line 9 "Email.c"
3872void printMail__wrappee__Keys(int msg ) 
3873{ int tmp ;
3874  int tmp___0 ;
3875  int tmp___1 ;
3876  int tmp___2 ;
3877  char const   * __restrict  __cil_tmp6 ;
3878  char const   * __restrict  __cil_tmp7 ;
3879  char const   * __restrict  __cil_tmp8 ;
3880  char const   * __restrict  __cil_tmp9 ;
3881
3882  {
3883  {
3884#line 10
3885  tmp = getEmailId(msg);
3886#line 10
3887  __cil_tmp6 = (char const   * __restrict  )"ID:\n  %i\n";
3888#line 10
3889  printf(__cil_tmp6, tmp);
3890#line 11
3891  tmp___0 = getEmailFrom(msg);
3892#line 11
3893  __cil_tmp7 = (char const   * __restrict  )"FROM:\n  %i\n";
3894#line 11
3895  printf(__cil_tmp7, tmp___0);
3896#line 12
3897  tmp___1 = getEmailTo(msg);
3898#line 12
3899  __cil_tmp8 = (char const   * __restrict  )"TO:\n  %i\n";
3900#line 12
3901  printf(__cil_tmp8, tmp___1);
3902#line 13
3903  tmp___2 = isReadable(msg);
3904#line 13
3905  __cil_tmp9 = (char const   * __restrict  )"IS_READABLE\n  %i\n";
3906#line 13
3907  printf(__cil_tmp9, tmp___2);
3908  }
3909#line 601 "Email.c"
3910  return;
3911}
3912}
3913#line 17 "Email.c"
3914void printMail__wrappee__Encrypt(int msg ) 
3915{ int tmp ;
3916  int tmp___0 ;
3917  char const   * __restrict  __cil_tmp4 ;
3918  char const   * __restrict  __cil_tmp5 ;
3919
3920  {
3921  {
3922#line 18
3923  printMail__wrappee__Keys(msg);
3924#line 19
3925  tmp = isEncrypted(msg);
3926#line 19
3927  __cil_tmp4 = (char const   * __restrict  )"ENCRYPTED\n  %d\n";
3928#line 19
3929  printf(__cil_tmp4, tmp);
3930#line 20
3931  tmp___0 = getEmailEncryptionKey(msg);
3932#line 20
3933  __cil_tmp5 = (char const   * __restrict  )"ENCRYPTION KEY\n  %d\n";
3934#line 20
3935  printf(__cil_tmp5, tmp___0);
3936  }
3937#line 625 "Email.c"
3938  return;
3939}
3940}
3941#line 26 "Email.c"
3942void printMail__wrappee__Forward(int msg ) 
3943{ int tmp ;
3944  int tmp___0 ;
3945  char const   * __restrict  __cil_tmp4 ;
3946  char const   * __restrict  __cil_tmp5 ;
3947
3948  {
3949  {
3950#line 27
3951  printMail__wrappee__Encrypt(msg);
3952#line 28
3953  tmp = isSigned(msg);
3954#line 28
3955  __cil_tmp4 = (char const   * __restrict  )"SIGNED\n  %i\n";
3956#line 28
3957  printf(__cil_tmp4, tmp);
3958#line 29
3959  tmp___0 = getEmailSignKey(msg);
3960#line 29
3961  __cil_tmp5 = (char const   * __restrict  )"SIGNATURE\n  %i\n";
3962#line 29
3963  printf(__cil_tmp5, tmp___0);
3964  }
3965#line 649 "Email.c"
3966  return;
3967}
3968}
3969#line 33 "Email.c"
3970void printMail(int msg ) 
3971{ int tmp ;
3972  char const   * __restrict  __cil_tmp3 ;
3973
3974  {
3975  {
3976#line 34
3977  printMail__wrappee__Forward(msg);
3978#line 35
3979  tmp = isVerified(msg);
3980#line 35
3981  __cil_tmp3 = (char const   * __restrict  )"SIGNATURE VERIFIED\n  %d\n";
3982#line 35
3983  printf(__cil_tmp3, tmp);
3984  }
3985#line 671 "Email.c"
3986  return;
3987}
3988}
3989#line 41 "Email.c"
3990int isReadable__wrappee__Keys(int msg ) 
3991{ int retValue_acc ;
3992
3993  {
3994#line 689 "Email.c"
3995  retValue_acc = 1;
3996#line 691
3997  return (retValue_acc);
3998#line 698
3999  return (retValue_acc);
4000}
4001}
4002#line 49 "Email.c"
4003int isReadable(int msg ) 
4004{ int retValue_acc ;
4005  int tmp ;
4006
4007  {
4008  {
4009#line 53
4010  tmp = isEncrypted(msg);
4011  }
4012#line 53 "Email.c"
4013  if (tmp) {
4014#line 727
4015    retValue_acc = 0;
4016#line 729
4017    return (retValue_acc);
4018  } else {
4019    {
4020#line 721 "Email.c"
4021    retValue_acc = isReadable__wrappee__Keys(msg);
4022    }
4023#line 723
4024    return (retValue_acc);
4025  }
4026#line 736 "Email.c"
4027  return (retValue_acc);
4028}
4029}
4030#line 57 "Email.c"
4031int cloneEmail(int msg ) 
4032{ int retValue_acc ;
4033
4034  {
4035#line 758 "Email.c"
4036  retValue_acc = msg;
4037#line 760
4038  return (retValue_acc);
4039#line 767
4040  return (retValue_acc);
4041}
4042}
4043#line 62 "Email.c"
4044int createEmail(int from , int to ) 
4045{ int retValue_acc ;
4046  int msg ;
4047
4048  {
4049  {
4050#line 63
4051  msg = 1;
4052#line 64
4053  setEmailFrom(msg, from);
4054#line 65
4055  setEmailTo(msg, to);
4056#line 797 "Email.c"
4057  retValue_acc = msg;
4058  }
4059#line 799
4060  return (retValue_acc);
4061#line 806
4062  return (retValue_acc);
4063}
4064}
4065#line 1 "featureselect.o"
4066#pragma merger(0,"featureselect.i","")
4067#line 41 "featureselect.h"
4068int select_one(void) ;
4069#line 8 "featureselect.c"
4070int select_one(void) 
4071{ int retValue_acc ;
4072  int choice = __VERIFIER_nondet_int();
4073
4074  {
4075#line 84 "featureselect.c"
4076  retValue_acc = choice;
4077#line 86
4078  return (retValue_acc);
4079#line 93
4080  return (retValue_acc);
4081}
4082}
4083#line 14 "featureselect.c"
4084void select_features(void) 
4085{ 
4086
4087  {
4088#line 115 "featureselect.c"
4089  return;
4090}
4091}
4092#line 20 "featureselect.c"
4093void select_helpers(void) 
4094{ 
4095
4096  {
4097#line 133 "featureselect.c"
4098  return;
4099}
4100}
4101#line 25 "featureselect.c"
4102int valid_product(void) 
4103{ int retValue_acc ;
4104
4105  {
4106#line 151 "featureselect.c"
4107  retValue_acc = 1;
4108#line 153
4109  return (retValue_acc);
4110#line 160
4111  return (retValue_acc);
4112}
4113}
4114#line 1 "Util.o"
4115#pragma merger(0,"Util.i","")
4116#line 1 "Util.h"
4117int prompt(char *msg ) ;
4118#line 9 "Util.c"
4119int prompt(char *msg ) 
4120{ int retValue_acc ;
4121  int retval ;
4122  char const   * __restrict  __cil_tmp4 ;
4123
4124  {
4125  {
4126#line 10
4127  __cil_tmp4 = (char const   * __restrict  )"%s\n";
4128#line 10
4129  printf(__cil_tmp4, msg);
4130#line 518 "Util.c"
4131  retValue_acc = retval;
4132  }
4133#line 520
4134  return (retValue_acc);
4135#line 527
4136  return (retValue_acc);
4137}
4138}
4139#line 1 "scenario.o"
4140#pragma merger(0,"scenario.i","")
4141#line 1 "scenario.c"
4142void test(void) 
4143{ int op1 ;
4144  int op2 ;
4145  int op3 ;
4146  int op4 ;
4147  int op5 ;
4148  int op6 ;
4149  int op7 ;
4150  int op8 ;
4151  int op9 ;
4152  int op10 ;
4153  int op11 ;
4154  int splverifierCounter ;
4155  int tmp ;
4156  int tmp___0 ;
4157  int tmp___1 ;
4158  int tmp___2 ;
4159  int tmp___3 ;
4160  int tmp___4 ;
4161  int tmp___5 ;
4162  int tmp___6 ;
4163  int tmp___7 ;
4164  int tmp___8 ;
4165  int tmp___9 ;
4166
4167  {
4168#line 2
4169  op1 = 0;
4170#line 3
4171  op2 = 0;
4172#line 4
4173  op3 = 0;
4174#line 5
4175  op4 = 0;
4176#line 6
4177  op5 = 0;
4178#line 7
4179  op6 = 0;
4180#line 8
4181  op7 = 0;
4182#line 9
4183  op8 = 0;
4184#line 10
4185  op9 = 0;
4186#line 11
4187  op10 = 0;
4188#line 12
4189  op11 = 0;
4190#line 13
4191  splverifierCounter = 0;
4192  {
4193#line 14
4194  while (1) {
4195    while_3_continue: /* CIL Label */ ;
4196#line 14
4197    if (splverifierCounter < 4) {
4198
4199    } else {
4200      goto while_3_break;
4201    }
4202#line 15
4203    splverifierCounter = splverifierCounter + 1;
4204#line 16
4205    if (! op1) {
4206      {
4207#line 16
4208      tmp___9 = __VERIFIER_nondet_int();
4209      }
4210#line 16
4211      if (tmp___9) {
4212        {
4213#line 17
4214        bobKeyAdd();
4215#line 18
4216        op1 = 1;
4217        }
4218      } else {
4219        goto _L___8;
4220      }
4221    } else {
4222      _L___8: /* CIL Label */ 
4223#line 19
4224      if (! op2) {
4225        {
4226#line 19
4227        tmp___8 = __VERIFIER_nondet_int();
4228        }
4229#line 19
4230        if (tmp___8) {
4231#line 21
4232          op2 = 1;
4233        } else {
4234          goto _L___7;
4235        }
4236      } else {
4237        _L___7: /* CIL Label */ 
4238#line 22
4239        if (! op3) {
4240          {
4241#line 22
4242          tmp___7 = __VERIFIER_nondet_int();
4243          }
4244#line 22
4245          if (tmp___7) {
4246            {
4247#line 24
4248            rjhDeletePrivateKey();
4249#line 25
4250            op3 = 1;
4251            }
4252          } else {
4253            goto _L___6;
4254          }
4255        } else {
4256          _L___6: /* CIL Label */ 
4257#line 26
4258          if (! op4) {
4259            {
4260#line 26
4261            tmp___6 = __VERIFIER_nondet_int();
4262            }
4263#line 26
4264            if (tmp___6) {
4265              {
4266#line 28
4267              rjhKeyAdd();
4268#line 29
4269              op4 = 1;
4270              }
4271            } else {
4272              goto _L___5;
4273            }
4274          } else {
4275            _L___5: /* CIL Label */ 
4276#line 30
4277            if (! op5) {
4278              {
4279#line 30
4280              tmp___5 = __VERIFIER_nondet_int();
4281              }
4282#line 30
4283              if (tmp___5) {
4284                {
4285#line 32
4286                chuckKeyAddRjh();
4287#line 33
4288                op5 = 1;
4289                }
4290              } else {
4291                goto _L___4;
4292              }
4293            } else {
4294              _L___4: /* CIL Label */ 
4295#line 34
4296              if (! op6) {
4297                {
4298#line 34
4299                tmp___4 = __VERIFIER_nondet_int();
4300                }
4301#line 34
4302                if (tmp___4) {
4303                  {
4304#line 36
4305                  rjhEnableForwarding();
4306#line 37
4307                  op6 = 1;
4308                  }
4309                } else {
4310                  goto _L___3;
4311                }
4312              } else {
4313                _L___3: /* CIL Label */ 
4314#line 38
4315                if (! op7) {
4316                  {
4317#line 38
4318                  tmp___3 = __VERIFIER_nondet_int();
4319                  }
4320#line 38
4321                  if (tmp___3) {
4322                    {
4323#line 40
4324                    rjhKeyChange();
4325#line 41
4326                    op7 = 1;
4327                    }
4328                  } else {
4329                    goto _L___2;
4330                  }
4331                } else {
4332                  _L___2: /* CIL Label */ 
4333#line 42
4334                  if (! op8) {
4335                    {
4336#line 42
4337                    tmp___2 = __VERIFIER_nondet_int();
4338                    }
4339#line 42
4340                    if (tmp___2) {
4341#line 44
4342                      op8 = 1;
4343                    } else {
4344                      goto _L___1;
4345                    }
4346                  } else {
4347                    _L___1: /* CIL Label */ 
4348#line 45
4349                    if (! op9) {
4350                      {
4351#line 45
4352                      tmp___1 = __VERIFIER_nondet_int();
4353                      }
4354#line 45
4355                      if (tmp___1) {
4356                        {
4357#line 47
4358                        chuckKeyAdd();
4359#line 48
4360                        op9 = 1;
4361                        }
4362                      } else {
4363                        goto _L___0;
4364                      }
4365                    } else {
4366                      _L___0: /* CIL Label */ 
4367#line 49
4368                      if (! op10) {
4369                        {
4370#line 49
4371                        tmp___0 = __VERIFIER_nondet_int();
4372                        }
4373#line 49
4374                        if (tmp___0) {
4375                          {
4376#line 51
4377                          bobKeyChange();
4378#line 52
4379                          op10 = 1;
4380                          }
4381                        } else {
4382                          goto _L;
4383                        }
4384                      } else {
4385                        _L: /* CIL Label */ 
4386#line 53
4387                        if (! op11) {
4388                          {
4389#line 53
4390                          tmp = __VERIFIER_nondet_int();
4391                          }
4392#line 53
4393                          if (tmp) {
4394                            {
4395#line 55
4396                            chuckKeyAdd();
4397#line 56
4398                            op11 = 1;
4399                            }
4400                          } else {
4401                            goto while_3_break;
4402                          }
4403                        } else {
4404                          goto while_3_break;
4405                        }
4406                      }
4407                    }
4408                  }
4409                }
4410              }
4411            }
4412          }
4413        }
4414      }
4415    }
4416  }
4417  while_3_break: /* CIL Label */ ;
4418  }
4419  {
4420#line 60
4421  bobToRjh();
4422  }
4423#line 167 "scenario.c"
4424  return;
4425}
4426}