#include "chdecl.h"
void CH_chcode_chimprove_code(current, sched, cop)
#define ARGUMENTS 14
#include "chhead.h"
select: switch (SELECTOR) {
    case 0: goto c0;
    case 1: goto cb1;
    case 2: goto c2;
    case 3: goto c39;
    case 4: goto c45;
    case 5: goto c50;
    case 6: goto cb75;
    case 8: goto cb77;
    case 10: goto cb79;
    case 12: goto cb81;
    case 14: goto cb83;
    case 16: goto cb85;
    case 18: goto cb87;
    case 17: goto c89;
    case 15: goto c89;
    case 13: goto c89;
    case 11: goto c89;
    case 9: goto c89;
    case 7: goto c89;
    case 19: goto c89;
    case 20: goto c91;
    case 26: goto c93;
    case 23: goto c93;
    case 21: goto c93;
    case 22: goto cb98;
    case 24: goto c100;
    case 25: goto cb101;
    case 27: goto c103;
    case 28: goto c132;
    case 34: goto c134;
    case 31: goto c134;
    case 29: goto c134;
    case 30: goto cb139;
    case 32: goto c141;
    case 33: goto cb142;
    case 35: goto c144;
    case 36: goto c173;
    case 39: goto c212;
    case 37: goto c212;
    case 38: goto cb221;
    case 40: goto c223;
    case 41: goto c228;
    case 42: goto c233;
    case 43: goto cb241;
    case 44: goto c242;
    case 45: goto c244;
    case 46: goto c247;
    case 47: goto c251;  }
c0:
/* block , 0 */
  if((ch_returncode = che_block(QUAL(0),sched)) != Normal)
     goto ch_raise_exception;
  current->ip = 1;
cb1:
/* receive 3 0 */
  if ((ch_returncode = che_receive(DEF(3),DEF(0),sched)) != Normal)
     goto ch_raise_exception;
  return;
