// "129.hac"
// contributed by Clint Kelly, reduced by Fang
// BUG: ID index allocation had gone awry in the attempt
// to back-patch and compress the allocation pool.  
// FIXED: HACKT-00-01-04-main-00-77-1
//	using even more hack-patching :(

defproc e1of2 (bool d[2]; bool t,f,e) {
	// these aliases needed to ICE
	d[0]=f;
	d[1]=t;
}

defproc globals () { }

defproc source_e1of2_1 (globals g; e1of2 r) { }

// a and b ports are needed!
// defproc split4(globals g; e1of2 l[4], c, a[4], b[4]) { }
defproc split4(globals g; e1of2 l, c, a, b) { }

defproc merge (globals g; e1of2 a, b, c, x) { }

defproc upcopy (e1of2 l, r)
{
	// these aliases are needed to ICE
	l.d = r.d;
}

globals g;

// e1of2 l[4], ja[4], jb[4];
e1of2 l, ja, jb;
e1of2 wcon, wcons, wconm;
e1of2 xa, xb, xw;

split4 splt(g, l, wcons, ja, jb);	// all needed to ICE

merge mrg(g, xa, xb, wconm, xw);	// all needed to ICE

upcopy cpywcon(wcon, wcons);

source_e1of2_1 srcwcon(g, wcon);	// all needed to ICE

