/*
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


T0* r359base_class(T359* 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;
}


void r359standard_c_print_function(T359* C){
/*[IF*/
if(r57no_check((T57*)(oBC19run_control))){
r60c_print_function((T60*)(r359run_class(C)));
}
/*FI]*/
}


void r359gc_define1(T359* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r359run_class(C);
_rcid=(/*RF2*/(((T60*)_rc))->_id/*16*/);
r7copy((T7*)(oBC62header),((T0*)ms359_2097247));
r359gc_na_env_in(C,oBC62header);
r7copy((T7*)(oBC62body),((T0*)ms359_2082029949));
r359gc_mark_in(C,oBC62body);
r7extend((T7*)(oBC62body),((T3)'\175'));
r83put_extern5((T83*)(oBC19cpp),oBC62header,oBC62body);
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_info_flag/*1*/)){
r7copy((T7*)(oBC62header),((T0*)ms20_3291));
r7extend((T7*)(oBC62header),((T3)'\40'));
r359gc_info_nb_in(C,oBC62header);
r83put_extern2((T83*)(oBC19cpp),oBC62header,((T3)'0'));
}
/*FI]*/
}


void r359gc_define2(T359* C){
T2 _rcid=0;
T0* _et_rc=NULL;
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et_rc=X62run_class(_et);
_rcid=(/*RF2*/((T60*)(r359run_class(C)))->_id/*16*/);
r7copy((T7*)(oBC62header),((T0*)ms20_18150));
r7extend((T7*)(oBC62header),((T3)'\40'));
r359gc_mark_in(C,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms359_284));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms359_1396));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62body))))->_count)=(0);
/*]*/
r359gc_mark(C,0);
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62header))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62header),((T3)'T'));
r2append_in(_rcid,oBC62header);
r7extend((T7*)(oBC62header),((T3)'\40'));
r7append((T7*)(oBC62header),((T0*)ms20_3374));
r2append_in(_rcid,oBC62header);
r7append((T7*)(oBC62header),((T0*)ms359_129735471));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62body))))->_count)=(0);
/*]*/
r7append((T7*)(oBC62body),((T0*)ms359_291421585));
X62c_type_for_result_in(_et,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_223052221));
/*[IF*/
if((/*RF2*/((T444*)(oBC19gc_handler))->_info_flag/*1*/)){
r359gc_info_nb_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_6755));
}
/*FI]*/
r7append((T7*)(oBC62body),((T0*)ms359_1242450095));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_1314337673));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_5839580));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_1396798042));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_598811726));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_998144220));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_1265395998));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_1069766146a));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_484169497));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_1288623074));
r2append_in(_rcid,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_26635163));
r359gc_na_env_in(C,oBC62body);
r7append((T7*)(oBC62body),((T0*)ms359_28263330));
r83put_c_function((T83*)(oBC19cpp),oBC62header,oBC62body);
}


T0* r359actual_reference(T0* a1){
T0* R=NULL;
return R;
}


T6 r359is_a_in(T359* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*20*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r359to_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 r359demangling_in(T359* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'E'));
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r359run_time_mark(C));
}


void r359c_type_in(T359* C,T0* a1){
T0* _et=NULL;
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
r7extend(((T7*)a1),((T3)'T'));
/*[IF*/
if(X62is_reference(_et)){
r7extend(((T7*)a1),((T3)'0'));
r7extend(((T7*)a1),((T3)'\52'));
}
else{
r2append_in(X62id(_et),a1);
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\52'));
}


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


T6 r359is_a(T359* C,T0* a1){
T6 R=0;
R=(r359run_class(C))==((void*)(X62run_class(a1)));
/*[IF*/
if(!(R)){
r82add_type((T0*)C,((T0*)ms20_1308256781));
r82add_type(a1,((T0*)ms20_46));
}
/*FI]*/
return R;
}


T0* r359to_runnable(T359* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _et2=NULL;
T0* _et1=NULL;
_et1=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
_et2=X62to_runnable(_et1,a1);
/*[IF*/
if((_et2)==((void*)(NULL))){
/*[IF*/
if((_et2)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(_et2),&se_tmp0)));
}
}
/*FI]*/
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(_et1),&se_tmp0)));
}
r359fatal_error(((T0*)ms20_14538933));
}
/*FI]*/
_et2=X62run_type(_et2);
/*[IF*/
if(((/*RF2*/(C)->_run_type/*24*/))==((void*)(NULL))){
R=((T0*)(C));
/*[IF*/
if((_et2)==((void*)(_et1))){
(/*SFN*/C->_run_type)=((T0*)(C));
r359load_basic_features(C);
}
else{
{T104 se_tmp0;
{T359*n=((T359*)se_malloc(sizeof(*n))/*28*/);
*n=M359;
r359make_runnable(n,/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,(/*RF2*/(C)->_base_class_memory/*4*/),_et2);
(/*SFN*/C->_run_type)=((T0*)n);
}
}
r359load_basic_features((T359*)((/*RF2*/(C)->_run_type/*24*/)));
}
/*FI]*/
}
 else if((_et2)==((void*)(_et1))){
R=((T0*)(C));
}
else{
{T104 se_tmp0;
{T359*n=((T359*)se_malloc(sizeof(*n))/*28*/);
*n=M359;
r359make_runnable(n,/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,(/*RF2*/(C)->_base_class_memory/*4*/),_et2);
_rt=((T0*)n);
}
}
r359load_basic_features(((T359*)_rt));
{T359*n=((T359*)se_malloc(sizeof(*n))/*28*/);
*n=M359;
r359set(n,(/*RF2*/(C)->_base_class_memory/*4*/),r359run_class(((T359*)_rt)),(/*RF2*/(C)->_base_class_name/*12*/),(/*RF2*/(C)->_generic_list/*16*/),(/*RF2*/(C)->_written_mark/*20*/),_rt);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r359run_class(T359* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else if(r359is_run_type(C)){
(/*SFN*/C->_run_class_memory)=r59run_class((/*RF2*/(C)->_run_type/*24*/));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r359c_header_pass2(T359* C){
T0* _et=NULL;
r60c_header_pass2((T60*)(X62run_class(/*(IRF4.6first*/((/*RF2*/((T147*)((/*RF2*/(C)->_generic_list/*16*/)))->_storage/*0*/))[0]/*)*/)));
_et=X62run_type(/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/);
r7copy((T7*)(oBC62tmp_string),((T0*)ms20_11381817));
r359c_type_in(C,oBC62tmp_string);
r7extend((T7*)(oBC62tmp_string),((T3)'T'));
r2append_in(r359id(C),oBC62tmp_string);
r7append((T7*)(oBC62tmp_string),((T0*)ms20_305));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62tmp_string);
/*]*/
}


T6 r359is_run_type(T359* C){
T6 R=0;
T0* _et=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_type/*24*/))!=((void*)(NULL))){
R=1;
}
else{
_et=/*(IRF4.6elements_type*//*(IRF4.6first*/((/*RF2*/(((T147*)((/*RF2*/(C)->_generic_list/*16*/))))->_storage/*0*/))[0]/*)*//*)*/;
/*[IF*/
if((X62is_run_type(_et))&&((X62run_type(_et))==((void*)(_et)))){
(/*SFN*/C->_run_type)=((T0*)(C));
r359load_basic_features(C);
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r359smallest_ancestor(T359* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X62run_type(a1);
/*[IF*/
if(X62is_a(_rto,(/*RF2*/(C)->_run_type/*24*/))){
R=_rto;
}
 else if(r359is_a((T359*)((/*RF2*/(C)->_run_type/*24*/)),_rto)){
R=(/*RF2*/(C)->_run_type/*24*/);
}
else{
R=r359type_any();
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
return R;
}


void r359gc_info_nb_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms62_249330648));
r2append_in(r359id(C),a1);
}


void r359gc_call_new_in(T359* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r359id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


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


void r268compile_to_c(T268* C){
r83push_precursor((T83*)(oBC19cpp),(/*RF2*/(C)->_run_feature/*24*/),(/*RF2*/(C)->_arguments/*20*/));
X96mapping_c((/*RF2*/(C)->_run_feature/*24*/));
r83pop((T83*)(oBC19cpp));
}


void r268make(T268* C,T104 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_parent)=a2;
(/*SFN*/C->_arguments)=a3;
}


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


T0* r268super_feature(T268* C,T0* a1){
T0* R=NULL;
T0* _pl=NULL;
T0* _wbc=NULL;
T0* _e_feature=NULL;
_e_feature=/*SSWA2*//*X96base_feature*/(/*RF2*/(((T154*)a1))->_base_feature/*28*/);
_wbc=/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)_e_feature))->_base_class/*4*/);
_pl=(/*RF2*/(((T61*)_wbc))->_parent_list/*34*/);
/*[IF*/
if((_pl)==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r268fatal_error(((T0*)ms267_1197649626));
}
else{
R=r72precursor_for(((T72*)_pl),(T0*)C,a1);
}
/*FI]*/
return R;
}


