anchor.diff:  
   %% API
   -export([start_link/2,
  +    %% Subs
       subscribe_self/4,
       cancel/3,
  +    get_live_clients/1,
  +    %% Packets
       request_more/4,
  +    ack/3,
       push/3,
  -    get_live_clients/1,
       new/1]).
   
   %% gen_server callbacks
  
positive.code: %%    maybe_process_pending(PSeq,LAck1,Req1,Sub).
  
  %% @doc
  %% Determine the sequence range of packets to send depending on the size of the Client's Window
  %% @end
  packet_range_to_send(PSeq,WSize,Sub = #sub{last_sent = LastSent,
                                             requested = Req}) ->
      %% sanitize inputs
  %%    LAck1 = max(Ack,LAck),
  %%    Req1 = max(Req,LAck+WSize),
      Req1 = max(Req,LastSent+WSize),
      SendUntil = min(Req,PSeq),
      Sub1 = Sub#sub{last_sent = SendUntil,
                     requested = Req1},
      Range = {LastSent,SendUntil},
      {ok,Sub1,Range};
  
  packet_range_to_send(_,_,_) -> ignore.
  
  %% ===================================================================
  %% Packet Sending
  
negative.code: send_packet_to_clients(CPids,Packet,QoS) ->
      [send_packet(CPid,Packet,QoS) || CPid <- CPids].
  
  send_packets_to_client(CPid,Ps,QoS) ->
      [send_packet(CPid,P,QoS) || P <- Ps].
  
  send_packet(CPid,P,QoS)   -> CPid ! {push,P,QoS}.
  
  %%send_packets(Range,CPid,#state{filter = Filter, queue = SQ}) ->
  %%    Ps = get_packets(Range,Filter,SQ),
  %%    [send_packet(CPid,P,QoS) || {P,QoS} <- Ps].
  
  %%send_packet(CPid,P,?QOS_0)   -> mqtt_session_out:push_qos0(CPid,P);
  %%send_packet(CPid,P,QoS)      -> mqtt_session_out:push_reliable(CPid,P,QoS).
  
  %% ===================================================================
  %% Setting Subscriptions
  