/*
ANSI C code generated by SmallEiffel The GNU Eiffel Compiler
Release -0.76 (Saturday 11th november 2000)
Copyright (C), 1994-2000 - LORIA - UHP - CRIN - INRIA - FRANCE
Dominique COLNET and Suzanne COLLIN - colnet@loria.fr
http://SmallEiffel.loria.fr
*/
#ifdef __cplusplus
}
#endif
#include "compile_to_c.h"
#ifdef __cplusplus
extern "C" {
#endif


void r42disk_restore(T42* C){
T2 _state=0;
T0* _sfr=NULL;
T2 _item_count=0;
T2 _id=0;
T0* _type_name=NULL;
T3 _cc=0;
{T43*n=((T43*)se_malloc(sizeof(*n))/*13*/);
*n=M43;
/*[IRF3.1make*//*]*/
_sfr=((T0*)n);
}
r38sfr_connect((T38*)(oBC19echo),_sfr,r48id_file_path((T48*)(r42system_tools())));
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/(((T43*)_sfr))->_path/*1*/))!=(NULL)/*)*/){
/*[IF*/
if(r43end_of_input(((T43*)_sfr))){
_state=6;
}
/*FI]*/
while (!((_state)>(4)))
{
r43read_character(((T43*)_sfr));
/*[IF*/
if(r43end_of_input(((T43*)_sfr))){
_state=5;
}
else{
_cc=/*(IRF4.6last_character*/((T3)((/*RF2*/(((T43*)_sfr))->_memory/*9*/)))/*)*/;
}
/*FI]*/
/*[INSPECT*/
{int z1=_state;
switch(z1){
case 0:
/*[INSPECT*/
{int z2=_cc;
switch(z2){
case 9:
case 10:
case 13:
case 32:
break;
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
_id=r3decimal_value(_cc);
_state=1;
break;
default:;
_state=6;
}
}/*INSPECT]*/
break;
case 1:
/*[INSPECT*/
{int z2=_cc;
switch(z2){
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
_id=((_id)*(10))+(r3decimal_value(_cc));
break;
case 34:
_type_name=oBC42temporary_type_name;
/*[IRF3.3clear*/((((T7*)(((T7*)_type_name))))->_count)=(0);
/*]*/
_state=3;
break;
case 9:
case 32:
_state=2;
break;
default:;
_state=6;
}
}/*INSPECT]*/
break;
case 2:
/*[INSPECT*/
{int z2=_cc;
switch(z2){
case 34:
_type_name=oBC42temporary_type_name;
/*[IRF3.3clear*/((((T7*)(((T7*)_type_name))))->_count)=(0);
/*]*/
_state=3;
break;
case 9:
case 10:
case 13:
case 32:
break;
default:;
_state=6;
}
}/*INSPECT]*/
break;
case 3:
/*[INSPECT*/
{int z2=_cc;
switch(z2){
case 34:
_type_name=((/*UT*/(void)((T27*)(r42string_aliaser()))),r27item(_type_name));
_item_count=(_item_count)+(1);
r45put((T45*)(oBC42id_memory),_id,_type_name);
(/*SFN*/C->_max_id)=r2max((/*RF2*/(C)->_max_id/*0*/),_id);
_state=4;
break;
case 9:
case 10:
case 13:
_state=6;
break;
default:;
r7extend(((T7*)_type_name),_cc);
}
}/*INSPECT]*/
break;
case 4:
/*[INSPECT*/
{int z2=_cc;
switch(z2){
case 10:
case 13:
_state=0;
break;
}
}/*INSPECT]*/
break;
}
}/*INSPECT]*/
}
r43disconnect(((T43*)_sfr));
/*[IF*/
if((_state)==(6)){
r38put_string((T38*)(oBC19echo),((T0*)ms42_188525860));
r38put_integer((T38*)(oBC19echo),_item_count);
r38put_string((T38*)(oBC19echo),((T0*)ms42_1539722017));
}
/*FI]*/
r38put_string((T38*)(oBC19echo),((T0*)ms42_563444330));
r38put_integer((T38*)(oBC19echo),(/*RF2*/((T45*)(oBC42id_memory))->_count/*8*/));
r38put_character((T38*)(oBC19echo),((T3)'\57'));
r38put_integer((T38*)(oBC19echo),(/*RF2*/(C)->_max_id/*0*/));
r38put_string((T38*)(oBC19echo),((T0*)ms42_1265));
}
/*FI]*/
}


T0* r42string_aliaser(void){
if(fBC19string_aliaser==0){fBC19string_aliaser=1;{
{T27*n=((T27*)se_malloc(1));
oBC19string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2104);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53339);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33156840);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1339128);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_836969340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33120277);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_774649014);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_168164374);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_274599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_171638715);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_175767198);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_867350214);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1384826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35866627);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35868574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7173699);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_286922);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_179371455);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1447702);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_904828090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_295849);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_349117293);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12184);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7704337);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1554777);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_971749965);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12376);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7749340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_324411);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_520438282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1692780980);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_65574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3075);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9647090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_64);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_552);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_61);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_371);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_62);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067995);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_361);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_60);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_45);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_296);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3421);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2126626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_43);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1960);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1972);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_47);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9529116);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_77832);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_280482649));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_386854);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9676326);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1597390874));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_49076823);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_79341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_247239028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94407393);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_840111968);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1236707441);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15831);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810604);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1680885744);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244781926);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244783893);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1223936132);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_48958735);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1622700141);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1979951);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_936296820);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1949019648);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_705019679);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1286698901);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10018876);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50778415);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_397576);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15932);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80109);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80416);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80694);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2023685073);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_406284);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067759348);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2090604340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_880412606);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50246319);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_636);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_619776399));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1744612358);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1937220099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_378799862);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10377643);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1297876698);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16639);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16616);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_84969);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16686);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1856946950));
r27special_add(((T0*)ms21_1740332382));
r27special_add(((T0*)ms21_111802057));
r27special_add(((T0*)ms21_756809447));
r27special_add(((T0*)ms21_1419919903));
r27special_add(((T0*)ms21_275488632));
r27special_add(((T0*)ms21_1377517899));
r27special_add(((T0*)ms21_698215697));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1326673961);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_954385774);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1778079380);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_87541);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10945665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_849712179);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3501);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88048);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88049);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_573080478);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54325331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_41849945);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2174354);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_438300);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187464);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187483);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733071);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_733277224);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54749764);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11011040);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_112335826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11026665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1507243919);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1053896806);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591414963);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_267647687);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591417242);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447584);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_89510);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447851);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55924644);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55926626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279656751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2246041);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88795);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_446841);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1607595572);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55868341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279416444);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279523519);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2236118);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1574640467);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1742738754);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_18110);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_90544);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1202672333);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_287359706);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1501191);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1498845794);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2038667775);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42134669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_337331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_14150);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC19string_aliaser;
}


T0* r42alias_of(T2 a1){
T0* R=NULL;
R=r45fast_key_at((T45*)(oBC42id_memory),a1);
return R;
}


void r275with(T275* C,T0* a1,T0* a2){
*((T275*)(C))=*((T275*)(a1));
(/*SFN*/C->_formal_arg_list)=a2;
}


T0* r275to_string(T275* C){
T0* R=NULL;
R=(/*RF2*/((T123*)(/*(IRF4.6name*/r128item(((T128*)((/*RF2*/((T121*)((/*RF2*/(C)->_formal_arg_list/*16*/)))->_flat_list/*8*/))),(/*RF2*/(C)->_rank/*12*/))/*)*/))->_to_string/*12*/);
return R;
}


T6 r275stupid_switch(T275* C,T0* a1){
T6 R=0;
/*[IF*/
if(r59stupid_switch(r275result_type(C),a1)){
R=1;
}
/*FI]*/
return R;
}


void r275to_integer_error(T275* C){
/*[IRF3.6append*/{T0* b1=((T0*)ms20_752996481);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r82print_as_error((T82*)(oBC19eh));
}


T0* r275result_type(T275* C){
T0* R=NULL;
R=r121type((T121*)((/*RF2*/(C)->_formal_arg_list/*16*/)),(/*RF2*/(C)->_rank/*12*/));
return R;
}


void r275refer_to(T275* C,T104 a1,T0* a2,T2 a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_formal_arg_list)=a2;
(/*SFN*/C->_rank)=a3;
}


void r275mapping_c_target(T275* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r83call_invariant_start(a1);
_rt=X62run_type(r275result_type(C));
/*[IF*/
if(X62is_reference(_rt)){
/*[IF*/
if(X62is_reference(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X62mapping_cast(a1);
r83print_argument((T83*)(oBC19cpp),(/*RF2*/(C)->_rank/*12*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
r83print_argument((T83*)(oBC19cpp),(/*RF2*/(C)->_rank/*12*/));
}
/*FI]*/
}
 else if(X62is_reference(a1)){
r83print_argument((T83*)(oBC19cpp),(/*RF2*/(C)->_rank/*12*/));
}
 else if(X62is_user_expanded(_rt)){
/*[IF*/
if(!(X62is_dummy_expanded(_rt))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83print_argument((T83*)(oBC19cpp),(/*RF2*/(C)->_rank/*12*/));
}
else{
r83print_argument((T83*)(oBC19cpp),(/*RF2*/(C)->_rank/*12*/));
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


T2 r275to_integer_or_error(T275* C){
T2 R=0;
r275to_integer_error(C);
return R;
}


T0* r275add_comment(T275* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T323*n=((T323*)se_malloc(sizeof(*n))/*12*/);
*n=M323;
r323make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r275to_runnable(T275* C,T0* a1){
T0* R=NULL;
T0* _fal=NULL;
T0* _rf=NULL;
_rf=/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/;
_fal=X96arguments(_rf);
/*[IF*/
if(((/*RF2*/(C)->_formal_arg_list/*16*/))==((void*)(_fal))){
R=((T0*)(C));
}
else{
{T275*n=((T275*)se_malloc(sizeof(*n))/*20*/);
*n=M275;
r275with(n,(T0*)C,_fal);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r275static_result_base_class(T275* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=X62static_base_class_name(r275result_type(C));
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r77base_class(((T77*)_bcn));
}
/*FI]*/
return R;
}


void r364c_initialize_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'0'));
/*FI]*/
}


void r364c_type_for_external_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
/*[IRF3.6c_type_for_result_in*/{T0* b1=a1;
r364c_type_for_argument_in(b1);
}/*]*/
/*FI]*/
}


T0* r364generic_list(T364* C){
T0* R=NULL;
r364fatal_error_generic_list(C);
return R;
}


T0* r364written_mark(void){
T0* R=NULL;
R=((T0*)ms21_1447702);
return R;
}


T6 r364has_creation(T364* C,T0* a1){
T6 R=0;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r364error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,((T0*)ms361_849282034));
}
return R;
}


T0* r364run_time_mark(void){
T0* R=NULL;
R=((T0*)ms21_1447702);
return R;
}


T2 r364c_sizeof(void){
T2 R=0;
R=sizeof(T2);
return R;
}
T0*oBC364type_integer_ref=NULL;
int fBC364type_integer_ref=0;


T0* r364type_integer_ref(void){
if(fBC364type_integer_ref==0){fBC364type_integer_ref=1;{
T0* _integer_ref=NULL;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
/*[IRF3.3unknown_position*/((((T77*)(n)))->_to_string)=(((T0*)ms21_904828090));
/*]*/
_integer_ref=((T0*)n);
}
{T369*n=((T369*)se_malloc(sizeof(*n))/*16*/);
*n=M369;
oBC364type_integer_ref=((T0*)n);
/*[IRF3.3make*/((((T369*)(n)))->_base_class_name)=(_integer_ref);
/*]*/
}
}}
return oBC364type_integer_ref;
}


void r364error(T104 a1,T0* a2){
r82add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}


T6 r364is_native_array(T364* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}


void r364gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(2,a1);
}


void r364fatal_error_generic_list(T364* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r364c_type_for_argument_in(T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r7extend(((T7*)a1),((T3)'2'));
}


void r364make(T364* C,T104 a1){
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_1447702),a1);
(/*SFN*/C->_base_class_name)=((T0*)n);
}
}


T0* r364base_class(T364* C){
T0* R=NULL;
T0* _bcn=NULL;
/*[IF*/
if(((/*RF2*/(C)->_base_class_memory/*4*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
_bcn=(/*RF2*/(C)->_base_class_name/*12*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
(/*SFN*/C->_base_class_memory)=r77base_class(((T77*)_bcn));
R=(/*RF2*/(C)->_base_class_memory/*4*/);
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms62_432936020);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_type((T0*)C,((T0*)ms20_46));
r82print_as_fatal_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
return R;
}
int fBC364check_type=0;


void r364check_type(T364* C){
if(fBC364check_type==0){fBC364check_type=1;{
T0* _rc=NULL;
T0* _bc=NULL;
_bc=r364base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
_rc=r364run_class(C);
r364load_ref(((T0*)ms21_904828090));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(!((/*RF2*/(((T61*)_bc))->_is_expanded/*17*/))){
{T104 se_tmp0;
r364error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,((T0*)ms364_1179852269));
}
}
/*FI]*/
}
/*FI]*/
}}}


