anchor.diff:  		lookup_first/2, lookup_last/2, lookup_all/2,
   		list/0, backup/2, restore/2, import/1]).
   
  +%% support deprecated_time_unit()
  +-define(MILLISECOND, milli_seconds).
  +%-define(MILLISECOND, millisecond).
  +
   -include("ocs.hrl").
   
   %%----------------------------------------------------------------------
  
positive.code: 	end.
  %% @hidden
  import1(Table, Records) ->
  	Split = binary:split(Records, [<<"\n">>], [global]),
  	F = fun() -> import2(Table, Split, []) end,
  	case mnesia:transaction(F) of
  		{atomic, ok} ->
  			ok;
  
negative.code: 			exit(Reason)
  	end.
  %% @hidden
  import2(Table, [<<>>], LM, Acc) ->
  	F = fun(#gtt{} = G) -> mnesia:write(Table, G, write) end,
  	lists:foreach(F, Acc);
  import2(Table, [Chunk | Rest], LM, Acc) ->
  	NewAcc = [import3(binary:split(Chunk, [<<",">>], [global]), LM, []) | Acc],
  	import2(Table, Rest, LM, NewAcc).
  %% @hidden
  import3([<<>> | T], LM, Acc) ->
  	import3(T, LM, [undefined, Acc]);
  import3([H | T], LM, Acc) ->
  	import3(T, LM, [binary_to_list(H) | Acc]);
  import3([], LM, Acc) ->
  	import4(lists:reverse(Acc), LM).
  %% @hidden
  import4([Key | Value], LM) ->
  	Tuple = list_to_tuple(Value),
  	case is_key_number(Key) of
  		true->
  