+
    O|jÿ  ã                  óÒ   € ^ RI Ht ^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ^RI
HtHt ^RIHt ^RIHtHt . ROt]P&                   ! R	 R4      4       tR
 R ltR R lt]3R R lltR# )é    )ÚannotationsN)ÚHeaders)ÚInvalidProxy)Úbuild_authorization_basicÚ
build_host)Ú
USER_AGENT)ÚDELIMSÚWebSocketURIÚProxyc                  ól   € ] tR t^t$ RtR]R&   R]R&   R]R&   RtR]R	&   RtR]R
&   ]R R l4       t	Rt
R# )r   aÈ  
Proxy address.

Attributes:
    scheme: ``"socks5h"``, ``"socks5"``, ``"socks4a"``, ``"socks4"``,
        ``"https"``, or ``"http"``.
    host: Normalized to lower case.
    port: Always set even if it's the default.
    username: Available when the proxy address contains `User Information`_.
    password: Available when the proxy address contains `User Information`_.

.. _User Information: https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1

ÚstrÚschemeÚhostÚintÚportNú
str | NoneÚusernameÚpasswordc               ó   € V ^8„  d   QhRR/# )é   Úreturnztuple[str, str] | None© )Úformats   "ÚIC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\websockets/proxy.pyÚ__annotate__ÚProxy.__annotate__)   s   € ÷ .ñ .Ð1ñ .ó    c                	ór   € V P                   f   R # V P                  f   Q hV P                   V P                  3# )N)r   r   )Úselfs   &r   Ú	user_infoÚProxy.user_info(   s2   € à�=‰=Ò ÙØ�}‰}Ò(Ð(Ð(Ø—‘˜tŸ}™}Ð-Ð-r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r   Úpropertyr    Ú__static_attributes__r   r   r   r   r      s>   ‡ ñð ƒKØ
ƒIØ
ƒIØ€HˆjÓØ€HˆjÓàô.ó ô.r   c               ó    € V ^8„  d   QhRRRR/# )r   Úproxyr   r   r   r   )r   s   "r   r   r   0   s   € ÷ /9ñ /9�sð /9˜uñ /9r   c                ó˜  € \         P                  P                  V 4      pVP                  R9  d   \	        V RVP                   R24      hVP
                  f   \	        V R4      hVP                  R9  d   \	        V R4      hVP                  R8w  d   \	        V R4      hVP                  R8w  d   \	        V R4      hVP                  pVP
                  pVP                  ;'       g    VP                  R8X  d   R	M^PpVP                  pVP                  pVe   Vf   \	        V R
4      h V P                  R4       \#        W#WEV4      #   \         dw    TP                  R4      P                  4       pTeQ   Tf   Q h\         P                  P                  T\         R7      p\         P                  P                  T\         R7      p L�i ; i)z�
Parse and validate a proxy.

Args:
    proxy: proxy.

Returns:
    Parsed proxy.

Raises:
    InvalidProxy: If ``proxy`` isn't a valid proxy.