void r268afd_check(T268* C){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X245afd_check*/r245afd_check((T245*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}


void r268prepare_arguments(T268* C,T0* a1){
T0* _a=NULL;
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
_a=X245to_runnable((/*RF2*/(C)->_arguments/*20*/),a1);
/*[IF*/
if((_a)==((void*)(NULL))){
{T104 se_tmp0;
r268error((*(se_tmp0=X245start_position((/*RF2*/(C)->_arguments/*20*/)),&se_tmp0)),((T0*)ms20_1981509924));
}
}
else{
(/*SFN*/C->_arguments)=_a;
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
X245match_with((/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_run_feature/*24*/),a1);
}
/*FI]*/
}
 else if((X96arguments((/*RF2*/(C)->_run_feature/*24*/)))!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position((/*RF2*/(C)->_run_feature/*24*/)),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r268fatal_error(((T0*)ms267_155280342));
}
/*FI]*/
}


T0* r268precursor_name(T0* a1,T0* a2){
T0* R=NULL;
{T518*n=((T518*)se_malloc(sizeof(*n))/*12*/);
*n=M518;
r518refer_to(n,(/*RF2*/((T61*)(/*SSWARF2*//*X99base_class*/(/*RF2*/(((T293*)a2))->_base_class/*4*/)))->_id/*0*/),a1);
R=((T0*)n);
}
return R;
}


T0* r268add_comment(T268* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((/*RF2*/(((T164*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
/*AF*/else{
{T316*n=((T316*)se_malloc(sizeof(*n))/*12*/);
*n=M316;
r316make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T0* r268to_runnable(T268* C,T0* a1){
T0* R=NULL;
T0* _pn=NULL;
T0* _super=NULL;
T0* _wrf=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*16*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
R=((T0*)(C));
_wrf=/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/;
/*[IF*/
if((X96result_type(_wrf))!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*4*/));
}
r268fatal_error(((T0*)ms268_1223700793));
}
/*FI]*/
_super=r268super_feature(C,_wrf);
_pn=r268precursor_name(/*SSWARF2*//*X96name*/(/*RF2*/(((T154*)_wrf))->_name/*16*/),_super);
(/*SFN*/C->_run_feature)=r60at((T60*)(X62run_class(a1)),_pn);
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*24*/))==((void*)(NULL))){
{T526*n=((T526*)se_malloc(sizeof(*n))/*56*/);
*n=M526;
r526make(n,a1,_pn,_super);
(/*SFN*/C->_run_feature)=((T0*)n);
}
}
/*FI]*/
r268prepare_arguments(C,a1);
}
else{
{T104 se_tmp0;
{T268*n=((T268*)se_malloc(sizeof(*n))/*28*/);
*n=M268;
r268make(n,(/*RF2*/(C)->_start_position/*4*/),(/*RF2*/(C)->_parent/*12*/),(/*RF2*/(C)->_arguments/*20*/));
R=((T0*)n);
}
}
R=r268to_runnable(((T268*)R),a1);
}
/*FI]*/
return R;
}


void r268collect_c_tmp(T268* C){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*SSPRF3*//*X245collect_c_tmp*/r245collect_c_tmp((T245*)((/*RF2*/(C)->_arguments/*20*/)));
}
/*FI]*/
}


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


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


T0* r360generic_list(T360* C){
T0* R=NULL;
r360fatal_error_generic_list(C);
return R;
}


T0* r360written_mark(void){
T0* R=NULL;
R=((T0*)ms21_1339128);
return R;
}


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


T0* r360run_time_mark(void){
T0* R=NULL;
R=((T0*)ms21_1339128);
return R;
}


T2 r360c_sizeof(void){
T2 R=0;
R=sizeof(T6);
return R;
}


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


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


void r360gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(6,a1);
}
T0*oBC360type_boolean_ref=NULL;
int fBC360type_boolean_ref=0;


T0* r360type_boolean_ref(void){
if(fBC360type_boolean_ref==0){fBC360type_boolean_ref=1;{
T0* _boolean_ref=NULL;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
/*[IRF3.3unknown_position*/((((T77*)(n)))->_to_string)=(((T0*)ms21_836969340));
/*]*/
_boolean_ref=((T0*)n);
}
{T369*n=((T369*)se_malloc(sizeof(*n))/*16*/);
*n=M369;
oBC360type_boolean_ref=((T0*)n);
/*[IRF3.3make*/((((T369*)(n)))->_base_class_name)=(_boolean_ref);
/*]*/
}
}}
return oBC360type_boolean_ref;
}


void r360fatal_error_generic_list(T360* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r360c_type_for_argument_in(T0* a1){
r7extend(((T7*)a1),((T3)'T'));
r7extend(((T7*)a1),((T3)'6'));
}


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


T0* r360base_class(T360* 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 fBC360check_type=0;


void r360check_type(T360* C){
if(fBC360check_type==0){fBC360check_type=1;{
T0* _rc=NULL;
T0* _bc=NULL;
_bc=r360base_class(C);
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
_rc=r360run_class(C);
r360load_ref(((T0*)ms21_836969340));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(!((/*RF2*/(((T61*)_bc))->_is_expanded/*17*/))){
{T104 se_tmp0;
r360error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_base_class_name/*12*/))))->_start_position/*0*/)/*)*/,((T0*)ms360_2000662912));
}
}
/*FI]*/
}
/*FI]*/
}}}


