
    iE                      d Z ddlmZ ddlZddlmZmZ ddlZddlZddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlZddlZddlmZ ddlm 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.T ddl.m/Z/ ddl0T ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZOmPZP ddlQmRZR ddlSmTZTmUZU dd lVmWZW dd!lXmYZY dd"lZm[Z[ dd#l\m]Z] erdd$l^m_Z_ dd%l,m`Z` dd&lmaZa dd'lbmcZc dd(ldmeZe dd)lfmgZg dd*lhmiZi dd+ljmkZk dd,llmmZmmnZn dd-lompZp dd.lqmrZrmsZs dd/ltmuZu dd0lvmwZx dd1lymzZ{ dd2l|m$Z}m~Z dd3lm'Zm+Z ddlmRZ ddlmZ dd4lm-ZmZ dd5lmfZ dd6lmZ  ed7          Zeeae_ef         Z G d8 d9          Z ej        e          ZdEd@Z G dA dBeeY                   Z G dC dDeeY                   ZdS )Fa:  
The MIT License (MIT)

Copyright (c) 2015-present Rapptz

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
    )annotationsN)dequeOrderedDict)DictOptionalTYPE_CHECKINGTypeUnionCallableAnyListTypeVar	CoroutineSequenceGenericTupleDequeLiteraloverload   )Guild)BaseActivity)Entitlement)User
ClientUser)Emoji)AllowedMentions)PartialEmojiMessage)*)_channel_factory)RawPresenceUpdateEventMember)Role)ChannelTypetry_enumStatus)utils)ApplicationFlagsIntentsMemberCacheFlags)Invite)_integration_factory)Interaction)	ViewStoreBaseView)ScheduledEvent)StageInstance)ThreadThreadMember)GuildSticker)AutoModRuleAutoModAction)AuditLogEntry)ClientT)SoundboardSound)Subscription)PrivateChannel)MessageableChannel)GuildChannel)
HTTPClient)VoiceProtocol)DiscordWebSocket)Item)DynamicItem)CommandTree
Translator)Poll)AutoModerationRuleAutoModerationActionExecution)	Snowflake)Activity)	DMChannel)r   PartialUser)r   r   )r    PartialMessage)gateway)"GuildApplicationCommandPermissionsTc                  <    e Zd ZddddZddZddZddZddZdS )ChunkRequestTcacheguild_idintshard_idloopasyncio.AbstractEventLoopresolverCallable[[int], Any]rV   boolreturnNonec                   || _         || _        || _        || _        || _        t          j        d                                          | _        g | _	        g | _
        d S )N   )rW   rY   r\   rZ   rV   osurandomhexnoncebufferwaiters)selfrW   rY   rZ   r\   rV   s         T/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/discord/state.py__init__zChunkRequest.__init__s   sT     &%.6/3	 
*R..,,..
$&;=    membersList[Member]c                   | j                             |           | j        r[|                     | j                  }|d S |D ]<}|                    |j                  }||j        |                    |           ;d S d S N)	rg   extendrV   r\   rW   
get_memberid	joined_at_add_member)ri   rm   guildmemberexistings        rj   add_memberszChunkRequest.add_members   s    7###: 	.MM$-00E}! . . ++FI66#x'9'A%%f---	. 	.
. .rl   c                   K   | j                                         }| j                            |           	 | d {V 	 | j                            |           S # | j                            |           w xY wrp   )rZ   create_futurerh   appendremoveri   futures     rj   waitzChunkRequest.wait   s{      ((**F###	(<<<<<<L''''DL''''s   A A6asyncio.Future[List[Member]]c                l    | j                                         }| j                            |           |S rp   )rZ   r{   rh   r|   r~   s     rj   
get_futurezChunkRequest.get_future   s0    ((**F###rl   c                v    | j         D ]0}|                                s|                    | j                   1d S rp   )rh   done
set_resultrg   r~   s     rj   r   zChunkRequest.done   sD    l 	/ 	/F;;== /!!$+...	/ 	/rl   N)rW   rX   rY   rX   rZ   r[   r\   r]   rV   r^   r_   r`   )rm   rn   r_   r`   )r_   rn   )r_   r   r_   r`   )__name__
__module____qualname__rk   ry   r   r   r    rl   rj   rT   rT   r   s         > > > > > >$
. 
. 
. 
.( ( ( (   
/ / / / / /rl   rT   	coroutineCoroutine[Any, Any, T]infostrr_   Optional[T]c               t   K   	 |  d {V  d S # t           $ r t                              d|           Y d S w xY w)NzException occurred during %s)	Exception_log	exception)r   r   s     rj   logging_coroutiner      sY      = = = =5t<<<<<<=s    %77c                      e Zd ZU erded<   ded<   ded<   dSdZedTd            ZdUdZdddVdZ	dWd"Z
dXd%ZdYd*ZdYd+ZedZd-            Zed[d/            Zed\d1            Zd]d3Zd^d6Zd_d7Zd`d:Zdd;dad@Zdd;dadAZdbdBZdcdEZdddJZdedMZdfdgdRZdhdTZdidWZdidXZedjdZ            Zedkd\            Z dld^Z!dNd_dmdaZ"dndbZ#dndcZ$edode            Z%edpdg            Z&edqdi            Z'drdlZ(dsdoZ)edtdq            Z*dudtZ+dvdwZ,dwdzZ-dxd}Z.dwd~Z/dydZ0dzdZ1d{dZ2	 dfd|dZ3d}d~dZ4ddZ5	 ddNdddZ6ddZ7dUdZ8ddZ9ddZ:ddZ;ddZ<ddZ=ddZ>ddZ?ddZ@ddZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddĄZKddƄZLddȄZMddʄZNdd̄ZOdd΄ZPddЄZQdd҄ZRddԄZSddքZTdd؄ZUddڄZVdd܄ZWddބZXdd߄ZYddZZddZ[ddZ\d{dZ]e^ddddd            Z_e^ddddd            Z_ddNdddZ_ddZ`d Zad{dZbddZcddZdddZeddZfddZgddZhddZiddZjddZkddZldd	ZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxdd!Zydd%Zzdd&Z{dd(Z|dÐd*Z}dĐd,Z~dŐd.ZdƐd0Zdǐd2ZdȐd4Zdɐd6Zdʐd8Zdːd:Zd̐d<Zd̐d=Zd͐d?ZdΐdAZdϐdCZdАdFZdѐdIZdҐdLZdӐdNZdԐdPZdՐdRZdNS (  ConnectionStatezCallable[..., DiscordWebSocket]_get_websocketzCallable[..., ClientT]_get_clientz+Dict[str, Callable[[Dict[str, Any]], None]]_parsersdispatchCallable[..., Any]handlersDict[str, Callable[..., Any]]hooks2Dict[str, Callable[..., Coroutine[Any, Any, Any]]]httprA   optionsr   r_   r`   c                  t           j        | _        || _        |                    dd          | _        | j        | j        dk    rd| _        || _        || _        || _        d | _	        d | _
        t          j        |d          | _        t           j        | _        |                    dd          | _        |                    dd          | _        | j        dk     rt!          d	          |                    d
          }|$t#          |t$                    st'          d          || _        i | _        |                    dd           }|r8t#          |t,                    st'          d          |                                }|                    dd           }|r |t0          j        u rd}nt5          |          }|                    dd           }	|	5t#          |	t6                    st'          dt9          |	                    nt7          j                    }	|	j        st>                               d           |                    d|	j!                  | _"        |	j!        s| j"        rt!          d          |                    dd           }
|
tG          j$        |	          }
nIt#          |
tF                    st'          dt9          |
                    |
