anchor.diff:  %%%
   %%% @end
   %%%-----------------------------------------------------------------------------
  +
   -module(emqttd_access_control).
   
   -author("Feng Lee <feng@emqtt.io>").
  
positive.code: %%------------------------------------------------------------------------------
  -spec start_link() -> {ok, pid()} | ignore | {error, any()}.
  start_link() ->
      {ok, AcOpts} = application:get_env(emqttd, access),
      start_link(AcOpts).
  
  -spec start_link(AcOpts :: list()) -> {ok, pid()} | ignore | {error, any()}.
  start_link(AcOpts) ->
  
negative.code:       Client :: mqtt_client(),
        PubSub :: pubsub(),
        Topic  :: binary().
  check_acl(Client, PubSub, Topic) when ?IS_PUBSUB(PubSub) ->
      case lookup_mods(acl) of
          [] -> allow;
          AclMods -> check_acl(Client, PubSub, Topic, AclMods)
  