T0* r360actual_reference(T0* a1){
T0* R=NULL;
T0* _cn=NULL;
/*[IF*/
if((X62run_time_mark(a1))==((void*)(((T0*)ms21_836969340)))){
R=a1;
}
else{
{T104 se_tmp0;
{T77*n=((T77*)se_malloc(sizeof(*n))/*12*/);
*n=M77;
r77make(n,((T0*)ms21_836969340),(*(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 r360is_a_in(T360* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r360written_mark())==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r360to_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 r360demangling_in(T0* a1){
/*[IF*/
/*AF*//*AE*/
r7extend(((T7*)a1),((T3)'E'));
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r360run_time_mark());
}


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


T6 r360is_a(T360* C,T0* a1){
T6 R=0;
/*[IF*/
if(X62is_boolean(a1)){
R=1;
}
else{
R=r61is_subclass_of((T61*)(r360base_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 r360load_ref(T0* a1){
T0* _rf=NULL;
T0* _rc=NULL;
_rc=r59run_class_for(a1);
_rf=r60get_feature_with(((T60*)_rc),((T0*)ms21_16639));
}


T0* r360to_runnable(T360* C,T0* a1){
T0* R=NULL;
R=((T0*)(C));
r360check_type(C);
return R;
}


T0* r360run_class(T360* 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* r360smallest_ancestor(T360* C,T0* a1){
T0* R=NULL;
T0* _rto=NULL;
_rto=X62run_type(a1);
/*[IF*/
if(X62is_boolean(_rto)){
R=((T0*)(C));
}
else{
R=r369smallest_ancestor((T369*)(r360type_boolean_ref()),_rto);
}
/*FI]*/
return R;
}


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


void r253compile_to_c(T253* C){
/*[IF*/
if(X62is_user_expanded((/*RF2*/(C)->_result_type/*12*/))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\52');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83print_current((T83*)(oBC19cpp));
}


void r253mapping_c_arg(T253* C,T0* a1){
T0* _rt=NULL;
_rt=X62run_type((/*RF2*/(C)->_result_type/*12*/));
/*[IF*/
if(X62is_reference(_rt)){
/*[IF*/
if(X62is_reference(a1)){
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),((T0*)ms20_36951));
/*]*/
r83print_current((T83*)(oBC19cpp));
}
else{
r83print_current((T83*)(oBC19cpp));
}
/*FI]*/
}
 else if(X62is_reference(a1)){
r83print_current((T83*)(oBC19cpp));
}
 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)'\52');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83print_current((T83*)(oBC19cpp));
}
else{
r83print_current((T83*)(oBC19cpp));
}
/*FI]*/
}


void r253to_integer_error(T253* 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));
}


void r253mapping_c_target(T0* a1){
T6 _flag=0;
/*[IF*/
{/*AT*/_flag=r83call_invariant_start(a1);
}
/*FI]*/
r83print_current((T83*)(oBC19cpp));
/*[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 r253to_integer_or_error(T253* C){
T2 R=0;
r253to_integer_error(C);
return R;
}


T0* r253add_comment(T253* 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* r253to_runnable(T253* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*12*/))==((void*)(NULL))){
(/*SFN*/C->_result_type)=a1;
R=((T0*)(C));
}
else{
{T104 se_tmp0;
{T253*n=((T253*)se_malloc(sizeof(*n))/*16*/);
*n=M253;
/*[IRF3.3make*/((((T253*)(n)))->_start_position)=((/*RF2*/(C)->_start_position/*4*/));
/*]*/
R=((T0*)n);
}
}
R=r253to_runnable(((T253*)R),a1);
}
/*FI]*/
return R;
}


T0* r253static_result_base_class(T253* C){
T0* R=NULL;
{T104 se_tmp0;
R=(/*RF2*/((/*RF2*/(C)->_start_position/*4*/))._base_class/*0*/);
}
return R;
}


T0* r293try_to_undefine_aux(T293* C,T0* a1,T0* a2){
T0* R=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=r293start_position(C),&se_tmp0)));
}
{T104 se_tmp0;
r293error((*(se_tmp0=X117start_position(a1),&se_tmp0)),((T0*)ms142_1389744524));
}
r61fatal_undefine(((T61*)a2),a1);
return R;
}


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


