anchor.diff:  
   get_state(Pid) -> gen_fsm:sync_send_all_state_event(Pid, get_state).
   
  -init(StartHp) -> {ok, good, {stat, StartHp}}.
  +init(StartHp) ->
  +	{ok, Mq} = chat_init("192.168.56.21", <<"xout">>, <<"xin">> ),
  +	{ok, good, #pcstat{stat = StartHp, mq = Mq}}.
   
  -good({attack, Damage}, {stat, Hp}) ->
  +good({attack, Damage}, #pcstat{stat = Hp, mq = Mq}) ->
   	io:format("hp is ~p!!~n", [Hp]),
   	NewHp = Hp - Damage,
   	if
   		NewHp < 1  ->
   			io:fwrite("uncon!!~n"),
  -            {next_state, dead, {stat, NewHp}, 10000};
  +            {next_state, dead,
  +				#pcstat{stat = NewHp, mq = Mq},
  +				10000};
   
           true ->
  -            {next_state, good, {stat, NewHp}}
  +            {next_state, good,
  +				#pcstat{stat = NewHp, mq = Mq}}
       end;
   
  -good({heal, AddHp}, {stat, Hp}) ->
  +good({heal, AddHp}, #pcstat{stat = Hp, mq = Mq}) ->
   	NewHp = Hp + AddHp,
  -	{next_state, good, {stat, NewHp}}.
  +	{next_state, good,
  +		#pcstat{stat = NewHp, mq = Mq}}.
   
  -dead(timeout, StateData) ->
  +dead(timeout,  #pcstat{stat = Hp, mq = Mq}) ->
       io:fwrite("respawn!!~n"),
  -    {next_state, good, {stat, 1}}.
  +    {next_state, good, #pcstat{stat = 1, mq = Mq}}.
   
   handle_event(stop, _StateName, StateData) -> {stop, normal, StateData}.
   terminate(normal, _StateName, _StateData) -> ok.
  
positive.code: 
  -include_lib("amqp_client.hrl").
  -include("emmo.hrl").
  
  -export([start_link/1, stop/1]).
  -export([attack/2, get_state/1]).
  
negative.code: 
  
  %% while subscribing, message will be delivered by #amqp_msg
  chat_info({broadcast, Id, Payload}, From, State) ->
  	{_ServerIp, ToClientEx, FromClientEx, {_Connection, ChTC, _ChFC}} = State,
  	BinMsg = jsx:encode([{<<"id">>, list_to_binary(Id)}, {<<"message">>, list_to_binary(Payload)}]),
  