T0* r364actual_reference(T0* a1){
T0* R=NULL;
T0* _cn=NULL;
/*[IF*/
if((X62run_time_mark(a1))==((void*)(((T0*)ms21_904828090)))){
R=a1;
}
else{
{T104 se_tmp0;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_904828090),(*(se_tmp0=X62start_position(a1),&se_tmp0)));
_cn=((T0*)n);
}
}
{T369*n=((T369*)se_malloc(sizeof(*n))/*16*/);
*n=M369;
/*[IRF3.3make*/((((T369*)(n)))->_base_class_name)=(_cn);
/*]*/
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T6 r364is_a_in(T364* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r364written_mark())==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r364to_runnable(C,_ct);
_t2=X62to_runnable(a1,_ct);
/*[IF*/
if((X62run_time_mark(_t1))==((void*)(X62run_time_mark(_t2)))){
R=1;
}
else{
R=X62is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r364demangling_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'E'));
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r364run_time_mark());
}


void r364id_extra_information(T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
/*AF*//*AE*/
r58put_string(((T58*)a1),((T0*)ms62_3337));
/*FI]*/
}


T6 r364is_a(T364* C,T0* a1){
T6 R=0;
/*[IF*/
if(X62is_integer(a1)){
R=1;
}
 else if((X62is_double(a1))||(X62is_real(a1))){
R=1;
}
else{
R=r61is_subclass_of((T61*)(r364base_class(C)),X62base_class(a1));
}
/*FI]*/
/*[IF*/
if(!(R)){
r82add_type((T0*)C,((T0*)ms20_1308256781));
r82add_type(a1,((T0*)ms20_46));
}
/*FI]*/
return R;
}


void r364load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
_rc=r59run_class_for(a1);
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_16639));
}


T0* r364to_runnable(T364* C,T0* a1){
T0* R=NULL;
R=((T0*)(C));
r364check_type(C);
return R;
}


T0* r364run_class(T364* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else {/*AT*/(/*SFN*/C->_run_class_memory)=r59run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


T0* r364smallest_ancestor(T364* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X62run_type(a1);
/*[IF*/
if(X62is_integer(_rto)){
R=((T0*)(C));
}
 else if(X62is_real(_rto)){
R=a1;
}
 else if(X62is_double(_rto)){
R=a1;
}
else{
R=r369smallest_ancestor((T369*)(r364type_integer_ref()),_rto);
}
/*FI]*/
return R;
}


void r364gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(2,a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r38sfw_connect(T38* C,T0* a1,T0* a2){
r58connect_to(((T58*)a1),a2);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/(((T58*)a1))->_path/*0*/))!=(NULL)/*)*/){
r38put_string(C,((T0*)ms38_44975894));
r38put_string(C,a2);
r38put_string(C,((T0*)ms38_3556890));
}
else{
r38w_put_string(((T0*)ms38_1711985232));
r38w_put_string(a2);
r38w_put_string(((T0*)ms20_1090));
exit(1);
}
/*FI]*/
}


void r38file_removing(T38* C,T0* a1){
/*[IF*/
if(r38file_exists(a1)){
r38put_string(C,((T0*)ms38_210310269));
r38put_string(C,a1);
r38put_string(C,((T0*)ms20_1090));
/*[IRF3.6remove_file*/{T0* b1=a1;
r86delete(oBC1file_tools,b1);
}/*]*/
}
/*FI]*/
}


T6 r38file_exists(T0* a1){
T6 R=0;
R=r86is_readable(a1);
return R;
}


void r38file_renaming(T38* C,T0* a1,T0* a2){
r38put_string(C,((T0*)ms38_210141519));
r38put_string(C,a1);
r38put_string(C,((T0*)ms38_141444));
r38put_string(C,a2);
r38put_string(C,((T0*)ms20_1090));
/*[IRF3.6rename_file*/{T0* b1=a1;
T0* b2=a2;
r86rename_to(oBC1file_tools,b1,b2);
}/*]*/
}


void r38sfr_connect(T38* C,T0* a1,T0* a2){
r38put_string(C,((T0*)ms38_27561173));
r38put_string(C,a2);
r38put_string(C,((T0*)ms20_1090));
r43connect_to(((T43*)a1),a2);
}


void r38w_put_character(T3 a1){
/*[IRF3.6put_character*/{T54* C1=(T54*)(oBC1std_error);
T3 b1=a1;
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6flush*/{T54* C1=(T54*)(oBC1std_error);
fflush(stderr);
}/*]*/
}


void r38sfr_connect_or_exit(T38* C,T0* a1,T0* a2){
r38sfr_connect(C,a1,a2);
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/(((T43*)a1))->_path/*1*/))!=(NULL)/*)*/)){
r38w_put_string(((T0*)ms20_300594));
r38w_put_string(a2);
r38w_put_string(((T0*)ms38_1680762272));
exit(1);
}
/*FI]*/
}


T0* r38read_word_in(T38* C,T0* a1){
T0* R=NULL;
r38put_string(C,((T0*)ms38_136264778));
r38put_string(C,(/*RF2*/(((T43*)a1))->_path/*1*/));
r38put_string(C,((T0*)ms20_1090));
/*[IF*/
if(r43end_of_input(((T43*)a1))){
r38w_put_string(((T0*)ms38_1520107011));
r38w_put_string((/*RF2*/(((T43*)a1))->_path/*1*/));
r38w_put_string(((T0*)ms20_1090));
exit(1);
}
else{
r43read_word(((T43*)a1));
R=r7twin((T7*)(oBC44last_string));
}
/*FI]*/
return R;
}


void r38print_count(T38* C,T0* a1,T2 a2){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
/*[IF*/
if((a2)>(0)){
r38put_string(C,((T0*)ms38_349372));
r38put_string(C,a1);
/*[IF*/
if((a2)>(1)){
r38put_character(C,((T3)'s'));
}
/*FI]*/
r38put_string(C,((T0*)ms38_322));
r38put_integer(C,a2);
r38put_string(C,((T0*)ms20_240));
}
else{
r38put_string(C,((T0*)ms38_2537));
r38put_string(C,a1);
r38put_string(C,((T0*)ms20_240));
}
/*FI]*/
}
/*FI]*/
}


