anchor.diff:  	refund(ServiceId, ChargingKey, SessionId, Buckets, []).
   %% @hidden
   refund(ServiceId, ChargingKey, SessionId,
  -		[#bucket{attributes = #{bucket_type := session,
  -		reservations := Reservations}} = H | T], Acc) ->
  +		[#bucket{attributes = #{reservations := Reservations}} = H | T], Acc) ->
   	refund(ServiceId, ChargingKey, SessionId,
   			H, maps:to_list(Reservations), T, [], Acc);
   refund(_, _, _, [], Acc) ->
  
positive.code: %% @hidden
  convert1(Type, Size, ServiceId, ChargingKey, SessionId, Now, CentsBuckets,
  		[#bucket{units = Type, name = "session", remain_amount = R,
  		attributes = #{bucket_type := session,
  				reservations := Reservations}} = B | T], Acc) ->
  	F = fun({SessionId1, #{service_id := ServiceId1,
  					charging_key := ChargingKey1}}) when ServiceId1 =:= ServiceId,
  					ChargingKey1 =:= ChargingKey, SessionId1 == SessionId ->
  
negative.code: 			Now, T, UnitsBuckets, Acc);
  convert(Price1, Type, Size, ServiceId, ChargingKey, SessionId, Now,
  		[#bucket{remain_amount = R, end_date = Expires,
  		attributes = Attributes} = B1 | T], UnitsBuckets, Acc)
  		when Price1 > 0, R > 0, ((Expires == undefined) or (Now < Expires)) ->
  	#{reservations := Reservations1} = Attributes,
  	F = fun({SessionId1, #{service_id := ServiceId1, charging_key := ChargingKey1}})
  					when ServiceId1 =:= ServiceId,
  