§
    dŠtjØø  ã                   óT  — d dl Z d dlZd dlZd dlmZ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mZmZmZmZmZmZmZ d dlmZmZmZ d dlZd d	lmZmZm Z  d d
l!m"Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC  ed¦  «        duZDerd dlEmFZFmGZG d dlHmIZI d dlJmKZK ddddddœZL eMe¦  «        ZN eMe¦  «        ZO eMd¦  «        ZP e jQ        de jR        ¦  «        ZS e jQ        d¦  «        ZT e jQ        d¦  «        ZU ed¦  «        ZVejW        dk    rd dlmXZX neZX G d„ de¦  «        ZYeYjZ        Z[ G d „ d!e¦  «        Z\ G d"„ d#ed$¬%¦  «        Z]d&eVd'eVfd(„Z^d)e_d'e_fd*„Z`e
d+e_d'd,fd-„¦   «         Zae
d+e_d'd,fd.„¦   «         Zbe
d/e_d0e_d1e_dz  d2e_dz  d3e_d4ecdz  d)e_d5e_d6e_d'd,fd7„¦   «         Zdd/e_d8e_d)e_d9e_d6e_d'd,fd:„Ze e
ee¦  «        Zfe^ G d;„ d,¦  «        ¦   «         Zgd<Zhd=Zi e
eh¦  «        d>e_d'e_fd?„¦   «         aj e
eh¦  «        d3e_d'e_fd@„¦   «         ak e
ei¦  «        d3e_dAeld'e_fdB„¦   «         ame^dLdC„¦   «         Zne^d'e\fdD„¦   «         Zoe^ehehe[e[e[dEœdFecdz  dGecdz  dHecdz  eYz  dIecdz  eYz  dJecdz  eYz  d'dfdK„¦   «         ZpdS )Mé    N)ÚMappingÚSequence)ÚEnum)Ú
_CacheInfoÚ	lru_cache)Ú	find_spec)Ú
ip_address)ÚTYPE_CHECKINGÚAnyÚNoReturnÚ	TypedDictÚTypeVarÚUnionÚcastÚoverload)ÚSplitResultÚscheme_charsÚuses_relative)Ú	MultiDictÚMultiDictProxyÚistr)Úunder_cached_propertyé   )ÚUSES_AUTHORITYÚSplitURLTypeÚmake_netlocÚquery_to_pairsÚsplit_netlocÚ	split_urlÚunsplit_result)Únormalize_pathÚnormalize_path_segments)ÚQueryÚQueryVariableÚSimpleQueryÚget_str_queryÚget_str_query_from_iterableÚ$get_str_query_from_sequence_iterable)ÚFRAGMENT_QUOTERÚFRAGMENT_REQUOTERÚPATH_QUOTERÚPATH_REQUOTERÚPATH_SAFE_UNQUOTERÚPATH_UNQUOTERÚQS_UNQUOTERÚQUERY_QUOTERÚQUERY_REQUOTERÚQUOTERÚREQUOTERÚUNQUOTERÚhuman_quoteÚpydantic_core)ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)ÚJsonSchemaValue)Ú
CoreSchemaéP   i»  é   )ÚhttpÚhttpsÚwsÚwssÚftpa<  
        # any character not in the unreserved or sub-delims sets, plus %
        # (validated with the additional check for pct-encoded sequences below)
        [^a-z0-9\-._~!$&'()*+,;=%]
    |
        # % only allowed if it is part of a pct-encoded
        # sequence of 2 hex digits.
        %(?![0-9a-f]{2})
    ug   [Â­Í�Øœá…Ÿ-á… áž´-ážµá †á ‹-á �â€‹-â€�â€ª-â€®â� -â�¯ã…¤ï¸€-ï¸�ï»¿ï¾ ï¿°-ï¿¸ð›² -ð›²£ð�…³-ð�…ºó €€-ó ¿¿]z[\x00-\x1f\x7f]Ú_T)é   é   )ÚSelfc                   ó   — e Zd ZdZdZdS )ÚUndefinedTypez4Singleton type for use with not set sentinel values.r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
_singleton© ó    úG/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/yarl/_url.pyrG   rG   —   s   € € € € € Ø>Ð>à€J€J€JrN   rG   c                   óF   — e Zd ZU dZeed<   eed<   eed<   eed<   eed<   dS )Ú	CacheInfozHost encoding cache.Úidna_encodeÚidna_decoder	   Úhost_validateÚencode_hostN)rH   rI   rJ   rK   r   Ú__annotations__rM   rN   rO   rQ   rQ       sT   € € € € € € ØÐàÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑÐÐrN   rQ   c                   ó  — e Zd ZU eed<   ded<   eed<   eed<   eed<   eed<   eed<   ed	z  ed
<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   ed	z  ed<   eed<   eed<   ee	eef                  ed<   ded<   eed<   eed<   eed<   eed<   eed<   eed<   e	edf         ed <   e	edf         ed!<   ded"<   eed#<   eed$<   eed%<   eed&<   e	edf         ed'<   e	edf         ed(<   d	S ))Ú_InternalURLCacheÚ_valÚURLÚ_originÚabsoluteÚhashÚschemeÚraw_authorityÚ	authorityNÚraw_userÚuserÚraw_passwordÚpasswordÚraw_hostÚhostÚhost_subcomponentÚhost_port_subcomponentÚportÚexplicit_portÚraw_pathÚpathÚ_parsed_queryúMultiDictProxy[str]ÚqueryÚraw_query_stringÚquery_stringÚpath_qsÚraw_path_qsÚraw_fragmentÚfragment.Ú	raw_partsÚpartsÚparentÚraw_nameÚnameÚ
raw_suffixÚsuffixÚraw_suffixesÚsuffixes)
rH   rI   rJ   r   rV   ÚboolÚintÚstrÚlistÚtuplerM   rN   rO   rX   rX   ª   sí  € € € € € € Ø
ÐÐÑØ€N€N�NØ€N€N�NØ
€I€I�IØ€K€K�KØÐÐÑØ€N€N�NØ�D‰jÐÐÑØ
�‰*ÐÐÑØ˜‘*ÐÐÑØ�D‰jÐÐÑØ�D‰jÐÐÑØ
�‰*ÐÐÑØ˜T‘zÐ!Ð!Ñ!Ø $™JÐ&Ð&Ñ&Ø
�‰*ÐÐÑØ˜‘:ÐÐÑØ€M€M�MØ
€I€I�IØ˜˜c 3˜hœÔ(Ð(Ð(Ñ(Ø Ð Ð Ñ ØÐÐÑØÐÐÑØ€L€L�LØÐÐÑØÐÐÑØ€M€M�MØ�S˜#�XŒÐÐÑØ��c�Œ?ÐÐÑØ€M€M�MØ€M€M�MØ
€I€I�IØ€O€O�OØ€K€K�KØ˜˜S˜”/Ð!Ð!Ñ!Ø�C˜�HŒoÐÐÑÐÐrN   rX   F)ÚtotalÚobjÚreturnc                 ó   — d| _         | S )NÚyarl)rI   )r…   s    rO   Úrewrite_moduler‰   Ñ   s   € Ø€C„NØ€JrN   rl   c                 ó¦   — |                       d¦  «        }|dk    r| S | d|…         D ]}|t          vr| c S Œ| d|…         dz   | |dz   d…         z   S )zFRe-encode a scheme-shaped leading ``:`` in a relative path to ``%3A``.ú:r   Nz%3Ar   )ÚfindÚ_SCHEME_CHARS)rl   Ú	colon_posÚcs      rO   Ú_encode_relative_scheme_colonr�   Ö   sv   € à—	’	˜#‘”€IØ�A‚~€~ØˆØ�*�9�*Ôð ð ˆØ•MÐ!Ð!ØˆKˆKˆKð "à�
��
Ô˜eÑ# d¨9°q©=¨?¨?Ô&;Ñ;Ð;rN   Úurl_strrZ   c                 ó\  — i }t          | ¦  «        \  }}}}}|sd}nÐd|v sd|v sd|v rt          |¦  «        \  }}	}}
ndx}x}	}
|}|€ |t          v rd|› d�}t          |¦  «        ‚d}t	          |d¬	¦  «        }d|v r
|d
d…         n||d<   |
|d<   |	€|€|
€|n|› d|
› �}d|d<   d|d<   nB|rt          |¦  «        n|}|	rt          |	¦  «        n|	}t          ||||
¦  «        }||d<   ||d<   |r8t          |¦  «        }|rd|v rt          |¦  «        }n|s|st          |¦  «        }|rt          |¦  «        }|rt          |¦  «        }||d<   |s|rdn||d<   ||d<   ||d<   t                               t          ¦  «        }||_        ||_        ||_        ||_        ||_        ||_        |S )zParse unencoded URL.Ú r‹   ú@ú[Nz9Invalid URL: host is required for absolute urls with the ú schemeF©Úvalidate_hostr   éÿÿÿÿre   rj   ra   rc   ú.r^   ú/rk   rp   rt   )r   r   ÚSCHEME_REQUIRES_HOSTÚ
ValueErrorÚ_encode_hostr3   r   r,   r!   r�   r1   r*   ÚobjectÚ__new__rZ   Ú_schemeÚ_netlocÚ_pathÚ_queryÚ	_fragmentÚ_cache)r‘   Úcacher^   Únetlocrl   ro   ru   rf   Úusernamerd   ri   Úmsgra   rc   Úselfs                  rO   Ú
encode_urlr¬   á   sq  € ð  "€Eå,5°gÑ,>Ô,>Ñ)€FˆF�D˜% Øð  1Øˆˆà�&ˆ=ˆ=˜C 6˜M˜M¨S°F¨]¨]å-9¸&Ñ-AÔ-AÑ*ˆH�h  d dà)-Ð-ˆHÐ-�x $ØˆDØˆ<ØÕ-Ð-Ð-ð>Ø.4ð>ð >ð >ð õ ! ‘o”oÐ%à�Ý˜D°Ð6Ñ6Ô6ˆà*-°¨+¨+˜D  2 œJ˜J¸4ˆˆjÑØ!%ˆˆoÑØÐ Ð 0à!˜\�T�T°$Ð/?Ð/?¸Ð/?Ð/?ˆFØ $ˆE�*ÑØ$(ˆE�.Ñ!Ð!à-5ÐC•x Ñ)Ô)Ð)¸8ˆHØ19ÐG�8 HÑ-Ô-Ð-¸xˆLÝ  ¨<¸¸tÑDÔDˆFØ (ˆE�*ÑØ$0ˆE�.Ñ!àð 7Ý˜TÑ"Ô"ˆØð 	7�c˜T�k�kÝ! $Ñ'Ô'ˆDˆDØð 	7 ð 	7Ý0°Ñ6Ô6ˆDØð &Ý˜uÑ%Ô%ˆØð /Ý$ XÑ.Ô.ˆà€Eˆ(�OØ#'Ð<¨FÐ<˜˜¸€Eˆ*ÑØ %€EÐ
ÑØ$€Eˆ.Ñå�>Š>�#ÑÔ€DØ€D„LØ€D„LØ€D„JØ€D„KØ€D„NØ€D„KØ€KrN   c                 ó²   — t                                t          ¦  «        }t          | ¦  «        }|\  |_        |_        |_        |_        |_        i |_	        |S )zParse pre-encoded URL.)
rŸ   r    rZ   r   r¡   r¢   r£   r¤   r¥   r¦   )r‘   r«   Úvals      rO   Úpre_encoded_urlr¯   #  sH   € õ �>Š>�#ÑÔ€DÝ
�GÑ
Ô
€CØJMÑG€D„L�$”, ¤
¨D¬K¸¼Ø€D„KØ€KrN   r^   r`   rb   rd   rf   ri   rq   ru   c	                 óŽ  — t                                t          ¦  «        }	| |	_        |r||	_        nZ|rQ|�"|t
                               | ¦  «        k    rdn|}|€|€|€|n|› d|› �|	_        nt          ||||¦  «        |	_        nd|	_        |r| s|	j        sd|v rt          |¦  «        }||	_	        ||	_
        ||	_        i |	_        |	S )z#Build a pre-encoded URL from parts.Nr‹   r“   )rŸ   r    rZ   r¡   r¢   ÚDEFAULT_PORTSÚgetr   r�   r£   r¤   r¥   r¦   )
r^   r`   rb   rd   rf   ri   rl   rq   ru   r«   s
             rO   Úbuild_pre_encoded_urlr³   -  sñ   € õ �>Š>�#ÑÔ€DØ€D„LØð 