void r38put_integer(T38* C,T2 a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r39put_integer((T39*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T39* C1=(T39*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
T0*oBC1std_output=NULL;


void r38put_double_format(T38* C,T5 a1,T2 a2){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r39put_double_format((T39*)(oBC1std_output),a1,a2);
/*[IRF3.6flush*/{T39* C1=(T39*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}


void r38w_put_string(T0* a1){
r54put_string((T54*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T54* C1=(T54*)(oBC1std_error);
fflush(stderr);
}/*]*/
}


void r38w_put_integer(T2 a1){
r54put_integer((T54*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T54* C1=(T54*)(oBC1std_error);
fflush(stderr);
}/*]*/
}


void r38put_character(T38* C,T3 a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
/*[IRF3.6put_character*/{T39* C1=(T39*)(oBC1std_output);
T3 b1=a1;
putc(b1,((FILE*)(stdout)));
}/*]*/
/*[IRF3.6flush*/{T39* C1=(T39*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}


void r38put_string(T38* C,T0* a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r39put_string((T39*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T39* C1=(T39*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
T0*oBC1std_error=NULL;


T0* r501run_ensure(T501* C){
T0* R=NULL;
R=r61run_ensure((T61*)(X62base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}


void r501define_prototype(T501* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r57no_check((T57*)(oBC19run_control));
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.3reset*/((((T297*)((T297*)(oBC19c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\42'));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r501id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*36*/))==((void*)(NULL))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
else{
X62c_type_for_result_in(X62run_type((/*RF2*/(C)->_result_type/*36*/)),oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(_mem_id,oBC96c_code);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\50'));
/*[IF*/
if(_no_check){
r7append((T7*)(oBC96c_code),((T0*)ms96_826425832));
/*[IF*/
if((r501use_current(C))||(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r501use_current(C)){
X62c_type_for_target_in((/*RF2*/(C)->_current_type/*8*/),oBC96c_code);
r7extend((T7*)(oBC96c_code),((T3)'\40'));
r7extend((T7*)(oBC96c_code),((T3)'C'));
X62c_frame_descriptor((/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
r7extend((T7*)(oBC96c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
 else if(!(r501use_current(C))){
r7append((T7*)(oBC96c_code),((T0*)ms20_18150));
}
/*FI]*/
}
else{
r121compile_to_c_in((T121*)((/*RF2*/(C)->_arguments/*32*/)),oBC96c_code);
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\51'));
r83put_c_heading((T83*)(oBC19cpp),oBC96c_code);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
}


void r501default_mapping_procedure(T501* C){
r501default_mapping_function(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}


void r501fe_vffd7(T501* C){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position((/*RF2*/(C)->_result_type/*36*/)),&se_tmp0)));
}
r501fatal_error(((T0*)ms96_1888555933));
}


T0* r501run_require(T501* C){
T0* R=NULL;
R=r61run_require((T61*)(X62base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}


T6 r501is_exported_in(T501* C,T0* a1){
T6 R=0;
R=r200gives_permission_to((T200*)(r501clients(C)),a1);
return R;
}


T2 r501id(T501* C){
T2 R=0;
R=X62id((/*RF2*/(C)->_current_type/*8*/));
return R;
}


void r501mapping_c(T501* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*36*/))==((void*)(NULL))){
r501default_mapping_procedure(C);
}
else{
r501default_mapping_function(C);
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
X62c_initialize((/*RF2*/(C)->_result_type/*36*/));
}
/*FI]*/
}


void r501c_frame_descriptor_name_in(T501* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r501id(C),a1);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),a1);
}


void r501mapping_name(T501* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'r'));
r2append_in(r501id(C),oBC96c_code);
X117mapping_c_in((/*RF2*/(C)->_name/*16*/),oBC96c_code);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r501put_c_name_tag(T501* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*SSFRF4*//*X381first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T384*)((/*RF2*/(C)->_base_feature/*28*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
X117put_cpp_tag((/*RF2*/(C)->_name/*16*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string((/*RF2*/(C)->_name/*16*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X117put_cpp_tag(_fn);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),X117to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_7317));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/((T77*)(/*SSFRF4*//*X381base_class_name*//*(IRF4.6base_class_name*/(/*RF2*/(((T61*)((/*RF2*/((T384*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X117to_key(_fn))!=((void*)(X117to_key((/*RF2*/(C)->_name/*16*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}


T0* r501stupid_switch(T501* C,T0* a1){
T0* R=NULL;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_stupid_switch_state/*24*/);
switch(z1){
case 12:
R=((T0*)ms501_1611457);
break;
case 11:
break;
case 13:
(/*SFN*/C->_stupid_switch_state)=14;
r501compute_stupid_switch(C,a1);
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*24*/))==(12)){
R=((T0*)ms501_1611457);
}
/*FI]*/
break;
default:;
}
}/*INSPECT]*/
return R;
}


void r501c_frame_descriptor(T501* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1200006371));
r501c_frame_descriptor_name_in(C,oBC96c_code);
r83put_extern7((T83*)(oBC19cpp),oBC96c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r501put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IF*/
if(r501use_current(C)){
r7extend((T7*)(oBC96c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC96c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\54'));
r7append((T7*)(oBC96c_code),oBC19c_frame_descriptor_format);
r7append((T7*)(oBC96c_code),((T0*)ms96_143305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
}


void r501make(T501* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_run_class)=X62run_class(a1);
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r60add_run_feature((T60*)((/*RF2*/(C)->_run_class/*12*/)),(T0*)C,a2);
r59incr_magic_count((T59*)(oBC19small_eiffel));
(/*SFN*/C->_use_current_state)=13;
(/*SFN*/C->_stupid_switch_state)=13;
r59push((T0*)C);
r501initialize(C);
/*[IRF3.2pop*//*SSPRF3*//*X155remove_last*/r155remove_last((T155*)(oBC59run_feature_stack));
/*]*/
}


void r501fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r501routine_afd_check(T501* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*40*/))!=((void*)(NULL))){
r427afd_check((T427*)((/*RF2*/(C)->_require_assertion/*40*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*44*/))!=((void*)(NULL))){
r309afd_check((T309*)((/*RF2*/(C)->_ensure_assertion/*44*/)));
}
/*FI]*/
}


void r501afd_check(T501* C){
r501routine_afd_check(C);
r59afd_check_deferred((T0*)C);
}


T6 r501use_current(T501* C){
T6 R=0;
/*[INSPECT*/
{int z1=(/*RF2*/(C)->_use_current_state/*20*/);
switch(z1){
case 12:
R=1;
break;
case 11:
break;
case 13:
(/*SFN*/C->_use_current_state)=14;
/*[IRF3.3compute_use_current*/((((T501*)(C)))->_use_current_state)=(12);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*20*/))==(12);
break;
default:;
R=1;
}
}/*INSPECT]*/
return R;
}


void r501c_define_opening(T501* C){
T0* _rf3=NULL;
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r57no_check((T57*)(oBC19run_control));
_ensure_check=r57ensure_check((T57*)(oBC19run_control));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*/if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
_t=X62run_type((/*RF2*/(C)->_result_type/*36*/));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
X62c_type_for_result_in(_t,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_1271));
X62c_initialize_in(_t,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
/*[IF*/
if(_no_check){
r7append((T7*)(oBC19c_frame_descriptor_locals),((T0*)ms96_674382779));
r297increment((T297*)(oBC19c_frame_descriptor_local_count));
r7append((T7*)(oBC19c_frame_descriptor_format),((T0*)ms21_337331));
X62c_frame_descriptor(_t);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*44*/))!=((void*)(NULL))){
r309c_declare_for_old((T309*)((/*RF2*/(C)->_ensure_assertion/*44*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1111279623));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))),oBC96c_code);
/*]*/
r7extend((T7*)(oBC96c_code),((T3)'\135'));
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}
/*FI]*/
r501c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_2111741));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_526));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC19c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1660308094a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*44*/))!=((void*)(NULL))){
r309compile_to_c_old((T309*)((/*RF2*/(C)->_ensure_assertion/*44*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
_rf3=X62expanded_initializer((/*RF2*/(C)->_result_type/*36*/));
/*[IF*/
if((_rf3)!=((void*)(NULL))){
/*[IF*/
if((_oresult)!=((void*)(NULL))){
r83put_proc_call_0((T83*)(oBC19cpp),_rf3,NULL,_oresult);
}
else{
r83put_proc_call_0((T83*)(oBC19cpp),_rf3,NULL,((T0*)ms96_82));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*40*/))!=((void*)(NULL))){
r427compile_to_c((T427*)((/*RF2*/(C)->_require_assertion/*40*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}


void r501compute_stupid_switch(T501* C,T0* a1){
(/*SFN*/C->_stupid_switch_state)=11;
}


void r501c_initialize_ds_one_by_one(T501* C){
r7copy((T7*)(oBC96c_code),((T0*)ms96_1775507635));
r501c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms20_305));
/*[IF*/
if(r501use_current(C)){
r7append((T7*)(oBC96c_code),((T0*)ms96_803430551));
}
else{
r7append((T7*)(oBC96c_code),((T0*)ms96_1677173506));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
{T104 se_tmp0;
r83put_position_in_ds((*(se_tmp0=r501start_position(C),&se_tmp0)));
}
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_208313786));
/*]*/
/*[IF*/
if(((/*RF2*/((T297*)(oBC19c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_430519127));
/*]*/
}
/*FI]*/
}


void r501c_assertion_flag(T501* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC96c_code))))->_count)=(0);
/*]*/
r501c_frame_descriptor_name_in(C,oBC96c_code);
r7append((T7*)(oBC96c_code),((T0*)ms96_334284767));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC96c_code);
/*]*/
}


void r501c_define(T501* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r501define_prototype(C);
r501c_define_opening(C);
r83put_error0((T83*)(oBC19cpp),((T0*)ms501_1896420902));
r501c_define_closing(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
r501c_frame_descriptor(C);
}
/*FI]*/
}


void r501address_of_c_define(T501* C,T0* a1){
{T104 se_tmp0;
r82add_position((*(se_tmp0=r254start_position(((T254*)a1)),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=r501start_position(C),&se_tmp0)));
}
r501fatal_error(((T0*)ms501_1894299446));
}


void r501fall_down(T501* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=(/*RF2*/(C)->_run_class/*12*/);
_running=(/*RF2*/(((T60*)_current_rc))->_running/*21*/);
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_i=(/*RF2*/(((T63*)_running))->_lower/*16*/);
while (!((_i)>((/*RF2*/(((T63*)_running))->_upper/*12*/))))
{
_sub_rc=r63item(((T63*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X62base_class((/*RF2*/(((T60*)_sub_rc))->_current_type/*0*/));
_sub_name=r61new_name_of(((T61*)_sub_bc),_current_bc,(/*RF2*/(C)->_name/*16*/));
_rf=r60get_feature(((T60*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}


void r501initialize(T501* C){
(/*SFN*/C->_result_type)=X381result_type((/*RF2*/(C)->_base_feature/*28*/));
(/*SFN*/C->_arguments)=/*SSWARF2*//*X381arguments*/(/*RF2*/((T384*)((/*RF2*/(C)->_base_feature/*28*/)))->_arguments/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_result_type/*36*/))!=((void*)(NULL))){
/*[IF*/
if(X62is_like_argument((/*RF2*/(C)->_result_type/*36*/))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*32*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*32*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*36*/),(/*RF2*/(C)->_current_type/*8*/));
}
else{
(/*SFN*/C->_result_type)=X62to_runnable((/*RF2*/(C)->_result_type/*36*/),(/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*32*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*32*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
 else if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if(!(r121is_runnable((T121*)((/*RF2*/(C)->_arguments/*32*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T121*n=((T121*)se_malloc(sizeof(*n))/*12*/);
*n=M121;
r121with(n,(/*RF2*/(C)->_arguments/*32*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
(/*SFN*/C->_require_assertion)=r501run_require(C);
(/*SFN*/C->_ensure_assertion)=r501run_ensure(C);
}
/*FI]*/
}


T0* r501clients(T501* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X62base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=/*SSWARF2*//*X381base_class*/(/*RF2*/((T384*)((/*RF2*/(C)->_base_feature/*28*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=/*SSWARF2*//*X381clients*/(/*RF2*/((T384*)((/*RF2*/(C)->_base_feature/*28*/)))->_clients/*16*/);
}
else{
R=r61clients_for(((T61*)_bc),(/*RF2*/(C)->_name/*16*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}


void r501collect_c_tmp(T501* C){
T0* _rt=NULL;
_rt=(/*RF2*/(C)->_result_type/*36*/);
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X62is_user_expanded(_rt))){
/*[IF*/
if(X62is_dummy_expanded(_rt)){
}
else{
r83se_tmp_add((T0*)C);
}
/*FI]*/
}
/*FI]*/
}


T104 r501start_position(T501* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X381start_position((/*RF2*/(C)->_base_feature/*28*/)),&se_tmp0));
}
return R;
}


void r501c_define_closing(T501* C){
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*44*/))!=((void*)(NULL))){
r309compile_to_c((T309*)((/*RF2*/(C)->_ensure_assertion/*44*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r501use_current(C)){
/*[IF*/
if((X117to_string((/*RF2*/(C)->_name/*16*/)))!=((void*)(((T0*)ms21_1979951)))){
r83current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_943110089));
/*]*/
}
/*FI]*/
}


void r501default_mapping_function(T501* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_uc=r501use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r83target_cannot_be_dropped((T83*)(oBC19cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r501mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms96_1565));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_target_as_target((T83*)(oBC19cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*32*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83put_arguments((T83*)(oBC19cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r104set(T104* C,T2 a1,T2 a2,T2 a3,T0* a4){
(/*SFN*/C->_base_class)=a4;
/*[IF*/
if((((a3)<=(2047))&&((a1)<=(8191)))&&((a2)<=(127))){
(/*SFN*/C->_mangling)=((a3)<<(21));
(/*SFN*/C->_mangling)=((/*RF2*/(*C)._mangling/*4*/))|(((a1)<<(8)));
(/*SFN*/C->_mangling)=((/*RF2*/(*C)._mangling/*4*/))|(((a2)<<(1)));
}
else{
(/*SFN*/C->_mangling)=((a3)<<(17));
(/*SFN*/C->_mangling)=((/*RF2*/(*C)._mangling/*4*/))|(((a1)<<(1)));
(/*SFN*/C->_mangling)=((/*RF2*/(*C)._mangling/*4*/))|(1);
}
/*FI]*/
}


T6 r104is_unknown(T104* C){
T6 R=0;
R=((/*RF2*/(*C)._mangling/*4*/))==(0);
return R;
}


T2 r104id(T104* C){
T2 R=0;
/*[IF*/
if((((unsigned int)((/*RF2*/(*C)._mangling/*4*/)))&1)){
R=(((/*RF2*/(*C)._mangling/*4*/))>>(17));
}
else{
R=(((/*RF2*/(*C)._mangling/*4*/))>>(21));
}
/*FI]*/
return R;
}


T0* r104get_line(T0* a1,T2 a2){
T0* R=NULL;
T2 _i=0;
r38sfr_connect((T38*)(oBC19echo),oBC19tmp_file_read,a1);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC19tmp_file_read))->_path/*1*/))!=(NULL)/*)*/){
while (!((r43end_of_input((T43*)(oBC19tmp_file_read)))||((_i)==(a2))))
{
r43read_line((T43*)(oBC19tmp_file_read));
_i=(_i)+(1);
}
/*[IF*/
if(!(r43end_of_input((T43*)(oBC19tmp_file_read)))){
R=oBC44last_string;
}
/*FI]*/
r43disconnect((T43*)(oBC19tmp_file_read));
}
/*FI]*/
return R;
}


void r104show(T104* C){
T0* _the_line=NULL;
T0* _file_path=NULL;
T0* _name=NULL;
T0* _bcn=NULL;
T0* _bc=NULL;
T2 _nb=0;
T2 _co=0;
T2 _li=0;
_li=r104line(C);
_co=r104column(C);
_bc=(/*RF2*/(*C)._base_class/*0*/);
/*[IF*/
if((_bc)!=((void*)(NULL))){
_bcn=r104base_class_name(C);
}
/*FI]*/
/*[IF*/
if((_bcn)!=((void*)(NULL))){
_name=(/*RF2*/(((T77*)_bcn))->_to_string/*8*/);
_file_path=(/*RF2*/(((T61*)_bc))->_path/*4*/);
}
/*FI]*/
r38w_put_string(((T0*)ms104_63912));
r38w_put_integer(_li);
/*[IF*/
if((_co)>(0)){
r38w_put_string(((T0*)ms104_4479182));
r38w_put_integer(_co);
}
/*FI]*/
r38w_put_string(((T0*)ms104_7207));
/*[IF*/
if((_name)!=((void*)(NULL))){
r38w_put_string(_name);
}
/*FI]*/
/*[IF*/
if((_file_path)!=((void*)(NULL))){
r38w_put_string(((T0*)ms104_200));
r38w_put_string(_file_path);
r38w_put_character(((T3)'\51'));
}
/*FI]*/
r38w_put_string(((T0*)ms104_1100));
/*[IF*/
if((_file_path)!=((void*)(NULL))){
_the_line=r104get_line(_file_path,_li);
/*[IF*/
if(((_li)>(0))&&((_the_line)!=((void*)(NULL)))){
r38w_put_string(_the_line);
r38w_put_character(((T3)'\n'));
/*[IF*/
if((_co)>(0)){
_nb=1;
while (!((_nb)>=(_co)))
{
/*[IF*/
if((/*(IRF4.6item*/((/*RF2*/(((T7*)_the_line))->_storage/*0*/))[(_nb)-(1)]/*)*/)==(((T3)'\11'))){
r38w_put_character(((T3)'\11'));
}
else{
r38w_put_character(((T3)'\40'));
}
/*FI]*/
_nb=(_nb)+(1);
}
r38w_put_string(((T0*)ms104_480));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}


T0* r104base_class_name(T104* C){
T0* R=NULL;
T0* _bc=NULL;
_bc=(/*RF2*/(*C)._base_class/*0*/);
/*[IF*/
if((_bc)!=((void*)(NULL))){
R=(/*RF2*/(((T61*)_bc))->_name/*18*/);
}
/*FI]*/
return R;
}


T0* r104path(T104* C){
T0* R=NULL;
T2 _id_value=0;
T0* _bc=NULL;
_bc=(/*RF2*/(*C)._base_class/*0*/);
/*[IF*/
if((_bc)!=((void*)(NULL))){
R=(/*RF2*/(((T61*)_bc))->_path/*4*/);
}
/*FI]*/
/*[IF*/
if((R)==((void*)(NULL))){
_id_value=r104id(C);
/*[IF*/
if((r104id(C))!=(0)){
R=((/*UT*/(void)((T42*)(r104id_provider()))),r42alias_of(r104id(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r104before(T104* C,T104 a1){
T6 R=0;
T2 _other_li=0;
T2 _li=0;
_li=r104line(C);
_other_li=r104line(&a1);
/*[IF*/
if((_li)<(_other_li)){
R=1;
}
 else if((_li)==(_other_li)){
R=(r104column(C))<(r104column(&a1));
}
/*FI]*/
return R;
}


T0* r104id_provider(void){
if(fBC19id_provider==0){fBC19id_provider=1;{
{T42*n=((T42*)se_malloc(sizeof(*n))/*4*/);
*n=M42;
oBC19id_provider=((T0*)n);
r42make(n);
}
}}
return oBC19id_provider;
}


T2 r104line(T104* C){
T2 R=0;
T111 _bit=0;
/*[IF*/
if((((unsigned int)((/*RF2*/(*C)._mangling/*4*/)))&1)){
_bit=(((/*RF2*/(*C)._mangling/*4*/))>>(1));
_bit=(_bit)&(T113toT111(0x7FFF));
}
else{
_bit=(((/*RF2*/(*C)._mangling/*4*/))>>(8));
_bit=(_bit)&(T114toT111(0x1FFF));
}
/*FI]*/
R=_bit;
return R;
}


T2 r104column(T104* C){
T2 R=0;
T111 _bit=0;
/*[IF*/
if((((unsigned int)((/*RF2*/(*C)._mangling/*4*/)))&1)){
}
else{
_bit=(((/*RF2*/(*C)._mangling/*4*/))>>(1));
_bit=(_bit)&(T112toT111(0x7F));
R=_bit;
}
/*FI]*/
return R;
}


T6 r86file_exists(T0* a1){
T6 R=0;
R=r86is_readable(a1);
return R;
}


void r86rename_to(int C,T0* a1,T0* a2){
T8 _p2=NULL;
T8 _p1=NULL;
/*[IF*/
if(r86file_exists(a2)){
r86delete(C,a2);
}
/*FI]*/
_p1=r7to_external(((T7*)a1));
_p2=r7to_external(((T7*)a2));
rename(((char*)_p1),((char*)_p2));
}
T0*oBC86std_fr1=NULL;
T0*oBC86std_fr2=NULL;


T6 r86same_files(T0* a1,T0* a2){
T6 R=0;
r43connect_to((T43*)(oBC86std_fr1),a1);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC86std_fr1))->_path/*1*/))!=(NULL)/*)*/){
r43connect_to((T43*)(oBC86std_fr2),a2);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC86std_fr2))->_path/*1*/))!=(NULL)/*)*/){
R=r43same_as((T43*)(oBC86std_fr1),oBC86std_fr2);
}
else{
r43disconnect((T43*)(oBC86std_fr1));
}
/*FI]*/
}
/*FI]*/
return R;
}


void r86delete(int C,T0* a1){
T8 _p=NULL;
_p=r7to_external(((T7*)a1));
remove(((char*)_p));
}


T6 r86is_readable(T0* a1){
T6 R=0;
r43connect_to((T43*)(oBC86std_fr1),a1);
R=/*(IRF4.7is_connected*/((/*RF2*/((T43*)(oBC86std_fr1))->_path/*1*/))!=(NULL)/*)*/;
/*[IF*/
if(R){
r43disconnect((T43*)(oBC86std_fr1));
}
/*FI]*/
return R;
}


T0* r465o_flag(T0* a1){
T0* R=NULL;
R=oBC465o_flag_buffer;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
r7append(((T7*)R),((T0*)ms465_2947));
r2append_in((/*RF2*/((T61*)(/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)a1))->_base_class/*4*/)))->_id/*0*/),R);
r7append(((T7*)R),X117to_key(/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T293*)a1))->_names/*8*/))))->_first/*0*/)/*)*/));
R=((/*UT*/(void)((T27*)(r465string_aliaser()))),r27item(R));
return R;
}


T0* r465o_result(T0* a1){
T0* R=NULL;
R=oBC465o_result_buffer;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
r7append(((T7*)R),((T0*)ms465_3172));
r2append_in((/*RF2*/((T61*)(/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)a1))->_base_class/*4*/)))->_id/*0*/),R);
r7append(((T7*)R),X117to_key(/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(((T293*)a1))->_names/*8*/))))->_first/*0*/)/*)*/));
R=((/*UT*/(void)((T27*)(r465string_aliaser()))),r27item(R));
return R;
}
T0*oBC465function_list=NULL;
T0*oBC465o_flag_buffer=NULL;
T0*oBC465c_define_o_result_buffer=NULL;
T0*oBC465buffer=NULL;


void r465gc_mark_in(T0* a1){
T0* _oresult=NULL;
T0* _rt=NULL;
T0* _mem=NULL;
T0* _of=NULL;
T0* _rf=NULL;
T2 _i=0;
/*[IF*/
if((/*SSFRF4*//*X155count*/r155count((T155*)(oBC465function_list)))>(0)){
_i=/*SSWARF2*//*X155upper*/(/*RF2*/((T155*)(oBC465function_list))->_upper/*12*/);
{T466*n=((T466*)se_malloc(sizeof(*n))/*16*/);
*n=M466;
r466with_capacity(n,(_i)/(2));
_mem=((T0*)n);
}
while (!((_i)<(0)))
{
_rf=X155item(oBC465function_list,_i);
_of=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)_rf))->_base_feature/*28*/);
if(NULL!=(_of)){
switch(((T0*)_of)->id){
case 396:
break;
default:
_of=NULL;
}
}/*[IF*/
if(!(r466fast_has(((T466*)_mem),_of))){
/*[IF*/
if((/*RF2*/((T60*)(X62run_class(/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)_rf))->_current_type/*8*/))))->_at_run_time/*20*/)){
r466add_last(((T466*)_mem),_of);
_rt=X96result_type(_rf);
/*[IF*/
if(X62need_gc_mark_function(_rt)){
_oresult=r465o_result(_of);
r444mark_for(a1,_oresult,X62run_class(_rt));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}


void r465c_pre_compute_of(T0* a1,T0* a2){
T0* _rf3=NULL;
T0* _local_vars=NULL;
T0* _result_type=NULL;
/*[IF*/
if(r57require_check((T57*)(oBC19run_control))){
/*[IF*/
if((X96require_assertion(a1))!=((void*)(NULL))){
r427compile_to_c((T427*)(X96require_assertion(a1)));
}
/*FI]*/
}
/*FI]*/
_result_type=X96result_type(a1);
_rf3=X62expanded_initializer(_result_type);
/*[IF*/
if((_rf3)!=((void*)(NULL))){
r83put_proc_call_0((T83*)(oBC19cpp),_rf3,NULL,r465o_result(/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/)));
}
/*FI]*/
_local_vars=X96local_vars(a1);
/*[IF*/
if((_local_vars)!=((void*)(NULL))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r171c_declare(((T171*)_local_vars));
}
/*FI]*/
/*[IF*/
if((X96routine_body(a1))!=((void*)(NULL))){
r159compile_to_c((T159*)(X96routine_body(a1)));
}
/*FI]*/
/*[IF*/
if(r57ensure_check((T57*)(oBC19run_control))){
/*[IF*/
if((X96ensure_assertion(a1))!=((void*)(NULL))){
r309compile_to_c((T309*)(X96ensure_assertion(a1)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_local_vars)!=((void*)(NULL))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\175');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r465c_define_o_result(T0* a1){
T0* _rt=NULL;
T0* _oresult=NULL;
T0* _bcbf=NULL;
T0* _bf=NULL;
_bf=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/);
_bcbf=/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)_bf))->_base_class/*4*/);
_oresult=r465o_result(_bf);
/*[IF*/
if(!(r61once_flag(((T61*)_bcbf),_oresult))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC465buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC465buffer),((T3)'T'));
_rt=X96result_type(a1);
/*[IF*/
if(X62is_expanded(_rt)){
r2append_in(X62id(_rt),oBC465buffer);
r7extend((T7*)(oBC465buffer),((T3)'\40'));
}
else{
r7extend((T7*)(oBC465buffer),((T3)'0'));
r7extend((T7*)(oBC465buffer),((T3)'\52'));
}
/*FI]*/
r7append((T7*)(oBC465buffer),_oresult);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC465c_define_o_result_buffer))))->_count)=(0);
/*]*/
X62c_initialize_in(_rt,oBC465c_define_o_result_buffer);
r83put_extern5((T83*)(oBC19cpp),oBC465buffer,oBC465c_define_o_result_buffer);
}
/*FI]*/
}


