anchor.diff:  %% @see //stdlib/gen_fsm:init/1
   %% @private
   %%
  -init([Address, Port, RadiusFsm, Secret, SessionID,
  -		#radius{code = ?AccessRequest, id = ID,
  -		authenticator = Authenticator, attributes = Attributes}] = _Args) ->
  +init([Address, Port, RadiusFsm, Secret, SessionID, AccessRequest] = _Args) ->
   	{ok, Hostname} = inet:gethostname(),
   	StateData = #statedata{address = Address, port = Port,
   			radius_fsm = RadiusFsm, secret = Secret, session_id = SessionID,
  -			server_id = list_to_binary(Hostname), radius_id = ID,
  -			req_auth = Authenticator, req_attr = Attributes},
  +			server_id = list_to_binary(Hostname), start = AccessRequest},
   	process_flag(trap_exit, true),
  -	{ok, identity, StateData, 0}.
  -
  --spec identity(Event :: timeout | term(), StateData :: #statedata{}) ->
  +	{ok, eap_start, StateData, 0}.
  +
  +-spec eap_start(Event :: timeout | term(), StateData :: #statedata{}) ->
   	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
   		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{},
   		Timeout :: non_neg_integer() | infinity}
  
positive.code: %%		gen_fsm:send_event/2} in the <b>eap_start</b> state.
  %% @@see //stdlib/gen_fsm:StateName/2
  %% @private
  identity(timeout, #statedata{radius_fsm = RadiusFsm, radius_id = RadiusID,
  		req_auth = RequestAuthenticator, req_attr = Attributes,
  		session_id = SessionID, server_id = ServerID, secret = Secret,
  		group_desc = GroupDesc, rand_func = RandFunc, prf = PRF} = StateData) ->
  	S_rand = crypto:rand_uniform(1, ?R),
  	try
  		EapMessage = radius_attributes:fetch(?EAPMessage, Attributes),
  
negative.code: -export([]).
  
  %% export the ocs_eap_pwd_fsm state callbacks
  -export([eap_start/2, id/2, commit/2, confirm/2]).
  
  %% export the call backs needed for gen_fsm behaviour
  -export([init/1, handle_event/3, handle_sync_event/4, handle_info/3,
  