anchor.diff:  auth_to_binary(User, Password, Database,
                  #handshake{maxlength=M,seed=S,caps=C,plugin=P}) ->
       A = (C bor ?CLIENT_LONG_PASSWORD) band 16#ffff, % FORCE
  -    X = scramble(Password, S, P),
  +    X = scramble(P, Password, S),
       B = if ?IS_SET(C,?CLIENT_SECURE_CONNECTION) -> N = size(X), <<N,X/binary>>;
              true                                 -> <<0>>
           end,
  
positive.code: auth_to_binary(User, Password, Database,
                 #handshake{maxlength=M,seed=S,caps=C,charset=E,plugin=P})
    when ?IS_SET(C,?CLIENT_PROTOCOL_41) ->
      X = scramble(Password, S, P),
      B = if ?IS_SET(C,?CLIENT_SECURE_CONNECTION) -> N = size(X), <<N,X/binary>>;
             true                                 -> <<0>>
          end,
  
negative.code:     L = binary:split(<<Binary/binary,".0.0">>, [<<$.>>,<<$->>], [global]),
      lists:map(F, lists:sublist(L,3)).
  
  scramble(<<"mysql_native_password">>, Password, Seed) ->
      if <<>> =/= Password -> scramble(Password, Seed); true -> <<>> end;
  scramble(<<"mysql_old_password">>, Password, Seed) ->
      if <<>> =/= Password -> scramble_323(Password, Seed); true -> <<0:64>> end;
  scramble(<<"auth_test_plugin">>, <<>>, _Seed) ->
      <<>>.
  
  %% -----------------------------------------------------------------------------
  %% << sql/password.c : scramble/3, check_scramble/3
  