T0* r465string_aliaser(void){
if(fBC19string_aliaser==0){fBC19string_aliaser=1;{
{T27*n=((T27*)se_malloc(1));
oBC19string_aliaser=((T0*)n);
/*[IRF3.2make*//*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2104);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53339);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_53028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33156840);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1339128);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_836969340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_33120277);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_774649014);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_168164374);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_274599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_171638715);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_175767198);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_867350214);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1384826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35866627);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35868574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7173699);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_286922);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_179371455);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1447702);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_904828090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_295849);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_349117293);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12184);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7704337);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1554777);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_971749965);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_12376);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_7749340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_324411);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_520438282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1692780980);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_65574);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3075);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9647090);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_64);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_552);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_61);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_371);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_62);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067995);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_361);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_60);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_45);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_296);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3421);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2126626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_43);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1960);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1972);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_47);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_282);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_35);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9529116);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_77832);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_280482649));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_386854);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_9676326);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1597390874));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_49076823);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_79341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_247239028);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_94407393);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_840111968);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1236707441);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15831);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810599);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_240810604);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1680885744);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244781926);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_244783893);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1223936132);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_48958735);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1622700141);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1979951);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_936296820);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1949019648);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_705019679);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1286698901);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10018876);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50778415);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_397576);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_15932);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80109);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80416);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_80694);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2023685073);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_406284);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2067759348);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2090604340);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_880412606);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_50246319);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_636);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_619776399));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1744612358);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1937220099);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_378799862);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10377643);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1297876698);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16639);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16616);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_84969);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_16686);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
r27special_add(((T0*)ms21_1856946950));
r27special_add(((T0*)ms21_1740332382));
r27special_add(((T0*)ms21_111802057));
r27special_add(((T0*)ms21_756809447));
r27special_add(((T0*)ms21_1419919903));
r27special_add(((T0*)ms21_275488632));
r27special_add(((T0*)ms21_1377517899));
r27special_add(((T0*)ms21_698215697));
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1326673961);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_954385774);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1778079380);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_87541);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_10945665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_849712179);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_3501);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88048);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88049);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_573080478);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54325331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_41849945);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2174354);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_438300);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187464);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2187483);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54733071);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_733277224);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_54749764);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11011040);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_112335826);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_11026665);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1507243919);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1053896806);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591414963);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_267647687);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_591417242);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447584);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_89510);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_447851);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55924644);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55926626);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279656751);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2246041);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_88795);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_446841);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1607595572);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_55868341);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279416444);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_279523519);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2236118);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1574640467);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1742738754);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_18110);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_90544);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1202672333);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_287359706);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1501191);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_1498845794);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_2038667775);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_42134669);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_337331);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*[IRF3.6regular_add*/{T0* b1=((T0*)ms21_14150);
r30add((T30*)(oBC27memory),b1,b1);
}/*]*/
/*]*/
}
}}
return oBC19string_aliaser;
}


void r465c_test_o_flag(T0* a1){
T0* _flag=NULL;
_flag=r465o_flag(/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_3175));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_flag);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_47278));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_flag);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_46350));
/*]*/
}
T0*oBC465o_result_buffer=NULL;


void r465c_return_o_result(T0* a1){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_295937432));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),r465o_result(/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/)));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_8260));
/*]*/
}
T0*oBC465procedure_list=NULL;


void r465register_function(T0* a1){
X155add_last(oBC465function_list,a1);
}


void r465c_define_o_flag(T0* a1){
T0* _flag=NULL;
T0* _bcbf=NULL;
T0* _bf=NULL;
_bf=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/);
_bcbf=/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)_bf))->_base_class/*4*/);
_flag=r465o_flag(_bf);
/*[IF*/
if(!(r61once_flag(((T61*)_bcbf),_flag))){
r7copy((T7*)(oBC465buffer),((T0*)ms465_16487));
r7append((T7*)(oBC465buffer),_flag);
r83put_extern2((T83*)(oBC19cpp),oBC465buffer,((T3)'0'));
}
/*FI]*/
}


void r465register_procedure(T0* a1){
X155add_last(oBC465procedure_list,a1);
}


