anchor.diff:  		MatchConditions :: [tuple()].
   %% @doc Construct match specification for IP address.
   %% @hidden
  -match_prefix(String) ->
  +match_address(String) ->
   	Ns = [list_to_integer(N) || N <- string:tokens(String, [$.])],
  -	match_prefix1(lists:reverse(Ns)).
  -%% @hidden
  -match_prefix1([N | T]) when N >= 100 ->
  -	match_prefix2(T, [N], []);
  -match_prefix1([N | T]) when N >= 10 ->
  -	match_prefix2(T, ['$1'], [{'or', {'==', '$1', N},
  +	match_address1(lists:reverse(Ns)).
  +%% @hidden
  +match_address1([N | T]) when N >= 100 ->
  +	match_address2(T, [N], []);
  +match_address1([N | T]) when N >= 10 ->
  +	match_address2(T, ['$1'], [{'or', {'==', '$1', N},
   			{'and', {'>=', '$1', N * 10}, {'<', '$1', (N + 1) * 10}}}]);
  -match_prefix1([N | T]) ->
  -	match_prefix2(T, ['$1'], [{'or', {'==', '$1', N},
  +match_address1([N | T]) ->
  +	match_address2(T, ['$1'], [{'or', {'==', '$1', N},
   			{'and', {'>=', '$1', N * 10}, {'<', '$1', (N + 1) * 10}},
   			{'and', {'>=', '$1', N * 100}, {'<', '$1', (N + 1) * 100}}}]).
   %% @hidden
  -match_prefix2(T, Head, Conditions) ->
  +match_address2(T, Head, Conditions) ->
   	Head1 = lists:reverse(T) ++ Head,
   	Head2 = Head1 ++ lists:duplicate(4 - length(Head1), '_'),
   	{list_to_tuple(Head2), Conditions}.
   
  +%% @hidden
  +match_protocol(Prefix) ->
  +	case lists:prefix(Prefix, "diameter") of
  +		true ->
  +			diameter;
  +		false ->
  +			match_protocol1(Prefix)
  +	end.
  +%% @hidden
  +match_protocol1(Prefix) ->
  +	case lists:prefix(Prefix, "DIAMETER") of
  +		true ->
  +			diameter;
  +		false ->
  +			match_protocol2(Prefix)
  +	end.
  +%% @hidden
  +match_protocol2(Prefix) ->
  +	case lists:prefix(Prefix, "radius") of
  +		true ->
  +			radius;
  +		false ->
  +			match_protocol3(Prefix)
  +	end.
  +%% @hidden
  +match_protocol3(Prefix) ->
  +	case lists:prefix(Prefix, "RADIUS") of
  +		true ->
  +			radius;
  +		false ->
  +			throw(badmatch)
  +	end.
  +
  
positive.code: 					false
  			end
  	end,
  	{Cont, lists:filter(F, Clients)};
  query_clients5('$end_of_table', _Identifier) ->
        {eof, []}.
  
  get_products()->
  	MatchSpec = [{'_', [], ['$_']}],
  
negative.code: 			lists:prefix(String1, String2)
  	end.
  
  -spec match_address(String) -> Result
  	when
  		String :: string(),
  		Result ::{MatchAddress, MatchConditions},
  