<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_requires(self, api=None, profile=None, support=None):
 """Returns filtered list of Require objects in this registry :param str api: Return Require objects with this api name or None to return all Require objects. :param str profile: Return Require objects with this profile or None to return all Require objects. :param str support: Return Require objects with this extension support string or None to return all Require objects. :return: list of Require objects """

        out = []
        for ft in self.get_features(api):
            out.extend(ft.get_requires(profile))
        for ext in self.extensions.values():
            # Filter extension support
            if support and support not in ext.supported:
                continue
            out.extend(ext.get_requires(api, profile))
        return out