Ø ˆŒˆØ	ð ØÐØ¥=×#4Ò#4°VÑ#<Ô#<Ò<Ð<�4�4À$ˆDØˆ<˜HÐ,Ø#' <˜4˜4¸Ð5EÐ5E¸tÐ5EÐ5EˆDŒLˆLå& t¨X°t¸TÑBÔBˆDŒLˆLàˆŒØð 3�Fð 3 4¤<ð 3°C¸4°K°KÝ,¨TÑ2Ô2ˆØ€D„JØ€D„KØ€D„NØ€D„KØ€KrN   r¨   ro   c                 óÊ   — t                                t          ¦  «        }| |_        ||_        |r| s|sd|v rt          |¦  «        }||_        ||_        ||_        i |_	        |S )zCreate a new URL from parts.r‹   )
rŸ   r    rZ   r¡   r¢   r�   r£   r¤   r¥   r¦   )r^   r¨   rl   ro   ru   r«   s         rO   Úfrom_parts_uncachedrµ   P  so   € õ �>Š>�#ÑÔ€DØ€D„LØ€D„LØð 3�Fð 3 6ð 3¨c°T¨k¨kÝ,¨TÑ2Ô2ˆØ€D„JØ€D„KØ€D„NØ€D„KØ€KrN   c                   óR	  — e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   efdd	d
œdeee	d e
f         deded	z  dd fd„Zeddd	d	dd	dd	ddddœdededed	z  ded	z  deded	z  deded	z  dedededd fd„¦   «         Zdefd„Zdefd„Zdefd„Zdefd „Zd!edefd"„Zdefd#„Zd!edefd$„Zd!edefd%„Zd!edefd&„Zd!edefd'„Zd(edd fd)„Zdedd fd*„Zdefd+„Z de!e"         fd,„Z#d-e!e"         e!d	ef         z  dd	fd.„Z$d†d/„Z%defd0„Z&defd1„Z'd‡d2„Z(e)de"fd3„¦   «         Z*e)d‡d4„¦   «         Z+d‡d5„Z,e)defd6„¦   «         Z-e)defd7„¦   «         Z.e)defd8„¦   «         Z/e)defd9„¦   «         Z0e)ded	z  fd:„¦   «         Z1e)ded	z  fd;„¦   «         Z2e)ded	z  fd<„¦   «         Z3e)ded	z  fd=„¦   «         Z4e)ded	z  fd>„¦   «         Z5e)ded	z  fd?„¦   «         Z6e)ded	z  fd@„¦   «         Z7e)ded	z  fdA„¦   «         Z8e)ded	z  fdB„¦   «         Z9e)ded	z  fdC„¦   «         Z:e)defdD„¦   «         Z;e)defdE„¦   «         Z<e)defdF„¦   «         Z=e)de>e!eef                  fdG„¦   «         Z?e)dˆdI„¦   «         Z@e)defdJ„¦   «         ZAe)defdK„¦   «         ZBe)defdL„¦   «         ZCe)defdM„¦   «         ZDe)defdN„¦   «         ZEe)defdO„¦   «         ZFe)de!edPf         fdQ„¦   «         ZGe)de!edPf         fdR„¦   «         ZHe)d‡dS„¦   «         ZIe)defdT„¦   «         ZJe)defdU„¦   «         ZKe)defdV„¦   «         ZLe)defdW„¦   «         ZMe)de!edPf         fdX„¦   «         ZNe)de!edPf         fdY„¦   «         ZOd‰dZd[dedd fd\„ZPdedd fd]„ZQded	z  dd fd^„ZRded	z  dd fd_„ZSdedd fd`„ZTded	z  dd fda„ZUddddbœdededceddedd f
de„ZVeWdedd fdf„¦   «         ZXeWdgeYdd fdh„¦   «         ZXdieZdgeZdd fdj„ZXeWdedd fdk„¦   «         Z[eWdgeYdd fdl„¦   «         Z[dieZdgeZdd fdm„Z[eWdedd fdn„¦   «         Z\eWdgeYdd fdo„¦   «         Z\dieZdgeZdd fdp„Z\dqedd fdr„Z]ded	z  dd fds„Z^dddtœd(edceddedd fdu„Z_dddtœdvedceddedd fdw„Z`dŠdy„Zaddzœd!ededd fd{„Zbdefd|„Zcedr5e	 	 	 	 	 	 d‹d‚„¦   «         Zeedƒefeg         efe         z  dd„dd~fd…„¦   «         Zhd	S d	S )ŒrZ   )r¦   r¡   r¢   r£   r¤   r¥   r¦   r¡   r¢   r£   r¤   r¥   FN)ÚencodedÚstrictr®   r·   r¸   r†   c                ó„  — |�t          j        d¦  «         t          |¦  «        t          u r |rt	          |¦  «        nt          |¦  «        S t          |¦  «        | u r|S t          |¦  «        t          u r|st          d¦  «        ‚t          |Ž S t          |t          ¦  «        r:|rt	          t          |¦  «        ¦  «        nt          t          |¦  «        ¦  «        S |t          u rKt                               t          ¦  «        }dx|_        x|_        x|_        x|_        |_        i |_        |S t)          d¦  «        ‚)Nzstrict parameter is ignoredz$Cannot apply decoding to SplitResultr“   z#Constructor parameter should be str)ÚwarningsÚwarnÚtyper�   r¯   r¬   r   r�   Ú
from_partsÚ
isinstanceÚ	UNDEFINEDrŸ   r    rZ   r¡   r¢   r£   r¤   r¥   r¦   Ú	TypeError)Úclsr®   r·   r¸   r«   s        rO   r    zURL.__new__³  s/  € ð ÐÝŒMÐ7Ñ8Ô8Ð8Ý�‰9Œ9�ÐÐØ+2ÐG•? 3Ñ'Ô'Ð'½
À3¹¼ÐGÝ�‰9Œ9˜ÐÐØˆJÝ�‰9Œ9�Ð#Ð#Øð IÝ Ð!GÑHÔHÐHÝ˜sÐ#Ð#Ý�c�3ÑÔð 	RØ07ÐQ•?¥3 s¡8¤8Ñ,Ô,Ð,½ZÍÈCÉÌÑ=QÔ=QÐQØ•)ÐÐõ —>’>¥#Ñ&Ô&ˆDØVXÐXˆDŒLÐX˜4œ<ÐX¨$¬*ÐX°t´{ÀTÄ^ØˆDŒKØˆKÝÐ=Ñ>Ô>Ð>rN   r“   )r^   r`   rb   rd   rf   ri   rl   ro   rq   ru   r·   r^   r`   rb   rd   rf   ri   rl   ro   rq   ru   c                ób  — |r|s|s|s|rt          d¦  «        ‚|�5t          |t          ¦  «        s t          dt	          |¦  «        ›d�¦  «        ‚|r|st          d¦  «        ‚|r|	rt          d¦  «        ‚|�
|�|�|�|	�|
€t          d¦  «        ‚|rt          |¦  «        pd}	|rt          ||||||||	|
¦	  «	        S t                               t          ¦  «        }||_
        d}|r*t          |¦  «        \  }}}}|rt          |d	¬
¦  «        nd}n|rt          |d¬
¦  «        }nd|_        |�Q|�"|t                               |¦  «        k    rdn|}|€|€|€|n|› d|› �|_        nt!          ||||d¦  «        |_        |rt#          |¦  «        n|}|r7|j        r0d|v rt%          |¦  «        }|d         dk    rd}t          |¦  «        ‚|r!|j
        s|j        sd|v rt'          |¦  «        }||_        |s|	rt+          |	¦  «        }	|	|_        |
rt/          |
¦  «        n|
|_        i |_        |S )zCreates and returns a new URLz@Can't mix "authority" with "user", "password", "host" or "port".Nz$The port is required to be int, got rš   z/Can't build URL with "port" but without "host".z6Only one of "query" or "query_string" should be passedz}NoneType is illegal for "scheme", "authority", "host", "path", "query_string", and "fragment" args, use empty string instead.r“   Fr—   Tr‹   r   r›   zCPath in a URL with authority should start with a slash ('/') if set)r�   r¾   r€   rÀ   r¼   r&   r³   rŸ   r    rZ   r¡   r   rž   r¢   r±   r²   r   r+   r!   r�   r£   r0   r¤   r)   r¥   r¦   )rÁ   r^   r`   rb   rd   rf   ri   rl   ro   rq   ru   r·   r«   Ú_hostrª   s                  rO   Úbuildz	URL.buildÐ  s
  € ð$ ð 	˜$ð 	 (ð 	¨dð 	°dð 	ÝØSñô ð ð Ð¥J¨tµSÑ$9Ô$9ÐÝÐRÅ4ÈÁ:Ä:ÐRÐRÐRÑSÔSÐSØð 	Q˜ð 	QÝÐOÑPÔPÐPØð 	W�\ð 	WÝÐUÑVÔVÐVàˆNØÐ Øˆ|Øˆ|ØÐ#ØÐåðQñô ð ð
 ð 	6Ý(¨Ñ/Ô/Ð5°2ˆLàð 	Ý(ØØØØØØØØØñ
ô 
ð 
õ �~Š~�cÑ"Ô"ˆØˆŒØ ˆØð 	Ý*6°yÑ*AÔ*AÑ'ˆD�(˜E 4Ø@EÐM•L °eÐ<Ñ<Ô<Ð<È2ˆEˆEØð 	Ý  °TÐ:Ñ:Ô:ˆEˆEàˆDŒLàÐØÐØ#¥}×'8Ò'8¸Ñ'@Ô'@Ò@Ð@�t�tÀd�Øˆ| Ð 0Ø(,¨˜u˜u¸UÐ:KÐ:KÀTÐ:KÐ:K�”�å*¨4°¸5À$ÈÑMÔM�”à$(Ð2�{˜4Ñ Ô Ð ¨dˆØð 	&�D”Lð 	&Ø�dˆ{ˆ{Ý% dÑ+Ô+�Ø�AŒw˜#Š~ˆ~ð6ð õ ! ‘o”oÐ%àð 	7˜œð 	7¨T¬\ð 	7¸cÀT¸k¸kÝ0°Ñ6Ô6ˆDØˆŒ
Øð 	6˜ð 	6Ý'¨Ñ5Ô5ˆLØ"ˆŒØ6>ÐL�¨Ñ2Ô2Ð2ÀHˆŒØˆŒØˆrN   c                 ó(   — t          d| ›d�¦  «        ‚)NzInheriting a class z from URL is forbidden)rÀ   )rÁ   s    rO   Ú__init_subclass__zURL.__init_subclass__1  s   € ÝÐK¨cÐKÐKÐKÑLÔLÐLrN   c                 ó@  — | j         s| j        r| j        s| j        rd}n| j         }| j        x}�G|t
                               | j        ¦  «        k    r$| j        }t          | j
        | j        |d ¦  «        }n| j        }t          | j        ||| j        | j        ¦  «        S ©Nr›   )r£   r¢   r¤   r¥   rj   r±   r²   r¡   rg   r   ra   rc   r    )r«   rl   ri   rf   r¨   s        rO   Ú__str__zURL.__str__4  s¯   € ØŒzð 	˜dœlð 	°´ð 	¸t¼~ð 	ØˆDˆDà”:ˆDØÔ&Ð&ˆDÐ3¸Å×@QÒ@QØŒLñA
ô A
ò 9
ð 9
ð
 Ô)ˆDÝ  ¤°Ô0AÀ4ÈÑNÔNˆFˆFà”\ˆFÝ˜dœl¨F°D¸$¼+ÀtÄ~ÑVÔVÐVrN   c                 ó@   — | j         j        › dt          | ¦  «        › d�S )Nz('z'))Ú	__class__rH   r�   ©r«   s    rO   Ú__repr__zURL.__repr__D  s$   € Ø”.Ô)Ð:Ð:­S°©Y¬YÐ:Ð:Ð:Ð:rN   c                 óF   — t          | ¦  «                             d¦  «        S )NÚascii)r�   ÚencoderÌ   s    rO   Ú	__bytes__zURL.__bytes__G  s   € Ý�4‰yŒy×Ò Ñ(Ô(Ð(rN   Úotherc                 ó$  — t          |¦  «        t          urt          S | j        s	| j        rdn| j        }|j        s	|j        rdn|j        }| j        |j        k    o5| j        |j        k    o%||k    o| j        |j        k    o| j        |j        k    S rÈ   )r¼   rZ   ÚNotImplementedr£   r¢   r¡   r¤   r¥   )r«   rÒ   Úpath1Úpath2s       rO   Ú__eq__z
