Ë
    Fü´j!V  ã                  ó¼   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ erdd
lmZ ddlmZ ddlmZ  G d„ d«      Z G d„ d«      Zy)z,Provide the SubredditModerationStream class.é    )Úannotations)ÚTYPE_CHECKINGÚAny)ÚAPI_PATH)ÚListingGenerator)Ú
RedditBase)ÚSubredditRemovalReasons)Ústream_generator)Úcachedproperty)ÚIterator)Úmodels)ÚModmailConversationc                  óô   — e Zd ZdZedd„«       Zedd„«       Zedd„«       Zedd„«       Z	dd„Z
dd„Zdd	œ	 	 	 	 	 dd
„Zdddœ	 	 	 	 	 	 	 dd„Zdd	œ	 	 	 	 	 dd„Zdd	œ	 	 	 	 	 dd„Zdd„Zdd	œdd„Zdd„Zdd„Zy)ÚSubredditModerationzÕProvides a set of moderation functions to a :class:`.Subreddit`.

    For example, to accept a moderation invite from r/test:

    .. code-block:: python

        reddit.subreddit("test").mod.accept_invite()

    c                óH   — |� |dk(  rd}t        j                  | d|¬«       y y )NÚsubmissionsÚlinksÚparams)Ú	argumentsÚkeyÚonly)r   Ú_safely_add_arguments©Úgenerator_kwargsr   s     úe/root/workspace/ytshorts/venv/lib/python3.12/site-packages/praw/models/reddit/subreddit/moderation.pyÚ_handle_onlyz SubredditModeration._handle_only    s.   € àÐØ�}Ò$Ø�Ü×,Ñ,Ð7GÈXÐ\`Öað ó    c                ó^   — ddl m}  || j                  j                  | j                  ¬«      S )a²  Provide an instance of :class:`.SubredditModNotes`.

        This provides an interface for managing moderator notes for this subreddit.

        For example, all the notes for u/spez in r/test can be iterated through like so:

        .. code-block:: python

            subreddit = reddit.subreddit("test")

            for note in subreddit.mod.notes.redditors("spez"):
                print(f"{note.label}: {note.note}")

        r   )ÚSubredditModNotes©Ú	subreddit)Úpraw.models.mod_notesr   r!   Ú_reddit)Úselfr   s     r   ÚnoteszSubredditModeration.notes'   s"   € õ  	<á  §¡×!7Ñ!7À4Ç>Á>ÔRÐRr   c                ó,   — t        | j                  «      S )aø  Provide an instance of :class:`.SubredditRemovalReasons`.

        Use this attribute for interacting with a :class:`.Subreddit`'s removal reasons.
        For example to list all the removal reasons for a subreddit which you have the
        ``posts`` moderator permission on, try:

        .. code-block:: python

            for removal_reason in reddit.subreddit("test").mod.removal_reasons:
                print(removal_reason)

        A single removal reason can be lazily retrieved via:

        .. code-block:: python

            reddit.subreddit("test").mod.removal_reasons["reason_id"]

        .. note::

            Attempting to access attributes of a nonexistent removal reason will result
            in a :class:`.ClientException`.

        )r	   r!   ©r$   s    r   Úremoval_reasonsz#SubredditModeration.removal_reasons;   s   € ô2 ' t§~¡~Ó6Ð6r   c                ó,   — t        | j                  «      S )a†  Provide an instance of :class:`.SubredditModerationStream`.

        Streams can be used to indefinitely retrieve Moderator only items from
        :class:`.SubredditModeration` made to moderated subreddits, like:

        .. code-block:: python

            for log in reddit.subreddit("mod").mod.stream.log():
                print(f"Mod: {log.mod}, Subreddit: {log.subreddit}")

        )ÚSubredditModerationStreamr!   r'   s    r   ÚstreamzSubredditModeration.streamV   s   € ô )¨¯©Ó8Ð8r   c                ó    — || _         d| _        y)ztInitialize a :class:`.SubredditModeration` instance.

        :param subreddit: The subreddit to moderate.

        N)r!   Ú_stream©r$   r!   s     r   Ú__init__zSubredditModeration.__init__e   s   € ð #ˆŒØˆ�r   c                ó”   — t         d   j                  | j                  ¬«      }| j                  j                  j	                  |«       y)z5Accept an invitation as a moderator of the community.Úaccept_mod_inviter    N)r   Úformatr!   r#   Úpost©r$   Úurls     r   Úaccept_invitez!SubredditModeration.accept_inviten   s7   € äÐ*Ñ+×2Ñ2¸T¿^¹^Ð2ÓLˆØ�‰×Ñ×#Ñ# CÕ(r   N©r   c               ó¬   — | j                  ||¬«       t        | j                  j                  t        d   j                  | j                  ¬«      fi |¤ŽS )aù  Return a :class:`.ListingGenerator` for edited comments and submissions.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print all items in the edited queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.edited(limit=None):
                print(item)

        r   Úabout_editedr    ©r   r   r!   r#   r   r2   ©r$   r   r   s      r   ÚeditedzSubredditModeration.editeds   sV   € ð& 	×ÑÐ+;À$ÐÔGÜØ�N‰N×"Ñ"Ü�^Ñ$×+Ñ+°d·n±nÐ+ÓEñ
ð ñ
ð 	
r   ©ÚactionÚmodc               óÚ   — |rt        |«      n||dœ}t        j                  d|ddœ|¤Ž t        | j                  j
                  t        d   j                  | j                  ¬«      fi |¤ŽS )ao  Return a :class:`.ListingGenerator` for moderator log entries.

        :param action: If given, only return log entries for the specified action.
        :param mod: If given, only return log entries for actions made by the passed in
            redditor.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print the moderator and subreddit of the last 5 modlog entries try:

        .. code-block:: python

            for log in reddit.subreddit("mod").mod.log(limit=5):
                print(f"Mod: {log.mod}, Subreddit: {log.subreddit}")

        )r?   Útyper   )r   r   Ú	about_logr    © )Ústrr   r   r   r!   r#   r   r2   )r$   r>   r?   r   r   s        r   ÚlogzSubredditModeration.log�   sn   € ñ0 &)œ˜Sœ¨c¸6ÑBˆÜ×(Ñ(Ð\Ð3CÈÑ\ÐU[Ò\ÜØ�N‰N×"Ñ"Ü�[Ñ!×(Ñ(°4·>±>Ð(ÓBñ
ð ñ
ð 	
r   c               ó¬   — | j                  ||¬«       t        | j                  j                  t        d   j                  | j                  ¬«      fi |¤ŽS )aß  Return a :class:`.ListingGenerator` for modqueue items.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print all modqueue items try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.modqueue(limit=None):
                print(item)

        r   Úabout_modqueuer    r:   r;   s      r   ÚmodqueuezSubredditModeration.modqueue­   sW   € ð& 	×ÑÐ+;À$ÐÔGÜØ�N‰N×"Ñ"ÜÐ%Ñ&×-Ñ-¸¿¹Ð-ÓGñ
ð ñ
ð 	
r   c               ó¬   — | j                  ||¬«       t        | j                  j                  t        d   j                  | j                  ¬«      fi |¤ŽS )a}  Return a :class:`.ListingGenerator` for reported comments and submissions.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print the user and mod report reasons in the report queue try:

        .. code-block:: python

            for reported_item in reddit.subreddit("mod").mod.reports():
                print(f"User Reports: {reported_item.user_reports}")
                print(f"Mod Reports: {reported_item.mod_reports}")

        r   Úabout_reportsr    r:   r;   s      r   ÚreportszSubredditModeration.reportsÇ   sV   € ð( 	×ÑÐ+;À$ÐÔGÜØ�N‰N×"Ñ"Ü�_Ñ%×,Ñ,°t·~±~Ð,ÓFñ
ð ñ
ð 	
r   c                ó˜   — t         d   j                  | j                  ¬«      }| j                  j                  j	                  |«      d   S )zBReturn a dictionary of the :class:`.Subreddit`'s current settings.Úsubreddit_settingsr    Údata)r   r2   r!   r#   Úgetr4   s     r   ÚsettingszSubredditModeration.settingsâ   s?   € äÐ+Ñ,×3Ñ3¸d¿n¹nÐ3ÓMˆØ�~‰~×%Ñ%×)Ñ)¨#Ó.¨vÑ6Ð6r   c               ó¬   — | j                  ||¬«       t        | j                  j                  t        d   j                  | j                  ¬«      fi |¤ŽS )aé  Return a :class:`.ListingGenerator` for spam comments and submissions.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print the items in the spam queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.spam():
                print(item)

        r   Ú
about_spamr    r:   r;   s      r   ÚspamzSubredditModeration.spamç   sV   € ð" 	×ÑÐ+;À$ÐÔGÜØ�N‰N×"Ñ"Ü�\Ñ"×)Ñ)°D·N±NÐ)ÓCñ
ð ñ
ð 	
r   c                ó†   — t        | j                  j                  t        d   j	                  | j                  ¬«      fi |¤ŽS )ar  Return a :class:`.ListingGenerator` for unmoderated submissions.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        To print the items in the unmoderated queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.unmoderated():
                print(item)

        Úabout_unmoderatedr    )r   r!   r#   r   r2   )r$   r   s     r   ÚunmoderatedzSubredditModeration.unmoderatedÿ   sC   € ô  Ø�N‰N×"Ñ"ÜÐ(Ñ)×0Ñ0¸4¿>¹>Ð0ÓJñ
ð ñ
ð 	
r   c                ó  — ddddddœ}|j                  «       D ��ci c]  \  }}|j                  ||«      |“Œ }}}| j                  j                  |d<   | j                  j                  j                  t        d   |¬	«      S c c}}w )
a>  Update the :class:`.Subreddit`'s settings.

        See https://www.reddit.com/dev/api#POST_api_site_admin for the full list.

        :param all_original_content: Mandate all submissions to be original content
            only.
        :param allow_chat_post_creation: Allow users to create chat submissions.
        :param allow_images: Allow users to upload images using the native image
            hosting.
        :param allow_polls: Allow users to post polls to the subreddit.
        :param allow_post_crossposts: Allow users to crosspost submissions from other
            subreddits.
        :param allow_videos: Allow users to upload videos using the native image
            hosting.
        :param collapse_deleted_comments: Collapse deleted and removed comments on
            comments pages by default.
        :param comment_score_hide_mins: The number of minutes to hide comment scores.
        :param content_options: The types of submissions users can make. One of
            ``"any"``, ``"link"``, or ``"self"``.
        :param crowd_control_chat_level: Controls the crowd control level for chat
            rooms. Goes from 0-3.
        :param crowd_control_level: Controls the crowd control level for submissions.
            Goes from 0-3.
        :param crowd_control_mode: Enables/disables crowd control.
        :param default_set: Allow the subreddit to appear on r/all as well as the
            default and trending lists.
        :param disable_contributor_requests: Specifies whether redditors may send
            automated modmail messages requesting approval as a submitter.
        :param exclude_banned_modqueue: Exclude posts by site-wide banned users from
            modqueue/unmoderated.
        :param free_form_reports: Allow users to specify custom reasons in the report
            menu.
        :param header_hover_text: The text seen when hovering over the snoo.
        :param hide_ads: Don't show ads within this subreddit. Only applies to
            Premium-user only subreddits.
        :param key_color: A 6-digit rgb hex color (e.g., ``"#AABBCC"``), used as a
            thematic color for your subreddit on mobile.
        :param language: A valid IETF language tag (underscore separated).
        :param original_content_tag_enabled: Enables the use of the ``original content``
            label for submissions.
        :param over_18: Viewers must be over 18 years old (i.e., NSFW).
        :param public_description: Public description blurb. Appears in search results
            and on the landing page for private subreddits.
        :param restrict_commenting: Specifies whether approved users have the ability to
            comment.
        :param restrict_posting: Specifies whether approved users have the ability to
            submit posts.
        :param show_media: Show thumbnails on submissions.
        :param show_media_preview: Expand media previews on comments pages.
        :param spam_comments: Spam filter strength for comments. One of ``"all"``,
            ``"low"``, or ``"high"``.
        :param spam_links: Spam filter strength for links. One of ``"all"``, ``"low"``,
            or ``"high"``.
        :param spam_selfposts: Spam filter strength for selfposts. One of ``"all"``,
            ``"low"``, or ``"high"``.
        :param spoilers_enabled: Enable marking posts as containing spoilers.
        :param submit_link_label: Custom label for submit link button (``None`` for
            default).
        :param submit_text: Text to show on submission page.
        :param submit_text_label: Custom label for submit text post button (``None`` for
            default).
        :param subreddit_type: One of ``"archived"``, ``"employees_only"``,
            ``"gold_only"``, ``gold_restricted``, ``"private"``, ``"public"``, or
            ``"restricted"``.
        :param suggested_comment_sort: All comment threads will use this sorting method
            by default. Leave ``None``, or choose one of ``"confidence"``,
            ``"controversial"``, ``"live"``, ``"new"``, ``"old"``, ``"qa"``,
            ``"random"``, or ``"top"``.
        :param title: The title of the subreddit.
        :param welcome_message_enabled: Enables the subreddit welcome message.
        :param welcome_message_text: The text to be used as a welcome message. A welcome
            message is sent to all new subscribers by a Reddit bot.
        :param wiki_edit_age: Account age, in days, required to edit and create wiki
            pages.
        :param wiki_edit_karma: Subreddit karma required to edit and create wiki pages.
        :param wikimode: One of ``"anyone"``, ``"disabled"``, or ``"modonly"``.

        .. note::

            Updating the subreddit sidebar on old reddit (``description``) is no longer
            supported using this method. You can update the sidebar by editing the
            ``"config/sidebar"`` wiki page. For example:

            .. code-block:: python

                sidebar = reddit.subreddit("test").wiki["config/sidebar"]
                sidebar.edit(content="new sidebar content")

        Additional keyword arguments can be provided to handle new settings as Reddit
        introduces them.

        Settings that are documented here and aren't explicitly set by you in a call to
        :meth:`.SubredditModeration.update` should retain their current value. If they
        do not, please file a bug.

        Ú	link_typeÚ	allow_topÚheader_titleÚlangrA   )Úcontent_optionsÚdefault_setÚheader_hover_textÚlanguageÚsubreddit_typeÚsrÚupdate_settings)Újson)ÚitemsrO   r!   Úfullnamer#   Úpatchr   )r$   rP   Úremapr   Úvalues        r   ÚupdatezSubredditModeration.update  sŒ   € ðF  +Ø&Ø!/ØØ$ñ
ˆð BJÇÁÓAQ×R±:°3¸�E—I‘I˜c 3Ó'¨Ñ.ÐRˆÑRØŸ™×0Ñ0ˆ�‰Ø�~‰~×%Ñ%×+Ñ+¬HÐ5FÑ,GÈhÐ+ÓWÐWùó Ss   œB)r   zdict[str, Any]r   ú
str | NoneÚreturnÚNone)rk   zmodels.SubredditModNotes)rk   r	   )rk   r*   ©r!   zmodels.Subredditrk   rl   )rk   rl   )r   rj   r   r   rk   ú,Iterator[models.Comment | models.Submission])r>   rj   r?   zmodels.Redditor | str | Noner   r   rk   úIterator[models.ModAction])r   rj   r   r   rk   z,Iterator[models.Submission | models.Comment])rk   údict[str, str | int | bool])r   r   rk   úIterator[models.Submission])rP   zstr | int | boolrk   rp   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r%   r(   r+   r/   r6   r<   rE   rH   rK   rP   rS   rV   ri   rC   r   r   r   r      s  „ ñð òbó ðbð òSó ðSð& ò7ó ð7ð4 ò9ó ð9óó)ð %)ñ
Ø!ð
Ø>Að
à	5ó
ð: "Ø,0ñ	
ð ð
ð *ð	
ð
  ð
ð 
$ó
ðB %)ñ
Ø!ð
Ø>Að
à	5ó
ð6 %)ñ
Ø!ð
Ø>Að
à	5ó
ó67ð
 *.õ 
ó0
ô(kXr   r   c                  ó®   — e Zd ZdZdd„Zddœdd„Zdddœ	 	 	 	 	 	 	 dd„Zddddœ	 	 	 	 	 	 	 	 	 dd	„Zddœ	 	 	 	 	 dd
„Zddœ	 	 	 	 	 dd„Z	ddœdd„Z
dd„Zy)r*   zProvides moderator streams.c                ó   — || _         y)z”Initialize a :class:`.SubredditModerationStream` instance.

        :param subreddit: The moderated subreddit associated with the streams.

        Nr    r.   s     r   r/   z"SubredditModerationStream.__init__„  s   € ð #ˆ�r   Nr7   c               óZ   — t        | j                  j                  j                  fd|i|¤ŽS )a  Yield edited comments and submissions as they become available.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Keyword arguments are passed to :func:`.stream_generator`.

        For example, to retrieve all new edited submissions/comments made to all
        moderated subreddits, try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.stream.edited():
                print(item)

        r   )r
   r!   r?   r<   ©r$   r   Ústream_optionss      r   r<   z SubredditModerationStream.editedŒ  s)   € ô"   §¡× 2Ñ 2× 9Ñ 9ÑWÀÐWÈÑWÐWr   r=   c               ó^   — t        | j                  j                  j                  f|d|dœ|¤ŽS )a  Yield moderator log entries as they become available.

        :param action: If given, only return log entries for the specified action.
        :param mod: If given, only return log entries for actions made by the passed in
            redditor.

        For example, to retrieve all new mod actions made to all moderated subreddits,
        try:

        .. code-block:: python

            for log in reddit.subreddit("mod").mod.stream.log():
                print(f"Mod: {log.mod}, Subreddit: {log.subreddit}")

        Úid)r>   Úattribute_namer?   )r
   r!   r?   rE   )r$   r>   r?   r{   s       r   rE   zSubredditModerationStream.logŸ  s<   € ô,  Ø�N‰N×Ñ×"Ñ"ð
àØØñ	
ð
 ñ
ð 	
r   )Úother_subredditsÚsortÚstatec          	     óÔ   — | j                   dk(  r*| j                   j                  j                  d«      | _         t        | j                   j                  j                  fdd|||dœ|¤ŽS )a8  Yield new-modmail conversations as they become available.

        :param other_subreddits: A list of :class:`.Subreddit` instances for which to
            fetch conversations (default: ``None``).
        :param sort: Can be one of: ``"mod"``, ``"recent"``, ``"unread"``, or ``"user"``
            (default: ``"recent"``).
        :param state: Can be one of: ``"all"``, ``"appeals"``, ``"archived"``,
            ``"default"``, ``"highlighted"``, ``"inbox"``, ``"inprogress"``,
            ``"join_requests"``, ``"mod"``, ``"new"``, or ``"notifications"`` (default:
            ``"all"``). ``"all"`` does not include mod or archived conversations.
            ``"inbox"`` does not include appeals conversations.

        Keyword arguments are passed to :func:`.stream_generator`.

        To print new mail in the unread modmail queue try:

        .. code-block:: python

            subreddit = reddit.subreddit("all")
            for message in subreddit.mod.stream.modmail_conversations():
                print(f"From: {message.owner}, To: {message.participant}")

        r?   Úallr}   T)r~   Úexclude_beforer   r€   r�   )r!   r#   r
   ÚmodmailÚconversations)r$   r   r€   r�   r{   s        r   Úmodmail_conversationsz/SubredditModerationStream.modmail_conversations½  sj   € ð> �>‰>˜UÒ"Ø!Ÿ^™^×3Ñ3×=Ñ=¸eÓDˆDŒNÜØ�N‰N×"Ñ"×0Ñ0ð
àØØ-ØØñ
ð ñ
ð 	
r   c               óZ   — t        | j                  j                  j                  fd|i|¤ŽS )aß  Yield :class:`.Comment`\ s and :class:`.Submission`\ s in the modqueue as they become available.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Keyword arguments are passed to :func:`.stream_generator`.

        To print all new modqueue items try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.stream.modqueue():
                print(item)

        r   )r
   r!   r?   rH   rz   s      r   rH   z"SubredditModerationStream.modqueueè  s)   € ô$   §¡× 2Ñ 2× ;Ñ ;ÑYÀ$ÐYÈ.ÑYÐYr   c               óZ   — t        | j                  j                  j                  fd|i|¤ŽS )aô  Yield reported :class:`.Comment`\ s and :class:`.Submission`\ s as they become available.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Keyword arguments are passed to :func:`.stream_generator`.

        To print new user and mod report reasons in the report queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.stream.reports():
                print(item)

        r   )r
   r!   r?   rK   rz   s      r   rK   z!SubredditModerationStream.reportsü  s)   € ô$   §¡× 2Ñ 2× :Ñ :ÑXÀÐXÈÑXÐXr   c               óZ   — t        | j                  j                  j                  fd|i|¤ŽS )aÕ  Yield spam :class:`.Comment`\ s and :class:`.Submission`\ s as they become available.

        :param only: If specified, one of ``"comments"`` or ``"submissions"`` to yield
            only results of that type.

        Keyword arguments are passed to :func:`.stream_generator`.

        To print new items in the spam queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.stream.spam():
                print(item)

        r   )r
   r!   r?   rS   rz   s      r   rS   zSubredditModerationStream.spam  s)   € ô    §¡× 2Ñ 2× 7Ñ 7ÑU¸dÐUÀnÑUÐUr   c                óV   — t        | j                  j                  j                  fi |¤ŽS )aR  Yield unmoderated :class:`.Submission`\ s as they become available.

        Keyword arguments are passed to :func:`.stream_generator`.

        To print new items in the unmoderated queue try:

        .. code-block:: python

            for item in reddit.subreddit("mod").mod.stream.unmoderated():
                print(item)

        )r
   r!   r?   rV   )r$   r{   s     r   rV   z%SubredditModerationStream.unmoderated"  s$   € ô   §¡× 2Ñ 2× >Ñ >ÑQÀ.ÑQÐQr   rm   )r   rj   r{   r   rk   rn   )r>   rj   r?   zstr | models.Redditor | Noner{   r   rk   ro   )
r   zlist[models.Subreddit] | Noner€   rj   r�   rj   r{   r   rk   zIterator[ModmailConversation])r{   r   rk   rq   )rr   rs   rt   ru   r/   r<   rE   r‡   rH   rK   rS   rV   rC   r   r   r*   r*   �  së   „ Ù%ó#ð ,0õ Xð, "Ø,0ñ	
ð ð
ð *ð	
ð
 ð
ð 
$ó
ðB ;?ØØ ñ)
ð 8ð)
ð ð	)
ð
 ð)
ð ð)
ð 
'ó)
ðX %)ñZØ!ðZØ<?ðZà	5óZð* %)ñYØ!ðYØ<?ðYà	5óYð( *.õ Vô$Rr   r*   N)ru   Ú
__future__r   Útypingr   r   Ú
praw.constr   Úpraw.models.listing.generatorr   Úpraw.models.reddit.baser   Ú"praw.models.reddit.removal_reasonsr	   Úpraw.models.utilr
   Ú	praw.utilr   Úcollections.abcr   Úprawr   Úpraw.models.reddit.modmailr   r   r*   rC   r   r   ú<module>r—      sI   ðÙ 2å "ç %å Ý :Ý .Ý FÝ -Ý $áÝ(åÝ>÷iXñ iX÷XnRò nRr   