%                    |	           |
| _&        || _'        || _(        |	| _)        d | _*        d | _+        |	j!        r|
j,        r| j-        | _.        |                    dt           j                  | _/        | j/        t           j        u r|	j!         o|	j0        | _/        |  i x| _1        }te          j3        |           D ]9\  }}|4                    d          r|||dd          5                                <   :| 6                                 d S )Nmax_messagesi  r   application_idheartbeat_timeoutg      N@guild_ready_timeoutg       @z&guild_ready_timeout cannot be negativeallowed_mentionsz2allowed_mentions parameter must be AllowedMentionsactivityz1activity parameter must derive from BaseActivity.status	invisibleintentsz%intents parameter must be Intent not zHGuilds intent seems to be disabled. This may cause state related issues.chunk_guilds_at_startupz;Intents.members must be enabled to chunk guilds at startup.member_cache_flagsz:member_cache_flags parameter must be MemberCacheFlags not enable_raw_presencesparse_   )7r*   MISSINGrZ   r   getr   r   r   r   shard_count_ready_task_get_as_snowflaker   application_flagsr   r   
ValueError
isinstancer   	TypeErrorr   _chunk_requestsr   to_dictr)   offliner   r,   typedefaultguildsr   warningrm   _chunk_guildsr-   from_intents_verify_intentsr   	_activity_status_intents_command_tree_translator_emptystore_user_no_intents
store_userraw_presence_flag	presencesparsersinspect
getmembers
startswithupperclear)ri   r   r   r   r   r   r   r   r   r   cache_flagsr   attrfuncs                 rj   rk   zConnectionState.__init__   s    05}	 $	+2;;~t+L+L(T->!-C-C $D,47?IN
*.37-2-DWN^-_-_38=(/4G(N(N*1++6KS*Q*Q #a''EFFF";;'9::'
;K_0]0]'PQQQ;KDF;;z400 	*h55 U STTT''))HXt,, 	%''$V++i..gw// [ YW Y YZZZ[ o''G~ 	eLLcddd#*;;/H'/#Z#Z  	\4#5 	\Z[[[kk"6==*7@@KKk+;<< t r]abm]n]n r rsss''0004?4<&,!(4815 	9+"4 	9"8DO'.{{3I5='Y'Y!U]22)0%8%NW=ND"6!##w!,T22 	1 	1JD$x(( 1,0QRR(()

rl   r^   c                    | j         j        S rp   )r   emojis_and_stickersri   s    rj   cache_guild_expressionsz'ConnectionState.cache_guild_expressions  s    }00rl   c                   K   | j         D ]/}	 |                    d           d {V   # t          $ r Y ,w xY w| j        r!| j                                         d {V  d S d S )NT)force)voice_clients
disconnectr   r   unload)ri   voices     rj   closezConnectionState.close  s      ' 	 	E&&T&2222222222     	,"))+++++++++++	, 	,s   *
77Tviewsr   c               0   d | _         t          j                    | _        i | _        i | _        i | _        |rt          |           | _        i | _	        t                      | _        i | _        | j        t          | j                  | _        d S d | _        d S )Nmaxlen)userweakrefWeakValueDictionary_users_emojis	_stickers_guildsr1   _view_store_voice_clientsr   _private_channels_private_channels_by_userr   r   	_messages)ri   r   s     rj   r   zConnectionState.clear)  s    *.	>E>Y>[>[)+24)+ 	:*3D//D8: DO==?A&(7<DDU7V7V7VDNNN7;DNNNrl   rW   rX   rf   Optional[str]rm   rn   completec                   g }| j                                         D ][\  }}|j        |k    rK|j        |k    r@|                    |           |r)|                                 |                    |           \|D ]
}| j         |= d S rp   )r   itemsrW   rf   ry   r   r|   )ri   rW   rf   rm   r   removedkeyrequests           rj   process_chunk_requestsz&ConnectionState.process_chunk_requests=  s     06688 	( 	(LC8++0F0F##G,,, (LLNNNNN3''' 	* 	*C$S))	* 	*rl   rY   
int | Nonec                    g }| j                                         D ];\  }}||j        |k    r)|                                 |                    |           <|D ]
}| j         |= d S rp   )r   r   rY   r   r|   )ri   rY   r   r   r   s        rj   clear_chunk_requestsz$ConnectionState.clear_chunk_requestsI  s     06688 	$ 	$LC7#3x#?#?s### 	* 	*C$S))	* 	*rl   r   r   argskwargsc                T    	 | j         |         } ||i | d S # t          $ r Y d S w xY wrp   )r   KeyError)ri   r   r   r   r   s        rj   call_handlerszConnectionState.call_handlersS  sT    	"=%D D$!&!!!!!  	 	 	DD	s    
''c                d   K   	 | j         |         } ||i | d {V  d S # t          $ r Y d S w xY wrp   )r   r  )ri   r   r   r   coros        rj   
call_hookszConnectionState.call_hooks[  si      	(:c?D $''''''''''''  	 	 	DD	s   ! 
//Optional[int]c                &    | j         }|r|j        nd S rp   )r   rs   )ri   us     rj   self_idzConnectionState.self_idc  s    I"qttd"rl   r,   c                N    t          j                    }| j        j        |_        |S rp   )r,   noner   value)ri   rets     rj   r   zConnectionState.intentsh  s    lnnM'	
rl   List[VoiceProtocol]c                N    t          | j                                                  S rp   )listr   valuesr   s    rj   r   zConnectionState.voice_clientsn  s    D'..00111rl   Optional[VoiceProtocol]c                6    | j                             |          S rp   )r   r   ri   rW   s     rj   _get_voice_clientz!ConnectionState._get_voice_clientr  s    "&&x000rl   r   rB   c                    || j         |<   d S rp   )r   )ri   rW   r   s      rj   _add_voice_clientz!ConnectionState._add_voice_clientv  s    (-H%%%rl   c                <    | j                             |d            d S rp   )r   popr  s     rj   _remove_voice_clientz$ConnectionState._remove_voice_clienty  s!    $/////rl   wsrC   c                (    | j         D ]	}||_        
d S rp   )r   main_ws)ri   r  vcs      rj   _update_referencesz"ConnectionState._update_references|  s'    $ 	 	BBJJ	 	rl   rU   data&Union[UserPayload, PartialUserPayload]rV   r   c                   t          |d                   }	 | j        |         S # t          $ r" t          | |          }|r
|| j        |<   |cY S w xY wNrs   stater!  )rX   r   r  r   )ri   r!  rV   user_idr   s        rj   r   zConnectionState.store_user  sm    d4j//	;w'' 	 	 	d...D ,'+G$KKK		s   $ )AAc               $    t          | |          S Nr%  r   )ri   r!  rV   s      rj   r   z%ConnectionState.store_user_no_intents      $T****rl   c                $    t          | |          S r)  r*  ri   r!  s     rj   create_userzConnectionState.create_user  r+  rl   rs   Optional[User]c                6    | j                             |          S rp   )r   r   )ri   rs   s     rj   get_userzConnectionState.get_user  s    {r"""rl   rv   r   EmojiPayloadr   c                h    t          |d                   }t          || |          x| j        |<   }|S )Nrs   rv   r&  r!  )rX   r   r   )ri   rv   r!  emoji_idemojis        rj   store_emojizConnectionState.store_emoji  s6    tDz??).U$T)R)R)RRXrl   GuildStickerPayloadr7   c                f    t          |d                   }t          | |          x| j        |<   }|S r$  )rX   r7   r   )ri   rv   r!  
sticker_idstickers        rj   store_stickerzConnectionState.store_sticker  s4    d__
/;$T/R/R/RRz"Wrl   Nviewr2   
message_idc                <    | j                             ||           d S rp   )r   add_view)ri   r=  r>  s      rj   
store_viewzConnectionState.store_view  s!    !!$
33333rl   Optional[BaseView]c                6    | j                             |          S rp   )r   remove_message_tracking)ri   r>  s     rj   prevent_view_updates_forz(ConnectionState.prevent_view_updates_for  s    77
CCCrl   r   Type[DynamicItem[Item[Any]]]c                $     | j         j        |  d S rp   )r   add_dynamic_itemsri   r   s     rj   store_dynamic_itemsz#ConnectionState.store_dynamic_items  s    **E2222rl   c                $     | j         j        |  d S rp   )r   remove_dynamic_itemsrI  s     rj   rL  z$ConnectionState.remove_dynamic_items  s    --u5555rl   Sequence[BaseView]c                    | j         j        S rp   )r   persistent_viewsr   s    rj   rO  z ConnectionState.persistent_views  s    00rl   Sequence[Guild]c                X    t          j        | j                                                  S rp   )r*   SequenceProxyr   r  r   s    rj   r   zConnectionState.guilds  !    "4<#6#6#8#8999rl   Optional[Guild]c                6    | j                             |          S rp   )r   r   r  s     rj   
_get_guildzConnectionState._get_guild      |)))rl   )r!  Optional[Dict[str, Any]]c               d    | j                             |          pt          j        | ||          S )N)r&  rW   r!  )r   r   r   _create_unavailable)ri   rW   r!  s      rj    _get_or_create_unavailable_guildz0ConnectionState._get_or_create_unavailable_guild  s1    |))pU-FT\dko-p-p-pprl   c                $    || j         |j        <   d S rp   )r   rs   ri   rv   s     rj   
_add_guildzConnectionState._add_guild  s    !&UXrl   c                    | j                             |j        d            |j        D ]"}| j                            |j        d            #|j        D ]"}| j                            |j        d            #~d S rp   )r   r  rs   emojisr   stickersr   )ri   rv   r6  r;  s       rj   _remove_guildzConnectionState._remove_guild  s    4(((\ 	- 	-ELUXt,,,,~ 	1 	1GNwz40000EErl   Sequence[Emoji]c                X    t          j        | j                                                  S rp   )r*   rR  r   r  r   s    rj   r`  zConnectionState.emojis  rS  rl   Sequence[GuildSticker]c                X    t          j        | j                                                  S rp   )r*   rR  r   r  r   s    rj   ra  zConnectionState.stickers  s!    "4>#8#8#:#:;;;rl   List[SoundboardSound]c                R    g }| j         D ]}|                    |j                   |S rp   )r   rq   soundboard_sounds)ri   
all_soundsrv   s      rj   ri  z!ConnectionState.soundboard_sounds  s8    
[ 	7 	7Ee56666rl   r5  Optional[Emoji]c                6    | j                             |          S rp   )r   r   )ri   r5  s     rj   	get_emojizConnectionState.get_emoji  rW  rl   r:  Optional[GuildSticker]c                6    | j                             |          S rp   )r   r   )ri   r:  s     rj   get_stickerzConnectionState.get_sticker  s    ~!!*---rl   Sequence[PrivateChannel]c                X    t          j        | j                                                  S rp   )r*   rR  r   r  r   s    rj   private_channelsz ConnectionState.private_channels  s"    "4#9#@#@#B#BCCCrl   
channel_idOptional[PrivateChannel]c                x    	 | j         |         }| j                             |           |S # t          $ r Y d S w xY wrp   )r   move_to_endr  )ri   rt  r  s      rj   _get_private_channelz$ConnectionState._get_private_channel  sV    	*:6E
 "..z:::L  	 	 	44	s   + 
99r'  Optional[DMChannel]c                6    | j                             |          S rp   )r   r   )ri   r'  s     rj   _get_private_channel_by_userz,ConnectionState._get_private_channel_by_user  s    -11':::rl   channelr>   c                ~   |j         }|| j        |<   t          | j                  dk    r_| j                            d          \  }}t	          |t
                    r,|j        r%| j                            |j        j         d            t	          |t
                    r|j        r|| j        |j        j         <   d S d S d S )N   F)last)	rs   r   lenpopitemr   rM   	recipientr   r  )ri   r|  rt  _	to_removes        rj   _add_private_channelz$ConnectionState._add_private_channel  s    Z
-4z*t%&&,,199u9EELAy)Y// QI4G Q.2293F3I4PPPgy)) 	Kg.? 	KCJD*7+<+?@@@	K 	K 	K 	Krl   DMChannelPayloadrM   c                ^    t          | j        | |          }|                     |           |S )N)mer&  r!  )rM   r   r  )ri   r!  r|  s      rj   add_dm_channelzConnectionState.add_dm_channel  s1    ty4@@@!!'***rl   c                    | j                             |j        d            t          |t                    r+|j        }|$| j                            |j        d            d S d S d S rp   )r   r  rs   r   rM   r  r   )ri   r|  r  s      rj   _remove_private_channelz'ConnectionState._remove_private_channel  sq    ""7:t444gy)) 	G)I$.229<FFFFF	G 	G$$rl   msg_idOptional[Message]c                j    | j         r*t          j        fdt          | j                             nd S )Nc                    | j         k    S rp   rs   )mr  s    rj   <lambda>z.ConnectionState._get_message.<locals>.<lambda>  s    ADFN rl   )r   r*   findreversed)ri   r  s    `rj   _get_messagezConnectionState._get_message  s7    QUQ_iuz2222HT^4L4LMMMeiirl   GuildPayloadc                R    t          ||           }|                     |           |S )Nr!  r&  )r   r^  ri   r!  rv   s      rj   _add_guild_from_dataz$ConnectionState._add_guild_from_data  s+    4t,,,rl   c                J    | j         o|j         o| j        j        o|j          S rp   )r   chunkedr   r   larger]  s     rj   _guild_needs_chunkingz%ConnectionState._guild_needs_chunking  s.    !m%-&7mAXAlafal]l<mmrl   PartialMessagePayload.Tuple[Union[Channel, Thread], Optional[Guild]]c                <   t          |d                   }	 |pt          |d                   }|                     |          }|o|                    |          }n-# t          $ r  t                              | |          }d }Y nw xY w|pt          | ||          |fS )Nrt  rW   )r&  rW   rs   )rX   rV  _resolve_channelr  rM   _from_messagePartialMessageable)ri   r!  rW   rt  rv   r|  s         rj   _get_guild_channelz"ConnectionState._get_guild_channel  s     l+,,
	C83tJ'7#8#8HOOH--E
 B 6 6z B BGG	  	 	 	--dJ??GEEE	 Z,4(zZZZ\aaas   ,A 'BBFmessager    	answer_idadded
self_votedOptional[Poll]c                J    |j         }|sd S |                    |||           |S rp   )poll_handle_vote)ri   r  r  r  r  r  s         rj   _update_poll_countsz#ConnectionState._update_poll_counts'  s3    | 	F)UJ777rl   from_toUnion[Message, int]c                `   t          |t                    r|                     |j                  }n3t          |t                    r|                     |          }|d S |}nd S |j        d S |j                            |           |#|j        r|j                            |           d S d S d S rp   )r   r    r  rs   rX   r  _update_results_from_message)ri   r  r  cacheds       rj   _update_poll_resultsz$ConnectionState._update_poll_results.  s    b'"" 
	&&ru--FFC   	&&r**F~BBF7?F
