<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def grant(self, *capabilities_to_grant):
 """Grants additional capabilities to this role. :param capabilities_to_grant: Zero or more capabilities to grant this role. For a list of capabilities, see `Capabilities <http://dev.splunk.com/view/SP-CAAAEJ6#capabilities>`_ on Splunk Developer Portal. :type capabilities_to_grant: ``string`` or ``list`` :return: The :class:`Role`. **Example**:: role = service.roles['somerole'] role.grant('change_own_password', 'search') """

        possible_capabilities = self.service.capabilities
        for capability in capabilities_to_grant:
            if capability not in possible_capabilities:
                raise NoSuchCapability(capability)
        new_capabilities = self['capabilities'] + list(capabilities_to_grant)
        self.post(capabilities=new_capabilities)
        return self