channel CIO_AddCustomer {
	out customers(db:Map, addCustomer(uid:Str, off:Str)) = insert(db, uid, {"off": off})
}

channel CIO_AddCampany {
	out companies(db:Map, addCampany(cid:Str, add:Str)) = insert(db, cid, {"add": add})
}

channel CIO_SetCustomerOff(uid:Str) {
	out customers.{uid}.off(cid:Str, setOff(cid2)) = cid2
}

channel CIO_SetCompanyAdd(cid:Str) {
	out companies.{cid}.add(a1:Str, setAdd(a2)) = a2
}

channel C(uid:Str) {
	in customers.{uid}.off(cid, sync(cid2, add2)) = cid2
	in companies.{cid2}.add(a1, sync(cid2, add2)) = add2
	out customers.{uid}.add(a3:Str, sync(cid2, add2)) = add2
}