,,U333&+K44U;;;;; rl    r   rf   querylimitr   c               t   K   |                      |          }|                    |||||           d {V  d S )Nr  r  r   rf   r   request_chunks)ri   rW   r  r  r   rf   r  s          rj   chunkerzConnectionState.chunkerC  sS         **Ui_deeeeeeeeeeerl   user_idsOptional[List[int]]c                  K   |j         }|                     |          }|t          d          t          |j         |j        | j        | j        |          }	|	| j        |	j        <   	 |	                    ||||||	j                   d {V  t          j        |	                                d           d {V S # t          j        $ r t                              d|||            w xY w)Nz1Somehow do not have a websocket for this guild_idrU   )r  r  r  r   rf   g      >@timeoutzGTimed out waiting for chunks with query %r and limit %d for guild_id %d)rs   r   RuntimeErrorrT   rY   rZ   rV  r   rf   r  asynciowait_forr   TimeoutErrorr   r   )
ri   rv   r  r  r  rV   r   rW   r  r   s
             rj   query_memberszConnectionState.query_membersI  s'      8  **:RSSSuxDO[`aaa.5W]+	##UXQZbibo $          !)',,..$GGGGGGGGGG# 	 	 	LLbdikprz{{{	s   (AB< <.C*c                  K   	 g }	 	 t          j        | j                                        | j                   d {V }|                     |          r5|                     |d           d {V }|                    ||f           nL|j        du r| 	                    d|           n,| 	                    d|           n# t           j
        $ r Y nw xY w|D ]\  }}|                     |          }	 t          j        ||           d {V  n;# t           j
        $ r) t                              d|j        |j                   Y nw xY w|j        du r| 	                    d|           | 	                    d|           	 | `n# t           $ r Y nw xY w|                     d           | 	                    d           n# t           j        $ r Y nw xY wd | _        d S # d | _        w xY w)	NTr  Fr   guild_available
guild_join9Shard ID %s timed out waiting for chunks for guild_id %s.ready)r  r  _ready_stater   r   r  chunk_guildr|   unavailabler   r  _chunk_timeoutr   r   rY   rs   AttributeErrorr  CancelledErrorr   )ri   statesrv   r   r  s        rj   _delay_readyzConnectionState._delay_ready^  s     -	$F??")"243D3H3H3J3JTXTl"m"m"mmmmmmmE 11%88 ?'+'7'7E'7'J'J!J!J!J!J!J!Jufo6666 ,55 MM*;UCCCC MM,>>>> +   E?" "( 7 7v--e44x!*67CCCCCCCCCCC+ x x xLL!\^c^lnsnvwwwwwx $--MM"3U;;;;MM,6666%%!    w'''MM'"""" % 	 	 	D	  $DtD####s   G 8C  BG CG C G 4DG 5E	G E		:G F G 
FG FG +G  GG  GG   	G)gw.ReadyEventc                   | j         | j                                          t          j                    | _        |                     d           |                     d            t          | |d                   x| _        }|| j	        |j
        <   | j        S	 |d         }t          j        |d          | _        t          j        |d                   | _        n# t"          $ r Y nw xY w|d         D ]}|                     |           |                     d	           t          j        |                                           | _         d S )
NFr   r   r%  applicationrs   flagsr   connect)r   cancelr  Queuer  r   r   r   r   r   rs   r   r*   r   r+   _from_valuer   r  r  r   create_taskr  )ri   r!  r   r  
guild_datas        rj   parse_readyzConnectionState.parse_ready  sS   '##%%%29-//


!!$'''%DtF|DDDD	D#DG&n"=1 ',&=k4&P&P#;K;WXcdkXl;m;m&&	     x. 	2 	2J%%j1111i   ".t/@/@/B/BCCs   C 
C('C(gw.ResumedEventc                0    |                      d           d S )Nresumedr   r-  s     rj   parse_resumedzConnectionState.parse_resumed  s    i     rl   gw.MessageCreateEventc                .   |                      |          \  }}t          |||           }|                     d|           | j        | j                            |           |r/|j        t          t          t          t          fv r|j
        |_        d S d S d S )Nr|  r!  r&  r  )r  r    r   r   r|   	__class__TextChannelVoiceChannelr5   StageChannelrs   last_message_id)ri   r!  r|  r  r  s        rj   parse_message_createz$ConnectionState.parse_message_create  s    ,,T22
'DAAAi)))>%N!!'*** 	1w([,P\,]]]&-jG###	1 	1]]rl   gw.MessageDeleteEventc                   t          |          }|                     |j                  }||_        |                     d|           | j        4|4|                     d|           | j                            |           d S d S d S )Nraw_message_deletemessage_delete)RawMessageDeleteEventr  r>  cached_messager   r   r}   )ri   r!  rawfounds       rj   parse_message_deletez$ConnectionState.parse_message_delete  s    #D))!!#.11"*C000>%%*;MM*E222N!!%((((( &%*;*;rl   gw.MessageDeleteBulkEventc                   t          |          | j        rfd| j        D             }ng }|_        |                     d           |r5|                     d|           |D ]}| j                            |           d S d S )Nc                0    g | ]}|j         j        v |S r   )rs   message_ids).0r  r  s     rj   
<listcomp>z=ConnectionState.parse_message_delete_bulk.<locals>.<listcomp>  s)    eee'wzUXUdGdGdgGdGdGdrl   raw_bulk_message_deletebulk_message_delete)RawBulkMessageDeleteEventr   cached_messagesr   r}   )ri   r!  found_messagesmsgr  s       @rj   parse_message_delete_bulkz)ConnectionState.parse_message_delete_bulk  s    '--> 	 eeeeT^eeeNNN,/555 	+MM/@@@% + +%%c****		+ 	++ +rl   gw.MessageUpdateEventc                   |                      |          \  }}t          |||           }t          ||          }|                     |j                  }|jt          j        |          }||_        |                     d|           |                    |           |j	        |_	        |                     d||           n|                     d|           d|v rx	 t          |d         d                   }n# t          t          f$ r
 |j        }Y nw xY w| j                            |          r%| j                            ||d                    d S d S d S )Nr  )r!  r  raw_message_editmessage_edit
componentsinteractionrs   )r  r    RawMessageUpdateEventr  rs   copyr  r   _updateauthorrX   r  r   r>  r   is_message_trackedupdate_from_message)	ri   r!  r|  r  updated_messager  r  older_message	entity_ids	            rj   parse_message_updatez$ConnectionState.parse_message_update  s~   ,,T22
!'DIII#GGG**?+=>>% In55M!.CMM,c222""4((( $3#9M MM.-IIIIMM,c2224+] 3D 9::		j) + + +N			+ 229== T 44Y\@RSSSSS  T Ts   C9 9DDgw.MessageReactionAddEventc                l   t          j        |d                   }| |_        t          ||d          }|                    d          }|r<|                     |j                  }|t          |||           |_        nd |_        nd |_        | 	                    d|           | 
                    |j                  }|s|                     |          }|                    |||j                  }|j        p|                     |j        |j                  }|r| 	                    d||           d S d S d S )Nr6  REACTION_ADDrw   r!  rv   r&  raw_reaction_addreaction_add)r   	from_dict_stateRawReactionActionEventr   rV  rW   r%   rw   r   r  r>  _upgrade_partial_emoji_add_reactionr'  _get_reaction_userr|  )	ri   r!  r6  r  member_datarv   r  reactionr   s	            rj   parse_message_reaction_addz*ConnectionState.parse_message_reaction_add  s<   &tG}55$T5.AAhhx(( 	OOCL11E #ENNN

!

CJ(#... ##CN33//66E,,T5#+FFH:V!8!8#+!V!VD >nh===== 
> >rl    gw.MessageReactionRemoveAllEventc                   t          |          }|                     d|           |                     |j                  }|K|j                                        }|j                                         |                     d||           d S d S )Nraw_reaction_clearreaction_clear)RawReactionClearEventr   r  r>  	reactionsr  r   )ri   r!  r  r  old_reactionss        rj   !parse_message_reaction_remove_allz1ConnectionState.parse_message_reaction_remove_all  s    #D))*C000##CN33#-2244M##%%%MM*G]CCCCC rl   gw.MessageReactionRemoveEventc                   t          j        |d                   }| |_        t          ||d          }|                     d|           |                     |j                  }||                     |          }	 |                    |||j	                  }| 
                    |j        |j	                  }|r|                     d||           d S d S # t          t          f$ r Y d S w xY wd S )Nr6  REACTION_REMOVEraw_reaction_removereaction_remove)r   r  r  r  r   r  r>  r  _remove_reactionr'  r!  r|  r  r   )ri   r!  r6  r  r  r#  r   s          rj   parse_message_reaction_removez-ConnectionState.parse_message_reaction_remove  s   &tG}55$T52CDD+S111##CN33//66EE"33D%MM ..wLL EMM"3XtDDDDDE E	 #J/   	 s   ;C C)(C)"gw.MessageReactionRemoveEmojiEventc                `   t          j        |d                   }| |_        t          ||          }|                     d|           |                     |j                  }|J	 |                    |          }|r|                     d|           d S d S # t          t          f$ r Y d S w xY wd S )Nr6  raw_reaction_clear_emojireaction_clear_emoji)
r   r  r  RawReactionClearEmojiEventr   r  r>  _clear_emojir  r   )ri   r!  r6  r  r  r#  s         rj   #parse_message_reaction_remove_emojiz3ConnectionState.parse_message_reaction_remove_emoji  s    &tG}55(u550#666##CN33D"//66  DMM"8(CCCCCD D #J/    s   %B B+*B+gw.InteractionCreateEventc                   t          ||           }|d         dv r"| j        r| j                            |           n|d         dk    r5|d         }|d         }|d         }| j                            |||           nW|d         dk    rK|d         }|d         }|d	         }|                    d
i           }| j                            ||||           |                     d|           d S )Nr  r   )         r!  	custom_idcomponent_type   r
  resolvedr  )r0   r   _from_interactionr   dispatch_viewr   dispatch_modalr   )ri   r!  r  
inner_datar@  rA  r
  rC  s           rj   parse_interaction_createz(ConnectionState.parse_interaction_create.  s   !t4888<6!!d&8!00====&\QfJ";/I'(89N**>9kRRRR&\QfJ";/I#L1J!~~j"55H++I{JPXYYYm[11111rl   gw.PresenceUpdateEventc                   t          ||           }| j        r|                     d|           |j        "t                              d|j                   d S |j                            |j                  }|"t                              d|j                   d S t          j
        |          }|                    ||d                   }|r#|                     d|d         |d	                    |                     d
||           d S )Nr  raw_presence_updatez@PRESENCE_UPDATE referencing an unknown guild ID: %s. Discarding.z@PRESENCE_UPDATE referencing an unknown member ID: %s. Discardingr   )r  r   user_updater   r   presence_update)r#   r   r   rv   r   debugrW   rr   r'  r%   _copy_presence_update)ri   r!  r  rw   
old_memberrL  s         rj   parse_presence_updatez%ConnectionState.parse_presence_updateA  s   $$d;;;! 	6MM/5559JJY[^[ghhhF%%ck22>JJY[^[fgggF\&))
--#DL-II 	IMM-QQHHH'V<<<<<rl   gw.UserUpdateEventc                L    | j         r| j                             |           d S d S rp   )r   r  r-  s     rj   parse_user_updatez!ConnectionState.parse_user_updateY  s2    9 	$Id#####	$ 	$rl   gw.InviteCreateEventc                ^    t          j        | |          }|                     d|           d S )Nr%  invite_creater.   from_gatewayr   ri   r!  invites      rj   parse_invite_createz#ConnectionState.parse_invite_create]  1    $4d;;;ov.....rl   gw.InviteDeleteEventc                ^    t          j        | |          }|                     d|           d S )Nr%  invite_deleterY  r[  s      rj   parse_invite_deletez#ConnectionState.parse_invite_deletea  r^  rl   gw.ChannelDeleteEventc                   |                      t          j        |d                    }t          |d                   }||                    |          }||                    |           |                     d|           |j        t          j	        t          j
        fv rO|j        D ]G}|j        |j        k    r5|j                            |j                   |                     d|           H|                    |          }|D ]J}|                     d|           |                     dt"                              |                     Gd S d S d S )NrW   rs   guild_channel_deletescheduled_event_deletethread_deleteraw_thread_delete)rV  r*   r   rX   get_channel_remove_channelr   r   r'   r   stage_voicescheduled_eventsrt  rs   _scheduled_eventsr  _remove_threads_by_channelRawThreadDeleteEvent_from_thread)ri   r!  rv   rt  r|  sthreadsthreads           rj   parse_channel_deletez$ConnectionState.parse_channel_deletee  s[    7j I IJJd__