T6 r465is_pre_computable(T0* a1){
T6 R=0;
/*[IF*/
if(r52fast_has((T52*)(oBC465frozen_general),X117to_string(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)a1))->_name/*16*/)))){
R=1;
}
 else if(((X96arguments(a1))==((void*)(NULL)))&&(!(X96use_current(a1)))){
/*[IF*/
if((X96routine_body(a1))==((void*)(NULL))){
R=1;
}
 else if(!(r57invariant_check((T57*)(oBC19run_control)))){
R=r159is_pre_computable((T159*)(X96routine_body(a1)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if((X96require_assertion(a1))!=((void*)(NULL))){
r427clear_run_feature((T427*)(X96require_assertion(a1)));
}
/*FI]*/
/*[IF*/
if((X96ensure_assertion(a1))!=((void*)(NULL))){
/*[IRF3.3clear_run_feature*/((((T309*)((T309*)(X96ensure_assertion(a1)))))->_run_feature)=(NULL);
/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0*oBC465frozen_general=NULL;


void r449put_ith_argument(T0* a1,T0* a2,T2 a3){
T6 _conversion=0;
T0* _ft=NULL;
T0* _at=NULL;
T0* _eal=NULL;
_eal=X96arguments(a1);
_at=X62run_type(r121type(((T121*)_eal),a3));
_ft=X62run_type(r121type(((T121*)a2),a3));
/*[IF*/
if(X62is_reference(_at)){
_conversion=X62is_expanded(_ft);
}
else{
_conversion=X62is_reference(_ft);
}
/*FI]*/
/*[IF*/
if(_conversion){
r440c_function_call((T440*)(oBC19conversion_handler),_at,_ft);
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'a');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),a3);
/*]*/
/*[IF*/
if(_conversion){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r449c_dicho(int C,T0* a1,T2 a2,T2 a3){
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
T2 _m=0;
/*[IF*/
if((a2)==(a3)){
_dyn_rc=r63item((T63*)(oBC449running),a2);
_dyn_rf=r60dynamic(((T60*)_dyn_rc),a1);
r83inside_switch_call((T83*)(oBC19cpp),_dyn_rf,a1);
}
else{
_m=((a2)+(a3))/(2);
_dyn_rc=r63item((T63*)(oBC449running),_m);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_2000361));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_dyn_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_1650));
/*]*/
r449c_dicho(C,a1,a2,_m);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_10322525));
/*]*/
r449c_dicho(C,a1,(_m)+(1),a3);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\175');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}


void r449put_arguments(T0* a1,T0* a2){
T2 _up=0;
T2 _i=0;
_i=1;
_up=/*(IRF4.6count*/r128count(((T128*)((/*RF2*/(((T121*)a2))->_flat_list/*8*/))))/*)*/;
while (!((_i)>(_up)))
{
/*[IF*/
if((_i)>(1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r449put_ith_argument(a1,a2,_i);
_i=(_i)+(1);
}
}


void r449c_switch(T0* a1){
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
T2 _i=0;
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_1552636066));
/*]*/
_i=1;
while (!((_i)>((/*RF2*/((T63*)(oBC449running))->_upper/*12*/))))
{
_dyn_rc=r63item((T63*)(oBC449running),_i);
_dyn_rf=r60dynamic(((T60*)_dyn_rc),a1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_77412));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_dyn_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\72');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r83inside_switch_call((T83*)(oBC19cpp),_dyn_rf,a1);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_2746980));
/*]*/
_i=(_i)+(1);
}
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_593760881));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
T0*oBC449running=NULL;


T0* r449name(T0* a1){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC449c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC449c_code),((T3)'X'));
r2append_in((/*RF2*/((T60*)(/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)a1))->_run_class/*12*/)))->_id/*16*/),oBC449c_code);
r7append((T7*)(oBC449c_code),X117to_key(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)a1))->_name/*16*/)));
R=oBC449c_code;
return R;
}
T0*oBC449c_code=NULL;


void r449sort_running(T0* a1){
T6 _moved=0;
T2 _buble=0;
T2 _max=0;
T2 _min=0;
_max=(/*RF2*/(((T63*)a1))->_upper/*12*/);
_min=1;
_moved=1;
while (!(!(_moved)))
{
_moved=0;
/*[IF*/
if(((_max)-(_min))>(0)){
_buble=(_min)+(1);
while (!((_buble)>(_max)))
{
/*[IF*/
if(((/*RF2*/((T60*)(r63item(((T63*)a1),(_buble)-(1))))->_id/*16*/))>((/*RF2*/((T60*)(r63item(((T63*)a1),_buble)))->_id/*16*/))){
r63swap(((T63*)a1),(_buble)-(1),_buble);
_moved=1;
}
/*FI]*/
_buble=(_buble)+(1);
}
_max=(_max)-(1);
}
/*FI]*/
/*[IF*/
if((_moved)&&(((_max)-(_min))>(0))){
_moved=0;
_buble=(_max)-(1);
while (!((_buble)<(_min)))
{
/*[IF*/
if(((/*RF2*/((T60*)(r63item(((T63*)a1),_buble)))->_id/*16*/))>((/*RF2*/((T60*)(r63item(((T63*)a1),(_buble)+(1))))->_id/*16*/))){
r63swap(((T63*)a1),_buble,(_buble)+(1));
_moved=1;
}
/*FI]*/
_buble=(_buble)-(1);
}
_min=(_min)+(1);
}
/*FI]*/
}
}


void r449afd(T0* a1){
T0* _r_arguments=NULL;
T0* _x_arguments=NULL;
T0* _dyn_rf=NULL;
T0* _r_current_type=NULL;
T0* _x_current_type=NULL;
T0* _r_result_type=NULL;
T0* _x_result_type=NULL;
T2 _i=0;
T0* _r=NULL;
_x_current_type=/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)a1))->_current_type/*8*/);
_x_result_type=X96result_type(a1);
_x_arguments=X96arguments(a1);
_r=(/*RF2*/((T60*)(/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)a1))->_run_class/*12*/)))->_running/*21*/);
_i=(/*RF2*/(((T63*)_r))->_upper/*12*/);
while (!((_i)==(0)))
{
_dyn_rf=r60dynamic((T60*)(r63item(((T63*)_r),_i)),a1);
_r_current_type=/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)_dyn_rf))->_current_type/*8*/);
r440passing((T440*)(oBC19conversion_handler),_x_current_type,_r_current_type);
/*[IF*/
if((_x_result_type)!=((void*)(NULL))){
_r_result_type=X96result_type(_dyn_rf);
r440passing((T440*)(oBC19conversion_handler),_r_result_type,_x_result_type);
}
/*FI]*/
/*[IF*/
if((_x_arguments)!=((void*)(NULL))){
_r_arguments=X96arguments(_dyn_rf);
r121afd_notify_conversion(((T121*)_x_arguments),_r_arguments);
}
/*FI]*/
_i=(_i)-(1);
}
}


void r449c_define(int C,T0* a1){
T2 _i=0;
T0* _arg_type=NULL;
T0* _result_type=NULL;
T0* _arguments=NULL;
T6 _boost=0;
_boost=r57boost((T57*)(oBC19run_control));
_arguments=X96arguments(a1);
_result_type=X96result_type(a1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC449c_code))))->_count)=(0);
/*]*/
/*[IF*/
if((_result_type)==((void*)(NULL))){
r7append((T7*)(oBC449c_code),((T0*)ms20_18150));
}
else{
_result_type=X62run_type(_result_type);
X62c_type_for_result_in(_result_type,oBC449c_code);
}
/*FI]*/
r7extend((T7*)(oBC449c_code),((T3)'\40'));
r7extend((T7*)(oBC449c_code),((T3)'X'));
r2append_in(X62id(/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)a1))->_current_type/*8*/)),oBC449c_code);
X117mapping_c_in(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)a1))->_name/*16*/),oBC449c_code);
/*[IF*/
if(_boost){
r7append((T7*)(oBC449c_code),((T0*)ms449_36977));
}
else{
r7append((T7*)(oBC449c_code),((T0*)ms449_209097161));
}
/*FI]*/
/*[IF*/
if((_arguments)!=((void*)(NULL))){
_i=1;
while (!((_i)>(/*(IRF4.6count*/r128count(((T128*)((/*RF2*/(((T121*)_arguments))->_flat_list/*8*/))))/*)*/)))
{
r7extend((T7*)(oBC449c_code),((T3)'\54'));
_arg_type=X62run_type(r121type(((T121*)_arguments),_i));
X62c_type_for_argument_in(_arg_type,oBC449c_code);
r7append((T7*)(oBC449c_code),((T0*)ms449_257));
r2append_in(_i,oBC449c_code);
_i=(_i)+(1);
}
}
/*FI]*/
r7extend((T7*)(oBC449c_code),((T3)'\51'));
r83put_c_heading((T83*)(oBC19cpp),oBC449c_code);
/*[IRF3.3swap_on_c*/((((T83*)((T83*)(oBC19cpp))))->_current_out)=(oBC83out_c);
/*]*/
/*[IF*/
if((_result_type)!=((void*)(NULL))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC449c_code))))->_count)=(0);
/*]*/
X62c_type_for_result_in(_result_type,oBC449c_code);
r7extend((T7*)(oBC449c_code),((T3)'\40'));
r7extend((T7*)(oBC449c_code),((T3)'R'));
/*[IF*/
if(!(_boost)){
r7extend((T7*)(oBC449c_code),((T3)'\75'));
X62c_initialize_in(_result_type,oBC449c_code);
}
/*FI]*/
r7append((T7*)(oBC449c_code),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC449c_code);
/*]*/
}
/*FI]*/
/*[IF*/
if(!(_boost)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_993641482));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_11319686));
/*]*/
r63copy((T63*)(oBC449running),(/*RF2*/((T60*)(/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)a1))->_run_class/*12*/)))->_running/*21*/));
r449sort_running(oBC449running);
/*[IF*/
if(_boost){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_1156329759));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_342169763));
/*]*/
}
/*FI]*/
/*[IF*/
if(r57all_check((T57*)(oBC19run_control))){
r449c_switch(a1);
}
else{
r449c_dicho(C,a1,1,(/*RF2*/((T63*)(oBC449running))->_upper/*12*/));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
/*[IF*/
if(!(_boost)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms449_43899248));
/*]*/
}
/*FI]*/
/*[IF*/
if((_result_type)!=((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_1754150081));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_635));
/*]*/
}
/*FI]*/
r83finished_switch((T83*)(oBC19cpp),(/*RF2*/((T63*)(oBC449running))->_upper/*12*/));
}


void r474register_for(T0* a1){
T0* _rf=NULL;
_rf=(/*RF2*/(((T254*)a1))->_run_feature/*8*/);
/*[IF*/
if(!(X155fast_has(oBC474registered,_rf))){
X155add_last(oBC474registered,_rf);
r475add_last((T475*)(oBC474caller_memory),a1);
}
/*FI]*/
}
T0*oBC474caller_memory=NULL;
T0*oBC474registered=NULL;


void r83put_recompilation_comment(T2 a1){
r58put_string((T58*)(oBC83out_c),((T0*)ms20_277));
r58put_integer((T58*)(oBC83out_c),a1);
r58put_string((T58*)(oBC83out_c),((T0*)ms20_257));
}


void r83put_banner(T0* a1){
r58put_string(((T58*)a1),((T0*)ms20_277));
r58put_string(((T58*)a1),((T0*)ms83_1898670837));
r58put_string(((T58*)a1),((T0*)ms59_2140009595));
r58put_string(((T58*)a1),((T0*)ms20_257));
/*[IRF3.6put_character*/{T58* C1=((T58*)a1);
T3 b1=((T3)'\n');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}


void r83incr_real_function_count(T83* C){
(/*SFN*/C->_real_function_count)=((/*RF2*/(C)->_real_function_count/*24*/))+(1);
}


void r83se_evobt(T83* C,T0* a1,T0* a2){
T0* _rt=NULL;
(/*SFN*/C->_sure_void_count)=((/*RF2*/(C)->_sure_void_count/*44*/))+(1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_10940631));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
X126compile_to_c(a2);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
{T104 se_tmp0;
/*[IRF3.6put_position*/{T104 b1=(*(se_tmp0=X126start_position(a2),&se_tmp0));
r58put_integer((T58*)(oBC83out_c),(/*RF2*/(b1)._mangling/*4*/));
}/*]*/
}
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_1316373138));
/*]*/
X126compile_to_c(a2);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r165se_evobt((T165*)(oBC19exceptions_handler));
}
/*FI]*/
_rt=X96result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(X62is_reference(_rt)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_36951));
/*]*/
}
/*FI]*/
X62c_initialize(_rt);
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((_rt)==((void*)(NULL))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
}
T0*oBC83path_c=NULL;
int fBC83path_c=0;