URL.__eq__J  sŸ   € Ý�‰;Œ;�cÐ!Ð!Ý!Ð!àœ:ÐF¨$¬,ÐF��¸D¼JˆØ œ;ÐI¨5¬=ÐI��¸e¼kˆàŒL˜EœMÒ)ð 2Ø” ¤Ò-ð2à˜’ð2ð ”˜uœ|Ò+ð2ð ” %¤/Ò1ð	
rN   c                 óÐ   — | j                              d¦  «        x}€I| j        s	| j        rdn| j        }t	          | j        | j        || j        | j        f¦  «        x}| j         d<   |S )Nr]   r›   )r¦   r²   r£   r¢   r]   r¡   r¤   r¥   )r«   Úretrl   s      rO   Ú__hash__zURL.__hash__X  sn   € Ø”;—?’? 6Ñ*Ô*Ð*ˆCÐ3Ø"œjÐI¨T¬\ÐI�3�3¸t¼zˆDÝ(,Ø”˜tœ|¨T°4´;ÀÄÐOñ)ô )ð ˆC�$”+˜fÑ%ð ˆ
rN   c                 ó\   — t          |¦  «        t          urt          S | j        |j        k    S ©N©r¼   rZ   rÔ   rY   ©r«   rÒ   s     rO   Ú__le__z
URL.__le__`  ó(   € Ý�‰;Œ;�cÐ!Ð!Ý!Ð!ØŒy˜EœJÒ&Ð&rN   c                 ó\   — t          |¦  «        t          urt          S | j        |j        k     S rÜ   rÝ   rÞ   s     rO   Ú__lt__z
URL.__lt__e  ó(   € Ý�‰;Œ;�cÐ!Ð!Ý!Ð!ØŒy˜5œ:Ò%Ð%rN   c                 ó\   — t          |¦  «        t          urt          S | j        |j        k    S rÜ   rÝ   rÞ   s     rO   Ú__ge__z
URL.__ge__j  rà   rN   c                 ó\   — t          |¦  «        t          urt          S | j        |j        k    S rÜ   rÝ   rÞ   s     rO   Ú__gt__z
URL.__gt__o  rã   rN   rz   c                 ó€   — t          |t          ¦  «        st          S |                      t          |¦  «        f¦  «        S rÜ   )r¾   r�   rÔ   Ú_make_child©r«   rz   s     rO   Ú__truediv__zURL.__truediv__t  s6   € Ý˜$¥Ñ$Ô$ð 	"Ý!Ð!Ø×Ò¥ T¡¤ Ñ-Ô-Ð-rN   c                 ó,   — |                       |¦  «        S rÜ   )Úupdate_query©r«   ro   s     rO   Ú__mod__zURL.__mod__y  s   € Ø× Ò  Ñ'Ô'Ð'rN   c                 óT   — t          | j        p| j        p| j        p| j        ¦  «        S rÜ   )r   r¢   r£   r¤   r¥   rÌ   s    rO   Ú__bool__zURL.__bool__|  s'   € Ý�D”LÐO D¤JÐO°$´+ÐOÀÄÑPÔPÐPrN   c                 ó   — | j         fS rÜ   )rY   rÌ   s    rO   Ú__getstate__zURL.__getstate__  s   € ð ”	ˆ|ÐrN   Ústatec                 óÂ   — |d         €*t          |d         t          ¦  «        r|d         d         }n|^}}|\  | _        | _        | _        | _        | _        i | _        d S )Nr   r   rY   )r¾   Údictr¡   r¢   r£   r¤   r¥   r¦   )r«   rô   r®   Úunuseds       rO   Ú__setstate__zURL.__setstate__‰  sa   € ð �Œ8Ð¥
¨5°¬8µTÑ :Ô :Ðà˜”(˜6Ô"ˆCˆCð !ˆLˆC�&ØNQÑKˆŒ�d”l D¤J°´¸T¼^ØˆŒˆˆrN   c                 ób   — | j         }t          | j        ¦  «        }|\  |d<   |d<   |d<   |d<   dS )z"Cache the netloc parts of the URL.ra   rc   re   rj   N)r¦   r   r¢   )r«   r�   Ú	split_locs      rO   Ú_cache_netloczURL._cache_netloc•  s>   € àŒKˆÝ  ¤Ñ.Ô.ˆ	ØNWÑKˆˆ*‰�q˜Ñ(¨!¨J©-¸¸?Ñ9KÐ9KÐ9KrN   c                 ó   — | j         S )záA check for absolute URLs.

        Return True for absolute ones (having scheme or starting
        with //), False otherwise.

        Is is preferred to call the .absolute property instead
        as it is cached.
        )r\   rÌ   s    rO   Úis_absolutezURL.is_absolute›  s   € ð Œ}ÐrN   c                 óp   — | j         x}€| j        dk    S |t                               | j        ¦  «        k    S )zßA check for default port.

        Return True if port is default for specified scheme,
        e.g. 'http://python.org' or 'http://python.org:80', False
        otherwise.

        Return False for relative URLs.

        Nr“   )rj   r¢   r±   r²   r¡   )r«   Úexplicits     rO   Úis_default_portzURL.is_default_port¦  s<   € ð Ô*Ð*ˆHÐ3ð ”< 2Ò%Ð%Ø�=×,Ò,¨T¬\Ñ:Ô:Ò:Ð:rN   c                 ó   — | j         S )z}Return an URL with scheme, host and port parts only.

        user, password, path, query and fragment are removed.

        )r[   rÌ   s    rO   Úoriginz
URL.origin·  ó   € ð Œ|ÐrN   c                 óB   — | j         | j        | j        | j        | j        fS rÜ   )r¡   r¢   r£   r¤   r¥   rÌ   s    rO   rY   zURL._valÀ  s   € à”˜dœl¨D¬J¸¼ÀTÄ^ÐTÐTrN   c                 óü   — | j         x}st          d¦  «        ‚| j        x}st          d¦  «        ‚d|v r| j        }t	          dd|| j        ¦  «        }n| j        s| j        s	| j        s| S t          ||ddd¦  «        S )z|Return an URL with scheme, host and port parts only.

        user, password, path, query and fragment are removed.
        úURL should be absolutezURL should have schemer”   Nr“   )
r¢   r�   r¡   rg   r   rj   r£   r¤   r¥   r½   )r«   r¨   r^   Úencoded_hosts       rO   r[   zURL._originÄ  s    € ð œ,Ð&�ð 	7ÝÐ5Ñ6Ô6Ð6Øœ,Ð&�ð 	7ÝÐ5Ñ6Ô6Ð6Ø�&ˆ=ˆ=ØÔ1ˆLÝ   t¨\¸4Ô;MÑNÔNˆFˆFØ”ð 	 D¤Kð 	¸¼ð 	ØˆKÝ˜& &¨"¨b°"Ñ5Ô5Ð5rN   c                 ór   — | j         st          d¦  «        ‚t          dd| j        | j        | j        ¦  «        S )zhReturn a relative part of the URL.

        scheme, user, password, host and port are removed.

        r  r“   )r¢   r�   r½   r£   r¤   r¥   rÌ   s    rO   ÚrelativezURL.relativeÕ  s9   € ð Œ|ð 	7ÝÐ5Ñ6Ô6Ð6Ý˜"˜b $¤*¨d¬k¸4¼>ÑJÔJÐJrN   c                 ó   — | j         dk    S )z‰A check for absolute URLs.

        Return True for absolute ones (having scheme or starting
        with //), False otherwise.

        r“   ©r¢   rÌ   s    rO   r\   zURL.absoluteß  s   € ð Œ|˜rÒ!Ð!rN   c                 ó   — | j         S )zdScheme for absolute URLs.

        Empty string for relative URLs or URLs starting with //

        )r¡   rÌ   s    rO   r^   z
URL.schemeí  r  rN   c                 ó   — | j         S )zQEncoded authority part of URL.

        Empty string for relative URLs.

        r  rÌ   s    rO   r_   zURL.raw_authorityö  r  rN   c                 óN   — t          | j        | j        | j        | j        ¦  «        S )zQDecoded authority part of URL.

        Empty string for relative URLs.

        )r   rb   rd   rf   ri   rÌ   s    rO   r`   zURL.authorityÿ  s    € õ ˜4œ9 d¤m°T´YÀÄ	ÑJÔJÐJrN   c                 óD   — |                       ¦   «          | j        d         S )zEEncoded user part of URL.

        None if user is missing.

        ra   ©rû   r¦   rÌ   s    rO   ra   zURL.raw_user  s#   € ð 	×ÒÑÔÐØŒ{˜:Ô&Ð&rN   c                 ó6   — | j         x}€dS t          |¦  «        S )zEDecoded user part of URL.

        None if user is missing.

        N)ra   r4   )r«   ra   s     rO   rb   zURL.user  s$   € ð œÐ%ˆHÐ.Ø�4Ý˜Ñ!Ô!Ð!rN   c                 óD   — |                       ¦   «          | j        d         S )zMEncoded password part of URL.

        None if password is missing.

        rc   r  rÌ   s    rO   rc   zURL.raw_password  s#   € ð 	×ÒÑÔÐØŒ{˜>Ô*Ð*rN   c                 ó6   — | j         x}€dS t          |¦  «        S )zMDecoded password part of URL.

        None if password is missing.

        N)rc   r4   )r«   rc   s     rO   rd   zURL.password(  s%   € ð !Ô-Ð-ˆLÐ6Ø�4Ý˜Ñ%Ô%Ð%rN   c                 óD   — |                       ¦   «          | j        d         S )zÚEncoded host part of URL.

        None for relative URLs.

        When working with IPv6 addresses, use the `host_subcomponent` property instead
        as it will return the host subcomponent with brackets.
        re   r  rÌ   s    rO   re   zURL.raw_host3  s#   € ð 	×ÒÑÔÐØŒ{˜:Ô&Ð&rN   c                 ó®   — | j         x}€dS |r|d                              ¦   «         sd|v rd|v r|                     dd¦  «        S |S t          |¦  «        S )a)  Decoded host part of URL.

        None for relative URLs.

        For IPv6 hosts that carry an RFC 6874 zone identifier, the
        ``%25`` zone separator is decoded back to ``%``; the encoded
        form is still available via :attr:`raw_host` and
        :attr:`host_subcomponent`.

        Nr™   r‹   ú%25ú%)re   ÚisdigitÚreplaceÚ_idna_decode©r«   Úraws     rO   rf   zURL.hostA  sm   € ð ”=Ð ˆCÐ)Ø�4Øð 	�3�r”7—?’?Ñ$Ô$ð 	¨¨s¨