''
33G"%%g...4g>>><K$5{7N#OOO"3 G G<7:55!377=== MM*BAFFF:::FF% b bFMM/6:::MM"57K7X7XY_7`7`aaaa! ""b brl   gw.ChannelUpdateEventc                    t          t          |                    d                    }t          |d                   }|t          j        u rt|                     |          }|Bt          j        |          }|                    |           |                     d||           d S t          
                    d|           t          j        |d          }|                     |          }|w|                    |          }|Ct          j        |          }|                    ||           |                     d||           d S t          
                    d|           d S t          
                    d|           d S )Nr   rs   private_channel_updatezACHANNEL_UPDATE referencing an unknown channel ID: %s. Discarding.rW   guild_channel_updatez?CHANNEL_UPDATE referencing an unknown guild ID: %s. Discarding.)r(   r'   r   rX   grouprx  r  _update_groupr   r   rN  r*   r   rV  ri  r  )ri   r!  channel_typert  r|  old_channelrW   rv   s           rj   parse_channel_updatez$ConnectionState.parse_channel_updatez  sb   TXXf-=-=>>d__
;,,,//
;;G""i00%%d+++6WMMM

^`jkkk*4<<))''
33G""i00t,,,4k7KKKKK

^`jkkkkkJJXZbcccccrl   gw.ChannelCreateEventc                   t          |d                   \  }}|#t                              d|d                    d S t          j        |d          }|                     |          }|; ||| |          }|                    |           |                     d|           d S t                              d|           d S )Nr   zBCHANNEL_CREATE referencing an unknown channel type %s. Discarding.rW   r4  guild_channel_createz?CHANNEL_CREATE referencing an unknown guild ID: %s. Discarding.)r"   r   rN  r*   r   rV  _add_channelr   )ri   r!  factorych_typerW   rv   r|  s          rj   parse_channel_createz$ConnectionState.parse_channel_create  s    +DL99?JJ[]abh]ijjjF*4<<))gEDAAAGw'''MM0':::::JJXZbcccFrl   gw.ChannelPinsUpdateEventc                   t          |d                   }	 |                     t          |d                             }|o|                    |          }n'# t          $ r d }|                     |          }Y nw xY w|t
                              d|           d S t          j        |	                    d                    }|| 
                    d||           d S | 
                    d||           d S )Nrt  rW   zFCHANNEL_PINS_UPDATE referencing an unknown channel ID: %s. Discarding.last_pin_timestampprivate_channel_pins_updateguild_channel_pins_update)rX   rV  r  r  rx  r   rN  r*   
parse_timer   r   )ri   r!  rt  rv   r|  last_pins         rj   parse_channel_pins_updatez)ConnectionState.parse_channel_pins_update  s   l+,,
	COOCZ(8$9$9::E
 B 6 6z B BGG	  	< 	< 	<E//
;;GGG	< ?JJ_aklllF#DHH-A$B$BCC=MM7(KKKKKMM5wIIIIIs   (A !A;:A;gw.ThreadCreateEventc                   t          |d                   }|                     |          }|t                              d|           d S t	          ||j        |          }|                    |j                  }|                    |           |si|	                    d          r<|j
        j        t          u r|j        |j
        _        |                     d|           d S |                     d|           d S d S )NrW   z=THREAD_CREATE referencing an unknown guild ID: %s. Discardingr4  newly_createdthread_createthread_join)rX   rV  r   rN  r5   r  
get_threadrs   _add_threadr   parentr  ForumChannelr  r   )ri   r!  rW   rv   rs  
has_threads         rj   parse_thread_createz#ConnectionState.parse_thread_create  s    tJ'((!%!:!:=JJVX`aaaFe5<dCCC%%fi00
&!!! 	5xx(( 5=*l::4:IFM1ov66666mV44444	5 	5rl   gw.ThreadUpdateEventc                v   t          |d                   }|                     |          }|t                              d|           d S t	          |          }|                    |j                  x|_        }|                     d|           |^t          j	        |          }|
                    |           |j        r|                    |           |                     d||           d S t          ||j        |          }|j        s|                    |           |                     d|           d S )NrW   z=THREAD_UPDATE referencing an unknown guild ID: %s. Discardingraw_thread_updatethread_updater4  r  )rX   rV  r   rN  RawThreadUpdateEventr  	thread_idrs  r   r  r  archived_remove_threadr5   r  r  )ri   r!  rW   rv   r  rs  olds          rj   parse_thread_updatez#ConnectionState.parse_thread_update  s2   tJ'(())=JJVX`aaaF"4((#..s}===
V)3///)F##CNN4    -$$V,,,MM/377777%u|$GGGF? *!!&)))MM-00000rl   gw.ThreadDeleteEventc                   t          |d                   }|                     |          }|t                              d|           d S t	          |          }|                    |j                  x|_        }|                     d|           |-|	                    |           |                     d|           d S d S )NrW   z=THREAD_DELETE referencing an unknown guild ID: %s. Discardingrh  rg  )
rX   rV  r   rN  ro  r  r  rs  r   r  )ri   r!  rW   rv   r  rs  s         rj   parse_thread_deletez#ConnectionState.parse_thread_delete  s    tJ'(())=JJVX`aaaF"4((#..s}===
V)3///  (((MM/622222 rl   gw.ThreadListSyncEventc                N  	 t          |d                   }|                     |          		t                              d|           d S 	 d |d         D             }	                    |          }n=# t
          $ r0 	j                                        }	                                 Y nw xY w	fd|	                    dg           D             }|	                    dg           D ]D}	 ||d                  }|
                    t          ||                     5# t
          $ r Y Aw xY w|                                D ]5}|                    |j        d           }||                     d	|           6|                                D ]}|                     d
|           d S )NrW   z@THREAD_LIST_SYNC referencing an unknown guild ID: %s. Discardingc                ,    h | ]}t          |          S r   rX   )r  is     rj   	<setcomp>z9ConnectionState.parse_thread_list_sync.<locals>.<setcomp>  s    ???a3q66???rl   channel_idsc                H    i | ]}|d                               |          S r  )_store_thread)r  drv   s     rj   
<dictcomp>z:ConnectionState.parse_thread_list_sync.<locals>.<dictcomp>  s-    TTTq1T7E//22TTTrl   rr  rm   rs   r  thread_remove)rX   rV  r   rN  _filter_threadsr  _threadsr  _clear_threadsr   ru   r6   r  r  rs   r   )
ri   r!  rW   r  previous_threadsrr  rw   rs  r  rv   s
            @rj   parse_thread_list_syncz&ConnectionState.parse_thread_list_sync  s   tJ'((!%!:!:=JJY[cdddF	B??4+>???K  %44[AA  	# 	# 	#  %~2244  """""		# UTTTDHHYPR<S<STTThhy"-- 	A 	AFA . ""<#?#?@@@@    
 nn&& 	5 	5F"&&vy$77C{mV444&--// 	3 	3FMM/62222	3 	3s$   A4 47B.-B.,D
D+*D+gw.ThreadMemberUpdatec                X   t          |d                   }|                     |          }|t                              d|           d S t          |d                   }|                    |          }|t                              d|           d S t          ||          }||_        d S )NrW   zDTHREAD_MEMBER_UPDATE referencing an unknown guild ID: %s. Discardingrs   zETHREAD_MEMBER_UPDATE referencing an unknown thread ID: %s. Discarding)rX   rV  r   rN  r  r6   r  )ri   r!  rW   rv   r  rs  rw   s          rj   parse_thread_member_updatez*ConnectionState.parse_thread_member_update  s    tJ'((!%!:!:=JJ]_ghhhFT
OO	#(#3#3I#>#>>JJ^`ijjjFfd++			rl   gw.ThreadMembersUpdatec                X   t          |d                   }|                     |          }|t                              d|           d S t          |d                   }|                    |          t          |          }t                              d|           d S fd|                    dg           D             }d |                    dg           D             }| j        }|D ]V}	|	j        |k    r,	                    |	           | 
                    d	|	           9|	_        | 
                    d
           W|D ]b}
