anchor.diff:  -define(TABLE_OPTS, [public, named_table, {read_concurrency, true}]).
   -define(USER_SUP, <<"%u">>).
   -define(CLIENT_SUP, <<"%c">>).
  +-define(MOUNTPOINT_SUP, <<"%m">>).
  +
  +-ifdef(TEST).
  +-include_lib("eunit/include/eunit.hrl").
  +-define(setup(F), {setup, fun setup/0, fun teardown/1, F}).
  +-endif.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Plugin Callbacks
  
positive.code: iterate(T, Fun, K) ->
      Fun(K),
      iterate(T, Fun, ets:next(T, K)).
  
negative.code:                                     match(TIn, T)
                              end).
  
  topic(User, {MP, ClientId}, Topic) ->
      subst(list_to_binary(MP), User, ClientId, Topic, []).
  
  subst(MP, User, ClientId, [U|Rest], Acc) when U == ?USER_SUP ->
      subst(MP, User, ClientId, Rest, [User|Acc]);
  subst(MP, User, ClientId, [C|Rest], Acc) when C == ?CLIENT_SUP ->
      subst(MP, User, ClientId, Rest, [ClientId|Acc]);
  subst(MP, User, ClientId, [M|Rest], Acc) when M == ?MOUNTPOINT_SUP ->
      subst(MP, User, ClientId, Rest, [MP|Acc]);
  subst(MP, User, ClientId, [W|Rest], Acc) ->
      subst(MP, User, ClientId, Rest, [W|Acc]);
  subst(_, _, _, [], Acc) -> lists:reverse(Acc).
  
  in(Type, User, Topic) when is_binary(Topic) ->
      TopicLen = byte_size(Topic) -1,
  