AlkantarClanX12

Your IP : 3.14.250.187


Current Path : /opt/alt/python311/lib64/python3.11/urllib/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/urllib/__pycache__/parse.cpython-311.opt-2.pyc

�

c��f����*�	ddlmZddlZddlZddlZddlZddlZddlZgd�Zgd�Z	gd�Z
gd�Zgd�Zgd�Z
gd	�Zd
ZdZgd�Zd
�ZdZdZd�Zeefd�Zeefd�Zd�ZGd�de��ZGd�de��ZGd�de��ZGd�dee��ZGd�dee��Zedd��Zed d!��Z ed"d#��Z!d$e_"d%ej#_"d&ej$_"d'e _"d(e j%_"d)e j&_"d*e j'_"d+e j(_"d,e j$_"d-e!_"e j%j"e!j%_"e j&j"e!j&_"e j'j"e!j'_"d.e!j)_"e j(j"e!j(_"e j$j"e!j$_"eZ*Gd/�dee��Z+Gd0�d e e��Z,Gd1�d"e!e��Z-Gd2�d3ee��Z.Gd4�d5e e��Z/Gd6�d7e!e��Z0d8�Z1e1��[1dsd;�Z2d<�Z3dtd=�Z4d>�Z5d?�Z6ej7d:�@��dsdA���Z8dB�Z9dC�Z:dudD�Z;dE�Z<dFZ=da>dG�Z?ej@dH��ZAdvdK�ZB		dwdN�ZC		dwdO�ZDdvdP�ZEeFdQ��ZGeHeG��ZIdR�ZJGdS�dTeK��ZLdxdV�ZMdydW�ZNej7dX���ZOdzdY�ZPdLd9ddeNfdZ�ZQd[�ZRd\�ZSd]�ZTd^�ZUdaVd_�ZWd`�ZXdaYda�ZZdb�Z[dc�Z\dd�Z]de�Z^df�Z_da`dg�Zad{di�Zbd{dj�Zcdk�Zddl�Zedm�Zfdn�Zgdo�Zhdp�Zidq�Zjdr�ZkdS)|�)�
namedtupleN)�urlparse�
urlunparse�urljoin�	urldefrag�urlsplit�
urlunsplit�	urlencode�parse_qs�	parse_qsl�quote�
quote_plus�quote_from_bytes�unquote�unquote_plus�unquote_to_bytes�DefragResult�ParseResult�SplitResult�DefragResultBytes�ParseResultBytes�SplitResultBytes)��ftp�http�gopher�nntp�imap�wais�file�https�shttp�mms�prospero�rtsp�rtsps�rtspu�sftp�svn�svn+ssh�ws�wss)rrrrr�telnetrrr r#r!r"�snewsr$r%r&r'�rsyncr)r*r(�nfs�gitzgit+sshr+r,)rr�hdlr$rrr!r"r%r&r'�sip�sipsr#r(�tel)
rr2�mailto�newsr-rrr.r3r4)
rrrrr!r"r#rr%r&r'r3r4)
rrr2rrr7rrr!r"r.r r$zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!	

 )�	�
�
c�l�	t���t���dS�N)r�cache_clear�_byte_quoter_factory���3/opt/alt/python311/lib64/python3.11/urllib/parse.py�clear_cacherB^s/��N��������$�$�&�&�&�&�&r@�ascii�strictc��|Sr<r?)�objs rA�_nooprGls���Jr@c�.�|�||��Sr<��encode)rF�encoding�errorss   rA�_encode_resultrMos���:�:�h��'�'�'r@c�>���t��fd�|D����S)Nc3�L�K�|]}|r|�����ndV��dS)rN��decode��.0�xrKrLs  ��rA�	<genexpr>z_decode_args.<locals>.<genexpr>us;�����G�G�Q�q�8����(�F�+�+�+�b�G�G�G�G�G�Gr@)�tuple)�argsrKrLs ``rA�_decode_argsrXss*�����G�G�G�G�G�$�G�G�G�G�G�Gr@c���t|dt��}|dd�D],}|r(t|t��|krtd����-|r|tfzSt	|��t
fzS)Nr�z$Cannot mix str and non-str arguments)�
isinstance�str�	TypeErrorrGrXrM)rW�	str_input�args   rA�_coerce_argsr`ws����4��7�C�(�(�I��A�B�B�x�D�D���	D�:�c�3�'�'�9�4�4��B�C�C�C�����u�h�������� 1�1�1r@c��eZdZ	dZdd�ZdS)�_ResultMixinStrr?rCrDc�4���|j��fd�|D���S)Nc3�D�K�|]}|�����V��dSr<rIrRs  ��rArUz)_ResultMixinStr.encode.<locals>.<genexpr>��1�����*T�*T�!�1�8�8�H�f�+E�+E�*T�*T�*T�*T�*T�*Tr@)�_encoded_counterpart��selfrKrLs ``rArJz_ResultMixinStr.encode��,����(�t�(�*T�*T�*T�*T�*T�t�*T�*T�*T�U�Ur@N�rCrD)�__name__�
__module__�__qualname__�	__slots__rJr?r@rArbrb��6������H��I�V�V�V�V�V�Vr@rbc��eZdZ	dZdd�ZdS)�_ResultMixinBytesr?rCrDc�4���|j��fd�|D���S)Nc3�D�K�|]}|�����V��dSr<rPrRs  ��rArUz+_ResultMixinBytes.decode.<locals>.<genexpr>�rer@)�_decoded_counterpartrgs ``rArQz_ResultMixinBytes.decode�rir@Nrj)rkrlrmrnrQr?r@rArqrq�ror@rqc��eZdZ	dZed���Zed���Zed���Zed���Ze	e
j��ZdS)�_NetlocResultMixinBaser?c��|jdS)Nr��	_userinfo�rhs rA�usernamez_NetlocResultMixinBase.username�����~�a� � r@c��|jdS)NrZrxrzs rA�passwordz_NetlocResultMixinBase.password�r|r@c��|jd}|sdSt|t��rdnd}|�|��\}}}|���|z|zS)Nr�%�%)�	_hostinfor[r\�	partition�lower)rh�hostname�	separator�percent�zones     rAr�z_NetlocResultMixinBase.hostname�si���>�!�$���	��4�&�h��4�4�>�C�C�$�	�"*�"4�"4�Y�"?�"?���'�4��~�~���'�)�D�0�0r@c���|jd}|�h|���r$|���rt|��}nt	d|�����d|cxkrdksnt	d���|S)NrZz+Port could not be cast to integer value as ri��zPort out of range 0-65535)r��isdigit�isascii�int�
ValueError)rh�ports  rAr�z_NetlocResultMixinBase.port�s����~�a� �����|�|�~�~�
Y�$�,�,�.�.�
Y��4�y�y��� �!W�t�!W�!W�X�X�X���&�&�&�&��&�&�&�&� �!<�=�=�=��r@N)
rkrlrmrn�propertyr{r~r�r��classmethod�types�GenericAlias�__class_getitem__r?r@rArvrv�s�������R��I�
�!�!��X�!��!�!��X�!��1�1��X�1��	�	��X�	�$��E�$6�7�7���r@rvc�>�eZdZdZed���Zed���ZdS)�_NetlocResultMixinStrr?c��|j}|�d��\}}}|r|�d��\}}}|sd}ndx}}||fS)N�@�:��netloc�
rpartitionr��rhr��userinfo�	have_info�hostinfor{�
have_passwordr~s        rAryz_NetlocResultMixinStr._userinfo�sh�����(.�(9�(9�#�(>�(>�%��)�X��	'�08�0B�0B�3�0G�0G�-�H�m�X� �
 ����"&�&�H�x���!�!r@c� �|j}|�d��\}}}|�d��\}}}|r3|�d��\}}}|�d��\}}}n|�d��\}}}|sd}||fS)Nr��[�]r�r��rhr��_r��have_open_br�	bracketedr�r�s        rAr�z_NetlocResultMixinStr._hostinfo�s�������*�*�3�/�/���1�h�%-�%7�%7��%<�%<�"��<���	8� )� 3� 3�C� 8� 8��H�a������,�,�J�A�q�$�$� (� 2� 2�3� 7� 7��H�a���	��D���~�r@N�rkrlrmrnr�ryr�r?r@rAr�r���M�������I�
�	"�	"��X�	"�����X���r@r�c�>�eZdZdZed���Zed���ZdS)�_NetlocResultMixinBytesr?c��|j}|�d��\}}}|r|�d��\}}}|sd}ndx}}||fS)N�@�:r�r�s        rAryz!_NetlocResultMixinBytes._userinfo�sh�����(.�(9�(9�$�(?�(?�%��)�X��	'�08�0B�0B�4�0H�0H�-�H�m�X� �
 ����"&�&�H�x���!�!r@c� �|j}|�d��\}}}|�d��\}}}|r3|�d��\}}}|�d��\}}}n|�d��\}}}|sd}||fS)Nr��[�]r�r�r�s        rAr�z!_NetlocResultMixinBytes._hostinfo�s�������*�*�4�0�0���1�h�%-�%7�%7��%=�%=�"��<���	9� )� 3� 3�D� 9� 9��H�a������-�-�J�A�q�$�$� (� 2� 2�4� 8� 8��H�a���	��D���~�r@Nr�r?r@rAr�r��r�r@r�rzurl fragmentrz!scheme netloc path query fragmentrz(scheme netloc path params query fragmentz�
DefragResult(url, fragment)

A 2-tuple that contains the url without fragment identifier and the fragment
identifier as a separate argument.
z$The URL with no fragment identifier.z�
Fragment identifier separated from URL, that allows indirect identification of a
secondary resource by reference to a primary resource and additional identifying
information.
z�
SplitResult(scheme, netloc, path, query, fragment)

A 5-tuple that contains the different components of a URL. Similar to
ParseResult, but does not split params.
z%Specifies URL scheme for the request.z0
Network location where the request is made to.
z@
The hierarchical path, such as the path to a file to download.
z�
The query component, that contains non-hierarchical data, that along with data
in path component, identifies a resource in the scope of URI's scheme and
network location.
z�
Fragment identifier, that allows indirect identification of a secondary resource
by reference to a primary resource and additional identifying information.
zq
ParseResult(scheme, netloc, path, params, query, fragment)

A 6-tuple that contains components of a parsed URL.
z�
Parameters for last path element used to dereference the URI in order to provide
access to perform some operation on the resource.
c��eZdZdZd�ZdS)rr?c�B�|jr|jdz|jzS|jS�N�#��fragment�urlrzs rA�geturlzDefragResult.geturlEs&���=�	��8�c�>�D�M�1�1��8�Or@N�rkrlrmrnr�r?r@rArrC�(�������I�����r@c��eZdZdZd�ZdS)rr?c� �t|��Sr<�r	rzs rAr�zSplitResult.geturlM����$���r@Nr�r?r@rArrK�(�������I� � � � � r@c��eZdZdZd�ZdS)rr?c� �t|��Sr<�rrzs rAr�zParseResult.geturlRr�r@Nr�r?r@rArrPr�r@c��eZdZdZd�ZdS)rr?c�B�|jr|jdz|jzS|jS)N�#r�rzs rAr�zDefragResultBytes.geturlXs&���=�	��8�d�?�T�]�2�2��8�Or@Nr�r?r@rArrVr�r@rc��eZdZdZd�ZdS)rr?c� �t|��Sr<r�rzs rAr�zSplitResultBytes.geturl`r�r@Nr�r?r@rArr^r�r@rc��eZdZdZd�ZdS)rr?c� �t|��Sr<r�rzs rAr�zParseResultBytes.geturler�r@Nr�r?r@rArrcr�r@rc��ttfttftt
ff}|D]\}}||_||_�dSr<)rrrrrrrfrt)�
_result_pairs�_decoded�_encodeds   rA�_fix_result_transcodingr�isW��	�(�)�	�&�'�	�&�'��M�
,�1�1���(�(0��%�(0��%�%�1�1r@rTc���	t||��\}}}t|||��}|\}}}}}|tvrd|vrt|��\}}nd}t	||||||��}	||	��S)N�;r)r`r�uses_params�_splitparamsr)
r��scheme�allow_fragments�_coerce_result�splitresultr��queryr��params�results
          rArrvs����&#/�s�F�";�";��C����3���8�8�K�+6�(�F�F�C���
��������"�3�'�'���V�V���
����f�e�X�
F�
F�F��>�&�!�!�!r@c���d|vr4|�d|�d����}|dkr|dfSn|�d��}|d|�||dzd�fS)N�/r�rrrZ)�find�rfind)r��is  rAr�r��so��
�s�{�{��H�H�S�#�)�)�C�.�.�)�)���q�5�5���7�N��
�H�H�S�M�M���r��r�7�C��!����I��r@c��t|��}dD].}|�||��}|dkrt||��}�/|||�||d�fS)Nz/?#r)�lenr��min)r��start�delim�c�wdelims     rA�_splitnetlocr��sd����H�H�E�
�'�'�����!�U�#�#���Q�;�;���v�&�&�E���u�U�{��S����[�(�(r@c�l�|r|���rdSddl}|�dd��}|�dd��}|�dd��}|�dd��}|�d|��}||krdSdD]}||vrt	d	|zd
zdz����dS)Nrr�rr�r��?�NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)r��unicodedata�replace�	normalizer�)r�r��n�netloc2r�s     rA�_checknetlocr��s�����V�^�^�%�%�����������s�B���A�	�	�	�#�r���A�	�	�	�#�r���A�	�	�	�#�r���A��#�#�F�A�.�.�G��G�|�|���
�D�D����<�<��Z�&�0�3H�H�B�C�D�D�
D��D�Dr@c��|�d��r&tjd|��std���dSt	j|��}t
|tj��rtd���dS)N�vz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)�
startswith�re�matchr��	ipaddress�
ip_addressr[�IPv4Address)r��ips  rA�_check_bracketed_hostr��s������3���G��x�0�(�;�;�	>��<�=�=�=�	>�	>��
!�(�
+�
+���b�)�/�0�0�	G��E�F�F�F�	G�	Gr@)�typedc�2�	t||��\}}}|�t��}|�t��}tD].}|�|d��}|�|d��}�/t
|��}dx}x}}|�d��}|dkru|d���r[|d�	��rA|d|�D]
}	|	tvrn*�|d|����||dzd�}}|dd�dkr}t|d��\}}d|vrd|vsd|vrd|vrtd	���d|vrGd|vrC|�d��d�d��d}
t|
��|rd
|vr|�d
d��\}}d|vr|�dd��\}}t#|��t%|||||��}||��S)Nrr�rrZ��//r�r�zInvalid IPv6 URLr�r�)r`�lstrip�_WHATWG_C0_CONTROL_OR_SPACE�strip�_UNSAFE_URL_BYTES_TO_REMOVEr��boolr�r��isalpha�scheme_charsr�r�r�r�r��splitr�r)r�r�r�r��br�r�r�r�r��bracketed_hostr�s            rArr�sD���(#/�s�F�";�";��C����*�*�0�
1�
1�C�
�\�\�5�
6�
6�F�
(�'�'���k�k�!�R� � ������2�&�&����?�+�+�O� "�"�F�"�U�X�����
�
�A��1�u�u��Q����!�!�u�c�!�f�n�n�&6�&6�u��R�a�R��	5�	5�A���$�$���%��b�q�b�'�-�-�/�/�3�q��s�t�t�9�C�F�
�2�A�2�w�$���"�3��*�*����
�F�]�]�s�&�0�0�����3�f�#4�#4��/�0�0�0��&�=�=�S�F�]�]�#�-�-�c�2�2�1�5�?�?��D�D�Q�G�N�!�.�1�1�1��*�3�#�:�:��	�	�#�q�)�)�
��X�
�c�z�z��Y�Y�s�A�&�&�
��U�������F�F�C���9�9�A��>�!���r@c	�r�	t|�\}}}}}}}|r|�d|��}|t|||||f����S)Nr�)r`r	)�
componentsr�r�r�r�r�r�r�s        rArr�s`��5�
3?�
�2K�A�F�F�C����.�
�&����f�f�%���>�*�f�f�c�5�(�%K�L�L�M�M�Mr@c���	t|�\}}}}}}|s|r	|tvs|dd�dkr|r|dd�dkrd|z}d|pdz|z}|r|dz|z}|r|dz|z}|r|dz|z}||��S)	Nr�r�rZr�rr�r�r�)r`�uses_netloc)r
r�r�r�r�r�r�s       rAr	r	s���?�+7�
�*C�9�F�F�C���.�
�*�&�*�V�{�2�2�s�2�A�2�w�$����2�3�r��r�7�c�>�>��s��3��f�l��#�c�)��
�!��s�l�S� ��� ��C�i�%����#��C�i�(�"���>�#���r@c
��	|s|S|s|St||��\}}}t|d|��\}}}}}}	t|||��\}
}}}
}}|
|ks	|
tvr||��S|
tvr"|r|t	|
|||
||f����S|}|s(|
s&|}|}
|s|}|t	|
|||
||f����S|�d��}|ddkr|d=|dd�dkr|�d��}n5||�d��z}t
d|dd���|dd�<g}|D]J}|dkr&	|����#t$rY�*wxYw|dkr�5|�	|���K|ddvr|�	d��|t	|
|d�
|��pd|
||f����S)Nrr����rZ�..�.)rr)r`r�
uses_relativerrr�filter�pop�
IndexError�append�join)�baser�r�r��bscheme�bnetloc�bpath�bparams�bquery�	bfragmentr�r��pathr�r�r��
base_parts�segments�
resolved_path�segs                    rArrs���%����
����� ,�T�3� 7� 7��D�#�~��T�2��/�/�8�G�W�e�W�f�i�
�S�'�?�3�3�2�F�F�D�&�%������F�-�7�7��~�c�"�"�"�
�����	I�!�>�*�f�f�d�.4�e�X�.G�#H�#H�I�I�
I����E��E������	��E��~�j�&�&�$�*0�%��*C�D�D�E�E�	E����S�!�!�J��"�~����
�r�N��B�Q�B�x�3����:�:�c�?�?�����
�
�3���/�� ��h�q��t�n�5�5���2����M��&�&���$�;�;�
��!�!�#�#�#�#���
�
�
���
�����C�Z�Z��� � ��%�%�%�%���|�{�"�"�	���R� � � ��>�*�f�f�c�h�h��7�7�7��v�u�h�&8�9�9�:�:�:s�E�
E)�(E)c���	t|��\}}d|vr,t|��\}}}}}}t|||||df��}nd}|}|t||����S)Nr�r)r`rrr)	r�r��sr��p�a�q�frag�defrags	         rArr`s|���'�s�+�+��C��
�c�z�z�&�s�m�m���1�a��A�t��Q��1�a��B�/�0�0��������>�,�v�t�4�4�5�5�5r@�0123456789ABCDEFabcdefc��	|s	|jdSt|t��r|�d��}|�d��}t	|��dkr|S|dg}|j}t�d�tD��a|dd�D]Z}	|t|dd���||dd����5#t$r|d��||��Y�WwxYwd�	|��S)Nr@�utf-8r�rZrc��i|]?}tD]5}||z���t�||z����6�@Sr?)�_hexdigrJ�bytes�fromhex)rSr&rs   rA�
<dictcomp>z$unquote_to_bytes.<locals>.<dictcomp>�s\��9�9�9���9�9�+,��1�u�n�n�&�&��
�
�a�!�e�(<�(<�9�9�9�9r@r�)
rr[r\rJr�r�
_hextobyter.�KeyErrorr)�string�bits�resr�items     rArrss:��6�������s��&�#���(����w�'�'���<�<����D�
�4�y�y�A�~�~��
���7�)�C�
�Z�F���9�9�&�9�9�9�
��Q�R�R�����	��F�:�d�2�A�2�h�'�(�(�(��F�4����8�������	�	�	��F�4�L�L�L��F�4�L�L�L�L�L�	�����8�8�C�=�=�s�1C� C+�*C+z([-]+)r,r�c���	t|t��r#t|���||��Sd|vr	|j|S|�d}|�d}t
�|��}|dg}|j}tdt|��d��D]H}|t||���||����|||dz���Id�	|��S)Nr�r,r�rrZr�r)
r[r/rrQr�_asciirer�ranger�r)r4rKrLr5r6rr�s       rArr�s����&�%� � �A���'�'�.�.�x��@�@�@�
�&�������
�����
�~����>�>�&�!�!�D���7�)�C�
�Z�F�
�1�c�$�i�i��
#�
#��������Q��(�(�/�/��&�A�A�B�B�B���t�A��E�{�����
�7�7�3�<�<�r@F�&c	��	i}t|||||||���}|D]+\}	}
|	|vr||	�|
���%|
g||	<�,|S)N)rKrL�max_num_fieldsr�)rr)�qs�keep_blank_values�strict_parsingrKrLr=r��
parsed_result�pairs�name�values           rArr�s����8�M��b�+�^�'��%3�y�
J�
J�
J�E��*�*���e��=� � ��$��&�&�u�-�-�-�-�#(�'�M�$����r@c�����	|rt|ttf��std���t|t��r.t|t��st|d��}d}��fd�}nJ|sgStt	|����}t|t��rt|d��}d}d�}|sgS|�-d|�|��z}	||	krtd���g}
|�|��D]f}|s|r`|�|��\}}
}|
s|rtd	|�����|s|r-||��}||��}|
�||f���g|
S)
Nz*Separator must be of type string or bytes.rC�=c�(��t|�����S)N)rKrL)r)r$rKrLs ��rA�_unquotezparse_qsl.<locals>._unquote�s�����H�V�D�D�D�Dr@�=c�H�t|�dd����S)N�+� )rr�)r$s rArHzparse_qsl.<locals>._unquotes��#�A�I�I�d�D�$9�$9�:�:�:r@rZzMax number of fields exceededzbad query field: )	r[r\r/r��
memoryview�countrr�r)r>r?r@rKrLr=r��eqrH�
num_fields�r�
name_valuerC�has_eqrDs   ``          rArr�s������8�G�J�y�3��,�?�?�G��E�F�F�F��"�c���;��)�S�)�)�	0��I�w�/�/�I�
��	E�	E�	E�	E�	E�	E�	E��	��I��:�b�>�>�
"�
"���i��%�%�	2��i��1�1�I�
��	;�	;�	;����	�
�!�����)�,�,�,�
��J�&�&��<�=�=�=�
�A��h�h�y�)�)�(�(�
��	(��	(�",�"6�"6�r�":�":��D�&�%��
H�n�
H� �j�*�*�!F�G�G�G��
(�)�
(��x��~�~�� ���������$���'�'�'���Hr@c�R�	|�dd��}t|||��S)N�+� )r�r)r4rKrLs   rArr"s.���
�^�^�C��
%�
%�F��6�8�V�,�,�,r@sBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c��|dkr#tjdtd���tSt	dt
�d|�����)N�QuoterzoDeprecated in 3.11. urllib.parse.Quoter will be removed in Python 3.14. It was not intended to be a public API.r���
stacklevelzmodule z has no attribute )�warnings�warn�DeprecationWarning�_Quoter�AttributeErrorrk)rCs rA�__getattr__r`1sY���x����
�@�)�Q�	8�	8�	8�	8���
�I�8�I�I��I�I�
J�
J�Jr@c�"�eZdZ	d�Zd�Zd�ZdS)r^c�F�	t�|��|_dSr<)�_ALWAYS_SAFE�union�safe)rhres  rA�__init__z_Quoter.__init__Bs��!� �&�&�t�,�,��	�	�	r@c�(�dt|���d�S)Nz<Quoter �>)�dictrzs rA�__repr__z_Quoter.__repr__Fs��)�$�t�*�*�)�)�)�)r@c�j�||jvrt|��nd�|��}|||<|S)Nz%{:02X})re�chr�format)rhrr6s   rA�__missing__z_Quoter.__missing__Is7���T�Y���c�!�f�f�f�I�,<�,<�Q�,?�,?����Q���
r@N)rkrlrmrfrjrnr?r@rAr^r^:sF�������-�-�-�*�*�*�����r@r^r�c���	t|t��r#|s|S|�d}|�d}|�||��}n"|�td���|�td���t	||��S)Nr,rDz,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r[r\rJr]r)r4rerKrLs    rAr
r
Os���%�L�&�#���J��	��M����H��>��F����x��0�0������J�K�K�K����H�I�I�I��F�D�)�)�)r@c��	t|t��rd|vst|t��rd|vrt||||��St|t��rd}nd}t|||z||��}|�dd��S)NrVrLrU)r[r\r/r
r�)r4rerKrL�spaces     rArr�s����
�F�C�	 �	 �5�S��%6�%6�	�F�E�	"�	"�&7�'+�6�'9�'9��V�T�8�V�4�4�4��$����������
�6�4�%�<��6�
:�
:�F��>�>�#�s�#�#�#r@c�*�t|��jSr<)r^�__getitem__)res rAr>r>�s���4�=�=�$�$r@c���	t|ttf��std���|sdSt|t��r|�dd��}ntd�|D����}|�t|z��s|���St|���d�
�fd�|D����S)Nz!quote_from_bytes() expected bytesrrC�ignorec��g|]
}|dk�|��S)�r?)rSr�s  rA�
<listcomp>z$quote_from_bytes.<locals>.<listcomp>�s��1�1�1�A��S���a���r@c�&��g|]
}�|����Sr?r?)rS�char�quoters  �rArxz$quote_from_bytes.<locals>.<listcomp>�s!���0�0�0�T�F�F�4�L�L�0�0�0r@)r[r/�	bytearrayr]r\rJ�rstrip�_ALWAYS_SAFE_BYTESrQr>r)�bsrer{s  @rArr�s������b�5�)�,�-�-�=��;�<�<�<�
���r��$����3��{�{�7�H�-�-����1�1��1�1�1�2�2��
�9�9�'�$�.�/�/���y�y�{�{��
!�$�
'�
'�F�
�7�7�0�0�0�0�R�0�0�0�1�1�1r@c�V�	t|d��r|���}nU	t|��r"t|dt��st
�n"#t
$r}td��|�d}~wwxYwg}|s�|D]�\}}	t|t��r
|||��}n|t|��|||��}t|	t��r
||	|��}	n|t|	��|||��}	|�|dz|	z�����nw|D�]s\}}	t|t��r
|||��}n|t|��|||��}t|	t��r(||	|��}	|�|dz|	z����t|	t��r*||	|||��}	|�|dz|	z����	t|	��}
|	D]Z}t|t��r
|||��}n|t|��|||��}|�|dz|z���[��.#t
$r:|t|	��|||��}	|�|dz|	z��Y��qwxYwd�	|��S)N�itemsrz1not a valid non-string sequence or mapping objectrFr;)
�hasattrr�r�r[rVr]r/r\rr)r��doseqrerKrL�	quote_via�err�l�kr�rT�elts            rAr
r
�s ��
��u�g���:����
�
���	:��5�z�z�
 �*�U�1�X�u�"=�"=�
 �����
�	:�	:�	:��0�1�1�69�
:�����	:����	�A��(0��
	"�
	"�D�A�q��!�U�#�#�
>��I�a��&�&����I�c�!�f�f�d�H�f�=�=���!�U�#�#�
>��I�a��&�&����I�c�!�f�f�d�H�f�=�=��
�H�H�Q��W�q�[�!�!�!�!�
	"��	0�	0�D�A�q��!�U�#�#�
>��I�a��&�&����I�c�!�f�f�d�H�f�=�=���!�U�#�#�
0��I�a��&�&������S��1��%�%�%�%��A�s�#�#�
0��I�a��x��8�8������S��1��%�%�%�%�0��A���A� !�0�0��%�c�5�1�1�N�"+�)�C��"6�"6�C�C�"+�)�C��H�H�d�H�f�"M�"M�C�����S��3��/�/�/�/�0��
!�*�*�*�!�	�#�a�&�&�$��&�A�A�A��H�H�Q��W�q�[�)�)�)�)�)�*�����8�8�A�;�;�s*�1A�
A9�$A4�4A9�!I�AJ�Jc�X�tjdtd���t|��S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r�rY)r[r\r]�	_to_bytes�r�s rA�to_bytesr��s/���M�C�$��4�4�4�4��S�>�>�r@c���	t|t��rY	|�d�����}n0#t$r#t	dt|��zdz���wxYw|S)N�ASCIIzURL z contains non-ASCII characters)r[r\rJrQ�UnicodeError�reprr�s rAr�r�s���%��#�s���A�	A��*�*�W�%�%�,�,�.�.�C�C���	A�	A�	A��v��S�	�	�1�?� @�A�A�
A�	A�����Js�'A�-A-c��	t|�����}|dd�dkr*|dd�dkr|dd����}|dd�dkr|dd����}|S)NrZ�<rrh�zURL:)r\rr�s rA�unwrapr�s�����c�(�(�.�.�
�
�C�
�2�A�2�w�#�~�~�#�b�c�c�(�c�/�/��!�B�$�i�o�o����
�2�A�2�w�&����!�"�"�g�m�m�o�o���Jr@c�X�tjdtd���t|��S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�
_splittyper�s rA�	splittyper� �3���M�8�$��4�4�4�4��c�?�?�r@c���	t�tjdtj��at�|��}|r-|���\}}|���|fSd|fS)Nz
([^/:]+):(.*))�	_typeprogr��compile�DOTALLr��groupsr�)r�r�r��datas    rAr�r�(se��D����J���	�:�:�	��O�O�C� � �E��$��|�|�~�~�����|�|�~�~�t�#�#���9�r@c�X�tjdtd���t|��S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�
_splithostr�s rA�	splithostr�5r�r@c���	t�tjdtj��at�|��}|r.|���\}}|r|ddkrd|z}||fSd|fS)Nz//([^/#?]*)(.*)rr�)�	_hostprogr�r�r�r�r�)r�r��	host_portrs    rAr�r�=sz��E����J�0�"�)�<�<�	��O�O�C� � �E����,�,�.�.��	�4��	�D��G�s�N�N���:�D��$�����9�r@c�X�tjdtd���t|��S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�
_splituser��hosts rA�	splituserr�L�5���M�8�$��4�4�4�4��d���r@c�F�	|�d��\}}}|r|nd|fS)Nr��r�)r��userr�s   rAr�r�Ss1��T�����,�,��D�%���#�D�D�t�d�*�*r@c�X�tjdtd���t|��S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�_splitpasswd)r�s rA�splitpasswdr�Ys5���M�8�$��4�4�4�4�����r@c�F�	|�d��\}}}||r|ndfS�Nr��r�)r�r��passwds   rAr�r�`s1��9��.�.��-�-��D�%���E�+�&�&�t�,�,r@c�X�tjdtd���t|��S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�
_splitportr�s rA�	splitportr�fr�r@c���	t�tjdtj��at�|��}|r|���\}}|r||fS|dfS)Nz
(.*):([0-9]*))�	_portprogr�r�r��	fullmatchr�)r�r�r�s   rAr�r�osf��4����J���	�:�:�	�����%�%�E����\�\�^�^�
��d��	���:����:�r@rc�Z�tjdtd���t||��S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�_splitnport)r��defports  rA�
splitnportr�}s7���M�8�$��4�4�4�4��t�W�%�%�%r@c���	|�d��\}}}|s|}n@|r>|���r$|���rt|��}nd}||fS||fSr�)r�r�r�r�)r�r�r�r��nports     rAr�r��s}��2�����,�,��D�%�������	
���<�<�>�>�	�d�l�l�n�n�	���I�I�E�E��E��U�{����=�r@c�X�tjdtd���t|��S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�_splitqueryr�s rA�
splitqueryr��s5���M�8�$��4�4�4�4��s���r@c�J�	|�d��\}}}|r||fS|dfS)Nr�r�)r�rr�r�s    rAr�r��s9��9�����,�,��D�%�����U�{����9�r@c�X�tjdtd���t|��S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�	_splittagr�s rA�splittagr��s3���M�8�$��4�4�4�4��S�>�>�r@c�J�	|�d��\}}}|r||fS|dfSr�r�)r�rr��tags    rAr�r��s9��3��~�~�c�*�*��D�%�����S�y����9�r@c�X�tjdtd���t|��S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rY)r[r\r]�
_splitattrr�s rA�	splitattrr��r�r@c�R�	|�d��}|d|dd�fS)Nr�rrZ)r)r��wordss  rAr�r��s-��;��I�I�c�N�N�E���8�U�1�2�2�Y��r@c�X�tjdtd���t|��S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr�rY)r[r\r]�_splitvalue)�attrs rA�
splitvaluer��s5���M�9�$��4�4�4�4��t���r@c�F�	|�d��\}}}||r|ndfS)NrFr�)r�r�rDs   rAr�r��s1��7�����,�,��D�%���5�*�%�%�d�+�+r@)rT)r)T)r,r�)FFr,r�Nr;)r�NN)rNN)r�)r)l�collectionsr�	functoolsr��sysr�r[r��__all__rrr��non_hierarchical�
uses_query�
uses_fragmentrrrrB�_implicit_encoding�_implicit_errorsrGrMrXr`�objectrbrqrvr�r��_DefragResultBase�_SplitResultBase�_ParseResultBase�__doc__r�r�r�r�rr�r��
ResultBaserrrrrrr�rr�r�r�r��	lru_cacherrr	rrr.r2rr�r9rrrr�	frozensetrcr/r~r`rir^r
rr>rr
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@rA�<module>r�s����B#�"�"�"�"�"�����	�	�	�	�
�
�
�
�������������H�H�H��0�0�0�
�
����-�-�-��F�F�F��A�A�A�
�%�%�%�
�
��\��1�0�0��'�'�'��������"4�/�(�(�(�(�!3�.�H�H�H�H�2�2�2�"V�V�V�V�V�f�V�V�V�V�V�V�V�V��V�V�V�#8�#8�#8�#8�#8�V�#8�#8�#8�L�����2�O����<�����4�6G����<�J�~�~�>�>���:��6�8�8���:��=�?�?�����!K����&���"����#N����#����!����"����%���!�
���#3�"9�"A����"2�"9�"A���� 0� 5� =����#����
"2�!7�!?����$4�$=�$E���!�#�
������$�o���� � � � � �"�$9� � � �
 � � � � �"�$9� � � ������)�+<���� � � � � �'�)@� � � �
 � � � � �'�)@� � � �1�1�1�������"�"�"�"�<���)�)�)�)�D�D�D�(G�G�G����4� � � �6�6�6�!� �6�p	N�	N�	N����&B:�B:�B:�B:�J6�6�6� #��
�
����<�2�:�&�'�'������8:?�PS�'�'�'�'�T;@�QT�G
�G
�G
�G
�R-�-�-�-��y�!�"�"���U�<�(�(��K�K�K������d����*4*�4*�4*�4*�l$�$�$�$�$��%�%���%�2�2�2�2�(!�r�D��"�M�M�M�M�`������
�
�
����
�	�
�
�
����
�	�������+�+�+����-�-�-����
�	����&�&�&�&�����"���������������������,�,�,�,�,r@