|
|k    rD                    |
          }	| 
                    d|           |	| 
                    d|	           L| 
                    d           cd S )NrW   zETHREAD_MEMBERS_UPDATE referencing an unknown guild ID: %s. Discardingrs   zFTHREAD_MEMBERS_UPDATE referencing an unknown thread ID: %s. Discardingc                0    g | ]}t          |          S r   )r6   )r  r  rs  s     rj   r  z?ConnectionState.parse_thread_members_update.<locals>.<listcomp>5  s#    XXXQfa00XXXrl   added_membersc                ,    g | ]}t          |          S r   r  )r  xs     rj   r  z?ConnectionState.parse_thread_members_update.<locals>.<listcomp>6  s    QQQc!ffQQQrl   removed_member_idsthread_member_joinr  raw_thread_member_removethread_member_remover  )rX   rV  r   rN  r  RawThreadMembersUpdater   r
  rs   ru   r   r  _pop_member)ri   r!  rW   rv   r  r  r  r  r
  rw   	member_idrs  s              @rj   parse_thread_members_updatez+ConnectionState.parse_thread_members_update'  s   tJ'((!%!:!:=JJ^`hiiiFT
OO	#(#3#3I#>#>$T**>JJ_ajkkkFXXXX$((?TV:W:WXXXQQdhh7KR.P.PQQQ,# 	5 	5FyG##""6***2F;;;;"	mV4444+ 	7 	7IG##++I668#>>>%MM"8&AAAov6666	7 	7rl   gw.GuildMemberAddEventc                   |                      t          |d                             }|#t                              d|d                    d S t          |d         d                   }|                    |          }|t                              d|           d S t          |||           }| j        j        r|                    |           |j	        |xj	        dz  c_	        | 
                    d|           d S )	NrW   zAGUILD_MEMBER_ADD referencing an unknown guild ID: %s. Discarding.r   rs   zIGUILD_MEMBER_ADD referencing an already cached member ID: %s. Discarding.rv   r!  r&  r   member_join)rV  rX   r   rN  rr   r%   r   joinedru   _member_countr   )ri   r!  rv   r  rw   s        rj   parse_guild_member_addz&ConnectionState.parse_guild_member_addI  s    D$4 5 566=JJZ\`ak\lmmmFVT*++	!!),,JJbdmnnnFe$d;;;") 	&f%%%*1$mV,,,,,rl   gw.GuildMemberRemoveEventc                   |                      |d                   }t          ||          }|                     |j                  }|f|j        |xj        dz  c_        |                    |j                  }|2||_        |                    |           | 	                    d|           n!t                              d|d                    | 	                    d|           d S )Nr   r   member_removezDGUILD_MEMBER_REMOVE referencing an unknown guild ID: %s. Discarding.rW   raw_member_remove)r   RawMemberRemoveEventrV  rW   r  rr   rs   r   _remove_memberr   r   rN  )ri   r!  r   r  rv   rw   s         rj   parse_guild_member_removez)ConnectionState.parse_guild_member_remove^  s    tF|,,"4..--".##q(##%%dg..F!!$$V,,,ov666JJ]_cdn_oppp)3/////rl   gw.GuildMemberUpdateEventc                   |                      t          |d                             }|d         }t          |d                   }|#t                              d|d                    d S |                    |          }||t          j        |          }|                    |           |                    |          }|r#| 	                    d|d         |d                    | 	                    d||           d S | j
        j        rat          ||| 	          }|                    |          }|r#| 	                    d|d         |d                    |                    |           t                              d
|           d S )NrW   r   rs   zDGUILD_MEMBER_UPDATE referencing an unknown guild ID: %s. Discarding.rL  r   r   member_updater  zEGUILD_MEMBER_UPDATE referencing an unknown member ID: %s. Discarding.)rV  rX   r   rN  rr   r%   rO  r  _update_inner_userr   r   r  ru   )ri   r!  rv   r   r'  rw   rQ  rL  s           rj   parse_guild_member_updatez)ConnectionState.parse_guild_member_updateq  s|   D$4 5 566F|d4j//=JJ]_cdn_opppF!!'**f--JNN4    33D99K Mm[^[^LLLMM/:v>>>>>&- *TdCCC %77== QMM-QQPPP!!&)))JJ^`ghhhhhrl   gw.GuildEmojisUpdateEventc                                          t          |d                             #t                              d|d                    d S j        }|D ]"} j                            |j        d            #t          t           fd|d                             _         
                    d|j                   d S )NrW   zDGUILD_EMOJIS_UPDATE referencing an unknown guild ID: %s. Discarding.c                0                         |           S rp   )r7  r  rv   ri   s    rj   r  z;ConnectionState.parse_guild_emojis_update.<locals>.<lambda>  s    4+;+;E1+E+E rl   r`  guild_emojis_update)rV  rX   r   rN  r`  r   r  rs   tuplemapr   )ri   r!  before_emojisr6  rv   s   `   @rj   parse_guild_emojis_updatez)ConnectionState.parse_guild_emojis_update  s    D$4 5 566=JJ]_cdn_opppF" 	- 	-ELUXt,,,,S!E!E!E!E!EtH~VVWW+UM5<PPPPPrl   gw.GuildStickersUpdateEventc                                          t          |d                             #t                              d|d                    d S j        }|D ]"} j                            |j        d            #t          t           fd|d                             _         
                    d|j                   d S )NrW   zFGUILD_STICKERS_UPDATE referencing an unknown guild ID: %s. Discarding.c                0                         |           S rp   )r<  r  s    rj   r  z=ConnectionState.parse_guild_stickers_update.<locals>.<lambda>  s    T-?-?q-I-I rl   ra  guild_stickers_update)rV  rX   r   rN  ra  r   r  rs   r  r  r   )ri   r!  before_stickersr6  rv   s   `   @rj   parse_guild_stickers_updatez+ConnectionState.parse_guild_stickers_update  s    D$4 5 566=JJ_aefpaqrrrF.$ 	/ 	/ENux....s#I#I#I#I#I4PZK[\\]]-uou~VVVVVrl   gw.GuildAuditLogEntryCreatec           	        |                      t          |d                             }|#t                              d|d                    d S t	          | j        i i i i ||          }|                     d|           d S )NrW   zMGUILD_AUDIT_LOG_ENTRY_CREATE referencing an unknown guild ID: %s. Discarding.)usersintegrationsapp_commandsautomod_ruleswebhooksr!  rv   audit_log_entry_create)rV  rX   r   rN  r:   r   r   )ri   r!  rv   entrys       rj   "parse_guild_audit_log_entry_createz2ConnectionState.parse_guild_audit_log_entry_create  s    D$4 5 566=JJfhlmwhxyyyF+
 
 
 	.66666rl   rI   c                    |                      t          |d                             }|#t                              d|d                    d S t	          |||           }|                     d|           d S )NrW   zLAUTO_MODERATION_RULE_CREATE referencing an unknown guild ID: %s. Discarding.r  automod_rule_createrV  rX   r   rN  r8   r   ri   r!  rv   rules       rj   !parse_auto_moderation_rule_createz1ConnectionState.parse_auto_moderation_rule_create  u    D$4 5 566=JJegklvgwxxxFE>>>+T22222rl   c                    |                      t          |d                             }|#t                              d|d                    d S t	          |||           }|                     d|           d S )NrW   zLAUTO_MODERATION_RULE_UPDATE referencing an unknown guild ID: %s. Discarding.r  automod_rule_updater  r  s       rj   !parse_auto_moderation_rule_updatez1ConnectionState.parse_auto_moderation_rule_update  r  rl   c                    |                      t          |d                             }|#t                              d|d                    d S t	          |||           }|                     d|           d S )NrW   zLAUTO_MODERATION_RULE_DELETE referencing an unknown guild ID: %s. Discarding.r  automod_rule_deleter  r  s       rj   !parse_auto_moderation_rule_deletez1ConnectionState.parse_auto_moderation_rule_delete  r  rl   rJ   c                    |                      t          |d                             }|#t                              d|d                    d S t	          ||           }|                     d|           d S )NrW   zQAUTO_MODERATION_ACTION_EXECUTION referencing an unknown guild ID: %s. Discarding.r  automod_action)rV  rX   r   rN  r9   r   )ri   r!  rv   	executions       rj   &parse_auto_moderation_action_executionz6ConnectionState.parse_auto_moderation_action_execution  ss    D$4 5 566=JJjlpq{l|}}}F!t4888	&	22222rl   gw.GuildCreateEventc                    |                     d          du rH|                     t          |d                             }|d|_        |                    |           |S |                     |          S )Nr  Frs   )r   rV  rX   r  
_from_datar  r  s      rj   _get_create_guildz!ConnectionState._get_create_guild  sq    88M""e++ OOCT
OO44E $)!  &&&((...rl   c                    |j         | j        vS rp   )rs   r   r]  s     rj   is_guild_evictedz ConnectionState.is_guild_evicted  s    xt|++rl   .)r   rV   r   Literal[True]Optional[bool]c               
   K   d S rp   r   ri   rv   r   rV   s       rj   r  zConnectionState.chunk_guild  s      z}z}rl   Literal[False]r   c               
   K   d S rp   r   r  s       rj   r  zConnectionState.chunk_guild  s       (+srl   1Union[List[Member], asyncio.Future[List[Member]]]c                 K   |p| j         j        }| j                            |j                  }|^t          |j        |j        | j        | j        |          x| j        |j        <   }| 	                    |j        |j
                   d {V  |r|                                 d {V S |                                S )NrU   r  )r   r  r   r   rs   rT   rY   rZ   rV  r  rf   r   r   )ri   rv   r   rV   r   s        rj   r  zConnectionState.chunk_guild  s       707&**5844?7C%.$)T_E8 8 8 D *W ,,uxw},========= 	( '''''''!!###rl   floatc                6    t          d|j        pddz            S )Ng      @r   i'  )maxmember_countr]  s     rj   r  zConnectionState._chunk_timeout	  s    3+0qE9:::rl   c                d  K   |                      |          }	 t          j        |                     |          |           d {V  n5# t          j        $ r# t
                              d|j                   Y nw xY w|du r|                     d|           d S |                     d|           d S )Nr  z5Somehow timed out waiting for chunks for guild ID %s.Fr  r  )	r  r  r  r  r  r   r   rs   r   )ri   rv   r  r  s       rj   _chunk_and_dispatchz#ConnectionState._chunk_and_dispatch  s      %%e,,	\"4#3#3E#:#:GLLLLLLLLLLL# 	\ 	\ 	\LLPRWRZ[[[[[	\ %MM+U33333MM,.....s   /A	 	/A;:A;c                ^    	 | j                             |           dS # t          $ r Y dS w xY wNTF)r  
put_nowaitr  r]  s     rj   _add_ready_statez ConnectionState._add_ready_state  sI    	((/// 4  	 	 	55	s    
,,c                v   |                     d          }|du rd S |                     |          }|                     |          rd S |                     |          r*t	          j        |                     ||                     d S |du r|                     d|           d S |                     d|           d S )Nr  TFr  r  )r   r  r  r  r  r  r  r   )ri   r!  r  rv   s       rj   parse_guild_createz"ConnectionState.parse_guild_create"  s    hh}--$F&&t,,  '' 	F %%e,, 	 8 8 L LMMMF %MM+U33333MM,.....rl   gw.GuildUpdateEventc                    |                      t          |d                             }|Bt          j        |          }|                    |           |                     d||           d S t
                              d|d                    d S )Nrs   guild_updatez=GUILD_UPDATE referencing an unknown guild ID: %s. Discarding.)rV  rX   r  r  r   r   rN  )ri   r!  rv   	old_guilds       rj   parse_guild_updatez"ConnectionState.parse_guild_update8  s    DJ00	%((IT"""MM.)U;;;;;JJVX\]aXbcccccrl   gw.GuildDeleteEventc                   |                      t          |d                             #t                              d|d                    d S |                    dd          rd_        |                     d           d S | j        ,t          fd| j        D             | j	                  | _        | 
                               |                     d	           d S )
Nrs   z=GUILD_DELETE referencing an unknown guild ID: %s. Discarding.r  FTguild_unavailablec              3  2   K   | ]}|j         k    |V  d S rp   )rv   )r  r  rv   s     rj   	<genexpr>z5ConnectionState.parse_guild_delete.<locals>.<genexpr>Q  s/      EE#)u2D2D2D2D2D2DEErl   r   guild_remove)rV  rX   r   rN  r   r  r   r   r   r   rb  r  s     @rj   parse_guild_deletez"ConnectionState.parse_guild_deleteA  s    DJ00=JJVX\]aXbcccF88M5)) 	 !%EMM-u555F >%7<EEEEEEEdN_8 8 8DN 	5!!!ne,,,,,rl   gw.GuildBanAddEventc                   |                      t          |d                             }|^	 t          |d         |           }|                    |j                  p|}|                     d||           d S # t          $ r Y d S w xY wd S )NrW   r   r  
member_ban)rV  rX   r   rr   rs   r   r  )ri   r!  rv   r   rw   s        rj   parse_guild_ban_addz#ConnectionState.parse_guild_ban_addW  s     D$4 5 566;fT::: ))$'22:dlE6:::::	     s   A8 8
BBgw.GuildBanRemoveEventc                    |                      t          |d                             }|8d|v r6|                     |d                   }|                     d||           d S d S d S )NrW   r   member_unban)rV  rX   r   r   )ri   r!  rv   r   s       rj   parse_guild_ban_removez&ConnectionState.parse_guild_ban_removeg  sk    D$4 5 5664??4<00DMM.%66666 rl   gw.GuildRoleCreateEventc                *   |                      t          |d                             }|#t                              d|d                    d S |d         }t	          |||           }|                    |           |                     d|           d S )NrW   zBGUILD_ROLE_CREATE referencing an unknown guild ID: %s. Discarding.roler  guild_role_create)rV  rX   r   rN  r&   	_add_roler   )ri   r!  rv   	role_datar4  s        rj   parse_guild_role_createz'ConnectionState.parse_guild_role_createm  s    D$4 5 566=JJ[]abl]mnnnFL	%it<<<)400000rl   gw.GuildRoleDeleteEventc                D   |                      t          |d                             }|Tt          |d                   }	 |                    |          }|                     d|           d S # t          $ r Y d S w xY wt
                              d|d                    d S )NrW   role_idguild_role_deletezBGUILD_ROLE_DELETE referencing an unknown guild ID: %s. Discarding.)rV  rX   _remove_roler   r  r   rN  )ri   r!  rv   r;  r4  s        rj   parse_guild_role_deletez'ConnectionState.parse_guild_role_deletex  s    D$4 5 566$y/**G9))'22 1488888    
 JJ[]abl]mnnnnns   A. .