T0* r83path_c(T83* C){
if(fBC83path_c==0){fBC83path_c=1;{
/*[IF*/
if((/*RF2*/(C)->_no_split/*52*/)){
oBC83path_c=r7twin((T7*)(r83path_h()));
r7remove_last(((T7*)oBC83path_c),1);
r7extend(((T7*)oBC83path_c),((T3)'c'));
}
else{
(/*SFN*/C->_split_count)=1;
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
oBC83path_c=((T0*)n);
r7make(n,((/*RF2*/((T7*)(r83path_h()))->_count/*4*/))+(4));
}
r83path_c_in(oBC83path_c,(/*RF2*/(C)->_split_count/*79*/));
}
/*FI]*/
}}
return oBC83path_c;
}


void r83incr_elt_c_count(T83* C,T2 a1){
/*[IF*/
if((/*RF2*/(C)->_no_split/*52*/)){
}
else{
(/*SFN*/C->_elt_c_count)=((/*RF2*/(C)->_elt_c_count/*83*/))+(a1);
/*[IF*/
if(((/*RF2*/(C)->_elt_c_count/*83*/))>=(5000)){
(/*SFN*/C->_elt_c_count)=0;
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\n');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
r58disconnect((T58*)(oBC83out_c));
(/*SFN*/C->_split_count)=((/*RF2*/(C)->_split_count/*79*/))+(1);
r83path_c_in(r83path_c(C),(/*RF2*/(C)->_split_count/*79*/));
r83backup_sfw_connect(oBC83out_c,r83path_c(C));
r83add_first_include(r83path_h());
/*[IF*/
if(((/*RF2*/(C)->_current_out/*63*/))!=((void*)((/*RF2*/(C)->_out_h/*59*/)))){
(/*SFN*/C->_current_out)=oBC83out_c;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
T0*oBC83path_h=NULL;
int fBC83path_h=0;


T0* r83path_h(void){
if(fBC83path_h==0){fBC83path_h=1;{
oBC83path_h=r48path_h((T48*)(r83system_tools()));
}}
return oBC83path_h;
}


T6 r83arguments_cannot_be_dropped(T83* C){
T6 R=0;
/*[IF*/
if(!(r83no_args_to_eval(C))){
R=1;
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_1765316316));
/*]*/
r83put_arguments(C);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
/*FI]*/
return R;
}


void r83put_position_in_ds(T104 a1){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_78646));
/*[IRF3.6put_position*/{T104 b1=a1;
r58put_integer((T58*)(oBC83out_c),(/*RF2*/(b1)._mangling/*4*/));
}/*]*/
r58put_string((T58*)(oBC83out_c),((T0*)ms20_305));
}


void r83put_c_heading(T83* C,T0* a1){
r83incr_elt_c_count(C,4);
r58put_string((T58*)((/*RF2*/(C)->_out_h/*59*/)),a1);
r58put_string((T58*)((/*RF2*/(C)->_out_h/*59*/)),((T0*)ms20_305));
r58put_string((T58*)(oBC83out_c),((T0*)ms83_60));
r58put_string((T58*)(oBC83out_c),a1);
r58put_string((T58*)(oBC83out_c),((T0*)ms20_625));
}


void r83incr_direct_call_count(T83* C){
(/*SFN*/C->_direct_call_count)=((/*RF2*/(C)->_direct_call_count/*40*/))+(1);
}


void r83one_more_instruction_generated(T83* C){
(/*SFN*/C->_elt_c_count)=((/*RF2*/(C)->_elt_c_count/*83*/))+(1);
}


void r83incr_switch_count(T83* C){
(/*SFN*/C->_switch_count)=((/*RF2*/(C)->_switch_count/*48*/))+(1);
}


void r83define_main(T83* C,T0* a1){
/*[IRF3.3swap_on_c*/((((T83*)(C)))->_current_out)=(oBC83out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC83tmp_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC83tmp_string),((T3)'T'));
r2append_in((/*RF2*/((T60*)((/*RF2*/(((T154*)a1))->_run_class/*12*/)))->_id/*16*/),oBC83tmp_string);
r7append((T7*)(oBC83tmp_string),((T0*)ms83_5367889));
r83put_extern5(C,oBC83tmp_string,((T0*)ms20_12331));
r83put_extern1(C,((T0*)ms83_1290234339));
r83put_extern1(C,((T0*)ms83_375072661));
r83define_initialize_eiffel_runtime(C,a1);
/*[IF*/
if(!((/*RF2*/(C)->_no_main/*53*/))){
r83really_define_c_main(C,a1);
}
/*FI]*/
r83incr_elt_c_count(C,4);
}
T0*oBC83se_tmp_list=NULL;


void r83fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r83inside_switch_call(T83* C,T0* a1,T0* a2){
T6 _need_se_tmp=0;
T6 _cast=0;
T0* _static_result=NULL;
T0* _dyn_result=NULL;
X96collect_c_tmp(a1);
_need_se_tmp=r83se_tmp_open_declaration(C);
_static_result=X96result_type(a2);
/*[IF*/
if((_static_result)!=((void*)(NULL))){
_dyn_result=X96result_type(a1);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_2395));
/*[IF*/
if(X62is_native_array(_static_result)){
_cast=1;
r58put_string((T58*)(oBC83out_c),((T0*)ms20_1284));
r58put_integer((T58*)(oBC83out_c),X62id(_static_result));
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
/*[IF*/
if((X62is_expanded(_dyn_result))&&(X62is_reference(_static_result))){
r440c_function_call((T440*)(oBC19conversion_handler),_dyn_result,_static_result);
}
/*FI]*/
}
/*FI]*/
r83stack_push(C,3);
X155put(oBC84stack_rf,a1,(/*RF2*/(C)->_top/*32*/));
X155put(oBC84stack_static_rf,a2,(/*RF2*/(C)->_top/*32*/));
X96mapping_c(a1);
r83pop(C);
/*[IF*/
if((_static_result)!=((void*)(NULL))){
/*[IF*/
if((X62is_expanded(_dyn_result))&&(X62is_reference(_static_result))){
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
/*[IF*/
if(_cast){
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
r58put_string((T58*)(oBC83out_c),((T0*)ms20_1330));
}
/*FI]*/
/*[IF*/
if(_need_se_tmp){
r83se_tmp_close_declaration(C);
}
/*FI]*/
}


void r83use_switch(T83* C,T0* a1,T0* a2,T0* a3,T0* a4){
T6 _cast=0;
T2 _tmp_expanded_idx=0;
int _switch=0;
T0* _rf=NULL;
T0* _rc=NULL;
T0* _rt=NULL;
_rt=X96result_type(a1);
/*[IF*/
if((r57boost((T57*)(oBC19run_control)))&&(r83stupid_switch(C,a1))){
r432remove(a1);
r58put_string((T58*)(oBC83out_c),((T0*)ms20_277));
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'X');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
r58put_integer((T58*)(oBC83out_c),X62id(/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)a1))->_current_type/*8*/)));
r58put_string((T58*)(oBC83out_c),X117to_string(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)a1))->_name/*16*/)));
r58put_string((T58*)(oBC83out_c),((T0*)ms20_257));
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X62is_native_array(_rt))){
_cast=1;
r58put_string((T58*)(oBC83out_c),((T0*)ms20_1284));
r58put_integer((T58*)(oBC83out_c),X62id(_rt));
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
_rc=r63item(((T63*)a2),1);
_rf=r60dynamic(((T60*)_rc),a1);
r83push_direct(C,_rf,a3,a4);
X96mapping_c(_rf);
r83pop(C);
/*[IF*/
if(_cast){
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
}
else{
(/*SFN*/C->_switch_count)=((/*RF2*/(C)->_switch_count/*48*/))+(1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_tmp_expanded_idx=r83se_tmp_open(a1);
}
/*FI]*/
r58put_string((T58*)(oBC83out_c),r449name(a1));
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_7869));
{T104 se_tmp0;
/*[IRF3.6put_position*/{T104 b1=(*(se_tmp0=X126start_position(a3),&se_tmp0));
r58put_integer((T58*)(oBC83out_c),(/*RF2*/(b1)._mangling/*4*/));
}/*]*/
}
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
X126compile_to_c(a3);
/*[IF*/
if((a4)!=((void*)(NULL))){
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*SSPRF3*//*X245compile_to_c*/r245compile_to_c(((T245*)a4),X96arguments(a1));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((_rt)==((void*)(NULL))){
r58put_string((T58*)(oBC83out_c),((T0*)ms20_305));
}
 else if((_tmp_expanded_idx)>=(0)){
r83se_tmp_close(_tmp_expanded_idx);
}
/*FI]*/
}
/*FI]*/
}


