anchor.diff:  
   -define(STATS_V0_BLOCK_SIZE, 88).
   -define(STATS_V1_BLOCK_SIZE, 112).
  +-define(STATS_V2_BLOCK_SIZE, 808).
   
   recv_data(Port) ->
       recv_data_loop(Port, <<"">>).
  
positive.code:                  end,
      {NowSamples, RawStats}.
  
  handle_info({tick, TS}, #state{port = Port, prev_sample = PrevSample}) ->
      case flush_ticks(0) of
          0 -> ok;
  
negative.code: recv_data_loop(Port, <<1:32/native, _/binary>> = Acc) ->
      Data = recv_data_with_length(Port, Acc, ?STATS_V1_BLOCK_SIZE - erlang:size(Acc)),
      {Data, fun unpack_data_v1/2};
  recv_data_loop(Port, <<2:32/native, _/binary>> = Acc) ->
      Data = recv_data_with_length(Port, Acc, ?STATS_V2_BLOCK_SIZE - erlang:size(Acc)),
      {Data, fun unpack_data_v2/2};
  recv_data_loop(Port, Acc) ->
      receive
          {Port, {data, Data}} ->
  