¨
ð
 ˜ˆ|ˆ|Ø—{’{ 5¨#Ñ.Ô.Ð.ØˆJÝ˜CÑ Ô Ð rN   c                 ó0   — | j         x}€dS d|v rd|› d�n|S )aÑ  Return the host subcomponent part of URL.

        None for relative URLs.

        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2

        `IP-literal = "[" ( IPv6address / IPvFuture  ) "]"`

        Examples:
        - `http://example.com:8080` -> `example.com`
        - `http://example.com:80` -> `example.com`
        - `https://127.0.0.1:8443` -> `127.0.0.1`
        - `https://[::1]:8443` -> `[::1]`
        - `http://[::1]` -> `[::1]`

        Nr‹   r•   ú])re   r  s     rO   rg   zURL.host_subcomponentY  s0   € ð$ ”=Ð ˆCÐ)Ø�4Ø  C˜Z˜Zˆz�3ˆzˆzˆzˆz¨SÐ0rN   c                 óð   — | j         x}€dS |d         dk    r|                     d¦  «        }| j        }|�#|t                               | j        ¦  «        k    rd|v rd|› d�n|S d|v rd|› d|› �n|› d|› �S )a  Return the host and port subcomponent part of URL.

        Trailing dots are removed from the host part.

        This value is suitable for use in the Host header of an HTTP request.

        None for relative URLs.

        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
        `IP-literal = "[" ( IPv6address / IPvFuture  ) "]"`
        https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.3
        port        = *DIGIT

        Examples:
        - `http://example.com:8080` -> `example.com:8080`
        - `http://example.com:80` -> `example.com`
        - `http://example.com.:80` -> `example.com`
        - `https://127.0.0.1:8443` -> `127.0.0.1:8443`
        - `https://[::1]:8443` -> `[::1]:8443`
        - `http://[::1]` -> `[::1]`

        Nr™   rš   r‹   r•   r  z]:)re   Úrstriprj   r±   r²   r¡   )r«   r  ri   s      rO   rh   zURL.host_port_subcomponento  s£   € ð0 ”=Ð ˆCÐ)Ø�4ØˆrŒ7�cŠ>ˆ>ð —*’*˜S‘/”/ˆCØÔ!ˆØˆ<˜4¥=×#4Ò#4°T´\Ñ#BÔ#BÒBÐBØ!$¨  �:�s�:�:�:�:°Ð4Ø$'¨3 J JÐ �3Ð Ð ˜$Ð Ð Ð °s°O°O¸T°O°OÐCrN   c                 óV   — | j         x}�|S t                               | j        ¦  «        S )z«Port part of URL, with scheme-based fallback.

        None for relative URLs or URLs without explicit port and
        scheme without default port substitution.

        )rj   r±   r²   r¡   )r«   rj   s     rO   ri   zURL.port•  s.   € ð "Ô/Ð/ˆMÐ<Ø Ð Ý× Ò  ¤Ñ.Ô.Ð.rN   c                 óD   — |                       ¦   «          | j        d         S )zyPort part of URL, without scheme-based fallback.

        None for relative URLs or URLs without explicit port.

        rj   r  rÌ   s    rO   rj   zURL.explicit_port¡  s#   € ð 	×ÒÑÔÐØŒ{˜?Ô+Ð+rN   c                 ó0   — | j         s| j        s| j         ndS )zNEncoded path of URL.

        / for absolute URLs without path part.

        r›   )r£   r¢   rÌ   s    rO   rk   zURL.raw_path«  s   € ð "œZÐD¨t¬|ÐDˆtŒzˆzÀÐDrN   c                 óN   — | j         rt          | j         ¦  «        n
| j        rdndS )zNDecoded path of URL.

        / for absolute URLs without path part.

        r›   r“   )r£   r.   r¢   rÌ   s    rO   rl   zURL.path´  s,   € ð -1¬JÐW�}˜TœZÑ(Ô(Ð(À4Ä<Ð<W¸C¸CÐUWÐWrN   c                 óN   — | j         rt          | j         ¦  «        S | j        rdndS )z{Decoded path of URL.

        / for absolute URLs without path part.

        / (%2F) and % (%25) are not decoded

        r›   r“   )r£   r-   r¢   rÌ   s    rO   Ú	path_safezURL.path_safe½  s/   € ð Œ:ð 	2Ý% d¤jÑ1Ô1Ð1Ø”lÐ*ˆsˆs¨Ð*rN   c                 ó*   — t          | j        ¦  «        S )zParse query part of URL.)r   r¤   rÌ   s    rO   rm   zURL._parsed_queryÊ  s   € õ ˜dœkÑ*Ô*Ð*rN   rn   c                 óD   — t          t          | j        ¦  «        ¦  «        S )z‘A MultiDictProxy representing parsed query parameters in decoded
        representation.

        Empty value if URL has no query part.

        )r   r   rm   rÌ   s    rO   ro   z	URL.queryÏ  s   € õ �i¨Ô(:Ñ;Ô;Ñ<Ô<Ð<rN   c                 ó   — | j         S )zOEncoded query part of URL.

        Empty string if query is missing.

        )r¤   rÌ   s    rO   rp   zURL.raw_query_stringÙ  s   € ð Œ{ÐrN   c                 ó<   — | j         rt          | j         ¦  «        ndS )zODecoded query part of URL.

        Empty string if query is missing.

        r“   )r¤   r/   rÌ   s    rO   rq   zURL.query_stringâ  s    € ð ,0¬;Ð>�{˜4œ;Ñ'Ô'Ð'¸BÐ>rN   c                 ó:   — | j         x}s| j        n| j        › d|› �S )zDecoded path of URL with query.ú?)rq   rl   ©r«   Úqs     rO   rr   zURL.path_qsë  s-   € ð '+Ô&7Ð!7 ÐPˆtŒyˆyÀÄÐ>PÐ>PÈQÐ>PÐ>PÐPrN   c                 ó€   — | j         x}r| j        s| j        s| j        › d|› �nd|› �S | j        s| j        s| j        ndS )zEncoded path of URL with query.r,  z/?r›   )r¤   r£   r¢   r-  s     rO   rs   zURL.raw_path_qsð  s^   € ð ”Ðˆ1ð 	WØ*.¬*ÐV¸D¼LÐV�d”jÐ&Ð& 1Ð&Ð&Ð&ÈhÐSTÈhÈhÐVØ!œZÐD¨t¬|ÐDˆtŒzˆzÀÐDrN   c                 ó   — | j         S )zUEncoded fragment part of URL.

        Empty string if fragment is missing.

        )r¥   rÌ   s    rO   rt   zURL.raw_fragment÷  s   € ð Œ~ÐrN   c                 ó<   — | j         rt          | j         ¦  «        ndS )zUDecoded fragment part of URL.

        Empty string if fragment is missing.

        r“   )r¥   r4   rÌ   s    rO   ru   zURL.fragment   s    € ð ,0¬>ÐA�x˜œÑ'Ô'Ð'¸rÐArN   .c                 ó
  — | j         }| j        r%|r!dg|dd…                              d¦  «        ¢R ndS |r-|d         dk    r!dg|dd…                              d¦  «        ¢R S t          |                     d¦  «        ¦  «        S )zjA tuple containing encoded *path* parts.

        ('/',) for absolute URLs if *path* is missing.

        r›   r   N)r›   r   )r£   r¢   Úsplitrƒ   )r«   rl   s     rO   rv   zURL.raw_parts	  s–   € ð ŒzˆØŒ<ð 	CØ26ÐB�CÐ.˜$˜q˜r˜rœ(Ÿ.š.¨Ñ-Ô-Ð.Ð.Ð.¸FÐBØð 	/�D˜”G˜s’N�NØÐ.˜$˜q˜r˜rœ(Ÿ.š.¨Ñ-Ô-Ð.Ð.Ð.Ý�T—Z’Z ‘_”_Ñ%Ô%Ð%rN   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )zjA tuple containing decoded *path* parts.

        ('/',) for absolute URLs if *path* is missing.

        c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÜ   ©r4   )Ú.0Úparts     rO   ú	<genexpr>zURL.parts.<locals>.<genexpr>  s(   è è € Ð?Ð?¨•X˜d‘^”^Ð?Ð?Ð?Ð?Ð?Ð?rN   )rƒ   rv   rÌ   s    rO   rw   z	URL.parts  s#   € õ Ð?Ð?°´Ð?Ñ?Ô?Ñ?Ô?Ð?rN   c           	      ó  — | j         }|r|dk    r-| j        s| j        rt          | j        | j        |dd¦  «        S | S |                     d¦  «        }t          | j        | j        d                     |dd…         ¦  «        dd¦  «        S )z]A new URL with last part of path removed and cleaned up query and
        fragment.

        r›   r“   Nr™   )r£   r¥   r¤   r½   r¡   r¢   r3  Újoin)r«   rl   rw   s      rO   rx   z
URL.parent   s�   € ð ŒzˆØð 	�t˜s’{�{ØŒ~ð L ¤ð LÝ! $¤,°´¸dÀBÈÑKÔKÐKØˆKØ—
’
˜3‘”ˆÝ˜$œ,¨¬°c·h²h¸uÀSÀbÀS¼zÑ6JÔ6JÈBÐPRÑSÔSÐSrN   c                 óZ   — | j         }| j        s|d         S |dd…         }|r|d         ndS )zThe last part of raw_parts.r™   r   Nr“   )rv   r¢   )r«   rw   s     rO   ry   zURL.raw_name.  s?   € ð ”ˆØŒ|ð 	Ø˜”9ÐØ�a�b�b”	ˆØ!Ð)ˆu�RŒyˆy rÐ)rN   c                 ó*   — t          | j        ¦  «        S )zThe last part of parts.)r4   ry   rÌ   s    rO   rz   zURL.name7  s   € õ ˜œÑ&Ô&Ð&rN   c                 ó’   — | j         }|                     d¦  «        }d|cxk     rt          |¦  «        dz
  k     rn n