T6 r83attribute_read_removal(T0* a1,T0* a2){
T6 R=0;
T0* _rc=NULL;
T2 _i=0;
T0* _rtb=NULL;
T0* _rta=NULL;
T2 _offsetb=0;
T2 _offseta=0;
T0* _rf2b=NULL;
T0* _rf2a=NULL;
R=1;
_i=(/*RF2*/(((T63*)a2))->_upper/*12*/);
while (!((!(R))||((_i)==(0))))
{
_rc=r63item(((T63*)a2),_i);
_rf2b=r60dynamic(((T60*)_rc),a1);
if(NULL!=(_rf2b)){
switch(((T0*)_rf2b)->id){
case 152:
break;
default:
_rf2b=NULL;
}
}/*[IF*/
if((_rf2b)!=((void*)(NULL))){
_offsetb=r60offset_of(((T60*)_rc),_rf2b);
}
/*FI]*/
/*[IF*/
if((_rf2a)==((void*)(NULL))){
_rf2a=_rf2b;
_offseta=_offsetb;
}
/*FI]*/
/*[IF*/
if((_rf2b)==((void*)(NULL))){
R=0;
}
else{
R=(_offseta)==(_offsetb);
/*[IF*/
if(R){
_rta=(/*RF2*/(((T152*)_rf2a))->_result_type/*32*/);
_rtb=(/*RF2*/(((T152*)_rf2b))->_result_type/*32*/);
/*[IF*/
if(X62is_reference(_rta)){
R=X62is_reference(_rtb);
}
 else if((X62run_time_mark(_rta))==((void*)(X62run_time_mark(_rtb)))){
}
 else if(X62is_native_array(_rta)){
/*[IF*/
if(X62is_reference(/*(IRF4.6first*/((/*RF2*/((T147*)(X62generic_list(_rta)))->_storage/*0*/))[0]/*)*/)){
R=X62is_reference(/*(IRF4.6first*/((/*RF2*/((T147*)(X62generic_list(_rtb)))->_storage/*0*/))[0]/*)*/);
}
/*FI]*/
}
else{
R=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
return R;
}


void r83push_check(T83* C,T0* a1,T0* a2,T0* a3){
r83stack_push(C,2);
X155put(oBC84stack_rf,a1,(/*RF2*/(C)->_top/*32*/));
X212put(oBC84stack_target,a2,(/*RF2*/(C)->_top/*32*/));
/*[IRF3.5put*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]=(a3);
/*]*/
}


void r83cecil_define(T83* C){
T0* _save_out_h=NULL;
_save_out_h=(/*RF2*/(C)->_out_h/*59*/);
r131c_define_users((T131*)(oBC19cecil_pool));
(/*SFN*/C->_out_h)=_save_out_h;
}


void r83current_class_invariant(T0* a1){
T0* _rc=NULL;
_rc=r83need_invariant(a1);
/*[IF*/
if((_rc)!=((void*)(NULL))){
/*[IF*/
if(X62is_reference((/*RF2*/(((T60*)_rc))->_current_type/*0*/))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1214735849));
}
/*FI]*/
r58put_string((T58*)(oBC83out_c),((T0*)ms20_17480));
r58put_integer((T58*)(oBC83out_c),(/*RF2*/(((T60*)_rc))->_id/*16*/));
r58put_string((T58*)(oBC83out_c),((T0*)ms83_20552830));
}
/*FI]*/
}


void r83push_new(T83* C,T0* a1,T0* a2){
r83stack_push(C,4);
X155put(oBC84stack_rf,a1,(/*RF2*/(C)->_top/*32*/));
/*[IRF3.5put*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]=(a2);
/*]*/
(/*SFN*/C->_direct_call_count)=((/*RF2*/(C)->_direct_call_count/*40*/))+(1);
}


void r83se_tmp_close_declaration(T83* C){
(/*SFN*/C->_se_tmp_level)=((/*RF2*/(C)->_se_tmp_level/*92*/))-(1);
r58put_string((T58*)(oBC83out_c),((T0*)ms20_635));
/*[IF*/
if(((/*RF2*/(C)->_se_tmp_level/*92*/))==(0)){
/*SSPRF3*//*X155clear*//*[IRF3.3clear*/((((T155*)((T155*)(oBC83se_tmp_list))))->_upper)=(-(1));
/*]*/
}
/*FI]*/
}


void r83push_same_target(T83* C,T0* a1,T0* a2){
r83stack_push(C,7);
X155put(oBC84stack_rf,a1,(/*RF2*/(C)->_top/*32*/));
/*[IRF3.5put*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]=(a2);
/*]*/
}
T0*oBC83path_make=NULL;
int fBC83path_make=0;


T0* r83path_make(void){
if(fBC83path_make==0){fBC83path_make=1;{
oBC83path_make=r7twin((T7*)(r83path_h()));
r7remove_last(((T7*)oBC83path_make),2);
r7append(((T7*)oBC83path_make),r48make_suffix((T48*)(r83system_tools())));
}}
return oBC83path_make;
}


T6 r83call_invariant_start(T0* a1){
T6 R=0;
T0* _rc=NULL;
_rc=r83need_invariant(a1);
/*[IF*/
if((_rc)!=((void*)(NULL))){
r58put_string((T58*)(oBC83out_c),((T0*)ms20_17480));
r58put_integer((T58*)(oBC83out_c),(/*RF2*/(((T60*)_rc))->_id/*16*/));
r58put_string((T58*)(oBC83out_c),((T0*)ms83_32869));
R=1;
}
/*FI]*/
return R;
}


void r83inline_level_incr(T83* C){
(/*SFN*/C->_inline_level)=((/*RF2*/(C)->_inline_level/*75*/))+(1);
}


void r83put_c_inline_c(T83* C){
T0* _c_code=NULL;
_c_code=r83get_inline_ms(C);
r58put_string((T58*)(oBC83out_c),(/*RF2*/(((T262*)_c_code))->_to_string/*12*/));
}


void r83push_direct(T83* C,T0* a1,T0* a2,T0* a3){
r83stack_push(C,1);
X155put(oBC84stack_rf,a1,(/*RF2*/(C)->_top/*32*/));
X212put(oBC84stack_target,a2,(/*RF2*/(C)->_top/*32*/));
/*[IRF3.5put*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]=(a3);
/*]*/
(/*SFN*/C->_direct_call_count)=((/*RF2*/(C)->_direct_call_count/*40*/))+(1);
}
T0*oBC84stack_cpc=NULL;


void r83put_c_inline_h(T83* C){
T0* _c_code=NULL;
_c_code=(/*RF2*/((T262*)(r83get_inline_ms(C)))->_to_string/*12*/);
/*[IF*/
if(!(r120fast_has((T120*)(oBC83c_inline_h_mem),_c_code))){
r120add_last((T120*)(oBC83c_inline_h_mem),_c_code);
r58put_string((T58*)((/*RF2*/(C)->_out_h/*59*/)),_c_code);
/*[IRF3.6put_character*/{T58* C1=(T58*)((/*RF2*/(C)->_out_h/*59*/));
T3 b1=((T3)'\n');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
/*FI]*/
}


T6 r83target_cannot_be_dropped(T83* C){
T6 R=0;
T0* _target_type=NULL;
T0* _target=NULL;
/*[INSPECT*/
{int z1=/*(IRF4.6item*/((/*RF2*/((T132*)(oBC84stack_code))->_storage/*4*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/;
switch(z1){
case 1:
case 2:
_target=X212item(oBC84stack_target,(/*RF2*/(C)->_top/*32*/));
_target_type=X126result_type(_target);
R=!(X126can_be_dropped(_target));
break;
case 6:
R=1;
break;
case 7:
(/*SFN*/C->_top)=((/*RF2*/(C)->_top/*32*/))-(1);
R=r83target_cannot_be_dropped(C);
(/*SFN*/C->_top)=((/*RF2*/(C)->_top/*32*/))+(1);
break;
}
}/*INSPECT]*/
/*[IF*/
if(R){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_1728206941));
/*]*/
/*[IF*/
if((_target_type)==((void*)(NULL))){
r83put_target_as_target(C);
}
 else if(X62is_user_expanded(_target_type)){
r83put_target_as_value(C);
}
else{
r83put_target_as_target(C);
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms20_246));
/*]*/
}
/*FI]*/
return R;
}


T2 r83se_tmp_open(T0* a1){
T2 R=0;
T6 _stop=0;
T0* _rt=NULL;
R=/*SSWARF2*//*X155upper*/(/*RF2*/((T155*)(oBC83se_tmp_list))->_upper/*12*/);
while (!(_stop))
{
/*[IF*/
if((R)<(0)){
_stop=1;
}
 else if((a1)==((void*)(X155item(oBC83se_tmp_list,R)))){
_stop=1;
_rt=X96result_type(a1);
X155put(oBC83se_tmp_list,NULL,R);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_19969182));
r58put_integer((T58*)(oBC83out_c),R);
/*[IRF3.6put_character*/{T58* C1=(T58*)(oBC83out_c);
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
}
else{
R=(R)-(1);
}
/*FI]*/
}
return R;
}


void r83really_define_c_main(T83* C,T0* a1){
T0* _ct=NULL;
T0* _rc=NULL;
T2 _id=0;
r38put_string((T38*)(oBC19echo),((T0*)ms83_585944489));
_ct=(/*RF2*/(((T154*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T154*)a1))->_run_class/*12*/);
_id=(/*RF2*/(((T60*)_rc))->_id/*16*/);
r48put_c_main_function_type((T48*)(r83system_tools()),oBC83out_c);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_522679873));
r58put_string((T58*)(oBC83out_c),((T0*)ms83_699));
r58put_integer((T58*)(oBC83out_c),_id);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_2121209581));
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1371497790));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC19c_frame_descriptor_format))))->_count)=(0);
/*]*/
X62c_frame_descriptor(_ct);
r58put_string((T58*)(oBC83out_c),oBC19c_frame_descriptor_format);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1779522914));
{T104 se_tmp0;
r83put_position_in_ds(/*(IRF4.6start_position*/(*(se_tmp0=r150start_position(((T150*)((/*RF2*/(((T154*)a1))->_base_feature/*28*/)))),&se_tmp0))/*)*/);
}
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1348520454));
}
/*FI]*/
r83expanded_attributes(C,_ct);
r83push_new(C,a1,NULL);
r154mapping_c(((T154*)a1));
r83pop(C);
/*[IF*/
if(r57invariant_check((T57*)(oBC19run_control))){
/*[IF*/
if(((/*RF2*/(((T60*)_rc))->_class_invariant/*25*/))!=((void*)(NULL))){
r58put_string((T58*)(oBC83out_c),((T0*)ms20_17480));
r58put_integer((T58*)(oBC83out_c),_id);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_20558205));
}
/*FI]*/
}
/*FI]*/
r444gc_info_before_exit((T444*)(oBC19gc_handler));
r48put_c_main_function_exit((T48*)(r83system_tools()),oBC83out_c);
}


void r83put_ith_argument(T83* C,T2 a1){
int _switch=0;
T0* _fal=NULL;
T0* _args=NULL;
T0* _target=NULL;
T0* _static_rf=NULL;
T0* _rf=NULL;
T2 _code=0;
_code=/*(IRF4.6item*/((/*RF2*/((T132*)(oBC84stack_code))->_storage/*4*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/;
/*[INSPECT*/
{int z1=_code;
switch(z1){
case 1:
_fal=X96arguments(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/)));
/*SSPRF3*//*X245compile_to_c_ith*/r245compile_to_c_ith((T245*)(/*(IRF4.6item*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/),_fal,a1);
break;
case 2:
_fal=X96arguments(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/)));
/*SSPRF3*//*X245compile_to_c_ith*/r245compile_to_c_ith((T245*)(/*(IRF4.6item*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/),_fal,a1);
break;
case 3:
_fal=X96arguments(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/)));
_static_rf=X155item(oBC84stack_static_rf,(/*RF2*/(C)->_top/*32*/));
r449put_ith_argument(_static_rf,_fal,a1);
break;
case 4:
_fal=X96arguments(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/)));
/*SSPRF3*//*X245compile_to_c_ith*/r245compile_to_c_ith((T245*)(/*(IRF4.6item*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/),_fal,a1);
break;
case 6:
_rf=X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/));
_target=X212item(oBC84stack_target,(/*RF2*/(C)->_top/*32*/));
_args=/*(IRF4.6item*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/;
_static_rf=X155item(oBC84stack_static_rf,(/*RF2*/(C)->_top/*32*/));
(/*SFN*/C->_top)=((/*RF2*/(C)->_top/*32*/))-(1);
/*[IF*/
if((_rf)!=((void*)(NULL))){
/*SSPRF3*//*X245dca_inline_ith*/r245dca_inline_ith(((T245*)_args),X96arguments(_rf),a1);
}
else{
/*SSPRF3*//*X245dca_inline_ith*/r245dca_inline_ith(((T245*)_args),X96arguments(_static_rf),a1);
}
/*FI]*/
(/*SFN*/C->_top)=((/*RF2*/(C)->_top/*32*/))+(1);
/*[IRF3.5put*/((/*RF2*/((T132*)(oBC84stack_code))->_storage/*4*/))[(/*RF2*/(C)->_top/*32*/)]=(_code);
/*]*/
X155put(oBC84stack_rf,_rf,(/*RF2*/(C)->_top/*32*/));
X212put(oBC84stack_target,_target,(/*RF2*/(C)->_top/*32*/));
/*[IRF3.5put*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]=(_args);
/*]*/
X155put(oBC84stack_static_rf,_static_rf,(/*RF2*/(C)->_top/*32*/));
break;
case 7:
_fal=X96arguments(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/)));
/*SSPRF3*//*X245compile_to_c_ith*/r245compile_to_c_ith((T245*)(/*(IRF4.6item*/((/*RF2*/((T457*)(oBC84stack_args))->_storage/*0*/))[(/*RF2*/(C)->_top/*32*/)]/*)*/),_fal,a1);
break;
case 8:
r83print_argument(C,a1);
break;
default:;
/*[IF*/
if(X62is_reference(/*SSWARF2*//*X96current_type*/(/*RF2*/((T154*)(X155item(oBC84stack_rf,(/*RF2*/(C)->_top/*32*/))))->_current_type/*8*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_4049151));
/*]*/
}
else{
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_277));
/*]*/
}
/*FI]*/
}
}/*INSPECT]*/
}
T0*oBC83c_inline_h_mem=NULL;


void r83stack_overflow(T83* C){
T0* _rtma=NULL;
T0* _rtm=NULL;
T0* _rf=NULL;
T2 _i=0;
/*[IRF3.6append*/{T0* b1=((T0*)ms84_1753572602);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
_i=((/*RF2*/(C)->_top/*32*/))-(1);
while (!((_i)<(0)))
{
_rf=X155item(oBC84stack_rf,_i);
/*[IF*/
if((_rf)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position(_rf),&se_tmp0)));
}
_rtm=X62run_time_mark(/*SSWARF2*//*X96current_type*/(/*RF2*/(((T154*)_rf))->_current_type/*8*/));
/*[IF*/
if((_rtma)==((void*)(NULL))){
{T120*n=((T120*)se_malloc(sizeof(*n))/*16*/);
*n=M120;
r120with_capacity(n,(/*RF2*/(C)->_top/*32*/));
_rtma=((T0*)n);
}
r120add_last(((T120*)_rtma),_rtm);
/*[IRF3.6append*/{T0* b1=_rtm;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else if(r120fast_has(((T120*)_rtma),_rtm)){
}
else{
r120add_last(((T120*)_rtma),_rtm);
/*[IRF3.6append*/{T0* b1=((T0*)ms84_252);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=_rtm;
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
r83fatal_error(((T0*)ms84_6926));
}


void r83padding_here(T83* C){
T2 _tabbing=0;
_tabbing=(5000)/(30);
/*[IF*/
if((((/*RF2*/(C)->_elt_c_count/*83*/))%(_tabbing))>(0)){
(/*SFN*/C->_elt_c_count)=((/*RF2*/(C)->_elt_c_count/*83*/))/(_tabbing);
(/*SFN*/C->_elt_c_count)=(((/*RF2*/(C)->_elt_c_count/*83*/))+(1))*(_tabbing);
}
/*FI]*/
}


void r83put_to_pointer(T83* C){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/(C)->_current_out/*63*/))),((T0*)ms83_4204001));
/*]*/
r83put_target_as_value(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}


