anchor.diff:  	end,
   	NewChunk = lists:dropwhile(Fstart, Chunk),
   	get_range2(Log, End, {Cont, NewChunk}, Acc).
  -%% @hidden
  -get_range2(_Log, _End, eof, Acc) ->
  -	lists:flatten(lists:reverse(Acc));
  -get_range2(_Log, _End, {error, Reason}, _Acc) ->
  -	{error, Reason};
   get_range2(Log, End, {Cont, Chunk}, Acc) ->
   	Fend = fun(R) when element(1, R) =< End ->
   				true;
  
positive.code: auth_query(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch)
  		when is_integer(Start), is_integer(End) ->
  	auth_query(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  			disk_log:chunk(?AUTHLOG, start), []).
  
  %% @hidden
  auth_query(_Start, _End, _Protocol, _Types,
  		_ReqAttrsMatch, _RespAttrsMatch, eof, Acc) ->
  	lists:reverse(Acc);
  auth_query(_Start, _End, _Protocol, _Types,
  		_ReqAttrsMatch, _RespAttrsMatch, {error, Reason}, _Acc) ->
  	exit(Reason);
  auth_query(Start, End, '_', '_', ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{TS, _, _, _, _, _, _, _, _} | _] = Chunk}, Acc)
  		when TS >= Start, TS =< End ->
  	auth_query1(Start, End, '_', '_', ReqAttrsMatch,
  			RespAttrsMatch, {Cont, Chunk}, Acc, ReqAttrsMatch);
  auth_query(Start, End, Protocol, '_', ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{TS, _, Protocol, _, _, _, _, _, _} | _] = Chunk}, Acc)
  		when TS >= Start, TS =< End ->
  	auth_query1(Start, End, Protocol, '_', ReqAttrsMatch,
  			RespAttrsMatch, {Cont, Chunk}, Acc, ReqAttrsMatch);
  auth_query(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{TS, _, Protocol, _, _, _, Type, _, _} | T] = Chunk}, Acc)
  		when TS >= Start, TS =< End ->
  	case lists:member(Type, Types) of
  		true ->
  			auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, ReqAttrsMatch);
  		false ->
  			auth_query(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, T}, Acc)
  	end;
  auth_query(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [_ | T]}, Acc) ->
  	auth_query(Start, End, Protocol, Types, ReqAttrsMatch,
  			RespAttrsMatch, {Cont, T}, Acc);
  auth_query(Start, End, Protocol, Types, ReqAttrsMatch,
  		RespAttrsMatch, {Cont, []}, Acc) ->
  	auth_query(Start, End, Protocol, Types, ReqAttrsMatch,
  			RespAttrsMatch, disk_log:chunk(?AUTHLOG, Cont), Acc).
  %% @hidden
  auth_query1(Start, End, Protocol, Types, '_', RespAttrsMatch,
  		{Cont, Chunk}, Acc, '_') ->
  	auth_query2(Start, End, Protocol, Types, '_',
  			RespAttrsMatch, {Cont, Chunk}, Acc, RespAttrsMatch);
  auth_query1(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{_, _, _, _, _, _, _, ReqAttrs, _} | T] = Chunk},
  		Acc, [{Attribute, Match} | T1]) ->
  	case lists:keyfind(Attribute, 1, ReqAttrs) of
  		{Attribute, Match} ->
  			auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  		{Attribute, _} when Match == '_' ->
  			auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  		_ ->
  			auth_query(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, T}, Acc)
  	end;
  auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  		RespAttrsMatch, {Cont, Chunk}, Acc, []) ->
  	auth_query2(Start, End, Protocol, Types, ReqAttrsMatch,
  			RespAttrsMatch, {Cont, Chunk}, Acc, RespAttrsMatch).
  %% @hidden
  auth_query2(Start, End, Protocol, Types, ReqAttrsMatch, '_',
  		{Cont, [H | T]}, Acc, '_') ->
  	auth_query(Start, End, Protocol, Types, ReqAttrsMatch, '_',
  			{Cont, T}, [H | Acc]);
  auth_query2(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{_, _, _, _, _, _, _, _, RespAttrs} | T] = Chunk},
  		Acc, [{Attribute, Match} | T1]) ->
  	case lists:keyfind(Attribute, 1, RespAttrs) of
  		{Attribute, Match} ->
  			auth_query2(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  
negative.code: 			auth_query2(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  		_ ->
  			auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, T}, Acc)
  	end;
  auth_query2(Start, End, Protocol, Types, ReqAttrsMatch,
  		RespAttrsMatch, {Cont, Chunk}, Acc, []) ->
  	auth_query3(Start, End, Protocol, Types, ReqAttrsMatch,
  			RespAttrsMatch, {Cont, Chunk}, Acc, RespAttrsMatch).
  %% @hidden
  auth_query3(Start, End, Protocol, Types, ReqAttrsMatch, '_',
  		{Cont, [H | T]}, Acc, '_') ->
  	auth_query1(Start, End, Protocol, Types, ReqAttrsMatch, '_',
  			{Cont, T}, [H | Acc]);
  auth_query3(Start, End, Protocol, Types, ReqAttrsMatch, RespAttrsMatch,
  		{Cont, [{_, _, _, _, _, _, _, _, RespAttrs} | T] = Chunk},
  		Acc, [{Attribute, Match} | T1]) ->
  	case lists:keyfind(Attribute, 1, RespAttrs) of
  		{Attribute, Match} ->
  			auth_query3(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  		{Attribute, _} when Match == '_' ->
  			auth_query3(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, Chunk}, Acc, T1);
  		_ ->
  			auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  					RespAttrsMatch, {Cont, T}, Acc)
  	end;
  auth_query3(Start, End, Protocol, Types, ReqAttrsMatch,
  		RespAttrsMatch, {Cont, [H | T]}, Acc, []) ->
  	auth_query1(Start, End, Protocol, Types, ReqAttrsMatch,
  			RespAttrsMatch, {Cont, T}, [H | Acc]).
  
  -spec auth_close() -> Result
  