||d …         ndS )Nrš   r   r   r“   )ry   ÚrfindÚlen)r«   rz   Úis      rO   r{   zURL.raw_suffix<  sU   € àŒ}ˆØ�JŠJ�s‰OŒOˆØ˜qÐ0Ð0Ò0Ð0¥3 t¡9¤9¨q¡=Ò0Ð0Ð0Ð0Ð0ˆt�A�B�BŒxˆx°bÐ8rN   c                 ó*   — t          | j        ¦  «        S rÜ   )r4   r{   rÌ   s    rO   r|   z
URL.suffixB  s   € å˜œÑ(Ô(Ð(rN   c                 óÐ   — | j         }|                     d¦  «        rdS |                     d¦  «        }t          d„ |                     d¦  «        dd …         D ¦   «         ¦  «        S )Nrš   rM   c              3   ó    K  — | ]	}d |z   V — Œ
dS )rš   NrM   ©r7  r|   s     rO   r9  z#URL.raw_suffixes.<locals>.<genexpr>L  s&   è è € ÐDÐD f�S˜6‘\ÐDÐDÐDÐDÐDÐDrN   r   )ry   ÚendswithÚlstriprƒ   r3  rê   s     rO   r}   zURL.raw_suffixesF  sc   € àŒ}ˆØ�=Š=˜ÑÔð 	Ø�2Ø�{Š{˜3ÑÔˆÝÐDÐD°·
²
¸3±´ÀÀÀÔ0CÐDÑDÔDÑDÔDÐDrN   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÜ   r6  rE  s     rO   r9  zURL.suffixes.<locals>.<genexpr>P  s*   è è € ÐFÐF¨&•X˜fÑ%Ô%ÐFÐFÐFÐFÐFÐFrN   )rƒ   r}   rÌ   s    rO   r~   zURL.suffixesN  s"   € åÐFÐF°DÔ4EÐFÑFÔFÑFÔFÐFrN   ÚpathszSequence[str]c                 óv  — g }d}t          t          |¦  «        ¦  «        D ]Œ\  }}|dk    }|r|d         dk    rt          d|›d�¦  «        ‚|r|nt          |¦  «        }|d|v z  }|                     d¦  «        }|                     ¦   «          ||s|d         dk    r
|dd	…         n|z  }Œ�| j        x}rH|                     d¦  «        x}	r1|	d
         dk    r
|	d	d
…         n|	}
|
                     ¦   «          ||
z  }| j        x}r#|r!|d
         dk    r|                     d¦  «         |                     ¦   «          |r|s+t          | j
        |d                     |¦  «        dd¦  «        S d                     t          |¦  «        ¦  «        }|r|d         dk    rd|› �}t          | j
        ||dd¦  «        S )z’
        add paths to self._path, accounting for absolute vs relative paths,
        keep existing, but do not create new, empty segments
        Fr   r›   zAppending path z! starting from slash is forbiddenrš   r“   r   Nr™   )Ú	enumerateÚreversedr�   r+   r3  Úreverser£   r¢   Úappendr½   r¡   r;  r"   )r«   rJ  r·   ÚparsedÚneeds_normalizeÚidxrl   ÚlastÚsegmentsÚold_segmentsÚoldr¨   s               rO   ré   zURL._make_childR  s  € ð
 ˆØ %ˆÝ"¥8¨E¡?¤?Ñ3Ô3ð 	Sð 	S‰IˆC�à˜!’8ˆDØð ˜˜Qœ 3š˜Ý ØO dÐOÐOÐOñô ð ð #Ð9�4�4­°DÑ(9Ô(9ˆDØ˜s d˜{Ñ*ˆOØ—z’z #‘”ˆHØ×ÒÑÔÐà¨$ÐR°8¸A´;À"Ò3DÐ3D�h˜q˜r˜r”l�lÈ(ÑRˆFˆFà”JÐˆDð 	°T·Z²ZÀ±_´_Ð%D \ð 	ð (4°BÔ'7¸2Ò'=Ð'=�,˜s ˜sÔ#Ð#À<ˆCØ�KŠK‰MŒMˆMØ�c‰MˆFð ”lÐ"ˆFð 	¨ð 	°6¸"´:ÀÒ3CÐ3CØ�MŠM˜"ÑÔÐà�ŠÑÔÐØð 	N˜_ð 	NÝ˜dœl¨F°C·H²H¸VÑ4DÔ4DÀbÈ"ÑMÔMÐMà�xŠxÕ/°Ñ7Ô7Ñ8Ô8ˆàð 	�D˜”G˜s’N�NØ�t�:�:ˆDÝ˜$œ,¨°°b¸"Ñ=Ô=Ð=rN   c                 ó  — t          |t          ¦  «        st          d¦  «        ‚|                     ¦   «         }| j        }|s|t
          v rd|› d�}t          |¦  «        ‚t          ||| j        | j	        | j
        ¦  «        S )z&Return a new URL with scheme replaced.zInvalid scheme typez<scheme replacement is not allowed for relative URLs for the r–   )r¾   r�   rÀ   Úlowerr¢   rœ   r�   r½   r£   r¤   r¥   )r«   r^   Úlower_schemer¨   rª   s        rO   Úwith_schemezURL.with_scheme�  s’   € õ ˜&¥#Ñ&Ô&ð 	3ÝÐ1Ñ2Ô2Ð2Ø—|’|‘~”~ˆØ”ˆØð 	"˜,Õ*>Ð>Ð>ð?Ø)5ð?ð ?ð ?ð õ ˜S‘/”/Ð!Ý˜,¨°´
¸D¼KÈÌÑXÔXÐXrN   c                 ó@  — |€d}n;t          |t          ¦  «        rt          |¦  «        }| j        }nt	          d¦  «        ‚| j        x}st          d¦  «        ‚| j        pd}t          |||| j	        ¦  «        }t          | j        || j        | j        | j        ¦  «        S )z€Return a new URL with user replaced.

        Autoencode user if needed.

        Clear user/password if user is None.

        NzInvalid user typez1user replacement is not allowed for relative URLsr“   )r¾   r�   r2   rc   rÀ   r¢   r�   rg   r   rj   r½   r¡   r£   r¤   r¥   )r«   rb   rd   r¨   r  s        rO   Ú	with_userzURL.with_user�  s¦   € ð ˆ<ØˆHˆHÝ˜�cÑ"Ô"ð 	1Ý˜$‘<”<ˆDØÔ(ˆHˆHåÐ/Ñ0Ô0Ð0Øœ,Ð&�ð 	RÝÐPÑQÔQÐQØÔ-Ð3°ˆÝ˜T 8¨\¸4Ô;MÑNÔNˆÝ˜$œ,¨°´
¸D¼KÈÌÑXÔXÐXrN   c                 ó<  — |€n4t          |t          ¦  «        rt          |¦  «        }nt          d¦  «        ‚| j        x}st          d¦  «        ‚| j        pd}| j        }t          | j	        |||¦  «        }t          | j        || j        | j        | j        ¦  «        S )z‡Return a new URL with password replaced.

        Autoencode password if needed.

        Clear password if argument is None.

        NzInvalid password typez5password replacement is not allowed for relative URLsr“   )r¾   r�   r2   rÀ   r¢   r�   rg   rj   r   ra   r½   r¡   r£   r¤   r¥   )r«   rd   r¨   r  ri   s        rO   Úwith_passwordzURL.with_password¦  s¤   € ð ÐØÝ˜¥#Ñ&Ô&ð 	5Ý˜hÑ'Ô'ˆHˆHåÐ3Ñ4Ô4Ð4Øœ,Ð&�ð 	VÝÐTÑUÔUÐUØÔ-Ð3°ˆØÔ!ˆÝ˜Tœ]¨H°lÀDÑIÔIˆÝ˜$œ,¨°´
¸D¼KÈÌÑXÔXÐXrN   c                 óZ  — t          |t          ¦  «        st          d¦  «        ‚| j        x}st	          d¦  «        ‚|st	          d¦  «        ‚|rt          |d¬¦  «        nd}| j        }t          | j        | j	        ||¦  «        }t          | j        || j        | j        | j        ¦  «        S )z¨Return a new URL with host replaced.

        Autoencode host if needed.

        Changing host for relative URLs is not allowed, use .join()
        instead.

        zInvalid host typez1host replacement is not allowed for relative URLszhost removing is not allowedTr—   r“   )r¾   r�   rÀ   r¢   r�   rž   rj   r   ra   rc   r½   r¡   r£   r¤   r¥   )r«   rf   r¨   r  ri   s        rO   Ú	with_hostzURL.with_host¼  sµ   € õ ˜$¥Ñ$Ô$ð 	1ÝÐ/Ñ0Ô0Ð0Øœ,Ð&�ð 	RÝÐPÑQÔQÐQØð 	=ÝÐ;Ñ<Ô<Ð<ØAEÐM•| D¸Ð=Ñ=Ô=Ð=È2ˆØÔ!ˆÝ˜Tœ]¨DÔ,=¸|ÈTÑRÔRˆÝ˜$œ,¨°´
