anchor.diff:  %% @@see //stdlib/gen_fsm:StateName/2
   %% @private
   %%
  +phase_2(timeout, #statedata{session_id = SessionID} = StateData)->
  +	{stop, {shutdown, SessionID}, StateData};
   phase_2(_Event, StateData)->
   	{stop, not_implemented, StateData}.
   
  
positive.code: %% @@see //stdlib/gen_fsm:StateName/2
  %% @private
  %%
  phase_1(_Event, StateData)->
  	{stop, not_implemented, StateData}.
  
  
negative.code: idle(timeout, #statedata{session_id = SessionID} = StateData)->
  	{stop, {shutdown, SessionID}, StateData};
  idle(_Event, StateData)->
  	{next_state, phase_1, StateData, ?TIMEOUT}.
  
  -spec phase_1(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  