<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def iter_participants( self, entity, limit=None, *, search='', filter=None, aggressive=False ):
 """ Iterator over the participants belonging to the specified chat. Args: entity (`entity`):
 The entity from which to retrieve the participants list. limit (`int`):
 Limits amount of participants fetched. search (`str`, optional):
 Look for participants with this string in name/username. If ``aggressive is True``, the symbols from this string will be used. filter (:tl:`ChannelParticipantsFilter`, optional):
 The filter to be used, if you want e.g. only admins Note that you might not have permissions for some filter. This has no effect for normal chats or users. .. note:: The filter :tl:`ChannelParticipantsBanned` will return *restricted* users. If you want *banned* users you should use :tl:`ChannelParticipantsKicked` instead. aggressive (`bool`, optional):
 Aggressively looks for all participants in the chat. This is useful for channels since 20 July 2018, Telegram added a server-side limit where only the first 200 members can be retrieved. With this flag set, more than 200 will be often be retrieved. This has no effect if a ``filter`` is given. Yields: The :tl:`User` objects returned by :tl:`GetParticipantsRequest` with an additional ``.participant`` attribute which is the matched :tl:`ChannelParticipant` type for channels/megagroups or :tl:`ChatParticipants` for normal chats. """

        return _ParticipantsIter(
            self,
            limit,
            entity=entity,
            filter=filter,
            search=search,
            aggressive=aggressive
        )