T6 r293can_hide(T293* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(X99result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL)))||((X99result_type(a1))==((void*)(NULL)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r293error((*(se_tmp0=r293start_position(C),&se_tmp0)),((T0*)ms99_1393094289));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X99arguments(a1)))){
/*[IF*/
{/*AT*/{T104 se_tmp0;
r82add_position((*(se_tmp0=X99start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r293error((*(se_tmp0=r293start_position(C),&se_tmp0)),((T0*)ms99_1854646737));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(X62is_a_in((/*RF2*/(C)->_result_type/*20*/),X99result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_895448585);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((/*RF2*/(((T60*)a2))->_current_type/*0*/));
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T82*)(oBC19eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r293merge_header_comments(C,a1);
}
/*FI]*/
return R;
}


void r293merge_header_comments(T293* C,T0* a1){
/*[IF*/
if((/*RF2*/((T59*)(oBC19small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/);
}
 else if((/*SSWARF2*//*X99header_comment*/(/*RF2*/(((T293*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X99set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}


void r293add_into(T293* C,T0* a1){
T0* _key=NULL;
T0* _fn=NULL;
T2 _i=0;
{T104 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r118count((T118*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i);
_key=X117to_key(_fn);
/*[IF*/
if(r172has(((T172*)a1),_key)){
_fn=/*SSFRF4*//*X99first_name*//*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/((T293*)(r172at(((T172*)a1),_key)))->_names/*8*/))))->_first/*0*/)/*)*/;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(_fn),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1087076085);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X117to_string(_fn);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms20_46);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
else{
r172add(((T172*)a1),(T0*)C,_key);
}
/*FI]*/
_i=(_i)+(1);
}
}


T0* r293try_to_undefine(T293* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
_fn2=r118feature_name((T118*)((/*RF2*/(C)->_names/*8*/)),X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X117undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r293try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X381set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r293merge_header_comments(C,R);
}
else{
r61fatal_undefine(((T61*)a2),a1);
}
/*FI]*/
return R;
}


void r293make(T293* C,T0* a1,T0* a2){
T0* _ic=NULL;
T2 _j=0;
T2 _i=0;
/*[IRF3.3make_e_feature*/((((T293*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_result_type)=a2;
_i=r118count((T118*)((/*RF2*/(C)->_names/*8*/)));
{T294*n=((T294*)se_malloc(sizeof(*n))/*16*/);
*n=M294;
r294with_capacity(n,_i);
(/*SFN*/C->_values)=((T0*)n);
}
_j=1;
while (!((_i)==(0)))
{
r297increment((T297*)(oBC293counter));
{T104 se_tmp0;
{T265*n=((T265*)se_malloc(sizeof(*n))/*16*/);
*n=M265;
r265make(n,(/*RF2*/((T297*)(oBC293counter))->_value/*0*/),(*(se_tmp0=X117start_position(r118item((T118*)((/*RF2*/(C)->_names/*8*/)),_j)),&se_tmp0)));
_ic=((T0*)n);
}
}
r294add_last((T294*)((/*RF2*/(C)->_values/*24*/)),_ic);
_j=(_j)+(1);
_i=(_i)-(1);
}
}


void r293check_obsolete(T293* C,T104 a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0*oBC293counter=NULL;


T0* r293to_run_feature(T293* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X62run_class(a1);
R=r60at(((T60*)_rc),a2);
if(NULL!=(R)){
switch(((T0*)R)->id){
case 437:
break;
default:
R=NULL;
}
}/*[IF*/
if((R)==((void*)(NULL))){
{T437*n=((T437*)se_malloc(sizeof(*n))/*40*/);
*n=M437;
r437make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


T6 r293is_not_mergeable_with(T293* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*20*/))==((void*)(NULL))){
R=(X99result_type(a1))!=((void*)(NULL));
}
else{
R=(X99result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1393094289);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
else{
/*[IF*/
{/*AT*/R=(X99arguments(a1))!=((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms99_1854646737);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
}
 else {/*AT*/}
/*FI]*/
}
/*FI]*/
r293merge_header_comments(C,a1);
return R;
}


T104 r293start_position(T293* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X117start_position(/*(IRF4.6first_name*/(/*RF2*/(((T118*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}


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


void r316compile_to_c(T316* C){
X160compile_to_c((/*RF2*/(C)->_instruction/*4*/));
}


T6 r316stupid_switch(T316* C,T0* a1){
T6 R=0;
R=X160stupid_switch((/*RF2*/(C)->_instruction/*4*/),a1);
return R;
}


void r316make(T316* C,T0* a1,T0* a2){
(/*SFN*/C->_instruction)=a1;
(/*SFN*/C->_comment)=a2;
}


void r316afd_check(T316* C){
X160afd_check((/*RF2*/(C)->_instruction/*4*/));
}


T6 r316use_current(T316* C){
T6 R=0;
R=X160use_current((/*RF2*/(C)->_instruction/*4*/));
return R;
}


T6 r316is_pre_computable(T316* C){
T6 R=0;
R=X160is_pre_computable((/*RF2*/(C)->_instruction/*4*/));
return R;
}


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


T0* r316to_runnable(T316* C,T0* a1){
T0* R=NULL;
T0* _ri=NULL;
_ri=X160to_runnable((/*RF2*/(C)->_instruction/*4*/),a1);
/*[IF*/
if((_ri)==((void*)(NULL))){
{T104 se_tmp0;
r316error((*(se_tmp0=X160start_position((/*RF2*/(C)->_instruction/*4*/)),&se_tmp0)),((T0*)ms316_1917891272));
}
R=((T0*)(C));
}
 else if((_ri)==((void*)((/*RF2*/(C)->_instruction/*4*/)))){
R=((T0*)(C));
}
else{
{T316*n=((T316*)se_malloc(sizeof(*n))/*12*/);
*n=M316;
r316make(n,_ri,(/*RF2*/(C)->_comment/*8*/));
R=((T0*)n);
}
}
/*FI]*/
return R;
}


void r316collect_c_tmp(T316* C){
X160collect_c_tmp((/*RF2*/(C)->_instruction/*4*/));
}


T104 r316start_position(T316* C){
T104 R={NULL,0};
{T104 se_tmp0;
R=(*(se_tmp0=X160start_position((/*RF2*/(C)->_instruction/*4*/)),&se_tmp0));
}
return R;
}


void r355c_initialize_in(T355* C,T0* a1){
X62c_initialize_in(r355run_type(C),a1);
}


void r355c_type_for_external_in(T355* C,T0* a1){
/*[IF*/
if(r355is_reference(C)){
r7append(((T7*)a1),((T0*)ms20_18150));
r7extend(((T7*)a1),((T3)'\52'));
}
else{
r355c_type_for_result_in(C,a1);
}
/*FI]*/
}


T0* r355generic_list(T355* C){
T0* R=NULL;
/*[IF*/
if(r355is_generic(C)){
R=X62generic_list(r355run_type(C));
}
else{
r355fatal_error_generic_list(C);
}
/*FI]*/
return R;
}


T6 r355is_bit(T355* C){
T6 R=0;
R=X62is_bit(r355run_type(C));
return R;
}


T6 r355has_creation(T355* C,T0* a1){
T6 R=0;
R=X62has_creation(r355run_type(C),a1);
return R;
}


T0* r355run_time_mark(T355* C){
T0* R=NULL;
/*[IF*/
if((r355run_type(C))!=((void*)(NULL))){
R=X62run_time_mark(r355run_type(C));
}
/*FI]*/
return R;
}


T6 r355is_any(T355* C){
T6 R=0;
R=X62is_any(r355run_type(C));
return R;
}


T2 r355c_sizeof(T355* C){
T2 R=0;
R=X62c_sizeof(r355run_type(C));
return R;
}


void r355c_type_for_result_in(T355* C,T0* a1){
X62c_type_for_result_in(r355run_type(C),a1);
}


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


void r355gc_mark_in(T355* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(r355id(C),a1);
}


void r355just_before_gc_mark_in(T355* C,T0* a1){
X62just_before_gc_mark_in(r355run_type(C),a1);
}


void r355with(T355* C,T0* a1,T0* a2){
{T104 se_tmp0;
(/*SFN*/C->_start_position)=(/*RF2*/(((T355*)a1))->_start_position/*12*/);
}
(/*SFN*/C->_like_what)=(/*RF2*/(((T355*)a1))->_like_what/*20*/);
(/*SFN*/C->_written_mark)=(/*RF2*/(((T355*)a1))->_written_mark/*24*/);
(/*SFN*/C->_run_feature)=a2;
}


T6 r355is_pointer(T355* C){
T6 R=0;
R=X62is_pointer(r355run_type(C));
return R;
}


T2 r355id(T355* C){
T2 R=0;
R=(/*RF2*/((T60*)(r355run_class(C)))->_id/*16*/);
return R;
}


void r355mapping_cast(T355* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62mapping_cast_buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\50'));
r355c_type_for_target_in(C,oBC62mapping_cast_buffer);
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62mapping_cast_buffer);
/*]*/
}


T0* r355static_base_class_name(T355* C){
T0* R=NULL;
T0* _bc=NULL;
_bc=r275static_result_base_class((T275*)((/*RF2*/(C)->_like_what/*20*/)));
/*[IF*/
if((_bc)!=((void*)(NULL))){
R=(/*RF2*/(((T61*)_bc))->_name/*18*/);
}
/*FI]*/
return R;
}


T6 r355is_real(T355* C){
T6 R=0;
R=X62is_real(r355run_type(C));
return R;
}


T6 r355is_none(T355* C){
T6 R=0;
R=X62is_none(r355run_type(C));
return R;
}


void r355c_initialize(T355* C){
X62c_initialize(r355run_type(C));
}


T6 r355need_gc_mark_function(T355* C){
T6 R=0;
R=X62need_gc_mark_function(r355run_type(C));
return R;
}


void r355fatal_error_generic_list(T355* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r355c_type_for_argument_in(T355* C,T0* a1){
X62c_type_for_argument_in(r355run_type(C),a1);
}


void r355anchor_cycle_end(T355* C){
{T104 se_tmp0;
/*[IF*/
if(!se_cmpT104(((/*RF2*/(C)->_start_position/*12*/)),(/*(IRF4.6first*/((/*RF2*/((T105*)(oBC353visited))->_storage/*0*/))[0]/*)*/))){
{T104 se_tmp0;
/*[IRF3.3clear*/((((T105*)((T105*)(oBC353visited))))->_upper)=(-(1));
/*]*/
}
}
/*FI]*/
}
}


T6 r355is_integer(T355* C){
T6 R=0;
R=X62is_integer(r355run_type(C));
return R;
}


void r355c_frame_descriptor(T355* C){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
if(r355is_reference(C)){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'R'));
}
else{
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'E'));
}
/*FI]*/
r2append_in(r355id(C),oBC19c_frame_descriptor_format);
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
}


void r355make(T355* C,T104 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_like_what)=a2;
r7copy((T7*)(oBC353written_mark_buffer),((T0*)ms20_16761));
r7extend((T7*)(oBC353written_mark_buffer),((T3)'\40'));
r7append((T7*)(oBC353written_mark_buffer),r275to_string((T275*)((/*RF2*/(C)->_like_what/*20*/))));
(/*SFN*/C->_written_mark)=((/*UT*/(void)((T27*)(r355string_aliaser()))),r27item(oBC353written_mark_buffer));
}


T0* r355base_class_name(T355* C){
T0* R=NULL;
R=X62base_class_name(r355run_type(C));
return R;
}


T0* r355run_type(T355* C){
T0* R=NULL;
T0* _fal=NULL;
_fal=X96arguments((/*RF2*/(C)->_run_feature/*28*/));
R=r121type(((T121*)_fal),/*(IRF4.6rank*/(/*RF2*/(((T275*)((/*RF2*/(C)->_like_what/*20*/))))->_rank/*12*/)/*)*/);
/*[IF*/
if(X62is_run_type(R)){
R=X62run_type(R);
}
/*FI]*/
return R;
}


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


T6 r355is_character(T355* C){
T6 R=0;
R=X62is_character(r355run_type(C));
return R;
}


T6 r355is_expanded(T355* C){
T6 R=0;
R=X62is_expanded(r355run_type(C));
return R;
}


T6 r355is_array(T355* C){
T6 R=0;
R=X62is_array(r355run_type(C));
return R;
}


void r355gc_info_in(T355* C,T0* a1){
X62gc_info_in(r355run_type(C),a1);
}


T0* r355string_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* r355base_class(T355* 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=r355base_class_name(C);
/*[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;
}


T6 r355is_dummy_expanded(T355* C){
T6 R=0;
R=X62is_dummy_expanded(r355run_type(C));
return R;
}


T6 r355need_c_struct(T355* C){
T6 R=0;
R=X62need_c_struct(r355run_type(C));
return R;
}


T6 r355is_reference(T355* C){
T6 R=0;
R=X62is_reference(r355run_type(C));
return R;
}


void r355gc_define1(T355* C){
X62gc_define1(r355run_type(C));
}


void r355gc_define2(T355* C){
X62gc_define2(r355run_type(C));
}


void r355c_type_for_target_in(T355* C,T0* a1){
X62c_type_for_target_in(r355run_type(C),a1);
}


T0* r355expanded_initializer(T355* C){
T0* R=NULL;
R=X62expanded_initializer(r355run_type(C));
return R;
}


T0* r355actual_reference(T355* C,T0* a1){
T0* R=NULL;
R=X62actual_reference(r355run_type(C),a1);
return R;
}


T6 r355is_a_in(T355* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*24*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r355to_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 r355demangling_in(T355* C,T0* a1){
/*[IF*/
if(r355is_reference(C)){
r7extend(((T7*)a1),((T3)'R'));
}
else{
r7extend(((T7*)a1),((T3)'E'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r355run_time_mark(C));
}


T6 r355is_generic(T355* C){
T6 R=0;
R=X62is_generic(r355run_type(C));
return R;
}


T6 r355is_double(T355* C){
T6 R=0;
R=X62is_double(r355run_type(C));
return R;
}


void r355id_extra_information(T355* C,T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
if(r355is_reference(C)){
r58put_string(((T58*)a1),((T0*)ms62_18257));
}
else{
r58put_string(((T58*)a1),((T0*)ms62_3337));
}
/*FI]*/
}


T6 r355is_user_expanded(T355* C){
T6 R=0;
R=X62is_user_expanded(r355run_type(C));
return R;
}


T6 r355is_a(T355* C,T0* a1){
T6 R=0;
R=X62is_a(r355run_type(C),a1);
return R;
}


T6 r355is_boolean(T355* C){
T6 R=0;
R=X62is_boolean(r355run_type(C));
return R;
}


void r355anchor_cycle_start(T355* C){
T2 _i=0;
{T104 se_tmp0;
/*[IF*/
if(((/*RF2*/((T105*)(oBC353visited))->_upper/*8*/))<(0)){
{T104 se_tmp1;
T104 se_tmp0;
r105add_last((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/));
}
}
 else if(r105fast_has((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/))){
{T104 se_tmp1;
T104 se_tmp0;
{T104 se_tmp1;
T104 se_tmp0;
_i=0;
}
{T104 se_tmp1;
T104 se_tmp0;
while (!((_i)>((/*RF2*/((T105*)(oBC353visited))->_upper/*8*/))))
{
{T104 se_tmp1;
T104 se_tmp0;
r82add_position(/*(IRF4.6item*/((/*RF2*/((T105*)(oBC353visited))->_storage/*0*/))[_i]/*)*/);
}
{T104 se_tmp1;
T104 se_tmp0;
_i=(_i)+(1);
}
}
}
}
{T104 se_tmp1;
T104 se_tmp0;
r355fatal_error(((T0*)ms20_1839765037));
}
}
else{
{T104 se_tmp2;
T104 se_tmp1;
T104 se_tmp0;
r105add_last((T105*)(oBC353visited),(/*RF2*/(C)->_start_position/*12*/));
}
}
/*FI]*/
}
}


T0* r355to_runnable(T355* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rf=NULL;
r355anchor_cycle_start(C);
_rf=/*(IRF4.9top_rf*/r155last((T155*)(oBC59run_feature_stack))/*)*/;
/*[IF*/
if((X96arguments(_rf))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((/*RF2*/(C)->_start_position/*12*/));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X96start_position(_rf),&se_tmp0)));
}
r355fatal_error(((T0*)ms20_877484516));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*28*/))==((void*)(NULL))){
(/*SFN*/C->_run_feature)=_rf;
R=((T0*)(C));
}
 else if(((/*RF2*/(C)->_run_feature/*28*/))==((void*)(_rf))){
R=((T0*)(C));
}
else{
{T355*n=((T355*)se_malloc(sizeof(*n))/*32*/);
*n=M355;
r355with(n,(T0*)C,_rf);
R=((T0*)n);
}
}
/*FI]*/
_rt=r355run_type(((T355*)R));
/*[IF*/
if(X62is_anchored(_rt)){
_rt=X62to_runnable(_rt,a1);
}
/*FI]*/
r355anchor_cycle_end(C);
return R;
}


T6 r355is_string(T355* C){
T6 R=0;
R=X62is_string(r355run_type(C));
return R;
}


T0* r355run_class(T355* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else if(r355is_run_type(C)){
(/*SFN*/C->_run_class_memory)=r59run_class(r355run_type(C));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r355c_header_pass1(T355* C){
X62c_header_pass1(r355run_type(C));
}


void r355c_header_pass2(T355* C){
X62c_header_pass2(r355run_type(C));
}


void r355c_header_pass3(T355* C){
X62c_header_pass3(r355run_type(C));
}


T6 r355is_run_type(T355* C){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*28*/))!=((void*)(NULL))){
R=X62is_run_type(r355run_type(C));
}
/*FI]*/
return R;
}


void r355c_header_pass4(T355* C){
X62c_header_pass4(r355run_type(C));
}


T6 r355is_basic_eiffel_expanded(T355* C){
T6 R=0;
R=X62is_basic_eiffel_expanded(r355run_type(C));
return R;
}


T0* r355smallest_ancestor(T355* C,T0* a1){
T0* R=NULL;
R=X62smallest_ancestor(r355run_type(C),a1);
return R;
}


void r355gc_call_new_in(T355* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r355id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r376c_initialize_in(T376* C,T0* a1){
X62c_initialize_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


void r376c_type_for_external_in(T376* C,T0* a1){
/*[IF*/
if(r376is_reference(C)){
r7append(((T7*)a1),((T0*)ms20_18150));
r7extend(((T7*)a1),((T3)'\52'));
}
else{
r376c_type_for_result_in(C,a1);
}
/*FI]*/
}


T0* r376generic_list(T376* C){
T0* R=NULL;
/*[IF*/
if(r376is_generic(C)){
R=X62generic_list((/*RF2*/(C)->_run_type/*16*/));
}
else{
r376fatal_error_generic_list(C);
}
/*FI]*/
return R;
}


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


void r376set_run_type(T376* C,T0* a1,T0* a2){
T0* _c=NULL;
(/*SFN*/C->_run_type)=a2;
(/*SFN*/C->_run_time_mark)=X62run_time_mark(a2);
_c=(/*RF2*/((T374*)((/*RF2*/(C)->_formal_generic_arg/*32*/)))->_constraint/*4*/);
/*[IF*/
if((_c)!=((void*)(NULL))){
(/*SFN*/C->_constraint_memory)=X62to_runnable(_c,a1);
/*[IF*/
if(((/*RF2*/(C)->_constraint_memory/*36*/))==((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(_c),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms376_1158502989);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_fatal_error((T82*)(oBC19eh));
}
 else if(!(X62is_a(a2,(/*RF2*/(C)->_constraint_memory/*36*/)))){
/*[IRF3.6append*/{T0* b1=((T0*)ms376_322102056);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82print_as_error((T82*)(oBC19eh));
}
/*FI]*/
}
/*FI]*/
}


T6 r376is_bit(T376* C){
T6 R=0;
R=X62is_bit((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376has_creation(T376* C,T0* a1){
T6 R=0;
/*[IF*/
if((C)==((void*)((/*RF2*/(C)->_run_type/*16*/)))){
R=r61has_creation((T61*)(r376base_class(C)),a1);
}
else{
R=X62has_creation((/*RF2*/(C)->_run_type/*16*/),a1);
}
/*FI]*/
return R;
}


T6 r376is_any(T376* C){
T6 R=0;
R=X62is_any((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376set(T376* C,T0* a1,T0* a2,T0* a3,T0* a4,T2 a5,T0* a6,T0* a7){
(/*SFN*/C->_base_class_memory)=a1;
(/*SFN*/C->_run_class_memory)=a2;
(/*SFN*/C->_formal_name)=a3;
(/*SFN*/C->_formal_generic_arg)=a4;
(/*SFN*/C->_written_mark)=(/*RF2*/(((T77*)a3))->_to_string/*8*/);
(/*SFN*/C->_rank)=a5;
r376set_run_type(C,a6,a7);
}


T2 r376c_sizeof(T376* C){
T2 R=0;
R=X62c_sizeof((/*RF2*/(C)->_run_type/*16*/));
return R;
}


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


void r376c_type_for_result_in(T376* C,T0* a1){
X62c_type_for_result_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


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


void r376gc_mark_in(T376* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_1994852));
r2append_in(r376id(C),a1);
}


T0* r376make_runnable(T376* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rt=NULL;
_rt=X62run_type(a2);
/*[IF*/
if((_rt)==((void*)(NULL))){
/*[IF*/
if((a2)!=((void*)(NULL))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(a2),&se_tmp0)));
}
}
/*FI]*/
{T104 se_tmp0;
r376error(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_formal_name/*28*/))))->_start_position/*0*/)/*)*/,((T0*)ms20_14538933));
}
}
 else if(((/*RF2*/(C)->_run_type/*16*/))==((void*)(NULL))){
r376set_run_type(C,a1,_rt);
R=((T0*)(C));
}
else{
{T376*n=((T376*)se_malloc(sizeof(*n))/*40*/);
*n=M376;
r376set(n,X62base_class(_rt),X62run_class(_rt),(/*RF2*/(C)->_formal_name/*28*/),(/*RF2*/(C)->_formal_generic_arg/*32*/),(/*RF2*/(C)->_rank/*24*/),a1,_rt);
R=((T0*)n);
}
}
/*FI]*/
return R;
}


void r376just_before_gc_mark_in(T376* C,T0* a1){
X62just_before_gc_mark_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


T6 r376is_pointer(T376* C){
T6 R=0;
R=X62is_pointer((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T2 r376id(T376* C){
T2 R=0;
R=(/*RF2*/((T60*)(r376run_class(C)))->_id/*16*/);
return R;
}


void r376mapping_cast(T376* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC62mapping_cast_buffer))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\50'));
r376c_type_for_target_in(C,oBC62mapping_cast_buffer);
r7extend((T7*)(oBC62mapping_cast_buffer),((T3)'\51'));
/*[IRF3.5put_string*/r58put_string(((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/))),oBC62mapping_cast_buffer);
/*]*/
}


T0* r376static_base_class_name(T376* C){
T0* R=NULL;
T0* _c=NULL;
_c=(/*RF2*/((T374*)((/*RF2*/(C)->_formal_generic_arg/*32*/)))->_constraint/*4*/);
/*[IF*/
if((_c)!=((void*)(NULL))){
R=X62static_base_class_name(_c);
}
/*FI]*/
return R;
}


T6 r376is_real(T376* C){
T6 R=0;
R=X62is_real((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_none(T376* C){
T6 R=0;
R=X62is_none((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376c_initialize(T376* C){
X62c_initialize((/*RF2*/(C)->_run_type/*16*/));
}


T6 r376need_gc_mark_function(T376* C){
T6 R=0;
R=X62need_gc_mark_function((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376fatal_error_generic_list(T376* C){
r82add_type((T0*)C,((T0*)ms62_1313445026));
r82print_as_fatal_error((T82*)(oBC19eh));
}


void r376c_type_for_argument_in(T376* C,T0* a1){
X62c_type_for_argument_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


T6 r376stupid_switch(T376* C,T0* a1){
T6 R=0;
R=r376standard_stupid_switch(C,a1);
return R;
}


T6 r376is_integer(T376* C){
T6 R=0;
R=X62is_integer((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376c_frame_descriptor(T376* C){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
/*[IF*/
if(r376is_reference(C)){
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'R'));
}
else{
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'E'));
}
/*FI]*/
r2append_in(r376id(C),oBC19c_frame_descriptor_format);
r7extend((T7*)(oBC19c_frame_descriptor_format),((T3)'\45'));
}


void r376make(T376* C,T0* a1,T0* a2,T2 a3){
(/*SFN*/C->_formal_name)=a1;
(/*SFN*/C->_formal_generic_arg)=a2;
(/*SFN*/C->_written_mark)=(/*RF2*/(((T77*)a1))->_to_string/*8*/);
(/*SFN*/C->_rank)=a3;
}


T0* r376base_class_name(T376* C){
T0* R=NULL;
R=X62base_class_name((/*RF2*/(C)->_run_type/*16*/));
return R;
}


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


T6 r376is_character(T376* C){
T6 R=0;
R=X62is_character((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_expanded(T376* C){
T6 R=0;
R=X62is_expanded((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_array(T376* C){
T6 R=0;
R=X62is_array((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376gc_info_in(T376* C,T0* a1){
X62gc_info_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


T0* r376base_class(T376* 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=r376base_class_name(C);
/*[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;
}


T6 r376is_dummy_expanded(T376* C){
T6 R=0;
R=X62is_dummy_expanded((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376need_c_struct(T376* C){
T6 R=0;
R=X62need_c_struct((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_reference(T376* C){
T6 R=0;
R=X62is_reference((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376gc_define1(T376* C){
X62gc_define1((/*RF2*/(C)->_run_type/*16*/));
}


void r376gc_define2(T376* C){
X62gc_define2((/*RF2*/(C)->_run_type/*16*/));
}


void r376c_type_for_target_in(T376* C,T0* a1){
X62c_type_for_target_in((/*RF2*/(C)->_run_type/*16*/),a1);
}


T0* r376expanded_initializer(T376* C){
T0* R=NULL;
R=X62expanded_initializer((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T0* r376actual_reference(T376* C,T0* a1){
T0* R=NULL;
R=X62actual_reference((/*RF2*/(C)->_run_type/*16*/),a1);
return R;
}


T6 r376is_a_in(T376* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((/*RF2*/(C)->_written_mark/*12*/))==((void*)(X62written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T60*)a2))->_current_type/*0*/);
_t1=r376to_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 r376demangling_in(T376* C,T0* a1){
/*[IF*/
if(r376is_reference(C)){
r7extend(((T7*)a1),((T3)'R'));
}
else{
r7extend(((T7*)a1),((T3)'E'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),(/*RF2*/(C)->_run_time_mark/*20*/));
}


T6 r376is_generic(T376* C){
T6 R=0;
R=X62is_generic((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_double(T376* C){
T6 R=0;
R=X62is_double((/*RF2*/(C)->_run_type/*16*/));
return R;
}


void r376id_extra_information(T376* C,T0* a1){
r58put_string(((T58*)a1),((T0*)ms62_1360462097));
/*[IF*/
if(r376is_reference(C)){
r58put_string(((T58*)a1),((T0*)ms62_18257));
}
else{
r58put_string(((T58*)a1),((T0*)ms62_3337));
}
/*FI]*/
}


T6 r376is_user_expanded(T376* C){
T6 R=0;
R=X62is_user_expanded((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T6 r376is_a(T376* C,T0* a1){
T6 R=0;
R=X62is_a((/*RF2*/(C)->_run_type/*16*/),a1);
/*[IF*/
if(!(R)){
{T104 se_tmp0;
r82add_position(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_formal_name/*28*/))))->_start_position/*0*/)/*)*/);
}
}
/*FI]*/
return R;
}


T6 r376is_boolean(T376* C){
T6 R=0;
R=X62is_boolean((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T0* r376to_runnable(T376* C,T0* a1){
T0* R=NULL;
T0* _gl=NULL;
T0* _t=NULL;
T0* _p=NULL;
T0* _bc_ct=NULL;
T0* _bc_written=NULL;
{T104 se_tmp0;
_bc_written=(/*RF2*/(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_formal_name/*28*/))))->_start_position/*0*/)/*)*/)._base_class/*0*/);
}
_bc_ct=X62base_class(a1);
/*[IF*/
if((_bc_written)==((void*)(_bc_ct))){
_gl=X62generic_list(a1);
/*[IF*/
if(((_gl)==((void*)(NULL)))||(((/*RF2*/(C)->_rank/*24*/))>((/*RF2*/(((T147*)_gl))->_upper/*8*/)))){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X62start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_formal_name/*28*/))))->_start_position/*0*/)/*)*/);
}
r376fatal_error(((T0*)ms20_867907918));
}
else{
R=r376make_runnable(C,a1,r147item(((T147*)_gl),(/*RF2*/(C)->_rank/*24*/)));
}
/*FI]*/
}
else{
_p=/*(IRF4.6first_parent_for*/r72first_parent_for(((T72*)((/*RF2*/(((T61*)_bc_ct))->_parent_list/*34*/))),_bc_written)/*)*/;
while (!((_p)==((void*)(NULL))))
{
_t=(/*RF2*/(((T73*)_p))->_type/*0*/);
_t=X62run_type(X62to_runnable(_t,a1));
/*[IF*/
if((R)==((void*)(NULL))){
R=r376to_runnable(C,_t);
_p=NULL;
}
else{
_p=/*(IRF4.6next_parent_for*/r72next_parent_for(((T72*)((/*RF2*/(((T61*)_bc_ct))->_parent_list/*34*/))),_bc_written,_p)/*)*/;
}
/*FI]*/
}
/*[IF*/
if((R)==((void*)(NULL))){
r82add_type(a1,((T0*)ms376_2104240264));
{T104 se_tmp0;
r376warning(/*(IRF4.6start_position*/(/*RF2*/(((T77*)((/*RF2*/(C)->_formal_name/*28*/))))->_start_position/*0*/)/*)*/,((T0*)ms376_319078760));
}
}
/*FI]*/
}
/*FI]*/
return R;
}


T6 r376standard_stupid_switch(T376* C,T0* a1){
T6 R=0;
T2 _i=0;
T0* _rtm2=NULL;
T0* _rtm1=NULL;
T0* _dyn_t=NULL;
T0* _ct=NULL;
T0* _rc=NULL;
R=1;
_i=(/*RF2*/(((T63*)a1))->_upper/*12*/);
_rc=r63item(((T63*)a1),_i);
_i=(_i)-(1);
_ct=(/*RF2*/(((T60*)_rc))->_current_type/*0*/);
_dyn_t=r376to_runnable(C,_ct);
/*[IF*/
if((_dyn_t)==((void*)(NULL))){
R=0;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
_rtm1=X62run_time_mark(_dyn_t);
}
/*FI]*/
while (!((!(R))||((_i)==(0))))
{
_rc=r63item(((T63*)a1),_i);
_i=(_i)-(1);
_ct=(/*RF2*/(((T60*)_rc))->_current_type/*0*/);
_dyn_t=r376to_runnable(C,_ct);
/*[IF*/
if((_dyn_t)==((void*)(NULL))){
R=0;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC82explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T105*)((T105*)(oBC82positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
_rtm2=X62run_time_mark(_dyn_t);
/*[IF*/
if((_rtm1)!=((void*)(_rtm2))){
R=0;
}
/*FI]*/
}
/*FI]*/
}
return R;
}


T6 r376is_string(T376* C){
T6 R=0;
R=X62is_string((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T0* r376run_class(T376* C){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_run_class_memory/*8*/))!=((void*)(NULL))){
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
 else if(/*(IRF4.7is_run_type*/((/*RF2*/(C)->_run_type/*16*/))!=(NULL)/*)*/){
(/*SFN*/C->_run_class_memory)=r59run_class((/*RF2*/(C)->_run_type/*16*/));
R=(/*RF2*/(C)->_run_class_memory/*8*/);
}
/*FI]*/
return R;
}


void r376c_header_pass1(T376* C){
X62c_header_pass1((/*RF2*/(C)->_run_type/*16*/));
}


void r376c_header_pass2(T376* C){
X62c_header_pass2((/*RF2*/(C)->_run_type/*16*/));
}


void r376c_header_pass3(T376* C){
X62c_header_pass3((/*RF2*/(C)->_run_type/*16*/));
}


void r376c_header_pass4(T376* C){
X62c_header_pass4((/*RF2*/(C)->_run_type/*16*/));
}


T6 r376is_basic_eiffel_expanded(T376* C){
T6 R=0;
R=X62is_basic_eiffel_expanded((/*RF2*/(C)->_run_type/*16*/));
return R;
}


T0* r376smallest_ancestor(T376* C,T0* a1){
T0* R=NULL;
R=X62smallest_ancestor((/*RF2*/(C)->_run_type/*16*/),a1);
return R;
}


void r376gc_call_new_in(T376* C,T0* a1){
r7append(((T7*)a1),((T0*)ms20_3374));
r2append_in(r376id(C),a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}


void r495compile_to_c(T495* C){
/*[IF*/
if(X62is_user_expanded(r495result_type(C))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'\52');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r83print_current((T83*)(oBC19cpp));
}


T0* r495result_type(T495* C){
T0* R=NULL;
R=/*SSWARF2*//*X96current_type*/(/*RF2*/((T154*)((/*RF2*/(C)->_run_feature/*4*/)))->_current_type/*8*/);
return R;
}


void r495mapping_c_target(T0* a1){
X62mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T58* C1=((T58*)((/*RF2*/((T83*)(oBC19cpp))->_current_out/*63*/)));
T3 b1=((T3)'C');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}


T2 r495to_integer_or_error(void){
T2 R=0;
/*[IRF3.2to_integer_error*//*[IRF3.6append*/{T0* b1=((T0*)ms20_752996481);
r7append((T7*)(oBC82explanation),b1);
}/*]*/
r82add_position(/*(IRF4.1start_position*/M104/*)*/);
r82print_as_error((T82*)(oBC19eh));
/*]*/
return R;
}


T0* r495add_comment(T495* 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* r495static_result_base_class(T495* C){
T0* R=NULL;
R=X62base_class(r495result_type(C));
return R;
}


T2 r118count(T118* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
R=1;
}
else{
R=((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/))+(2);
}
/*FI]*/
return R;
}


T0* r118item(T118* C,T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)==(1)){
R=(/*RF2*/(C)->_first/*0*/);
}
else{
R=/*(IRF4.6item*/((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[(a1)-(2)]/*)*/;
}
/*FI]*/
return R;
}


T2 r118index_of(T118* C,T0* a1){
T2 R=0;
T0* _fn_key=NULL;
_fn_key=X117to_key(a1);
/*[IF*/
if((X117to_key((/*RF2*/(C)->_first/*0*/)))==((void*)(_fn_key))){
R=1;
}
 else if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
}
else{
R=(/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/);
while (!(((R)<(0))||((_fn_key)==((void*)(X117to_key(/*(IRF4.6item*/((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[R]/*)*/))))))
{
R=(R)-(1);
}
/*[IF*/
if((R)<(0)){
R=0;
}
else{
R=(R)+(2);
}
/*FI]*/
}
/*FI]*/
return R;
}


void r118make_n(T118* C,T0* a1){
T2 _j=0;
T2 _i=0;
_i=(/*RF2*/(((T175*)a1))->_upper/*8*/);
while (!((_i)<(0)))
{
_j=(_i)-(1);
while (!((_j)<(0)))
{
/*[IF*/
if((X117to_key(/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[_i]/*)*/))==((void*)(X117to_key(/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[_j]/*)*/)))){
r118fe_multiple(/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[_i]/*)*/,/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[_j]/*)*/);
}
/*FI]*/
_j=(_j)-(1);
}
_i=(_i)-(1);
}
(/*SFN*/C->_first)=/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[0]/*)*/;
_i=(/*RF2*/(((T175*)a1))->_upper/*8*/);
/*[IF*/
if((_i)>(0)){
{T175*n=((T175*)se_malloc(sizeof(*n))/*12*/);
*n=M175;
r175make(n,_i);
(/*SFN*/C->_remainder)=((T0*)n);
}
_j=0;
while (!((_i)==(0)))
{
/*[IRF3.5put*/((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_j]=(/*(IRF4.6item*/((/*RF2*/(((T175*)a1))->_storage/*0*/))[(_j)+(1)]/*)*/);
/*]*/
_j=(_j)+(1);
_i=(_i)-(1);
}
}
/*FI]*/
}


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


void r118fe_multiple(T0* a1,T0* a2){
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a1),&se_tmp0)));
}
{T104 se_tmp0;
r82add_position((*(se_tmp0=X117start_position(a2),&se_tmp0)));
}
r118fatal_error(((T0*)ms118_914877497));
}


T6 r118has(T118* C,T0* a1){
T6 R=0;
R=(r118index_of(C,a1))>(0);
return R;
}


void r118add_last(T118* C,T0* a1){
T0* _fn2=NULL;
_fn2=r118feature_name(C,X117to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
r118fe_multiple(_fn2,a1);
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
{T175*n=((T175*)se_malloc(sizeof(*n))/*12*/);
*n=M175;
r175with_capacity(n,4);
(/*SFN*/C->_remainder)=((T0*)n);
}
}
/*FI]*/
r175add_last((T175*)((/*RF2*/(C)->_remainder/*4*/)),a1);
}


T0* r118feature_name(T118* C,T0* a1){
T0* R=NULL;
T2 _i=0;
/*[IF*/
if((X117to_key((/*RF2*/(C)->_first/*0*/)))==((void*)(a1))){
R=(/*RF2*/(C)->_first/*0*/);
}
 else if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
}
else{
_i=(/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/);
while (!(((_i)<(0))||((a1)==((void*)(X117to_key(/*(IRF4.6item*/((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_i]/*)*/))))))
{
_i=(_i)-(1);
}
/*[IF*/
if((_i)>=(0)){
R=/*(IRF4.6item*/((/*RF2*/((T175*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_i]/*)*/;
}
/*FI]*/
}
/*FI]*/
return R;
}


T0* r118root_procedure_name(T118* C,T0* a1){
T0* R=NULL;
T0* _fn=NULL;
T2 _i=0;
_i=r118count(C);
while (!(((_i)==(0))||((R)!=((void*)(NULL)))))
{
_fn=r118item(C,_i);
/*[IF*/
if(r7is_equal((T7*)(X117to_string(_fn)),a1)){
R=_fn;
if(NULL!=(R)){
switch(((T0*)R)->id){
case 143:
break;
default:
R=NULL;
}
}}
/*FI]*/
_i=(_i)-(1);
}
return R;
}


T0* r178item(T2 a1){
T0* R=NULL;
R=/*(IRF4.6item*/((/*RF2*/((T120*)(oBC178text))->_storage/*4*/))[a1]/*)*/;
return R;
}


T0* r178empty_line_at(T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)<=((/*RF2*/((T120*)(oBC178text))->_upper/*12*/))){
R=/*(IRF4.6item*/((/*RF2*/((T120*)(oBC178text))->_storage/*4*/))[a1]/*)*/;
/*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
/*]*/
}
else{
{T7*n=((T7*)se_malloc(sizeof(*n))/*12*/);
*n=M7;
r7make(n,128);
R=((T0*)n);
}
r120add_last((T120*)(oBC178text),R);
}
/*FI]*/
return R;
}


T0* r178string_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;
}