¸D¼KÈÌÑXÔXÐXrN   c                 ó¢  — |�jt          |t          ¦  «        st          |t          ¦  «        st          dt	          |¦  «        › �¦  «        ‚d|cxk    rdk    sn t          d|› �¦  «        ‚| j        x}st          d¦  «        ‚| j        pd}t          | j	        | j
        ||¦  «        }t          | j        || j        | j        | j        ¦  «        S )z`Return a new URL with port replaced.

        Clear port to default if None is passed.

        Nz port should be int or None, got r   iÿÿ  z&port must be between 0 and 65535, got z1port replacement is not allowed for relative URLsr“   )r¾   r   r€   rÀ   r¼   r�   r¢   rg   r   ra   rc   r½   r¡   r£   r¤   r¥   )r«   ri   r¨   r  s       rO   Ú	with_portzURL.with_portÑ  sä   € ð ÐÝ˜$¥Ñ%Ô%ð Q­Z¸½cÑ-BÔ-Bð QÝÐ OÅ4ÈÁ:Ä:Ð OÐ OÑPÔPÐPØ˜Ð&Ð&Ò&Ð& Ò&Ð&Ð&Ð&Ý Ð!PÈ$Ð!PÐ!PÑQÔQÐQØœ,Ð&�ð 	RÝÐPÑQÔQÐQØÔ-Ð3°ˆÝ˜Tœ]¨DÔ,=¸|ÈTÑRÔRˆÝ˜$œ,¨°´
¸D¼KÈÌÑXÔXÐXrN   )r·   Ú
keep_queryÚkeep_fragmentrc  rd  c                óâ   — | j         }|s&t          |¦  «        }|rd|v rt          |¦  «        n|}|r|d         dk    rd|› �}|r| j        nd}|r| j        nd}t          | j        ||||¦  «        S )z$Return a new URL with path replaced.rš   r   r›   r“   )r¢   r+   r!   r¤   r¥   r½   r¡   )r«   rl   r·   rc  rd  r¨   ro   ru   s           rO   Ú	with_pathzURL.with_pathã  s›   € ð ”ˆØð 	EÝ˜tÑ$Ô$ˆDØð EØ/2°d¨{¨{•~ dÑ+Ô+Ð+À�Øð 	�D˜”G˜s’N�NØ�t�:�:ˆDØ)Ð1�”�¨rˆØ%2Ð:�4”>�>¸ˆÝ˜$œ,¨°°e¸XÑFÔFÐFrN   c                 ó   — d S rÜ   rM   rî   s     rO   Ú
with_queryzURL.with_query÷  s   € Ø14°rN   Úkwargsc                 ó   — d S rÜ   rM   ©r«   ri  s     rO   rh  zURL.with_queryú  s   € Ø<?¸CrN   Úargsc                 ól   — t          |i |¤Žpd}t          | j        | j        | j        || j        ¦  «        S )a[  Return a new URL with query part replaced.

        Accepts any Mapping (e.g. dict, multidict.MultiDict instances)
        or str, autoencode the argument if needed.

        A sequence of (key, value) pairs is supported as well.

        It also can take an arbitrary number of keyword arguments.

        Clear query if None is passed.

        r“   )r&   rµ   r¡   r¢   r£   r¥   )r«   rl  ri  ro   s       rO   rh  zURL.with_queryý  s@   € õ ˜tÐ. vÐ.Ð.Ð4°"ˆÝ"ØŒL˜$œ,¨¬
°E¸4¼>ñ
ô 
ð 	
rN   c                 ó   — d S rÜ   rM   rî   s     rO   Úextend_queryzURL.extend_query  ó   € Ø36°3rN   c                 ó   — d S rÜ   rM   rk  s     rO   ro  zURL.extend_query  ó   € Ø>A¸crN   c                 ó´   — t          |i |¤Žx}s| S | j        x}r||d         dk    r|nd|› �z  }n|}t          | j        | j        | j        || j        ¦  «        S )a&  Return a new URL with query part combined with the existing.

        This method will not remove existing query parameters.

        Example:
        >>> url = URL('http://example.com/?a=1&b=2')
        >>> url.extend_query(a=3, c=4)
        URL('http://example.com/?a=1&b=2&a=3&c=4')
        r™   ú&)r&   r¤   rµ   r¡   r¢   r£   r¥   )r«   rl  ri  Ú	new_queryro   s        rO   ro  zURL.extend_query  s‚   € õ +¨DÐ;°FÐ;Ð;Ð;�	ð 	ØˆKØ”KÐˆ5ð 	ð  %¨¤)¨sÒ"2Ð"2�Y�Y¸¸I¸¸ÑGˆEˆEàˆEÝ"ØŒL˜$œ,¨¬
°E¸4¼>ñ
ô 
ð 	
rN   c                 ó   — d S rÜ   rM   rî   s     rO   rí   zURL.update_query,  rp  rN   c                 ó   — d S rÜ   rM   rk  s     rO   rí   zURL.update_query/  rr  rN   c                 ón  — |r|rd}t          |¦  «        ‚|}n+t          |¦  «        dk    r	|d         }nt          d¦  «        ‚|€d}�nÆ|s	| j        }�n»t          |t          ¦  «        rLt          | j        ¦  «        }|                     |¦  «         t          | 	                    ¦   «         ¦  «        }�nZt          |t          ¦  «        rXt          | j        ¦  «        }|                     t          |¦  «        ¦  «         t          | 	                    ¦   «         ¦  «        }nít          |t          t          t          f¦  «        rd}t!          |¦  «        ‚t          |t"          ¦  «        r–t$          rDt'          t"          t(          t*          t          t,          f         t.          f                  |¦  «        }t          | j        ¦  «        }|                     |¦  «         t          | 	                    ¦   «         ¦  «        }nt!          d¦  «        ‚t1          | j        | j        | j        || j        ¦  «        S )a  Return a new URL with query part updated.

        This method will overwrite existing query parameters.

        Example:
        >>> url = URL('http://example.com/?a=1&b=2')
        >>> url.update_query(a=3, c=4)
        URL('http://example.com/?a=3&b=2&c=4')
        z7Either kwargs or single query parameter must be presentr   r   Nr“   zAInvalid query type: bytes, bytearray and memoryview are forbiddenzRInvalid query type: only str, mapping or sequence of (key, value) pairs is allowed)r�   r@  r¤   r¾   r   r   rm   Úupdater(   Úitemsr�   r   r'   ÚbytesÚ	bytearrayÚ
memoryviewrÀ   r   r
   r   rƒ   r   r   r%   rµ   r¡   r¢   r£   r¥   )	r«   rl  ri  rª   Úin_queryro   ÚqmÚqstrÚqss	            rO   rí   zURL.update_query2  sý  € ð  ð 	XØð &ØO�Ý  ‘o”oÐ%ØˆHˆHÝ�‰YŒY˜!Š^ˆ^Ø˜A”wˆHˆHåÐVÑWÔWÐWàÐØˆE‰EØð 	Ø”KˆE‰EÝ˜¥'Ñ*Ô*ð 	Ý+4°TÔ5GÑ+HÔ+HˆBØ�IŠI�hÑÔÐÝ8¸¿º¹¼ÑDÔDˆE‰EÝ˜¥#Ñ&Ô&ð 	Ý#,¨TÔ-?Ñ#@Ô#@ˆDØ�KŠK� xÑ0Ô0Ñ1Ô1Ð1Ý/°·
²
±´Ñ=Ô=ˆEˆEÝ˜¥5­)µZÐ"@ÑAÔAð 	ØUˆCÝ˜C‘.”.Ð Ý˜¥(Ñ+Ô+ð 	õ
 ð ÝÝ�U¥5­­d¨Ô#3µ[Ð#@ÔAÔBÀHñô �õ *3°4Ô3EÑ)FÔ)FˆBØ�IŠI�hÑÔÐÝ/°·²±
´
Ñ;Ô;ˆEˆEåð<ñô ð õ #ØŒL˜$œ,¨¬
°E¸4¼>ñ
ô 
ð 	
rN   Úquery_paramsc                 óè   ‡— t          |¦  «        | j                             ¦   «         z  Š‰s| S |                      t	          ˆfd„| j                             ¦   «         D ¦   «         ¦  «        ¦  «        S )z4Remove some keys from query part and return new URL.c              3   ó.   •K  — | ]\  }}|‰v¯	||fV — Œd S rÜ   rM   )r7  rz   ÚvalueÚparams_to_removes      €rO   r9  z+URL.without_query_params.<locals>.<genexpr>v  sC   øè è € ð ð á�D˜%ØÐ/Ð/Ð/ð �u�à/Ð/Ð/Ð/ðð rN   )Úsetro   Úkeysrh  rƒ   rz  )r«   r‚  r†  s     @rO   Úwithout_query_paramszURL.without_query_paramsp  s†   ø€ å˜|Ñ,Ô,¨t¬z¯ªÑ/@Ô/@Ñ@ÐØð 	ØˆKØ�ŠÝð ð ð ð à#'¤:×#3Ò#3Ñ#5Ô#5ðñ ô ñ ô ñ
ô 
ð 	
rN   c                 óÚ   — |€d}n3t          |t          ¦  «        st          d¦  «        ‚t          |¦  «        }| j        |k    r| S t          | j        | j        | j        | j	        |¦  «        S )z�Return a new URL with fragment replaced.

        Autoencode fragment if needed.

        Clear fragment to default if None is passed.

        Nr“   zInvalid fragment type)
r¾   r�   rÀ   r)   r¥   r½   r¡   r¢   r£   r¤   )r«   ru   rt   s      rO   Úwith_fragmentzURL.with_fragment}  sv   € ð ÐØˆLˆLÝ˜H¥cÑ*Ô*ð 	5ÝÐ3Ñ4Ô4Ð4å*¨8Ñ4Ô4ˆLØŒ>˜\Ò)Ð)ØˆKÝØŒL˜$œ,¨¬
°D´KÀñ
ô 
ð 	
rN   )rc  rd  c                ó  — t          |t          ¦  «        st          d¦  «        ‚d|v rt          d¦  «        ‚t	          |¦  «        }|dv rt          d¦  «        ‚t          | j        ¦  «        }| j        x}r4t          |¦  «        dk    r| 	                    |¦  «         n||d<   d|d	<   n||d<   |d	         dk    rd|d	<   |r| j
        nd}|r| j        nd}t          | j        |d                     |¦  «        ||¦  «        S )
z˜Return a new URL with name (last part of path) replaced.

        Query and fragment parts are cleaned up.

        Name is encoded if needed.

        zInvalid name typer›   zSlash in name is not allowed©rš   z..ú. and .. values are forbiddenr   r™   r“   r   )r¾   r�   rÀ   r�   r+   r‚   rv   r¢   r@  rO  r¤   r¥   r½   r¡   r;  )r«   rz   rc  rd  rw   r¨   ro   ru   s           rO   Ú	with_namezURL.with_name’  s  € õ ˜$¥Ñ$Ô$ð 	1ÝÐ/Ñ0Ô0Ð0Ø�$ˆ;ˆ;ÝÐ;Ñ<Ô<Ð<Ý˜4Ñ Ô ˆØ�;ÐÐÝÐ<Ñ=Ô=Ð=Ý�T”^Ñ$Ô$ˆØ”\Ð!ˆ6ð 		Ý�5‰zŒz˜QŠˆØ—’˜TÑ"Ô"Ð"Ð"à ��b‘	ØˆE�!‰HˆHàˆE�"‰IØ�QŒx˜3ŠˆØ��a‘à)Ð1�”�¨rˆØ%2Ð:�4”>�>¸ˆÝ˜$œ,¨°·²¸±´ÀÈÑQÔQÐQrN   r|   c                óº  — t          |t          ¦  «        st          d¦  «        ‚|r|d         dk    r
|dk    sd|v rt          d|›�¦  «        ‚| j        }|st          | ›d�¦  «        ‚| j        }t          |¦  «        }|s||z   n|dt          |¦  «         …         |z   }|dv rt          d	¦  «        ‚t          | j	        ¦  «        }| j
        x}r4t          |¦  «        d
k    r|                     |¦  «         n||d<   d|d<   n||d<   |d         dk    rd|d<   |r| j        nd}|r| j        nd}	t          | j        |d                     |¦  «        ||	¦  «        S )z Return a new URL with suffix (file extension of name) replaced.

        Query and fragment parts are cleaned up.

        suffix is encoded if needed.
        zInvalid suffix typer   rš   r›   zInvalid suffix z has an empty nameNr�  rŽ  r   r™   r“   )r¾   r�   rÀ   r�   ry   r{   r+   r@  r‚   rv   r¢   rO  r¤   r¥   r½   r¡   r;  )
r«   r|   rc  rd  rz   Ú
old_suffixrw   r¨   ro   ru   s
             rO   Úwith_suffixzURL.with_suffix¸  s˜  € õ ˜&¥#Ñ&Ô&ð 	3ÝÐ1Ñ2Ô2Ð2Øð 	;˜& œ) sÒ*Ð*¨f¸ªm¨m¸sÀf¸}¸}ÝÐ9¨vÐ9Ð9Ñ:Ô:Ð:ØŒ}ˆØð 	<Ý Ð:Ð:Ð:Ñ;Ô;Ð;Ø”_ˆ
Ý˜VÑ$Ô$ˆØ$.ÐUˆt�f‰}ˆ}°DÐ9K½CÀ
¹O¼OÐ;KÐ9KÔ4LÈvÑ4UˆØ�;ÐÐÝÐ<Ñ=Ô=Ð=Ý�T”^Ñ$Ô$ˆØ”\Ð!ˆ6ð 		Ý�5‰zŒz˜QŠˆØ—’˜TÑ"Ô"Ð"Ð"à ��b‘	ØˆE�!‰HˆHàˆE�"‰IØ�QŒx˜3ŠˆØ��a‘à)Ð1�”�¨rˆØ%2Ð:�4”>�>¸ˆÝ˜$œ,¨°·²¸±´ÀÈÑQÔQÐQrN   Úurlc                 ó¢  — t          |¦  «        t          urt          d¦  «        ‚|j        p| j        }|| j        k    s	|t          vr|S |j        x}r+|t          v r"t          |||j        |j	        |j
        ¦  «        S | j        }|j        x}r|d         dk    r|}nZ|sd|› �}nR|d         dk    r|› |› �}n?d                     g | j        dd…         ¢d‘¦  «        |z   }|d         dk    r
|dd…         }d|v rt          |¦  «        n|}n|}t          || j        ||s|j	        r|j	        n| j	        |s|j
        r|j
        n| j
        ¦  «        S )	u_  Join URLs

        Construct a full (â€œabsoluteâ€�) URL by combining a â€œbase URLâ€�
        (self) with another URL (url).

        Informally, this uses components of the base URL, in
        particular the addressing scheme, the network location and
        (part of) the path, to provide missing components in the
        relative URL.

        zurl should be URLr   r›   r™   Nr“   r   rš   )r¼   rZ   rÀ   r¡   ÚUSES_RELATIVEr¢   r   r½   r£   r¤   r¥   r;  rw   r!   )r«   r“  r^   Újoin_netlocÚ	orig_pathÚ	join_pathrl   s          rO   r;  zURL.joiná  s�  € õ �‰9Œ9�CÐÐÝÐ/Ñ0Ô0Ð0à”Ð, ¤ˆØ�T”\Ò!Ð! Vµ=Ð%@Ð%@ØˆJð œ;Ð&ˆKð 	Y¨FµnÐ,DÐ,DÝ˜f k°3´9¸c¼jÈ#Ì-ÑXÔXÐXà”Jˆ	Øœ	Ð!ˆ9ð 	Ø˜Œ|˜sÒ"Ð"Ø ��Øð $Ø&˜9����Ø˜2” #Ò%Ð%Ø#Ð0 YÐ0Ð0��ð —x’xÐ 6 $¤*¨S¨b¨S¤/Ð 6°2Ð 6Ñ7Ô7¸)ÑC�à˜Q”< 3Ò&Ð&Ø   œ8�DØ+.°$¨;¨;•> $Ñ'Ô'Ð'¸DˆDˆDàˆDåØØŒLØØ#ÐB s¤zÐBˆCŒJˆJ°t´{Ø&ÐK¨#¬-ÐKˆCŒMˆM¸T¼^ñ
ô 
ð 	
rN   ©r·   c                ó0   — |                       ||¬¦  «        S )zAReturn a new URL with the elements in other appended to the path.r™  )ré   )r«   r·   rÒ   s      rO   ÚjoinpathzURL.joinpath  s   € à×Ò ¨wÐÑ7Ô7Ð7rN   c                 ó   — t          | j        d¦  «        }t          | j        d¦  «        }| j        x}r
d|v rd|› d�}t          | j        d¦  «        }t
          r|€J ‚| j        s| j        st          |¦  «        }d 	                    d„ | j
                             ¦   «         D ¦   «         ¦  «        }t          | j        d	¦  «        }t
          r|€J ‚t          |||| j        ¦  «        }t          | j        ||||¦  «        S )
z<Return decoded human readable string for URL representation.z#/:?@[]\r‹   r•   r  z#?Nrt  c              3   ó€   K  — | ]9\  }}d                       t          |d¦  «        t          |d¦  «        ¦  «        V — Œ:dS )z{}={}z#&+;=N)Úformatr5   )r7  ÚkÚvs      rO   r9  z!URL.human_repr.<locals>.<genexpr>$  s\   è è € ð  
ð  
á��1ð �NŠN�; q¨'Ñ2Ô2µKÀÀ7Ñ4KÔ4KÑLÔLð 
ð  
ð  
ð  
ð  
ð  
rN   r“   )r5   rb   rd   rf   rl   r
   r¡   r¢   r�   r;  ro   rz  ru   r   rj   r    )r«   rb   rd   rf   rl   rq   ru   r¨   s           rO   Ú
human_reprzURL.human_repr  s  € å˜4œ9 kÑ2Ô2ˆÝ˜tœ}¨kÑ:Ô:ˆØ”IÐˆDð 	 3¨$ ; ;Ø�t�;�;�;ˆDÝ˜4œ9 dÑ+Ô+ˆÝð 	$ØÐ#Ð#Ð#ØŒ|ð 	7 D¤Lð 	7Ý0°Ñ6Ô6ˆDØ—x’xð  
ð  
àœ
×(Ò(Ñ*Ô*ð 
ñ  
ô  
ñ 
ô 
ˆõ ˜tœ}¨bÑ1Ô1ˆÝð 	(ØÐ'Ð'Ð'Ý˜T 8¨T°4Ô3EÑFÔFˆÝ˜dœl¨F°D¸,ÈÑQÔQÐQrN   Úcore_schemar:   Úhandlerr8   r9   c                 ó8   — i }|                      dd¬¦  «         |S )NÚstringÚuri)r¼   rž  )ry  )rÁ   r¢  r£  Úfield_schemas       rO   Ú__get_pydantic_json_schema__z URL.__get_pydantic_json_schema__0  s(   € ð ,.ˆLØ×Ò X°eÐÑ<Ô<Ð<ØÐrN   Úsource_typer7   c                 óJ  — ddl m} |                     |                     ¦   «         |                     t
          ¦  «        g¦  «        }|                     ||                     |                     t
          ¦  «        |g¦  «        | 	                    t          ¦  «        ¬¦  «        S )Nr   )r¢  )Újson_schemaÚpython_schemaÚserialization)r6   r¢  Úchain_schemaÚ
str_schemaÚ no_info_plain_validator_functionrZ   Újson_or_python_schemaÚunion_schemaÚis_instance_schemaÚ$plain_serializer_function_ser_schemar�   )rÁ   r©  r£  r¢  Úfrom_str_schemas        rO   Ú__get_pydantic_core_schema__z URL.__get_pydantic_core_schema__:  s³   € ð 2Ð1Ð1Ð1Ð1Ð1à)×6Ò6à×*Ò*Ñ,Ô,Ø×@Ò@ÅÑEÔEðñô ˆOð ×4Ò4Ø+Ø)×6Ò6ð $×6Ò6µsÑ;Ô;Ø'ðñô ð *×NÒNÍsÑSÔSð 5ñ 
ô 
ð 
rN   ©r†   N)r†   rZ   )r†   rn   )F)r“  rZ   r†   rZ   )r¢  r:   r£  r8   r†   r9   )irH   rI   rJ   Ú	__slots__rX   rV   r�   r¿   r   r   rG   r   r    Úclassmethodr€   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  Úcached_propertyrY   r[   r	  r\   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r&  r‚   rm   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   ré   rZ  r\  r^  r`  rb  rf  r   rh  r$   r   ro  rí   r‰  r‹  r�  r’  r;  r›  r¡  ÚHAS_PYDANTICr¨  r¼   rE   r¶  rM   rN   rO   rZ   rZ   c  s¶  € € € € € € ðN Q€IàÐÐÑØ€L€L�LØ€L€L�LØ€J€J�JØ€K€K�KØ€N€N�Nð >Gð?ð Ø"ð?ð ?ð ?à�3˜ U¨MÐ9Ô:ð?ð ð	?ð
 �t‘ð?ð 
