anchor.diff:  log_ok(X) -> log(ok(X)).
   
   ok({ok,X}) -> X.
  +
  +err([], Result) ->
  +    erlang:error(Result);
  +err([Reason|_], {error,Reason}) ->
  +    ok;
  +err([_|Reasons], Result) ->
  +    err(Reasons, Result).
   
   log(X) ->
       io:format("LOG[~w]: ~p~n", [self(),X]),
  
positive.code: 				 assoc_id=SbAssocId}],
  	       Data} -> ok;
  	      Event1 ->
  		  {Loopback,Pa,
  		   #sctp_paddr_change{addr = {Loopback,_},
  				      state = addr_available,
  				      error = 0,
  				      assoc_id = SbAssocId}} =
  		      recv_event(Event1),
  		  {ok,{Loopback,
  		       Pa,
  		       [#sctp_sndrcvinfo{stream=Stream,
  					 assoc_id=SbAssocId}],
  		       Data}} =	gen_sctp:recv(Sb, infinity)
  	  end,
      ?line ok = gen_sctp:send(Sb, SbAssocId, 0, Data),
      ?line case log_ok(gen_sctp:recv(Sa, infinity)) of
  
negative.code: 		   stream=1, ppid=0, context=0, assoc_id=S1AssocId}],
  	       <<"3: ",Data/binary>>} -> ok;
  	      Event2 ->
  		  case recv_event(Event2) of
  		      {Loopback,P2,
  		       #sctp_paddr_change{
  				  addr={Loopback,_},
  				  state=State,
  				  error=0, assoc_id=S1AssocId}}
  			when State =:= addr_available;
  			     State =:= addr_confirmed ->
  			  ?line case log_ok(gen_sctp:recv(S1)) of
  				    {Loopback,P2,
  				     [#sctp_sndrcvinfo{
  					 stream=1, ppid=0, context=0,
  					 assoc_id=S1AssocId}],
  				     <<"3: ",Data/binary>>} -> ok
  				end
  		  end
  	  end,
      ?line ok =
  	do_from_other_process(
  