anchor.diff:  %% Internal functions
   %% ----------------------------------------------------------------------
   
  +hide_sensitive(UserInfo) ->
  +    lists:map(
  +      fun({password, _}) ->
  +              {password, '*********'};
  +         (Other) -> Other
  +      end, UserInfo).
  +
   is_valid_username([_ | _] = String) ->
       lists:all(
         fun(C) ->
  
positive.code:         ok ->
              echessd_log:info(
                "user ~9999p added (~9999p)",
                [Username, UserInfo0]);
          {error, Reason} ->
              echessd_log:err(
                "user ~9999p add failed: ~9999p",
  
negative.code:         ok ->
              echessd_log:info(
                "user ~9999p props updated: ~9999p",
                [Username, hide_sensitive(UserInfo0)]),
              ok;
          {error, Reason} = FinalError ->
              echessd_log:err(
  