-------- @pointsto pointsto-chA --------
this chan *int may point to these objects:
	makechan
	makechan

-------- @pointsto pointsto-chA2 --------
this chan *int may point to these objects:
	makechan

-------- @pointsto pointsto-chB --------
this chan *int may point to these objects:
	makechan

-------- @peers peer-recv-chA --------
This channel of type chan *int may be:
	allocated here
	allocated here
	sent to, here
	sent to, here
	received from, here
	received from, here
	received from, here
	received from, here
	received from, here
	closed, here

-------- @pointsto pointsto-rA --------
this *int may point to these objects:
	main.a2
	a1

-------- @peers peer-recv-chB --------
This channel of type chan *int may be:
	allocated here
	sent to, here
	received from, here
	received from, here

-------- @pointsto pointsto-rB --------
this *int may point to these objects:
	b

-------- @peers peer-recv-chA' --------
This channel of type chan *int may be:
	allocated here
	allocated here
	sent to, here
	sent to, here
	received from, here
	received from, here
	received from, here
	received from, here
	received from, here
	closed, here

-------- @peers peer-send-chA' --------
This channel of type chan *int may be:
	allocated here
	sent to, here
	received from, here
	received from, here
	received from, here
	received from, here
	received from, here
	closed, here

-------- @peers peer-close-chA --------
This channel of type chan *int may be:
	allocated here
	allocated here
	sent to, here
	sent to, here
	received from, here
	received from, here
	received from, here
	received from, here
	received from, here
	closed, here

-------- @peers peer-close-chC --------
This channel of type chan *int may be:
	allocated here
	sent to, here
	received from, here
	closed, here

-------- @peers peer-send-chC --------
This channel of type chan *int may be:
	allocated here
	sent to, here
	received from, here
	closed, here

-------- @peers peer-recv-chC --------
This channel of type chan *int may be:
	allocated here
	sent to, here
	received from, here
	closed, here