Úhttpszscheme z isn't supportedzhostname isn't providedÚ zpath is meaninglesszquery is meaninglesszfragment is meaninglessi»  z"username provided without passwordÚasciiÚidna)Úsafe)Úsocks5hÚsocks5Úsocks4aÚsocks4r-   Úhttp)r.   Ú/)ÚurllibÚparseÚurlparser   r   ÚhostnameÚpathÚqueryÚfragmentr   r   r   ÚencodeÚUnicodeEncodeErrorÚdecodeÚquoter	   r   )r+   Úparsedr   r   r   r   r   s   &      r   Úparse_proxyrD   0   s—  € ô �\‰\×"Ñ" 5Ó)€FØ‡}�}ÐWÔWÜ˜5 G¨F¯M©M¨?Ð:JÐ"KÓLÐLØ‡�ÒÜ˜5Ð";Ó<Ð<Ø‡{�{˜)Ô#Ü˜5Ð"7Ó8Ð8Ø‡|�|�rÔÜ˜5Ð"8Ó9Ð9Ø‡�˜"ÔÜ˜5Ð";Ó<Ð<à�]‰]€FØ�?‰?€DØ�;‰;×CÐC &§-¡-°7Ô":™3À€DØ�‰€HØ�‰€Hð Ò Ò 0Ü˜5Ð"FÓGÐGð	AØ�‰�WÔô �˜t¨xÓ8Ð8øô ô Að �{‰{˜6Ó"×)Ñ)Ó+ˆØÒØÒ'Ð'Ð'Ü—|‘|×)Ñ)¨(¼Ð)Ó@ˆHÜ—|‘|×)Ñ)¨(¼Ð)Ó@ˆHùðAús   Ä*E ÅA>G	ÇG	c               ó    € V ^8„  d   QhRRRR/# )r   Úurir
   r   r   r   )r   s   "r   r   r   b   s   € ÷ !ñ !�<ð ! Jñ !r   c                ó˜  € \         P                  P                  V P                   RV P                   24      '       d   R# \         P                  P                  4       pV P                  '       d   . ROpM. ROpV FJ  pVP                  V4      pVf   K  VR8X  d(   VP                  R4      '       d   RVR,          ,           pVu # 	  R# )	zM
Return the proxy to use for connecting to the given WebSocket URI, if any.

Ú:NÚsockszhttp://z
socks5h://:é   NN)ÚwssrI   r-   )ÚwsrI   r-   r6   )	r8   ÚrequestÚproxy_bypassr   r   Ú
getproxiesÚsecureÚgetÚ
startswith)rF   ÚproxiesÚschemesr   r+   s   &    r   Ú	get_proxyrU   b   s¤   € ô
 ‡~�~×"Ñ" c§h¡h Z¨q°·±°
Ð#;×<Ò<Ùô �n‰n×'Ñ'Ó)€GØ
‡z‡z€zÚ+‰â2ˆãˆØ—‘˜FÓ#ˆØÔØ˜Ô  U×%5Ñ%5°i×%@Ò%@Ø$ u¨R¥yÕ0�ØŠLñ ñ r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r+   r   Úws_urir
   Úuser_agent_headerr   r   Úbytesr   )r   s   "r   r   r   †   s6   € ÷ Iñ IØðIàðIð "ðIð ñ	Ir   c                ó°  € \        VP                  VP                  VP                  R R7      p\	        4       p\        VP                  VP                  VP                  4      VR&   Ve   W$R&   V P
                  e4   V P                  f   Q h\        V P
                  V P                  4      VR&   RV R2P                  4       VP                  4       ,           # )T)Úalways_include_portÚHostz
User-AgentzProxy-AuthorizationzCONNECT z HTTP/1.1
)
r   r   r   rP   r   r   r   r   r?   Ú	serialize)r+   rW   rX   r   Úheaderss   &&&  r   Úprepare_connect_requestr_   †   s³   € ô
 �f—k‘k 6§;¡;°·±ÐSWÔX€DÜ‹i€GÜ  §¡¨f¯k©k¸6¿=¹=ÓI€GˆF�OØÒ$Ø 1�ÑØ‡~�~Ò!Ø�~‰~Ò)Ð)Ð)Ü)BØ�N‰N˜EŸN™Nó*
ˆÐ%Ñ&ð �d�V˜=Ð)×0Ñ0Ó2°W×5FÑ5FÓ5HÕHÐHr   )rU   rD   r   )Ú
__future__r   ÚdataclassesÚurllib.parser8   Úurllib.requestÚdatastructuresr   Ú
exceptionsr   r^   r   r   Úhttp11r   rF   r	   r
   Ú__all__Ú	dataclassr   rD   rU   r_   r   r   r   Ú<module>ri      sc   ðÝ "ã Û Û å #Ý $ß :Ý ß %ò 0€ð ×Ñ÷.ð .ó ð.õ</9õd!ðN %/÷Iñ Ir   