c2:
/* prog_lit 4 , 1 */
  if ((ch_returncode = che_prog_lit(DEF(4),QUAL(1),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 5 4 , 2 */
  if ((ch_returncode = che_procedure(DEF(5),DEF(4),QUAL(2),sched)) != Normal)
     goto ch_raise_exception;
/* discard 4 */
  (*(REF(4).tsdr)->finalize)(REF(4).value,F_DISCARD,sched);
  REF(4).tsdr = & dr_bottom;
/* move 6 5 */
  (*(REF(6).tsdr)->finalize)(REF(6).value,F_DISCARD,sched);
  REF(6) = REF(5);
  REF(5).tsdr = & dr_bottom;
/* prog_lit 7 , 3 */
  if ((ch_returncode = che_prog_lit(DEF(7),QUAL(3),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 8 7 , 4 */
  if ((ch_returncode = che_procedure(DEF(8),DEF(7),QUAL(4),sched)) != Normal)
     goto ch_raise_exception;
/* discard 7 */
  (*(REF(7).tsdr)->finalize)(REF(7).value,F_DISCARD,sched);
  REF(7).tsdr = & dr_bottom;
/* move 9 8 */
  (*(REF(9).tsdr)->finalize)(REF(9).value,F_DISCARD,sched);
  REF(9) = REF(8);
  REF(8).tsdr = & dr_bottom;
/* prog_lit 10 , 5 */
  if ((ch_returncode = che_prog_lit(DEF(10),QUAL(5),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 11 10 , 6 */
  if ((ch_returncode = che_procedure(DEF(11),DEF(10),QUAL(6)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 10 */
  (*(REF(10).tsdr)->finalize)(REF(10).value,F_DISCARD,sched);
  REF(10).tsdr = & dr_bottom;
/* move 12 11 */
  (*(REF(12).tsdr)->finalize)(REF(12).value,F_DISCARD,sched);
  REF(12) = REF(11);
  REF(11).tsdr = & dr_bottom;
/* prog_lit 13 , 7 */
  if ((ch_returncode = che_prog_lit(DEF(13),QUAL(7),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 14 13 , 8 */
  if ((ch_returncode = che_procedure(DEF(14),DEF(13),QUAL(8)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 13 */
  (*(REF(13).tsdr)->finalize)(REF(13).value,F_DISCARD,sched);
  REF(13).tsdr = & dr_bottom;
/* move 15 14 */
  (*(REF(15).tsdr)->finalize)(REF(15).value,F_DISCARD,sched);
  REF(15) = REF(14);
  REF(14).tsdr = & dr_bottom;
/* prog_lit 16 , 9 */
  if ((ch_returncode = che_prog_lit(DEF(16),QUAL(9),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 17 16 , 6 */
  if ((ch_returncode = che_procedure(DEF(17),DEF(16),QUAL(6)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 16 */
  (*(REF(16).tsdr)->finalize)(REF(16).value,F_DISCARD,sched);
  REF(16).tsdr = & dr_bottom;
/* move 18 17 */
  (*(REF(18).tsdr)->finalize)(REF(18).value,F_DISCARD,sched);
  REF(18) = REF(17);
  REF(17).tsdr = & dr_bottom;
/* prog_lit 19 , 10 */
  if ((ch_returncode = che_prog_lit(DEF(19),QUAL(10),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 20 19 , 8 */
  if ((ch_returncode = che_procedure(DEF(20),DEF(19),QUAL(8)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 19 */
  (*(REF(19).tsdr)->finalize)(REF(19).value,F_DISCARD,sched);
  REF(19).tsdr = & dr_bottom;
/* move 21 20 */
  (*(REF(21).tsdr)->finalize)(REF(21).value,F_DISCARD,sched);
  REF(21) = REF(20);
  REF(20).tsdr = & dr_bottom;
/* prog_lit 22 , 11 */
  if ((ch_returncode = che_prog_lit(DEF(22),QUAL(11),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 23 22 , 4 */
  if ((ch_returncode = che_procedure(DEF(23),DEF(22),QUAL(4)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 22 */
  (*(REF(22).tsdr)->finalize)(REF(22).value,F_DISCARD,sched);
  REF(22).tsdr = & dr_bottom;
/* move 24 23 */
  (*(REF(24).tsdr)->finalize)(REF(24).value,F_DISCARD,sched);
  REF(24) = REF(23);
  REF(23).tsdr = & dr_bottom;
/* prog_lit 25 , 12 */
  if ((ch_returncode = che_prog_lit(DEF(25),QUAL(12),sched)) != Normal) 
     goto ch_raise_exception;
/* procedure 26 25 , 4 */
  if ((ch_returncode = che_procedure(DEF(26),DEF(25),QUAL(4)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 25 */
  (*(REF(25).tsdr)->finalize)(REF(25).value,F_DISCARD,sched);
  REF(25).tsdr = & dr_bottom;
/* move 27 26 */
  (*(REF(27).tsdr)->finalize)(REF(27).value,F_DISCARD,sched);
  REF(27) = REF(26);
  REF(26).tsdr = & dr_bottom;
/* move 28 3.1 */
  (*(REF(28).tsdr)->finalize)(REF(28).value,F_DISCARD,sched);
  REF(28) = REF(3)DOT(1);
  REF(3)DOT(1).tsdr = & dr_bottom;
/* boolean 29 , TRUE */
  REF(29).value.boolean = TRUE;
  REF(29).tsdr = & dr_boolean;
/* boolean 30 , FALSE */
  REF(30).value.boolean = FALSE;
  REF(30).tsdr = & dr_boolean;
c39:
/* branch_false 29 , 247 */
  if ( !REF(29).value.boolean ) goto c247;
/* boolean 29 , FALSE */
  REF(29).value.boolean = FALSE;
  REF(29).tsdr = & dr_boolean;
/* new_table 31 , 13 */
  if ((ch_returncode = che_new_table(DEF(31),QUAL(13),sched)) != Normal) 
     goto ch_raise_exception;
/* copy 32 28 */
  if((ch_returncode = cp_table(& ch_val, REF(28).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(32).tsdr)->finalize)(REF(32).value,F_DISCARD,sched);
  REF(32).value = ch_val;
  REF(32).tsdr = & dr_table;
/* initget 33 32 , 0,0 */
  (*(REF(33).tsdr)->finalize)(REF(33).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(33),DEF(32),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c45:
/* get_or_goto 33 32 , 233 */
  if ((ch_returncode = get_selected_object(DEF(33),DEF(32),sched)) != Normal)
     goto c233;
/* copy 34 33 */
  if((ch_returncode = (REF(33).tsdr->copy)(& ch_val, REF(33).value
    )) != Normal) goto ch_raise_exception;
  (*(REF(34).tsdr)->finalize)(REF(34).value,F_DISCARD,sched);
  REF(34).value = ch_val;
  REF(34).tsdr = datarepmap[REF(33).tsdr->number];
/* new_table 35 , 13 */
  if ((ch_returncode = che_new_table(DEF(35),QUAL(13),sched)) != Normal) 
     goto ch_raise_exception;
/* copy 36 34.3 */
  if((ch_returncode = cp_table(& ch_val, REF(34)DOT(3).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(36).tsdr)->finalize)(REF(36).value,F_DISCARD,sched);
  REF(36).value = ch_val;
  REF(36).tsdr = & dr_table;
/* initget 37 36 , 0,0 */
  (*(REF(37).tsdr)->finalize)(REF(37).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(37),DEF(36),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c50:
/* get_or_goto 37 36 , 228 */
  if ((ch_returncode = get_selected_object(DEF(37),DEF(36),sched)) != Normal)
     goto c228;
/* discard 38 */
  (*(REF(38).tsdr)->finalize)(REF(38).value,F_DISCARD,sched);
  REF(38).tsdr = & dr_bottom;
/* copy 39 37 */
  REF(39) = REF(37);
/* insert 35 39 */
  if ((ch_returncode = insertfunc(DEF(35),DEF(39),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* lookup_at 40 3.2 37 */
  if((ch_i = REF(37).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(2).value
    .table)->size) goto ch_notfound;
  (*(REF(40).tsdr)->finalize)(REF(40).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(40).value,ch_i);
  REF(40).tsdr = qdatarepmap[ch_t->tsdr->number];
/* find 41 3.0.11 40.0 , 0 */
  if (findfunc(DEF(41),DEF(3)DOT(0)DOT(11),(
          arguments[0] = DEF(40)DOT(0),& arguments[0]),sched,0) == FAILURE)
             goto ch_notfound;
/* copy 38 41 */
  if((ch_returncode = (REF(41).tsdr->copy)(& ch_val, REF(41).value
    )) != Normal) goto ch_raise_exception;
  (*(REF(38).tsdr)->finalize)(REF(38).value,F_DISCARD,sched);
  REF(38).value = ch_val;
  REF(38).tsdr = datarepmap[REF(41).tsdr->number];
/* block , 14 */
  if((ch_returncode = che_block(QUAL(14),sched)) != Normal)
     goto ch_raise_exception;
/* equal . 38.5 =(7) , 75 */
  if ( REF(38)DOT(5).value.enumeration == 7 ) goto c75;
/* equal . 38.5 =(6) , 77 */
  if ( REF(38)DOT(5).value.enumeration == 6 ) goto c77;
/* equal . 38.5 =(5) , 79 */
  if ( REF(38)DOT(5).value.enumeration == 5 ) goto c79;
/* equal . 38.5 =(3) , 81 */
  if ( REF(38)DOT(5).value.enumeration == 3 ) goto c81;
/* equal . 38.5 =(2) , 83 */
  if ( REF(38)DOT(5).value.enumeration == 2 ) goto c83;
/* equal . 38.5 =(1) , 85 */
  if ( REF(38)DOT(5).value.enumeration == 1 ) goto c85;
/* equal . 38.5 =(0) , 87 */
  if ( REF(38)DOT(5).value.enumeration == 0 ) goto c87;
/* branch , 89 */
   goto c89;
c75:
  current->ip = 6;
cb75:
/* call 27 3.0 3.2 3.3 35 6 29 , 15 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(27),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(35),
          arguments[5] = DEF(6),
          arguments[6] = DEF(29),
          arguments[6+1] = nil,& arguments[0]),QUAL(15),sched)) != Normal)
     goto ch_raise_exception;
  return;
c77:
  current->ip = 8;
cb77:
/* call 24 3.0 3.2 3.3 35 6 29 , 15 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(24),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(35),
          arguments[5] = DEF(6),
          arguments[6] = DEF(29),
          arguments[6+1] = nil,& arguments[0]),QUAL(15),sched)) != Normal)
     goto ch_raise_exception;
  return;
c79:
  current->ip = 10;
cb79:
/* call 21 3.0 3.2 3.3 37 6 , 16 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(21),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(37),
          arguments[5] = DEF(6),
          arguments[5+1] = nil,& arguments[0]),QUAL(16),sched)) != Normal)
     goto ch_raise_exception;
  return;
c81:
  current->ip = 12;
cb81:
/* call 18 3.0 3.2 3.3 37 42 43 , 17 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(18),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(37),
          arguments[5] = DEF(42),
          arguments[6] = DEF(43),
          arguments[6+1] = nil,& arguments[0]),QUAL(17),sched)) != Normal)
     goto ch_raise_exception;
  return;
c83:
  current->ip = 14;
cb83:
/* call 15 3.0 3.2 3.3 37 6 , 16 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(15),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(37),
          arguments[5] = DEF(6),
          arguments[5+1] = nil,& arguments[0]),QUAL(16),sched)) != Normal)
     goto ch_raise_exception;
  return;
c85:
  current->ip = 16;
cb85:
/* call 12 3.0 3.2 3.3 37 42 43 , 17 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(12),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(37),
          arguments[5] = DEF(42),
          arguments[6] = DEF(43),
          arguments[6+1] = nil,& arguments[0]),QUAL(17),sched)) != Normal)
     goto ch_raise_exception;
  return;
c87:
  current->ip = 18;
cb87:
/* call 9 3.0 3.2 3.3 35 6 29 , 15 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(9),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(3)DOT(2),
          arguments[3] = DEF(3)DOT(3),
          arguments[4] = DEF(35),
          arguments[5] = DEF(6),
          arguments[6] = DEF(29),
          arguments[6+1] = nil,& arguments[0]),QUAL(15),sched)) != Normal)
     goto ch_raise_exception;
  return;
c86:
c84:
c82:
c80:
c78:
c76:
c89:
/* endblock */
  che_endblock(sched);
/* branch , 50 */
   goto c50;
c91:
/* copy 44 40.1 */
  if((ch_returncode = cp_table(& ch_val, REF(40)DOT(1).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(44).tsdr)->finalize)(REF(44).value,F_DISCARD,sched);
  REF(44).value = ch_val;
  REF(44).tsdr = & dr_table;
/* initget 45 44 , 0,0 */
  (*(REF(45).tsdr)->finalize)(REF(45).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(45),DEF(44),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c102:
c99:
c93:
/* get_or_goto 45 44 , 103 */
  if ((ch_returncode = get_selected_object(DEF(45),DEF(44),sched)) != Normal)
     goto c103;
/* position 46 45 */
  ch_frame = get_selector_frame(DEF(45),sched);
  ch_t = ch_frame->inspectee->value.table;
  REF(46).value.integer = ch_frame->rmvcount +
    (*(ch_t->tbls[ORDER_TBL].des->position_of))(ch_t,ORDER_TBL,ch_frame->pos);
  REF(46).tsdr = &dr_integer;
/* ilit 47 , 0 */
  REF(47).value.integer = 0;
  REF(47).tsdr = & dr_integer;
/* equal 48 46 47 */
  REF(48).value.boolean = (REF(46).value.integer == REF(47).value.integer);
  REF(48).tsdr = & dr_boolean;
/* branch_false 48 , 100 */
  if ( !REF(48).value.boolean ) goto c100;
  current->ip = 22;
cb98:
/* call 6 38.3 45 3.3 , 18 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(6),
          arguments[1] = DEF(38)DOT(3),
          arguments[2] = DEF(45),
          arguments[3] = DEF(3)DOT(3),
          arguments[3+1] = nil,& arguments[0]),QUAL(18),sched)) != Normal)
     goto ch_raise_exception;
  return;
c100:
/* enum_lit 49 , 0 */
  REF(49).value.enumeration = 0;
  REF(49).tsdr = & dr_enumeration;
  current->ip = 25;
cb101:
/* call 6 49 45 3.3 , 18 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(6),
          arguments[1] = DEF(49),
          arguments[2] = DEF(45),
          arguments[3] = DEF(3)DOT(3),
          arguments[3+1] = nil,& arguments[0]),QUAL(18),sched)) != Normal)
     goto ch_raise_exception;
  return;
c103:
/* endget 45 44 */
  end_selector(DEF(45),DEF(44),sched,GET);
/* discard 44 */
  (*(REF(44).tsdr)->finalize)(REF(44).value,F_DISCARD,sched);
  REF(44).tsdr = & dr_bottom;
/* ordenum_lit 50 , 2 */
  REF(50).value.ord_enum = 2;
  REF(50).tsdr = & dr_ord_enumeration;
/* equal 51 40.4 50 */
  REF(51).value.boolean = (REF(40)DOT(4).value.ord_enum == 
    REF(50).value.ord_enum);
  REF(51).tsdr = & dr_boolean;
/* ilit 52 , 0 */
  REF(52).value.integer = 0;
  REF(52).tsdr = & dr_integer;
/* notequal 53 40.6 52 */
  REF(53).value.boolean = (REF(40)DOT(6).value.integer != 
    REF(52).value.integer);
  REF(53).tsdr = & dr_boolean;
/* or 54 51 53 */
  REF(54).value.boolean = REF(51).value.boolean|REF(53).value.boolean;
  REF(54).tsdr = & dr_boolean;
/* branch_false 54 , 123 */
  if ( !REF(54).value.boolean ) goto c123;
/* privatize 3.2 */
  if (REF(3)DOT(2).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(3)DOT(2))) != Normal)
       goto ch_raise_exception;
/* lookup_at 55 3.2 37 */
  if((ch_i = REF(37).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(2).value
    .table)->size) goto ch_notfound;
  (*(REF(55).tsdr)->finalize)(REF(55).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(55).value,ch_i);
  REF(55).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 56 3.2 37 */
  if ((ch_returncode = remove_at_func(DEF(56),DEF(3)DOT(2),
    REF(37).value.integer)) != Normal) goto ch_raise_exception;
/* enum_lit 56.0 , 114 */
  REF(56)DOT(0).value.enumeration = 114;
  REF(56)DOT(0).tsdr = & dr_enumeration;
/* new_table 56.1 , 13 */
  if ((ch_returncode = che_new_table(DEF(56)DOT(1),QUAL(13)
    ,sched)) != Normal)  goto ch_raise_exception;
/* ordenum_lit 56.3 , 3 */
  REF(56)DOT(3).value.ord_enum = 3;
  REF(56)DOT(3).tsdr = & dr_ord_enumeration;
/* unite 56.2 57 , 0 */
  if ((ch_returncode = che_unite(DEF(56)DOT(2),DEF(57),sched,0)) != Normal)
     goto ch_raise_exception;
/* insert_at 3.2 56 37 */
  ch_i = REF(37).value.integer;
  if (ch_i < 0 || REF(3)DOT(2).value.table->size < ch_i) goto ch_range_error;
  if ((ch_returncode = insertfunc(DEF(3)DOT(2),DEF(56),TRUE, ch_i)) != Normal)
     goto ch_raise_exception;
/* branch , 129 */
   goto c129;
c123:
/* privatize 35 */
  if (REF(35).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(35))) != Normal)
       goto ch_raise_exception;
/* size 58 35 */
  REF(58).value.integer = REF(35).value.table->size;
  REF(58).tsdr = & dr_integer;
/* ilit 59 , 1 */
  REF(59).value.integer = 1;
  REF(59).tsdr = & dr_integer;
/* isubtract 60 58 59 */
  if (!chf_isubtract(DEF(60),REF(58).value.integer,REF(59).value.integer))
     goto ch_depletion;
/* lookup_at 61 35 60 */
  if((ch_i = REF(60).value.integer) < 0 || ch_i >= (ch_t = REF(35).value
    .table)->size) goto ch_notfound;
  (*(REF(61).tsdr)->finalize)(REF(61).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(61).value,ch_i);
  REF(61).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 62 35 60 */
  if ((ch_returncode = remove_at_func(DEF(62),DEF(35),REF(60).value.integer
    )) != Normal) goto ch_raise_exception;
c129:
/* boolean 29 , TRUE */
  REF(29).value.boolean = TRUE;
  REF(29).tsdr = & dr_boolean;
/* branch , 50 */
   goto c50;
c132:
/* copy 63 40.1 */
  if((ch_returncode = cp_table(& ch_val, REF(40)DOT(1).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(63).tsdr)->finalize)(REF(63).value,F_DISCARD,sched);
  REF(63).value = ch_val;
  REF(63).tsdr = & dr_table;
/* initget 45 63 , 0,0 */
  (*(REF(45).tsdr)->finalize)(REF(45).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(45),DEF(63),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c143:
c140:
c134:
/* get_or_goto 45 63 , 144 */
  if ((ch_returncode = get_selected_object(DEF(45),DEF(63),sched)) != Normal)
     goto c144;
/* position 46 45 */
  ch_frame = get_selector_frame(DEF(45),sched);
  ch_t = ch_frame->inspectee->value.table;
  REF(46).value.integer = ch_frame->rmvcount +
    (*(ch_t->tbls[ORDER_TBL].des->position_of))(ch_t,ORDER_TBL,ch_frame->pos);
  REF(46).tsdr = &dr_integer;
/* ilit 47 , 0 */
  REF(47).value.integer = 0;
  REF(47).tsdr = & dr_integer;
/* equal 48 46 47 */
  REF(48).value.boolean = (REF(46).value.integer == REF(47).value.integer);
  REF(48).tsdr = & dr_boolean;
/* branch_false 48 , 141 */
  if ( !REF(48).value.boolean ) goto c141;
  current->ip = 30;
cb139:
/* call 6 38.3 45 3.3 , 18 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(6),
          arguments[1] = DEF(38)DOT(3),
          arguments[2] = DEF(45),
          arguments[3] = DEF(3)DOT(3),
          arguments[3+1] = nil,& arguments[0]),QUAL(18),sched)) != Normal)
     goto ch_raise_exception;
  return;
c141:
/* enum_lit 49 , 0 */
  REF(49).value.enumeration = 0;
  REF(49).tsdr = & dr_enumeration;
  current->ip = 33;
cb142:
/* call 6 49 45 3.3 , 18 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(6),
          arguments[1] = DEF(49),
          arguments[2] = DEF(45),
          arguments[3] = DEF(3)DOT(3),
          arguments[3+1] = nil,& arguments[0]),QUAL(18),sched)) != Normal)
     goto ch_raise_exception;
  return;
c144:
/* endget 45 63 */
  end_selector(DEF(45),DEF(63),sched,GET);
/* discard 63 */
  (*(REF(63).tsdr)->finalize)(REF(63).value,F_DISCARD,sched);
  REF(63).tsdr = & dr_bottom;
/* ordenum_lit 50 , 2 */
  REF(50).value.ord_enum = 2;
  REF(50).tsdr = & dr_ord_enumeration;
/* equal 51 40.4 50 */
  REF(51).value.boolean = (REF(40)DOT(4).value.ord_enum == 
    REF(50).value.ord_enum);
  REF(51).tsdr = & dr_boolean;
/* ilit 52 , 0 */
  REF(52).value.integer = 0;
  REF(52).tsdr = & dr_integer;
/* notequal 53 40.6 52 */
  REF(53).value.boolean = (REF(40)DOT(6).value.integer != 
    REF(52).value.integer);
  REF(53).tsdr = & dr_boolean;
/* or 54 51 53 */
  REF(54).value.boolean = REF(51).value.boolean|REF(53).value.boolean;
  REF(54).tsdr = & dr_boolean;
/* branch_false 54 , 164 */
  if ( !REF(54).value.boolean ) goto c164;
/* privatize 3.2 */
  if (REF(3)DOT(2).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(3)DOT(2))) != Normal)
       goto ch_raise_exception;
/* lookup_at 55 3.2 37 */
  if((ch_i = REF(37).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(2).value
    .table)->size) goto ch_notfound;
  (*(REF(55).tsdr)->finalize)(REF(55).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(55).value,ch_i);
  REF(55).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 56 3.2 37 */
  if ((ch_returncode = remove_at_func(DEF(56),DEF(3)DOT(2),
    REF(37).value.integer)) != Normal) goto ch_raise_exception;
/* enum_lit 56.0 , 114 */
  REF(56)DOT(0).value.enumeration = 114;
  REF(56)DOT(0).tsdr = & dr_enumeration;
/* new_table 56.1 , 13 */
  if ((ch_returncode = che_new_table(DEF(56)DOT(1),QUAL(13)
    ,sched)) != Normal)  goto ch_raise_exception;
/* ordenum_lit 56.3 , 3 */
  REF(56)DOT(3).value.ord_enum = 3;
  REF(56)DOT(3).tsdr = & dr_ord_enumeration;
/* unite 56.2 57 , 0 */
  if ((ch_returncode = che_unite(DEF(56)DOT(2),DEF(57),sched,0)) != Normal)
     goto ch_raise_exception;
/* insert_at 3.2 56 37 */
  ch_i = REF(37).value.integer;
  if (ch_i < 0 || REF(3)DOT(2).value.table->size < ch_i) goto ch_range_error;
  if ((ch_returncode = insertfunc(DEF(3)DOT(2),DEF(56),TRUE, ch_i)) != Normal)
     goto ch_raise_exception;
/* branch , 170 */
   goto c170;
c164:
/* privatize 35 */
  if (REF(35).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(35))) != Normal)
       goto ch_raise_exception;
/* size 58 35 */
  REF(58).value.integer = REF(35).value.table->size;
  REF(58).tsdr = & dr_integer;
/* ilit 59 , 1 */
  REF(59).value.integer = 1;
  REF(59).tsdr = & dr_integer;
/* isubtract 60 58 59 */
  if (!chf_isubtract(DEF(60),REF(58).value.integer,REF(59).value.integer))
     goto ch_depletion;
/* lookup_at 61 35 60 */
  if((ch_i = REF(60).value.integer) < 0 || ch_i >= (ch_t = REF(35).value
    .table)->size) goto ch_notfound;
  (*(REF(61).tsdr)->finalize)(REF(61).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(61).value,ch_i);
  REF(61).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 62 35 60 */
  if ((ch_returncode = remove_at_func(DEF(62),DEF(35),REF(60).value.integer
    )) != Normal) goto ch_raise_exception;
c170:
/* boolean 29 , TRUE */
  REF(29).value.boolean = TRUE;
  REF(29).tsdr = & dr_boolean;
/* branch , 50 */
   goto c50;
c173:
/* privatize 3.2 */
  if (REF(3)DOT(2).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(3)DOT(2))) != Normal)
       goto ch_raise_exception;
/* lookup_at 64 3.2 37 */
  if((ch_i = REF(37).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(2).value
    .table)->size) goto ch_notfound;
  (*(REF(64).tsdr)->finalize)(REF(64).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(64).value,ch_i);
  REF(64).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 56 3.2 37 */
  if ((ch_returncode = remove_at_func(DEF(56),DEF(3)DOT(2),
    REF(37).value.integer)) != Normal) goto ch_raise_exception;
/* move 56.0 42 */
  REF(56)DOT(0) = REF(42);
  REF(42).tsdr = & dr_bottom;
/* lookup_at 65 56.1 =(0) */
  if ( !((ch_t = REF(56)DOT(1).value.table)->size) ) goto ch_notfound;
  (*(REF(65).tsdr)->finalize)(REF(65).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(65).value,0);
  REF(65).tsdr = qdatarepmap[ch_t->tsdr->number];
/* copy 66 65 */
  REF(66) = REF(65);
/* lookup_at 67 3.3 66 */
  if((ch_i = REF(66).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(3).value
    .table)->size) goto ch_notfound;
  (*(REF(67).tsdr)->finalize)(REF(67).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(67).value,ch_i);
  REF(67).tsdr = qdatarepmap[ch_t->tsdr->number];
/* notequal . 67.2 =(1) , 212 */
  if ( REF(67)DOT(2).value.integer != 1 ) goto c212;
/* privatize 3.3 */
  if (REF(3)DOT(3).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(3)DOT(3))) != Normal)
       goto ch_raise_exception;
/* lookup_at 68 3.3 66 */
  if((ch_i = REF(66).value.integer) < 0 || ch_i >= (ch_t = REF(3)DOT(3).value
    .table)->size) goto ch_notfound;
  (*(REF(68).tsdr)->finalize)(REF(68).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(68).value,ch_i);
  REF(68).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 69 3.3 66 */
  if ((ch_returncode = remove_at_func(DEF(69),DEF(3)DOT(3),
    REF(66).value.integer)) != Normal) goto ch_raise_exception;
/* case 70 43 */
  REF(70).value.enumeration = REF(43).value.variant->info.variant_case;
  REF(70).tsdr = & dr_enumeration;
/* equal . 70 =(3) , 197 */
  if ( REF(70).value.enumeration == 3 ) goto c197;
/* equal . 70 =(2) , 201 */
  if ( REF(70).value.enumeration == 2 ) goto c201;
/* equal . 70 =(1) , 205 */
  if ( REF(70).value.enumeration == 1 ) goto c205;
/* branch , 211 */
   goto c211;
c197:
/* reveal 43 , 3 */
  if (3 != REF(43).value.variant->info.variant_case) goto ch_case_error;
/* copy 71 43.0 */
  if((ch_returncode = (REF(43)DOT(0).tsdr->copy)(& ch_val, REF(43)DOT(0).value
    )) != Normal) goto ch_raise_exception;
  (*(REF(71).tsdr)->finalize)(REF(71).value,F_DISCARD,sched);
  REF(71).value = ch_val;
  REF(71).tsdr = datarepmap[REF(43)DOT(0).tsdr->number];
/* unite 69.4 71 , 2 */
  if ((ch_returncode = che_unite(DEF(69)DOT(4),DEF(71),sched,2)) != Normal)
     goto ch_raise_exception;
/* branch , 211 */
   goto c211;
c201:
/* reveal 43 , 2 */
  if (2 != REF(43).value.variant->info.variant_case) goto ch_case_error;
/* copy 72 43.0 */
  if((ch_returncode = (REF(43)DOT(0).tsdr->copy)(& ch_val, REF(43)DOT(0).value
    )) != Normal) goto ch_raise_exception;
  (*(REF(72).tsdr)->finalize)(REF(72).value,F_DISCARD,sched);
  REF(72).value = ch_val;
  REF(72).tsdr = datarepmap[REF(43)DOT(0).tsdr->number];
/* unite 69.4 72 , 1 */
  if ((ch_returncode = che_unite(DEF(69)DOT(4),DEF(72),sched,1)) != Normal)
     goto ch_raise_exception;
/* branch , 211 */
   goto c211;
c205:
/* reveal 43 , 1 */
  if (1 != REF(43).value.variant->info.variant_case) goto ch_case_error;
/* copy 73 43.0 */
  if((ch_returncode = (REF(43)DOT(0).tsdr->copy)(& ch_val, REF(43)DOT(0).value
    )) != Normal) goto ch_raise_exception;
  (*(REF(73).tsdr)->finalize)(REF(73).value,F_DISCARD,sched);
  REF(73).value = ch_val;
  REF(73).tsdr = datarepmap[REF(43)DOT(0).tsdr->number];
/* unite 69.4 73 , 0 */
  if ((ch_returncode = che_unite(DEF(69)DOT(4),DEF(73),sched,0)) != Normal)
     goto ch_raise_exception;
/* branch , 211 */
   goto c211;
c211:
/* insert_at 3.3 69 66 */
  ch_i = REF(66).value.integer;
  if (ch_i < 0 || REF(3)DOT(3).value.table->size < ch_i) goto ch_range_error;
  if ((ch_returncode = insertfunc(DEF(3)DOT(3),DEF(69),TRUE, ch_i)) != Normal)
     goto ch_raise_exception;
c222:
c212:
/* size 74 56.1 */
  REF(74).value.integer = REF(56)DOT(1).value.table->size;
  REF(74).tsdr = & dr_integer;
/* ile . 74 =(1) , 223 */
  if ( REF(74).value.integer <= 1 ) goto c223;
/* privatize 56.1 */
  if (REF(56)DOT(1).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(56)DOT(1))) != Normal)
       goto ch_raise_exception;
/* lookup_at 75 56.1 =(1) */
  if (1 >= (ch_t = REF(56)DOT(1).value.table)->size) goto ch_notfound;
  (*(REF(75).tsdr)->finalize)(REF(75).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(75).value,1);
  REF(75).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 62 56.1 =(1) */
  if ((ch_returncode = remove_at_func(DEF(62),DEF(56)DOT(1),1)) != Normal)
     goto ch_raise_exception;
/* enum_lit 76 , 0 */
  REF(76).value.enumeration = 0;
  REF(76).tsdr = & dr_enumeration;
  current->ip = 38;
cb221:
/* call 6 76 62 3.3 , 18 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(6),
          arguments[1] = DEF(76),
          arguments[2] = DEF(62),
          arguments[3] = DEF(3)DOT(3),
          arguments[3+1] = nil,& arguments[0]),QUAL(18),sched)) != Normal)
     goto ch_raise_exception;
  return;
c223:
/* move 56.2 43 */
  (*(REF(56)DOT(2).tsdr)->finalize)(REF(56)DOT(2).value,F_DISCARD,sched);
  REF(56)DOT(2) = REF(43);
  REF(43).tsdr = & dr_bottom;
/* insert_at 3.2 56 37 */
  ch_i = REF(37).value.integer;
  if (ch_i < 0 || REF(3)DOT(2).value.table->size < ch_i) goto ch_range_error;
  if ((ch_returncode = insertfunc(DEF(3)DOT(2),DEF(56),TRUE, ch_i)) != Normal)
     goto ch_raise_exception;
/* boolean 29 , TRUE */
  REF(29).value.boolean = TRUE;
  REF(29).tsdr = & dr_boolean;
/* branch , 50 */
   goto c50;
c228:
/* endget 37 36 */
  end_selector(DEF(37),DEF(36),sched,GET);
/* discard 36 */
  (*(REF(36).tsdr)->finalize)(REF(36).value,F_DISCARD,sched);
  REF(36).tsdr = & dr_bottom;
/* move 34.3 35 */
  (*(REF(34)DOT(3).tsdr)->finalize)(REF(34)DOT(3).value,F_DISCARD,sched);
  REF(34)DOT(3) = REF(35);
  REF(35).tsdr = & dr_bottom;
/* insert 31 34 */
  if ((ch_returncode = insertfunc(DEF(31),DEF(34),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* branch , 45 */
   goto c45;
c233:
/* endget 33 32 */
  end_selector(DEF(33),DEF(32),sched,GET);
/* discard 32 */
  (*(REF(32).tsdr)->finalize)(REF(32).value,F_DISCARD,sched);
  REF(32).tsdr = & dr_bottom;
/* or 77 30 29 */
  REF(77).value.boolean = REF(30).value.boolean|REF(29).value.boolean;
  REF(77).tsdr = & dr_boolean;
/* not 78 77 */
  REF(78).value.boolean = !REF(77).value.boolean;
  REF(78).tsdr = & dr_boolean;
/* branch_false 78 , 244 */
  if ( !REF(78).value.boolean ) goto c244;
/* prog_lit 79 , 19 */
  if ((ch_returncode = che_prog_lit(DEF(79),QUAL(19),sched)) != Normal) 
     goto ch_raise_exception;
/* create 80 79 , 20 */
  if ((ch_returncode = che_create(DEF(80),DEF(79),QUAL(20),sched)) != Normal)
     goto ch_raise_exception;
/* discard 79 */
  (*(REF(79).tsdr)->finalize)(REF(79).value,F_DISCARD,sched);
  REF(79).tsdr = & dr_bottom;
  current->ip = 43;
cb241:
/* call 80 3.0 31 3.2 3.3 6 29 , 21 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(80),
          arguments[1] = DEF(3)DOT(0),
          arguments[2] = DEF(31),
          arguments[3] = DEF(3)DOT(2),
          arguments[4] = DEF(3)DOT(3),
          arguments[5] = DEF(6),
          arguments[6] = DEF(29),
          arguments[6+1] = nil,& arguments[0]),QUAL(21),sched)) != Normal)
     goto ch_raise_exception;
  return;
c242:
/* boolean 30 , TRUE */
  REF(30).value.boolean = TRUE;
  REF(30).tsdr = & dr_boolean;
c244:
/* discard 80 */
  (*(REF(80).tsdr)->finalize)(REF(80).value,F_DISCARD,sched);
  REF(80).tsdr = & dr_bottom;
/* move 28 31 */
  (*(REF(28).tsdr)->finalize)(REF(28).value,F_DISCARD,sched);
  REF(28) = REF(31);
  REF(31).tsdr = & dr_bottom;
/* branch , 39 */
   goto c39;
c247:
/* move 3.1 28 */
  (*(REF(3)DOT(1).tsdr)->finalize)(REF(3)DOT(1).value,F_DISCARD,sched);
  REF(3)DOT(1) = REF(28);
  REF(28).tsdr = & dr_bottom;
/* return 3 */
  if (ch_caller = do_return(REF(3).value)) {
    if (ch_caller->type < CProcess) ch_caller->ip++;
      sched->wakeup_proc(sched, ch_caller);}
  else rem_return(REF(3).value);
  REF(3).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
c251:
/* endprocess */
  che_endprocess(sched); return;
#include "chtail.h"