ð?ð ?ð ?ð ?ð: ð ØØØ#ØØØØ"ØØØð^ð ^ð ^ð ð^ð ð	^ð
 �D‰jð^ð ˜‘*ð^ð ð^ð �D‰jð^ð ð^ð �t‰|ð^ð ð^ð ð^ð ð^ð 
ð^ð ^ð ^ñ „[ð^ð@M (ð Mð Mð Mð MðW˜ð Wð Wð Wð Wð ;˜#ð ;ð ;ð ;ð ;ð)˜5ð )ð )ð )ð )ð
˜Fð 
 tð 
ð 
ð 
ð 
ð˜#ð ð ð ð ð'˜Fð ' tð 'ð 'ð 'ð 'ð
&˜Fð & tð &ð &ð &ð &ð
'˜Fð ' tð 'ð 'ð 'ð 'ð
&˜Fð & tð &ð &ð &ð &ð
. ð .¨ð .ð .ð .ð .ð
(˜Uð ( uð (ð (ð (ð (ðQ˜$ð Qð Qð Qð Qð˜e LÔ1ð ð ð ð ð
Ø˜<Ô(¨5°Ð7HÐ1HÔ+IÑIð
à	ð
ð 
ð 
ð 
ðXð Xð Xð Xð	˜Tð 	ð 	ð 	ð 	ð; ð ;ð ;ð ;ð ;ð"ð ð ð ð ðU�lð Uð Uð Uñ „_ðUð ð6ð 6ð 6ñ „_ð6ð Kð Kð Kð Kð ð"˜$ð "ð "ð "ñ „_ð"ð ð˜ð ð ð ñ „_ðð ð˜sð ð ð ñ „_ðð ðK˜3ð Kð Kð Kñ „_ðKð ð'˜# ™*ð 'ð 'ð 'ñ „_ð'ð ð"�c˜D‘jð "ð "ð "ñ „_ð"ð ð+˜c D™jð +ð +ð +ñ „_ð+ð ð&˜# ™*ð &ð &ð &ñ „_ð&ð ð'˜# ™*ð 'ð 'ð 'ñ „_ð'ð ð!�c˜D‘jð !ð !ð !ñ „_ð!ð. ð1 3¨¡:ð 1ð 1ð 1ñ „_ð1ð* ð#D¨¨d©
ð #Dð #Dð #Dñ „_ð#DðJ ð	/�c˜D‘jð 	/ð 	/ð 	/ñ „_ð	/ð ð,˜s T™zð ,ð ,ð ,ñ „_ð,ð ðE˜#ð Eð Eð Eñ „_ðEð ðX�cð Xð Xð Xñ „_ðXð ð
+˜3ð 
+ð 
+ð 
+ñ „_ð
+ð ð+˜t E¨#¨s¨(¤OÔ4ð +ð +ð +ñ „_ð+ð ð=ð =ð =ñ „_ð=ð ð #ð ð ð ñ „_ðð ð?˜cð ?ð ?ð ?ñ „_ð?ð ðQ˜ð Qð Qð Qñ „_ðQð ðE˜Sð Eð Eð Eñ „_ðEð ð˜cð ð ð ñ „_ðð ðB˜#ð Bð Bð Bñ „_ðBð ð&˜5  c œ?ð &ð &ð &ñ „_ð&ð ð@�u˜S #˜X”ð @ð @ð @ñ „_ð@ð ðTð Tð Tñ „_ðTð ð*˜#ð *ð *ð *ñ „_ð*ð ð'�cð 'ð 'ð 'ñ „_ð'ð ð9˜Cð 9ð 9ð 9ñ „_ð9ð
 ð)˜ð )ð )ð )ñ „_ð)ð ðE˜e C¨ Hœoð Eð Eð Eñ „_ðEð ðG˜%  S œ/ð Gð Gð Gñ „_ðGð->ð -> ð ->¸4ð ->ÈEð ->ð ->ð ->ð ->ð^Y #ð Y¨%ð Yð Yð Yð YðY˜c D™jð Y¨Uð Yð Yð Yð Yð,Y c¨D¡jð Y°Uð Yð Yð Yð Yð,Y˜cð Y eð Yð Yð Yð Yð*Y˜c D™jð Y¨Uð Yð Yð Yð Yð, Ø Ø#ðGð Gð GàðGð ð	Gð
 ðGð ðGð 
ðGð Gð Gð Gð( Ø4 Ð4¨%Ð4Ð4Ð4ñ „XØ4àØ? =Ð?°UÐ?Ð?Ð?ñ „XØ?ð
 ð 
¨sð 
°uð 
ð 
ð 
ð 
ð& Ø6 %Ð6¨EÐ6Ð6Ð6ñ „XØ6àØA ]ÐA°uÐAÐAÐAñ „XØAð
 #ð 
°ð 
¸ð 
ð 
ð 
ð 
ð, Ø6 %Ð6¨EÐ6Ð6Ð6ñ „XØ6àØA ]ÐA°uÐAÐAÐAñ „XØAð<
 #ð <
°ð <
¸ð <
ð <
ð <
ð <
ð|
°#ð 
¸%ð 
ð 
ð 
ð 
ð
 c¨D¡jð 
°Uð 
ð 
ð 
ð 
ð2 !Ø#ð$Rð $Rð $Ràð$Rð ð	$Rð
 ð$Rð 
ð$Rð $Rð $Rð $RðT !Ø#ð'Rð 'Rð 'Ràð'Rð ð	'Rð
 ð'Rð 
ð'Rð 'Rð 'Rð 'RðR2
ð 2
ð 2
ð 2
ðh 5:ð 8ð 8ð 8˜sð 8¨Tð 8¸eð 8ð 8ð 8ð 8ðR˜Cð Rð Rð Rð Rð* ð (à	ð	 à%ð	 ð ,ð	 ð ð		 ð 	 ð 	 ñ 
Œð	 ð 
ð	à˜dœ d¨3¤iÑ/ð	ð ,ð	ð ð		ð 	ð 	ñ 
Œð	ð 	ð 	ð(ð (rN   é   i   r  c                 óÂ   — 	 t          j        |                      d¦  «        ¦  «        S # t          $ r+ |                      d¦  «                             d¦  «        cY S w xY w)NrÏ   Úidna)r¾  ÚdecoderÐ   ÚUnicodeError)r  s    rO   r  r  ]  sd   € ð2ÝŒ{˜3Ÿ:š: gÑ.Ô.Ñ/Ô/Ð/øÝð 2ð 2ð 2Ø�zŠz˜'Ñ"Ô"×)Ò)¨&Ñ1Ô1Ð1Ð1Ð1ð2øøøs   ‚&) ©2AÁAc                 óÆ   — 	 t          j        | d¬¦  «                             d¦  «        S # t          $ r+ |                      d¦  «                             d¦  «        cY S w xY w)NT)Úuts46rÏ   r¾  )r¾  rÐ   r¿  rÀ  )rf   s    rO   Ú_idna_encoderÃ  e  sk   € ð3ÝŒ{˜4 tÐ,Ñ,Ô,×3Ò3°GÑ<Ô<Ð<øÝð 3ð 3ð 3Ø�{Š{˜6Ñ"Ô"×)Ò)¨'Ñ2Ô2Ð2Ð2Ð2ð3øøøs   ‚(+ «2A ÁA r˜   c           
      ó:  — | r¾| d                               ¦   «         sd| v r d| v rdnd}|                      |¦  «        \  }}}	 t          |¦  «        }|r-|r+|rt                               |¦  «        rt          d¦  «        ‚|j        } |j        dk    r|r
