<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send_rpc_response(self, rpc_tag, result, response):
 """Send a response to an RPC. Args: rpc_tag (str):
 The exact string given in a previous call to send_rpc_command result (str):
 The result of the operation. The possible values of response are: service_not_found, rpc_not_found, timeout, success, invalid_response, invalid_arguments, execution_exception response (bytes):
 The raw bytes that we should send back as a response. """


        if rpc_tag not in self.in_flight_rpcs:
            raise ArgumentError("In flight RPC could not be found, it may have timed out", rpc_tag=rpc_tag)

        del self.in_flight_rpcs[rpc_tag]

        response_message = {
            'response': response,
            'result': result
        }

        try:
            self.rpc_results.set(rpc_tag, response_message)
        except KeyError:
            self._logger.warning("RPC response came but no one was waiting: response=%s", response)