A<;A<gw.GuildRoleUpdateEventc                   |                      t          |d                             }|x|d         }t          |d                   }|                    |          }|Bt          j        |          }|                    |           |                     d||           d S d S t                              d|d                    d S )NrW   r4  rs   guild_role_updatezBGUILD_ROLE_UPDATE referencing an unknown guild ID: %s. Discarding.)rV  rX   get_roler  r  r   r   rN  )ri   r!  rv   r7  r;  r4  old_roles          rj   parse_guild_role_updatez'ConnectionState.parse_guild_role_update  s    D$4 5 566VI)D/**G>>'**D9T??Y'''18TBBBBB  
 JJ[]abl]mnnnnnrl   gw.GuildMembersChunkEventc                    t          |d                   }                     |          |                    dg           }d S  fd|                    dg           D             }t                              dt          |          |           |r_d |D             }|D ]P}|d         }|d         }|                    |          }	|	't          | 	          }
|	                    |
|           Q|                    d
d          dz   |                    d          k    }                     ||                    d          ||           d S )NrW   r   c                4    g | ]}t          |           S )r  r$   )r  rw   rv   ri   s     rj   r  z=ConnectionState.parse_guild_members_chunk.<locals>.<listcomp>  s(    fffF6F$???fffrl   rm   z0Processed a chunk for %s members in guild ID %s.c                8    i | ]}t          |j                  |S r   )r   rs   )r  rw   s     rj   r  z=ConnectionState.parse_guild_members_chunk.<locals>.<dictcomp>  s"    3a3a3avC	NNF3a3a3arl   r   rs   r  chunk_indexr   r   chunk_countrf   )	rX   rV  r   r   rN  r  r#   rP  r   )ri   r!  rW   r   rm   member_dictpresencer   r  rw   raw_presencer   rv   s   `           @rj   parse_guild_members_chunkz)ConnectionState.parse_guild_members_chunk  sd   tJ'(())HH["--	=FfffffdhhW`bdNeNefff

Es7||U]^^^ 		@3a3aY`3a3a3aK% @ @' J	$33%#9xt#T#T#TL++L$???88M1--1TXXm5L5LL##Hdhhw.?.?(SSSSSrl   gw.GuildIntegrationsUpdateEventc                    |                      t          |d                             }||                     d|           d S t                              d|d                    d S )NrW   guild_integrations_updatezJGUILD_INTEGRATIONS_UPDATE referencing an unknown guild ID: %s. Discarding.)rV  rX   r   r   rN  r  s      rj   parse_guild_integrations_updatez/ConnectionState.parse_guild_integrations_update  sc    D$4 5 566MM5u=====JJceijteuvvvvvrl   gw.IntegrationCreateEventc                   t          |d                   }|                     |          }|=t          |d                   \  }} |||          }|                     d|           d S t                              d|           d S )NrW   r   r!  rv   integration_createzCINTEGRATION_CREATE referencing an unknown guild ID: %s. Discarding.rX   rV  r/   r   r   rN  ri   r!  rW   rv   clsr  integrations          rj   parse_integration_createz(ConnectionState.parse_integration_create      tJ'(()))$v,77FC#4u555KMM.<<<<<JJ\^fgggggrl   gw.IntegrationUpdateEventc                   t          |d                   }|                     |          }|=t          |d                   \  }} |||          }|                     d|           d S t                              d|           d S )NrW   r   rU  integration_updatezCINTEGRATION_UPDATE referencing an unknown guild ID: %s. Discarding.rW  rX  s          rj   parse_integration_updatez(ConnectionState.parse_integration_update  r\  rl   gw.IntegrationDeleteEventc                    t          |d                   }|                     |          }|'t          |          }|                     d|           d S t                              d|           d S )NrW   raw_integration_deletezCINTEGRATION_DELETE referencing an unknown guild ID: %s. Discarding.)rX   rV  RawIntegrationDeleteEventr   r   rN  )ri   r!  rW   rv   r  s        rj   parse_integration_deletez(ConnectionState.parse_integration_delete  so    tJ'(())+D11CMM2C88888JJ\^fgggggrl   gw.WebhooksUpdateEventc                j   |                      t          |d                             }|#t                              d|d                    d S t	          j        |d          }|                    |          }||                     d|           d S t                              d|d                    d S )NrW   z?WEBHOOKS_UPDATE referencing an unknown guild ID: %s. Discardingrt  webhooks_updatezBWEBHOOKS_UPDATE referencing an unknown channel ID: %s. Discarding.)rV  rX   r   rN  r*   r   ri  r   )ri   r!  rv   rt  r|  s        rj   parse_webhooks_updatez%ConnectionState.parse_webhooks_update  s    D$4 5 566=JJXZ^_iZjkkkF,T<@@
##J//MM+W55555JJ[]abn]oppppprl   gw.StageInstanceCreateEventc                   |                      t          |d                             }|9t          || |          }||j        |j        <   |                     d|           d S t                              d|d                    d S )NrW   r4  stage_instance_createzCSTAGE_INSTANCE_CREATE referencing unknown guild ID: %s. Discarding.)rV  rX   r4   _stage_instancesrs   r   r   rN  ri   r!  rv   stage_instances       rj   parse_stage_instance_createz+ConnectionState.parse_stage_instance_create  s    D$4 5 566*dNNNN8FE">#45MM1>BBBBBJJ\^bcm^nooooorl   gw.StageInstanceUpdateEventc                   |                      t          |d                             }||j                            t          |d                             }|Bt	          j        |          }|                    |           |                     d||           d S t                              d|d                    d S t                              d|d                    d S )NrW   rs   stage_instance_updatezLSTAGE_INSTANCE_UPDATE referencing unknown stage instance ID: %s. Discarding.zCSTAGE_INSTANCE_UPDATE referencing unknown guild ID: %s. Discarding.)	rV  rX   rm  r   r  r  r   r   rN  )ri   r!  rv   ro  old_stage_instances        rj   parse_stage_instance_updatez+ConnectionState.parse_stage_instance_update  s    D$4 5 566"377DJHHN)%)Y~%>%>"&&t,,,57I>ZZZZZ

ikoptkuvvvvvJJ\^bcm^nooooorl   gw.StageInstanceDeleteEventc                J   |                      t          |d                             }|W	 |j                            t          |d                             }|                     d|           d S # t
          $ r Y d S w xY wt                              d|d                    d S )NrW   rs   stage_instance_deletezCSTAGE_INSTANCE_DELETE referencing unknown guild ID: %s. Discarding.)rV  rX   rm  r  r   r  r   rN  rn  s       rj   parse_stage_instance_deletez+ConnectionState.parse_stage_instance_delete  s    D$4 5 566G!&!7!;!;CT
OO!L!L 5~FFFFF    
 JJ\^bcm^nooooos   -A1 1
A?>A?!gw.GuildScheduledEventCreateEventc                   |                      t          |d                             }|8t          | |          }||j        |j        <   |                     d|           d S t                              d|d                    d S )NrW   r%  scheduled_event_createzDSCHEDULED_EVENT_CREATE referencing unknown guild ID: %s. Discarding.)rV  rX   r3   rm  rs   r   r   rN  ri   r!  rv   scheduled_events       rj   "parse_guild_scheduled_event_createz2ConnectionState.parse_guild_scheduled_event_create  s    D$4 5 566,4dCCCO:IE#O$67MM2ODDDDDJJ]_cdn_oppppprl   !gw.GuildScheduledEventUpdateEventc                   |                      t          |d                             }||j                            t          |d                             }|Bt	          j        |          }|                    |           |                     d||           d S t                              d|d                    d S t                              d|d                    d S )NrW   rs   scheduled_event_updatezNSCHEDULED_EVENT_UPDATE referencing unknown scheduled event ID: %s. Discarding.zDSCHEDULED_EVENT_UPDATE referencing unknown guild ID: %s. Discarding.)	rV  rX   rm  r   r  r  r   r   rN  )ri   r!  rv   r~  old_scheduled_events        rj   "parse_guild_scheduled_event_updatez2ConnectionState.parse_guild_scheduled_event_update  s    D$4 5 566#599#d4j//JJO*&*i&@&@#''---68K_]]]]]

kmqrvmwxxxxxJJ]_cdn_oppppprl   !gw.GuildScheduledEventDeleteEventc                F   |                      t          |d                             }|U|j                            t          |d                   t	          | |                    }|                     d|           d S t                              d|d                    d S )NrW   rs   r%  rf  zDSCHEDULED_EVENT_DELETE referencing unknown guild ID: %s. Discarding.)rV  rX   rm  r  r3   r   r   rN  r}  s       rj   "parse_guild_scheduled_event_deletez2ConnectionState.parse_guild_scheduled_event_delete  s    D$4 5 566#599#d4j//>`dkoKpKpKpqqOMM2ODDDDDJJ]_cdn_oppppprl   gw.GuildScheduledEventUserAddc                6   |                      t          |d                             }||j                            t          |d                             }|{|                     t          |d                             }|.|                    |           |                     d||           d S t                              d|d                    d S t                              d|d                    d S t                              d|d                    d S )NrW   guild_scheduled_event_idr'  scheduled_event_user_addzESCHEDULED_EVENT_USER_ADD referencing unknown user ID: %s. Discarding.zPSCHEDULED_EVENT_USER_ADD referencing unknown scheduled event ID: %s. Discarding.zFSCHEDULED_EVENT_USER_ADD referencing unknown guild ID: %s. Discarding.)	rV  rX   rm  r   r1  	_add_userr   r   rN  ri   r!  rv   r~  r   s        rj   $parse_guild_scheduled_event_user_addz4ConnectionState.parse_guild_scheduled_event_user_add  s   D$4 5 566#599#dC]>^:_:_``O*}}Si%9%9::##--d333MM"<otTTTTTJJfhlmvhwxxxxx

f34    
 JJ_aefpaqrrrrrrl    gw.GuildScheduledEventUserRemovec                @   |                      t          |d                             }||j                            t          |d                             }||                     t          |d                             }|3|                    |j                   |                     d||           d S t          	                    d|d                    d S t          	                    d|d                    d S t          	                    d|d                    d S )NrW   r  r'  scheduled_event_user_removezHSCHEDULED_EVENT_USER_REMOVE referencing unknown user ID: %s. Discarding.zSSCHEDULED_EVENT_USER_REMOVE referencing unknown scheduled event ID: %s. Discarding.zISCHEDULED_EVENT_USER_REMOVE referencing unknown guild ID: %s. Discarding.)
rV  rX   rm  r   r1  	_pop_userrs   r   r   rN  r  s        rj   'parse_guild_scheduled_event_user_removez7ConnectionState.parse_guild_scheduled_event_user_remove/  s   D$4 5 566#599#dC]>^:_:_``O*}}Si%9%9::##--dg666MM"?RVWWWWWJJikopykz{{{{{

i34    
 JJbdhisdtuuuuurl   "gw.GuildSoundBoardSoundCreateEventc                   t          |d                   }|                     |          }|?t          || |          }|                    |           |                     d|           d S t
                              d|           d S )NrW   r4  soundboard_sound_createzKGUILD_SOUNDBOARD_SOUND_CREATE referencing unknown guild ID: %s. Discarding.)rX   rV  r<   _add_soundboard_soundr   r   rN  )ri   r!  rW   rv   sounds        rj   #parse_guild_soundboard_sound_createz3ConnectionState.parse_guild_soundboard_sound_createB  s    tJ'(())#%t$GGGE''...MM3U;;;;;JJdfnooooorl   r  r<   "gw.GuildSoundBoardSoundUpdateEventc                    t          j         |          }|                    |           |                     d||           d S )Nsoundboard_sound_update)r  r  r   )ri   r  r!  	old_sounds       rj   !_update_and_dispatch_sound_updatez1ConnectionState._update_and_dispatch_sound_updateL  s@    Ie$$	d/EBBBBBrl   c                V   t          |d                   }|                     |          }|at          |d                   }|                    |          }||                     ||           d S t                              d|           d S t                              d|           d S )NrW   sound_idzKGUILD_SOUNDBOARD_SOUND_UPDATE referencing unknown sound ID: %s. Discarding.zKGUILD_SOUNDBOARD_SOUND_UPDATE referencing unknown guild ID: %s. Discarding.)rX   rV  get_soundboard_soundr  r   r   rN  ri   r!  rW   rv   r  r  s         rj   #parse_guild_soundboard_sound_updatez3ConnectionState.parse_guild_soundboard_sound_updateQ  s    tJ'(())4
+,,H..x88E 66udCCCCCjltuuuuuJJdfnooooorl   "gw.GuildSoundBoardSoundDeleteEventc                   t          |d                   }|                     |          }|vt          |d                   }|                    |          }|-|                    |           |                     d|           d S t
                              d|           d S t
                              d|           d S )NrW   r  soundboard_sound_deletezKGUILD_SOUNDBOARD_SOUND_DELETE referencing unknown sound ID: %s. Discarding.zKGUILD_SOUNDBOARD_SOUND_DELETE referencing unknown guild ID: %s. Discarding.)rX   rV  r  _remove_soundboard_soundr   r   r   rN  r  s         rj   #parse_guild_soundboard_sound_deletez3ConnectionState.parse_guild_soundboard_sound_delete^  s    tJ'(())4
+,,H..x88E ..u5557?????jltuuuuuJJdfnooooorl   #gw.GuildSoundBoardSoundsUpdateEventc                j   t          |d                   }|                     |          }|t                              d|           d S |d         D ]`}t          |d                   }|                    |          }||                     ||           Et                              d|           ad S )NrW   zLGUILD_SOUNDBOARD_SOUNDS_UPDATE referencing unknown guild ID: %s. Discarding.ri  r  zLGUILD_SOUNDBOARD_SOUNDS_UPDATE referencing unknown sound ID: %s. Discarding.)rX   rV  r   rN  r  r  r   )ri   r!  rW   rv   	raw_soundr  r  s          rj   $parse_guild_soundboard_sounds_updatez4ConnectionState.parse_guild_soundboard_sounds_updatel  s    tJ'(())=JJegopppF12 	w 	wI9Z011H..x88E 66uiHHHHkmuvvvv	w 	wrl   )GuildApplicationCommandPermissionsPayloadc                T    t          ||           }|                     d|           d S )Nr  "raw_app_command_permissions_update)#RawAppCommandPermissionsUpdateEventr   )ri   r!  r  s      rj   ,parse_application_command_permissions_updatez<ConnectionState.parse_application_command_permissions_update{  s/    1t4HHH:C@@@@@rl   gw.VoiceStateUpdateEventc                   |                      t          j        |d                    }t          j        |d          }| j        }| j        j        }|t          |d                   |k    rT|                     |j                  }|8|                    |          }t          j
        t          |d                     |                    ||          \  }}	}
|b|j        rA|(|j        r!|j        |k    r|                    |           n||                    |           |                     d||	|
           d S t$                              d|d                    d S d S )NrW   rt  r'  z)Voice Protocol voice state update handlerr   voice_state_updatezDVOICE_STATE_UPDATE referencing an unknown member ID: %s. Discarding.)rV  r*   r   r   r   rs   rX   r  on_voice_state_updater  r  r   _update_voice_stater   _voice_onlyr  ru   r   r   rN  )ri   r!  rv   rt  r  r
  r   r  rw   beforeafters              rj   parse_voice_state_updatez(ConnectionState.parse_voice_state_update  so    7j I IJJ,T<@@
'),4	?##w....ux88$ 66t<<D'(9$Ep(q(q(qrrr$)$=$=dJ$O$O!FFE!; 2!)e.?)FIQXDXDX,,V4444#/))&1112FFEJJJJJ

acghqcrsssss% rl   gw.VoiceChannelEffectSendEventc                    |                      t          |d                             }|*t          | ||          }|                     d|           d S t                              d|d                    d S )NrW   )r&  r!  rv   voice_channel_effectzJVOICE_CHANNEL_EFFECT_SEND referencing an unknown guild ID: %s. Discarding.)rV  rX   VoiceChannelEffectr   r   rN  )ri   r!  rv   effects       rj   parse_voice_channel_effect_sendz/ConnectionState.parse_voice_channel_effect_send  sw    D$4 5 566'dUKKKFMM0&99999JJceijteuvvvvvrl   gw.VoiceServerUpdateEventc                    t          |d                   }|                     |          }|:|                    |          }t          j        t          |d                     d S d S )NrW   z*Voice Protocol voice server update handlerr  )rX   r  on_voice_server_updater  r  r   )ri   r!  key_idr  r  s        rj   parse_voice_server_updatez)ConnectionState.parse_voice_server_update  sl    T*%&&##F++>,,T22D 1$=i j j jkkkkk >rl   gw.TypingStartEventc                T   t          |          }|                     |j                  |_        |                     |          \  }}|t          |t                    r5|j        -|j        |j        vr|j                            |j                   nV|T|	                    |j                  |_        |j        .|
                    d          }|rt          || |          |_        |j        "|                     d||j        |j                   |                     d|           d S )Nrw   )r!  r&  rv   typing
raw_typing)RawTypingEventr1  r'  r   r  r   rM   
recipientsr|   rr   r   r%   r   	timestamp)ri   r!  r  r|  rv   r"  s         rj   parse_typing_startz"ConnectionState.parse_typing_start  s   T""==--0066'9-- 	U8'CHG<N,N,N&--ch777" ++CK888#"&((8"4"4K" U#){$e#T#T#Tx#h3=IIIlC(((((rl   gw.EntitlementCreateEventc                T    t          ||           }|                     d|           d S )Nr  entitlement_creater   r   ri   r!  entitlements      rj   parse_entitlement_createz(ConnectionState.parse_entitlement_create  /    !t4888*K88888rl   gw.EntitlementUpdateEventc                T    t          ||           }|                     d|           d S )Nr  entitlement_updater  r  s      rj   parse_entitlement_updatez(ConnectionState.parse_entitlement_update  r  rl   gw.EntitlementDeleteEventc                T    t          ||           }|                     d|           d S )Nr  entitlement_deleter  r  s      rj   parse_entitlement_deletez(ConnectionState.parse_entitlement_delete  r  rl   gw.PollVoteActionEventc                   t          |          }|                     d|           |                     |j                  }|                     |j                  }|r|                    |j                  }n|                     |j                  }|r`|r`| 	                    ||j
        d|j        | j        k              }|r5|                     d||                    |j
                             d S d S d S d S )Nraw_poll_vote_addTpoll_vote_addRawPollVoteActionEventr   r  r>  rV  rW   rr   r'  r1  r  r  r
  
get_answerri   r!  r  r  rv   r   r  s          rj   parse_message_poll_vote_addz+ConnectionState.parse_message_poll_vote_add  s   $T**)3///##CN33-- 	.##CK00DD==--D 	Ut 	U++GS]D#+Y]YeJeffD UotT__S]5S5STTTTT	U 	U 	U 	UU Url   c                   t          |          }|                     d|           |                     |j                  }|                     |j                  }|r|                    |j                  }n|                     |j                  }|r`|r`| 	                    ||j
        d|j        | j        k              }|r5|                     d||                    |j
                             d S d S d S d S )Nraw_poll_vote_removeFpoll_vote_remover  r  s          rj   parse_message_poll_vote_removez.ConnectionState.parse_message_poll_vote_remove  s   $T**,c222##CN33-- 	.##CK00DD==--D 	Xt 	X++GS]E3;Z^ZfKfggD X0$8V8VWWWWW	X 	X 	X 	XX Xrl   gw.SubscriptionCreateEventc                T    t          ||           }|                     d|           d S )Nr  subscription_creater=   r   ri   r!  subscriptions      rj   parse_subscription_createz)ConnectionState.parse_subscription_create  /    #T:::+\:::::rl   gw.SubscriptionUpdateEventc                T    t          ||           }|                     d|           d S )Nr  subscription_updater  r  s      rj   parse_subscription_updatez)ConnectionState.parse_subscription_update  r  rl   gw.SubscriptionDeleteEventc                T    t          ||           }|                     d|           d S )Nr  subscription_deleter  r  s      rj   parse_subscription_deletez)ConnectionState.parse_subscription_delete  r  rl   r?   Optional[Union[User, Member]]c                    t          |t          t          t          f          r|j                            |          S |                     |          S rp   )r   r  r5   r  rv   rr   r1  )ri   r|  r'  s      rj   r!  z"ConnectionState._get_reaction_user  sC    gV\BCC 	5=++G444}}W%%%rl   PartialEmojiPayloadUnion[Emoji, PartialEmoji, str]c                    t          j        |d          }|s|d         S 	 | j        |         S # t          $ r5 t	          j        | |                    dd          ||d                   cY S w xY w)Nrs   nameanimatedF)r  rs   r  )r*   r   r   r  r   
with_stater   )ri   r!  r5  s      rj   get_emoji_from_partial_payloadz.ConnectionState.get_emoji_from_partial_payload   s    *466 	 <	<)) 	 	 	**e44&\	     	s   . <A-,A-r6  r   c                b    |j         }|s|j        S 	 | j        |         S # t          $ r |cY S w xY wrp   )rs   r  r   r  )ri   r6  r5  s      rj   r  z&ConnectionState._upgrade_partial_emoji  sO    8 	:	<)) 	 	 	LLL	s    .. Optional[Union[Channel, Thread]]c                    |d S |                      |          }||S | j        D ]}|                    |          }||c S d S rp   )rx  r   r  )ri   rs   pmrv   r|  s        rj   ri  zConnectionState.get_channel  sk    :4&&r**>I[ 	 	E,,R00G" #	 	rl   MessagePayloadc               &    t          | ||          S )N)r&  r|  r!  r   )ri   r|  r!  s      rj   create_messagezConnectionState.create_message'  s    T7>>>>rl   Optional[SoundboardSound]c                X    |d S | j         D ]}|                    |          }||c S d S rp   )r   _resolve_soundboard_sound)ri   rs   rv   r  s       rj   r  z$ConnectionState.get_soundboard_sound*  sN    :F[ 	 	E33B77E  !	 	rl   )r   r   r   r   r   r   r   rA   r   r   r_   r`   )r_   r^   r   )r   r^   r_   r`   )
rW   rX   rf   r   rm   rn   r   r^   r_   r`   )rY   r   r_   r`   )r   r   r   r   r   r   r_   r`   )r_   r  )r_   r,   )r_   r  )rW   r  r_   r  )rW   rX   r   rB   r_   r`   )rW   rX   r_   r`   )r  rC   r_   r`   )r!  r"  rV   r^   r_   r   )r!  r"  r_   r   )rs   rX   r_   r/  )rv   r   r!  r2  r_   r   )rv   r   r!  r8  r_   r7   rp   )r=  r2   r>  r  r_   r`   )r>  rX   r_   rB  )r   rF  r_   r`   )r_   rM  )r_   rP  )rW   r  r_   rT  )rW   rX   r!  rX  r_   r   )rv   r   r_   r`   )r_   rc  )r_   re  )r_   rg  )r5  r  r_   rk  )r:  r  r_   rn  )r_   rq  )rt  r  r_   ru  )r'  r  r_   ry  )r|  r>   r_   r`   )r!  r  r_   rM   )r  r  r_   r  )r!  r  r_   r   rv   r   r_   r^   )r!  r  rW   r  r_   r  )F)
r  r    r  rX   r  r^   r  r^   r_   r  )r  r    r  r  r_   r`   r  r   F)rW   rX   r  r   r  rX   r   r^   rf   r   r_   r`   )rv   r   r  r   r  rX   r  r  rV   r^   r   r^   r_   rn   r!  r  r_   r`   r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r%  r_   r`   )r!  r-  r_   r`   )r!  r4  r_   r`   )r!  r;  r_   r`   )r!  rI  r_   r`   )r!  rS  r_   r`   )r!  rV  r_   r`   )r!  r_  r_   r`   )r!  rc  r_   r`   )r!  ru  r_   r`   )r!  r~  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  rI   r_   r`   )r!  rJ   r_   r`   )r!  r  r_   r   )rv   r   r   r
  rV   r  r_   rn   )rv   r   r   r  rV   r  r_   r   )rv   r   r   r^   rV   r  r_   r  )rv   r   r_   r  )r!  r  r_   r`   )r!  r  r_   r`   )r!  r#  r_   r`   )r!  r*  r_   r`   )r!  r.  r_   r`   )r!  r2  r_   r`   )r!  r9  r_   r`   )r!  r?  r_   r`   )r!  rE  r_   r`   )r!  rO  r_   r`   )r!  rS  r_   r`   )r!  r]  r_   r`   )r!  ra  r_   r`   )r!  rf  r_   r`   )r!  rj  r_   r`   )r!  rq  r_   r`   )r!  rv  r_   r`   )r!  rz  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r  r<   r!  r  )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  )r!  r  r_   r`   )r!  r  )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r!  r  r_   r`   )r|  r?   r'  rX   r_   r  )r!  r  r_   r  )r6  r   r_   r  )rs   r  r_   r  )r|  r?   r!  r	  r_   r    )rs   r  r_   r  )r   r   r   r   __annotations__rk   propertyr   r   r   r   r   r  r  r
  r   r   r  r  r  r   r   r   r.  r1  r7  r<  rA  rE  rJ  rL  rO  r   rV  r[  r^  rb  r`  ra  ri  rm  rp  rs  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r,  r3  r:  rH  rR  rU  r]  rb  rt  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r   r  r  r  r  r  r"  r)  r-  r1  r8  r>  rD  rN  rR  r[  r`  re  ri  rp  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r  r  ri  r  r  r   rl   rj   r   r      s         >7777++++====_ _ _ _H 1 1 1 X1	, 	, 	, 	, &* < < < < < <(
* 
* 
* 
** * * *" " " "( ( ( ( # # # X#    X
 2 2 2 X21 1 1 1. . . .0 0 0 0    Y] 	 	 	 	 	 	 dh + + + + + ++ + + +# # # #      
4 4 4 4 4D D D D3 3 3 36 6 6 6 1 1 1 X1 : : : X:* * * * cg q q q q q q' ' ' '	 	 	 	 : : : X: < < < X<    X* * * *. . . . D D D XD	 	 	 	; ; ; ;
K 
K 
K 
K   G G G Gj j j j   
n n n n
 FJb b b b b    < < < <, QVfquf f f f f f   *.$ .$ .$ .$`D D D D2! ! ! !	1 	1 	1 	1) ) ) )+ + + +T T T T8> > > >4D D D DE E E E$D D D D 2 2 2 2&= = = =0$ $ $ $/ / / // / / /b b b b*d d d d6   "J J J J*5 5 5 5&1 1 1 1,3 3 3 3"3 "3 "3 "3H     7  7  7  7D- - - -*0 0 0 0&i i i i:Q Q Q QW W W W7 7 7 7$3 3 3 33 3 3 33 3 3 33 3 3 3/ / / /, , , , GJdg}}}}} X}69SV+ + + + + X+
 -1$$ $ $ $ $ $; ; ; ;/ / /   / / / /,d d d d- - - -,; ; ; ; 7 7 7 7	1 	1 	1 	1o o o oo o o oT T T T2w w w wh h h hh h h hh h h hq q q qp p p pp p p p
p 
p 
p 
pq q q qq q q qq q q qs s s s&v v v v&p p p pC C C C
p p p pp p p pw w w wA A A At t t t4w w w wl l l l) ) ) ),9 9 9 99 9 9 99 9 9 9U U U U$X X X X$; ; ; ;; ; ; ;; ; ; ;& & & &
   "      ? ? ? ?     rl   r   c                  h     e Zd Zd# fdZd$dZ	 	 	 d%dddd&dZd'dZd$dZd(dZd)d Z	d*d"Z
 xZS )+AutoShardedConnectionStater   r   r   r_   r`   c                d     t                      j        |i | g | _        i | _        i | _        d S rp   )superrk   	shard_ids_ready_tasks_ready_states)ri   r   r   r  s      rj   rk   z#AutoShardedConnectionState.__init__5  s<    $)&)))24;=>@rl   c                   | j         D ]}|j        s
|                     |j        j                  }|W||j        urN|j        j        }|                    |          pt          | ||j                  }|                    ||           d S )N)r&  rs   rW   )r   rv   rV  rs   r|  r  r  _rebind_cached_references)ri   r  	new_guildrt  r|  s        rj   _update_message_referencesz5AutoShardedConnectionState._update_message_references=  s    > 
	B 
	BC9 	55I$#))C)C [^
#44Z@@ DV:	E E E --iAAA
	B 
	Brl   r  r   FN)rY   rf   rW   rX   r  r   r  r   r^   rY   r  rf   r   c               x   K   |                      ||          }|                    |||||           d {V  d S )N)rY   r  r  )ri   rW   r  r  r   rY   rf   r  s           rj   r  z"AutoShardedConnectionState.chunkerK  sX         H ==Ui_deeeeeeeeeeerl   rv   r   c                t    	 | j         |j                                     |           dS # t          $ r Y dS w xY wr  )r  rY   r  r  r]  s     rj   r  z+AutoShardedConnectionState._add_ready_stateX  sP    	u~.99%@@@ 4  	 	 	55	s   %) 
77c                   K   t          j        | j                                          d {V  d | _        i | _        |                     d           |                     d           d S )Nr  )r  gatherr  r  r   r  r   r   s    rj   r  z'AutoShardedConnectionState._delay_readya  st      nd/668899999999   	7###grl   c                  K   	 g }	 	 t          j        | j        |                                         | j                   d {V }|                     |          r5|                     |d           d {V }|                    ||f           nL|j        du r| 	                    d|           n,| 	                    d|           n# t           j
        $ r Y nw xY w|D ]\  }}|                     |          }	 t          j        ||           d {V  n;# t           j
        $ r) t                              d|j        |j                   Y nw xY w|j        du r| 	                    d|           | 	                    d|           	 | j        |= n# t           $ r Y nw xY w| 	                    d|           d S # t           j        $ r Y d S w xY w)	NTr  Fr  r  r  r  shard_ready)r  r  r  r   r   r  r  r|   r  r   r  r  r   r   rY   rs   r  r  )ri   rY   r  rv   r   r  s         rj   _delay_shard_readyz-AutoShardedConnectionState._delay_shard_readyl  sp     *	3F??")"243Eh3O3S3S3U3U_c_w"x"x"xxxxxxxE 11%88 ?'+'7'7E'7'J'J!J!J!J!J!J!Jufo6666 ,55 MM*;UCCCC MM,>>>> +   E?" "( 7 7v--e44x!*67CCCCCCCCCCC+ x x xLL!\^c^lnsnvwwwwwx $--MM"3U;;;;MM,6666&x00    MM-22222	 % 	 	 	DD	s}   F; >C BF; CF; C F; :DF; 5EF; E:F; 
F F; 
F F; F  F; ;GGr!  r  c                   | j         | j                                          |d         d         }|| j        v r4| j        |                                          |                     |           || j        vrt          j                    | j        |<   |  t          | |d                   x| _        }|| j	        |j
        <   | j        S	 |d         }t          j        |d          | _        t          j        |d                   | _        n# t"          $ r Y nw xY w|d         D ]}|                     |           | j        r|                                  |                     d	           |                     d
|           t          j        |                     |                    | j        |<   t1          | j                  t1          | j                  k    r-t          j        |                                           | _         d S d S )Nshardr   r   r%  r  rs   r  r   r  shard_connect)r   r  r  r   r  r  r  r   r   r   rs   r   r*   r   r+   r  r   r  r  r   r  r   r  r&  r  r  r  )ri   r!  rY   r   r  r  s         rj   r  z&AutoShardedConnectionState.parse_ready  s   '##%%%=#t(((h'..000%%h///4---+2=??Dx('%DtF|DDDD	D#DG&n"=1 6;5L[Z^5_5_#;K;WXcdkXl;m;m&&	     x. 	2 	2J%%j1111> 	.++---i   ox000&-&9$:Q:QRZ:[:[&\&\(# t !!S%8%888&243D3D3F3FGGD 98s   D	 	
DDr  c                h    |                      d           |                      d|d                    d S )Nr  shard_resumed__shard_id__r  r-  s     rj   r  z(AutoShardedConnectionState.parse_resumed  s3    i   otN';<<<<<rl   )r   r   r   r   r_   r`   r   r  )rW   rX   r  r   r  rX   r   r^   rY   r  rf   r   r_   r`   r  )rY   rX   r_   r`   r  r  )r   r   r   rk   r  r  r  r  r&  r  r  __classcell__)r  s   @rj   r  r  4  s       A A A A A AB B B B" f #'#f f f f f f   	 	 	 	+3 +3 +3 +3Z(H (H (H (HT= = = = = = = =rl   r  )r   r   r   r   r_   r   )__doc__
__future__r   r  collectionsr   r   r  loggingr  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   rc   rv   r   r   r   skur   r   r   r   r6  r   mentionsr   partial_emojir   r  r    r|  r"   
raw_modelsr   r#   rw   r%   r4  r&   enumsr'   r(   r)   r  r*   r  r+   r,   r-   r\  r.   r  r/   interactionsr0   ui.viewr1   r2   r~  r3   ro  r4   rr  r5   r6   r;  r7   automodr8   r9   
audit_logsr:   _typesr;   
soundboardr<   r  r=   abcr>   r?   r@   r   rA   voice_clientrB   rP   rC   ui.itemrD   
ui.dynamicrE   r  rF   rG   r  rH   types.automodrI   rJ   types.snowflakerK   types.activityrL   ActivityPayloadtypes.channelrM   r  
types.userUserPayloadrN   PartialUserPayloadtypes.emojir2  r  types.stickerr8  types.guildr  types.messager	  rO   r  typesgwtypes.commandrQ   r  rR   r  ChannelrT   	getLoggerr   r   r   r   r  r   rl   rj   <module>rR     s   0 # " " " " "  * * * * * * * *                                     $   				       " " " " " "       " " " " " " " "       % % % % % % ' ' ' ' ' '           % % % % % %     - - - - - -             0 0 0 0 0 0 0 0 0 0       > > > > > > > > > >       . . . . . . % % % % % % ( ( ( ( ( ( ( ( + + + + + + ) ) ) ) ) ) ) ) ) ) ) ) ) ) ! ! ! ! ! ! / / / / / / / / % % % % % %       ' ' ' ' ' ' & & & & & &  F######++++++######      ++++++))))))''''''55555555PPPPPPPP******;;;;;;<<<<<<RRRRRRRRWWWWWWWWBBBBBB222222aaaaaaaa$$$$$$nnnnnnAL.2DDEG// // // // // // // //d w""= = = =C C C C Cgg& C C CL4Q= Q= Q= Q= Q=!9 Q= Q= Q= Q= Q=rl   