d| › |› |› d�nd| › d�S |r| › |› |› �n| S # t
          $ r Y nw xY w|                      ¦   «         r”|  	                    ¦   «         } |r|t                               | ¦  «        x}r`|                     ¦   «         |                     ¦   «         d	}
}	}|d
k    s|dk    rd
| |	d…         v rd}
t          d| ›d|›d|	› d|
› �¦  «        d‚| S t                               | ¦  «        x}r>t          d| ›d|                     ¦   «         ›d|                     ¦   «         › d�¦  «        d‚t          | ¦  «        }|rGt                               |¦  «        x}r+t          d| ›d|                     ¦   «         ›d|›�¦  «        d‚|S )zEncode host part of URL.r™   r‹   r  r  z%Invalid characters in zone identifieré   r•   r  r“   r”   NzQ, if the value includes a username or password, use 'authority' instead of 'host'zHost z cannot contain z (at position ú)z after IDNA normalization to )r  Ú	partitionr	   Ú_ZONE_ID_UNSAFE_REÚsearchr�   Ú
compressedÚversionÚisasciirX  ÚNOT_REG_NAMEÚgroupÚstartÚ_DEFAULT_IGNORABLE_RErÃ  )rf   r˜   r8  Úraw_ipÚsepÚzoneÚipÚinvalidr…  ÚposÚextrar·   s               rO   rž   rž   m  sò  € ð
 ð $9��b”×!Ò!Ñ#Ô#ð $9 s¨d { {ð  ˜˜ˆuˆu¨3ˆØ ŸNšN¨4Ñ0Ô0Ñˆ��Tð&	9Ý˜FÑ#Ô#ˆBð ð J�}ð J¨dð JÕ6H×6OÒ6OÐPTÑ6UÔ6Uð JÝ Ð!HÑIÔIÐIð ”=ˆDØŒz˜QŠˆØ14ÐEÐ-˜4Ð- Ð- dÐ-Ð-Ð-Ð-¸+¸d¸+¸+¸+ÐEØ+.Ð8�dÐ'˜CÐ' Ð'Ð'Ð'°DÐ8øõ ð 	ð 	ð 	ØˆDð	øøøð ‡|‚|�~„~ð ð �zŠz‰|Œ|ˆØð 
	­×)<Ò)<¸TÑ)BÔ)BÐB˜gð 
	Ø '§¢¡¤°·²±´À"˜�3ˆEØ˜Š|ˆ| ¨¢ °¸¸S¸T¸T¼
Ð1BÐ1Bð8ð õ ØT˜ÐTÐT°ÐTÐTÀsÐTÐTÈUÐTÐTñô àðð ˆõ (×.Ò.¨tÑ4Ô4Ð4€wð Ýð/�Dð /ð /¨G¯MªM©O¬Oð /ð /Ø#ŸMšM™OœOð/ð /ð /ñ
ô 
ð ð	õ ˜4Ñ Ô €Gð ð ¥\×%8Ò%8¸Ñ%AÔ%AÐA˜'ð Ýð7�Dð 7ð 7¨G¯MªM©O¬Oð 7ð 7Ø+2ð7ð 7ñ
ô 
ð ð	ð €Ns   ÁB1 Â1
B>Â=B>c                  óœ   — t                                ¦   «          t                               ¦   «          t                               ¦   «          dS )zClear all LRU caches.N)rÃ  Úcache_clearr  rž   rM   rN   rO   rÙ  rÙ  Ã  s@   € õ ×ÒÑÔÐÝ×ÒÑÔÐÝ×ÒÑÔÐÐÐrN   c                  óø   — t                                ¦   «         t                               ¦   «         t                               ¦   «         t                               ¦   «         t                               ¦   «         dœS )zReport cache statistics.)rR   rS   r	   rT   rU   )rÃ  Ú
cache_infor  rž   rM   rN   rO   rÛ  rÛ  Ë  s^   € õ $×.Ò.Ñ0Ô0Ý#×.Ò.Ñ0Ô0Ý"×-Ò-Ñ/Ô/Ý%×0Ò0Ñ2Ô2Ý#×.Ò.Ñ0Ô0ðð ð rN   )Úidna_encode_sizeÚidna_decode_sizeÚip_address_sizeÚhost_validate_sizeÚencode_host_sizerÜ  rÝ  rÞ  rß  rà  c                 ó0  — |t           us	|t           urt          j        dt          d¬¦  «         |�||fD ]j}|€d}Œ|t           u r|t           ur|}Œ|t           urEt          r.t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          ||¦  «        }Œk|t           u rt          } t          |¦  «        t          j        ¦  «        a
 t          |¦  «        t          j        ¦  «        a t          | ¦  «        t          j        ¦  «        adS )zConfigure LRU cache sizes.z¬cache_configure() no longer accepts the ip_address_size or host_validate_size arguments, they are used to set the encode_host_size instead and will be removed in the futureé   )Ú
stacklevelN)r¿   rº   r»   ÚDeprecationWarningr
   r¾   r€   ÚmaxÚ_DEFAULT_ENCODE_SIZEr   rž   Ú__wrapped__r  rÃ  )rÜ  rÝ  rÞ  rß  rà  Úsizes         rO   Úcache_configureré  ×  s@  € ð �iÐ'Ð'Ð+=ÅYÐ+NÐ+NÝŒð0õ Øð	
ñ 	
ô 	
ð 	
ð Ð#Ø$Ð&8Ð9ð 
	?ð 
	?ˆDØˆ|Ø#'Ð Ð Ø!¥YÐ.Ð.Ø�yÐ(Ð(Ø'+Ð$øØ�YÐ&Ð&Ý ð =Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý%Ð&6½Ñ<Ô<Ð<Ð<Ð<Ý#& tÐ-=Ñ#>Ô#>Ð øØ�yÐ(Ð(Ý3Ðà.•9Ð-Ñ.Ô.­|Ô/GÑHÔH€LØ.•9Ð-Ñ.Ô.­|Ô/GÑHÔH€LØ.•9Ð-Ñ.Ô.­|Ô/GÑHÔH€L€L€LrN   r·  )qÚreÚsysrº   Úcollections.abcr   r   Úenumr   Ú	functoolsr   r   Úimportlib.utilr   Ú	ipaddressr	   Útypingr
   r   r   r   r   r   r   r   Úurllib.parser   r   r   r¾  Ú	multidictr   r   r   Úpropcache.apir   rº  Ú_parser   r   r   r   r   r   r    r£   r!   r"   r¤   r#   r$   r%   r&   r'   r(   Ú_quotersr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r»  Úpydanticr7   r8   Úpydantic.json_schemar9   r6   r:   r±   Ú	frozensetr•  r�   rœ   ÚcompileÚVERBOSErÍ  rÐ  rÈ  rB   Úversion_inforE   rG   rL   r¿   rQ   rX   r‰   r�   r�   r¬   r¯   r€   r³   rµ   r½   rZ   Ú_DEFAULT_IDNA_SIZEræ  r  rÃ  r   rž   rÙ  rÛ  ré  rM   rN   rO   ú<module>rþ     sØ  ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð BÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aà €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø BÐ BÐ BÐ BÐ BÐ Bðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð" ˆy˜Ñ)Ô)°Ð5€Øð )ØCÐCÐCÐCÐCÐCÐCÐCØ4Ð4Ð4Ð4Ð4Ð4Ø(Ð(Ð(Ð(Ð(Ð(ð  c°¸CÈÐKÐK€Ø�	˜-Ñ(Ô(€Ø�	˜,Ñ'Ô'€ð !�yÐ!FÑGÔGÐ ð ˆrŒzðð „Jñô €ðD #˜œ
ðñô Ð ð8  �R”ZÐ 2Ñ3Ô3Ð à€WˆT�]„]€àÔ�wÒÐØÐÐÐÐÐÐà€Dðð ð ð ð �Dñ ô ð ð Ô$€	ðð ð ð ð �	ñ ô ð ð$ð $ð $ð $ð $˜	¨ð $ñ $ô $ð $ðN˜ð ˜rð ð ð ð ð
<¨ð <°ð <ð <ð <ð <ð ð>˜ð > ð >ð >ð >ñ „ð>ðB ð˜Sð  Uð ð ð ñ „ðð ðØðàðð �‰*ðð �D‰jð	ð
 ðð �‰*ðð ðð ðð ðð ðð ð ñ „ððDØðØðØ$'ðØ03ðØ?Bðà
ðð ð ð ð  ˆYÐ*Ñ+Ô+€
ð ðrð rð rð rð rñ rô rñ „ðrðj' Ð ØÐ ð €ÐÑÔð2�cð 2˜cð 2ð 2ð 2ñ Ôð2ð €ÐÑÔð3�sð 3˜sð 3ð 3ð 3ñ Ôð3ð €ÐÑ Ô ðR�sð R¨4ð R°Cð Rð Rð Rñ !Ô ðRðj ðð ð ñ „ðð ð�Ið ð ð ñ „ðð ð $6Ø#5Ø2;Ø5>Ø3<ð'Ið 'Ið 'Ià˜D‘jð'Ið ˜D‘jð'Ið ˜4‘Z -Ñ/ð	'Ið
 ˜d™
 ]Ñ2ð'Ið ˜D‘j =Ñ0ð'Ið 
ð'Ið 'Ið 'Iñ „ð'Ið 'Ið 'IrN   