anchor.diff:  -include("diameter_gen_ietf.hrl").
   -include("diameter_gen_3gpp.hrl").
   -include("diameter_gen_3gpp_gx_application.hrl").
  +-include("diameter_gen_cc_application_rfc4006.hrl").
   -include("ocs.hrl").
   
   -record(state, {}).
  
positive.code: 				'CC-Request-Type' = RequestType,
  				'CC-Request-Number' = RequestNum,
  				'Online' = [?'3GPP_GX_ONLINE_ENABLE_ONLINE'],
  				'Charging-Rule-Install' = [ChargingRuleInstall]}
  	catch
  		_:Reason ->
  			error_logger:warning_report(["Unable to process DIAMETER request",
  
negative.code: 		{ok, #offer{char_value_use = CharValue}}) ->
  	process_request1(Address, Port, DiameterCaps, Request,
  			lists:keyfind("policyTable", #char_value_use.name, CharValue));
  process_request(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
  		origin_realm = {ORealm, _DRealm}},
  		#'3gpp_gx_CCR'{'Session-Id' = SId,
              'CC-Request-Type' = RequestType,
              'CC-Request-Number' = RequestNum} = Request, {error, Reason}) ->
  	error_logger:warning_report(["Unable to process DIAMETER request",
  			{origin_host, OHost}, {origin_realm, ORealm},
  			{request, Request}, {error, Reason}, {stack, erlang:get_stacktrace()}]),
  	diameter_error(SId, ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  			OHost, ORealm, RequestType, RequestNum).
  %% @hidden
  process_request1(Address, Port, DiameterCaps, Request,
  		#char_value_use{name = "policyTable",
  		values = [#char_value{value = PolicyTable}]}) ->
  	process_request2(Address, Port, DiameterCaps, Request,
  			ocs:query_resource(start, '_', '_', '_', {exact, PolicyTable}));
  process_request1(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
  		origin_realm = {ORealm, _DRealm}} = _DiameterCaps,
  		#'3gpp_gx_CCR'{'Session-Id' = SId,
  				'Auth-Application-Id' = ?Gx_APPLICATION_ID,
  				'CC-Request-Type' = RequestType,
  				'CC-Request-Number' = RequestNum} = Request, false) ->
  	error_logger:warning_report(["Unable to process DIAMETER request",
  			{origin_host, OHost}, {origin_realm, ORealm},
  			{session_id, SId}, {request, Request}, {error, policy_not_found}]),
  	diameter_error(SId, ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  			OHost, ORealm, RequestType, RequestNum).
  
  %% @hidden
  process_request2(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
  		origin_realm = {ORealm, _DRealm}} = _DiameterCaps,
  