T6 r83stupid_switch_n(T83* C,T0* a1,T0* a2){
T6 R=0;
T0* _stupid=NULL;
/*[IF*/
if(r59same_base_feature(a1,a2)){
_stupid=X96stupid_switch(a1,a2);
/*[IF*/
if((_stupid)!=((void*)(NULL))){
r83put_comment(C,_stupid);
R=1;
}
/*FI]*/
}
else{
R=r83attribute_read_removal(a1,a2);
/*[IF*/
if(R){
r83put_comment(C,((T0*)ms83_64800));
}
/*FI]*/
}
/*FI]*/
return R;
}


void r83put_inspect(T83* C){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/(C)->_current_out/*63*/)));
T3 b1=((T3)'z');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/(C)->_current_out/*63*/))),(/*RF2*/(C)->_inspect_level/*71*/));
/*]*/
}


void r83register_bit_constant(T83* C,T0* a1){
/*[IF*/
if(((/*RF2*/(C)->_bit_constant_pool/*88*/))==((void*)(NULL))){
{T138*n=((T138*)se_malloc(sizeof(*n))/*16*/);
*n=M138;
r138with_capacity(n,4);
(/*SFN*/C->_bit_constant_pool)=((T0*)n);
}
}
/*FI]*/
r138add_last((T138*)((/*RF2*/(C)->_bit_constant_pool/*88*/)),a1);
r58put_string((T58*)(oBC83out_c),((T0*)ms83_225699312));
r58put_integer((T58*)(oBC83out_c),(/*RF2*/((T138*)((/*RF2*/(C)->_bit_constant_pool/*88*/)))->_upper/*12*/));
}
T0*oBC84stack_target=NULL;


void r83define_initialize_eiffel_runtime(T83* C,T0* a1){
T0* _ct=NULL;
T0* _rc=NULL;
T6 _no_check=0;
_no_check=r57no_check((T57*)(oBC19run_control));
_ct=(/*RF2*/(((T154*)a1))->_current_type/*8*/);
_rc=(/*RF2*/(((T154*)a1))->_run_class/*12*/);
r38put_string((T38*)(oBC19echo),((T0*)ms83_1435285930));
/*[IRF3.2define_extern_tables*/{T2 _size=0;
_size=((/*RF2*/((T42*)(r59id_provider()))->_max_id/*0*/))+(1);
r83macro_def((T83*)(oBC19cpp),((T0*)ms59_7918258),_size);
/*[IF*/
if((/*RF2*/((T57*)(oBC19run_control))->_generator_used/*10*/)){
r83put_extern4((T83*)(oBC19cpp),((T0*)ms20_2417),((T0*)ms59_103),_size);
}
/*FI]*/
/*[IF*/
if((/*RF2*/((T57*)(oBC19run_control))->_generating_type_used/*9*/)){
r83put_extern4((T83*)(oBC19cpp),((T0*)ms20_2417),((T0*)ms59_116),_size);
}
/*FI]*/
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r83put_extern4((T83*)(oBC19cpp),((T0*)ms59_77912),((T0*)ms59_112),_size);
r7copy((T7*)(oBC59c_code),((T0*)ms59_1994596535));
r2append_in(_size,oBC59c_code);
r7append((T7*)(oBC59c_code),((T0*)ms59_203051301));
r83put_extern1((T83*)(oBC19cpp),oBC59c_code);
}
/*FI]*/
}/*]*/
r83put_c_heading(C,((T0*)ms83_738771309));
/*[IF*/
if(_no_check){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1725307161));
}
/*FI]*/
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1240218271));
r444initialize_runtime((T444*)(oBC19gc_handler));
r165initialize_runtime((T165*)(oBC19exceptions_handler));
/*[IF*/
if(_no_check){
/*[IRF3.2initialize_path_table*/{T0* _rc=NULL;
T0* _bc=NULL;
T2 _id=0;
T2 _i=0;
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_2096892436));
/*]*/
_i=1;
while (!((_i)>((/*RF2*/((T79*)(oBC59base_class_dictionary))->_count/*8*/))))
{
_bc=r79item((T79*)(oBC59base_class_dictionary),_i);
_id=(/*RF2*/(((T61*)_bc))->_id/*0*/);
/*[IF*/
if((_id)>(0)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_651a));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),_id);
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_526));
/*]*/
r83put_string_c((/*RF2*/(((T61*)_bc))->_path/*4*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IRF3.2update_run_class_map*//*[IF*/
if((/*(IRF4.6count*/((/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/))+(1)/*)*/)!=((/*RF2*/((T69*)(oBC59run_class_dictionary))->_count/*8*/))){
/*[IRF3.3clear*/((((T67*)((T67*)(oBC59run_class_map))))->_upper)=(-(1));
/*]*/
r69item_map_in((T69*)(oBC59run_class_dictionary),oBC59run_class_map);
}
/*FI]*/
/*]*/
_i=(/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/);
while (!((_i)<(0)))
{
_rc=/*(IRF4.6item*/((/*RF2*/((T67*)(oBC59run_class_map))->_storage/*4*/))[_i]/*)*/;
/*[IF*/
if((/*RF2*/(((T60*)_rc))->_at_run_time/*20*/)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_54734511));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_887102279));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_1330));
/*]*/
/*[IF*/
if(X62is_generic((/*RF2*/(((T60*)_rc))->_current_type/*0*/))){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_651));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_13801));
/*]*/
/*[IRF3.5put_integer*/r58put_integer(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),(/*RF2*/((T61*)((/*RF2*/(((T60*)_rc))->_base_class/*8*/)))->_id/*0*/));
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms59_2630));
/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}/*]*/
}
/*FI]*/
/*[IF*/
if((/*RF2*/((T57*)(oBC19run_control))->_generator_used/*10*/)){
/*[IRF3.2initialize_generator*/{T0* _rc=NULL;
T0* _bc=NULL;
T2 _id=0;
T2 _i=0;
_i=1;
while (!((_i)>((/*RF2*/((T79*)(oBC59base_class_dictionary))->_count/*8*/))))
{
_bc=r79item((T79*)(oBC59base_class_dictionary),_i);
_id=(/*RF2*/(((T61*)_bc))->_id/*0*/);
/*[IF*/
if((_id)>=(0)){
r83put_array1((T83*)(oBC19cpp),((T3)'g'),_id);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r83put_se_string((T83*)(oBC19cpp),(/*RF2*/((T77*)((/*RF2*/(((T61*)_bc))->_name/*18*/)))->_to_string/*8*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IRF3.2update_run_class_map*//*[IF*/
if((/*(IRF4.6count*/((/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/))+(1)/*)*/)!=((/*RF2*/((T69*)(oBC59run_class_dictionary))->_count/*8*/))){
/*[IRF3.3clear*/((((T67*)((T67*)(oBC59run_class_map))))->_upper)=(-(1));
/*]*/
r69item_map_in((T69*)(oBC59run_class_dictionary),oBC59run_class_map);
}
/*FI]*/
/*]*/
_i=(/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/);
while (!((_i)<(0)))
{
_rc=/*(IRF4.6item*/((/*RF2*/((T67*)(oBC59run_class_map))->_storage/*4*/))[_i]/*)*/;
/*[IF*/
if((/*RF2*/(((T60*)_rc))->_at_run_time/*20*/)){
_bc=(/*RF2*/(((T60*)_rc))->_base_class/*8*/);
/*[IF*/
if(((/*RF2*/((T77*)((/*RF2*/(((T61*)_bc))->_name/*18*/)))->_to_string/*8*/))!=((void*)(X62run_time_mark((/*RF2*/(((T60*)_rc))->_current_type/*0*/))))){
r83put_array1((T83*)(oBC19cpp),((T3)'g'),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r83put_array1((T83*)(oBC19cpp),((T3)'g'),(/*RF2*/(((T61*)_bc))->_id/*0*/));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}/*]*/
}
/*FI]*/
/*[IF*/
if((/*RF2*/((T57*)(oBC19run_control))->_generating_type_used/*9*/)){
/*[IRF3.2initialize_generating_type*/{T0* _rtm=NULL;
T0* _bc=NULL;
T0* _rc=NULL;
T2 _i=0;
/*[IRF3.2update_run_class_map*//*[IF*/
if((/*(IRF4.6count*/((/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/))+(1)/*)*/)!=((/*RF2*/((T69*)(oBC59run_class_dictionary))->_count/*8*/))){
/*[IRF3.3clear*/((((T67*)((T67*)(oBC59run_class_map))))->_upper)=(-(1));
/*]*/
r69item_map_in((T69*)(oBC59run_class_dictionary),oBC59run_class_map);
}
/*FI]*/
/*]*/
_i=(/*RF2*/((T67*)(oBC59run_class_map))->_upper/*12*/);
while (!((_i)<(0)))
{
_rc=/*(IRF4.6item*/((/*RF2*/((T67*)(oBC59run_class_map))->_storage/*4*/))[_i]/*)*/;
/*[IF*/
if((/*RF2*/(((T60*)_rc))->_at_run_time/*20*/)){
r83put_array1((T83*)(oBC19cpp),((T3)'t'),(/*RF2*/(((T60*)_rc))->_id/*16*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_bc=(/*RF2*/(((T60*)_rc))->_base_class/*8*/);
_rtm=X62run_time_mark((/*RF2*/(((T60*)_rc))->_current_type/*0*/));
/*[IF*/
if(((/*RF2*/((T77*)((/*RF2*/(((T61*)_bc))->_name/*18*/)))->_to_string/*8*/))!=((void*)(_rtm))){
r83put_se_string((T83*)(oBC19cpp),_rtm);
}
else{
r83put_array1((T83*)(oBC19cpp),((T3)'g'),(/*RF2*/(((T60*)_rc))->_id/*16*/));
}
/*FI]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_305));
/*]*/
}
/*FI]*/
_i=(_i)-(1);
}
}/*]*/
}
/*FI]*/
/*[IF*/
if(!((/*RF2*/((T165*)(oBC19exceptions_handler))->_used/*0*/))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_443764493));
}
/*FI]*/
/*[IRF3.2c_call_initialize*//*[IF*/
if(((/*RF2*/((T471*)(oBC470mangling_dictionary))->_count/*12*/))>(0)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms470_437780));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'1');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_6330));
/*]*/
}
/*FI]*/
/*]*/
/*[IRF3.2c_pre_compute*/{T0* _bf=NULL;
T0* _rf=NULL;
T0* _memory=NULL;
T2 _i=0;
r38put_string((T38*)(oBC19echo),((T0*)ms20_79815491));
r38put_string((T38*)(oBC19echo),((T0*)ms20_40700));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_4631170));
/*]*/
_i=/*SSWARF2*//*X155upper*/(/*RF2*/((T155*)(oBC465function_list))->_upper/*12*/);
{T199*n=((T199*)se_malloc(sizeof(*n))/*16*/);
*n=M199;
r199with_capacity(n,64);
_memory=((T0*)n);
}
while (!((_i)<(0)))
{
_rf=X155item(oBC465function_list,_i);
/*[IF*/
if((/*RF2*/((T60*)(/*SSWARF2*//*X96run_class*/(/*RF2*/(((T154*)_rf))->_run_class/*12*/)))->_at_run_time/*20*/)){
/*[IF*/
if(X96is_pre_computable(_rf)){
_bf=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)_rf))->_base_feature/*28*/);
/*[IF*/
if(!(X199fast_has(_memory,_bf))){
X199add_last(_memory,_bf);
r38put_character((T38*)(oBC19echo),((T3)'\11'));
r38put_string((T38*)(oBC19echo),(/*RF2*/((T77*)((/*RF2*/((T61*)(/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)_bf))->_base_class/*4*/)))->_name/*18*/)))->_to_string/*8*/));
r38put_character((T38*)(oBC19echo),((T3)'\56'));
r38put_string((T38*)(oBC19echo),X117to_string(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)_rf))->_name/*16*/)));
r38put_character((T38*)(oBC19echo),((T3)'\n'));
r465c_pre_compute_of(_rf,_bf);
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms465_4631170));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
r38print_count((T38*)(oBC19echo),((T0*)ms20_79815491),/*SSFRF4*//*X199count*//*(IRF4.6count*/((/*RF2*/(((T100*)_memory))->_upper/*12*/))+(1)/*)*/);
}/*]*/
/*[IF*/
if((/*RF2*/((T57*)(oBC19run_control))->_trace/*4*/)){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_455756746));
}
/*FI]*/
/*[IF*/
if(!((/*RF2*/((T444*)(oBC19gc_handler))->_is_off/*0*/))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_1102979933));
}
/*FI]*/
r444allocation_of((T444*)(oBC19gc_handler),((T0*)ms20_2125481451),_rc);
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r58put_string((T58*)(oBC83out_c),((T0*)ms83_173632912));
}
/*FI]*/
r58put_string((T58*)(oBC83out_c),((T0*)ms20_635));
}

