Current File : //usr/local/apps/python3/lib/python3.11/urllib/__pycache__/parse.cpython-311.opt-2.pyc
�

�KeL����	ddlmZddlZddlZddlZddlZddlZgd�Zgd�Zgd�Z	gd�Z
gd�Zgd�Zgd	�Z
d
Zgd�Zd�Zd
ZdZd�Zeefd�Zeefd�Zd�ZGd�de��ZGd�de��ZGd�de��ZGd�dee��ZGd�dee��Zedd��Zedd ��Zed!d"��Zd#e_ d$ej!_ d%ej"_ d&e_ d'ej#_ d(ej$_ d)ej%_ d*ej&_ d+ej"_ d,e_ ej#j ej#_ ej$j ej$_ ej%j ej%_ d-ej'_ ej&j ej&_ ej"j ej"_ eZ(Gd.�dee��Z)Gd/�dee��Z*Gd0�d!ee��Z+Gd1�d2ee��Z,Gd3�d4ee��Z-Gd5�d6ee��Z.d7�Z/e/��[/dqd:�Z0d;�Z1drd<�Z2d=�Z3ej4d9�>��dqd?���Z5d@�Z6dA�Z7dsdB�Z8dC�Z9dDZ:da;dE�Z<ej=dF��Z>dtdI�Z?		dudL�Z@		dudM�ZAdtdN�ZBeCdO��ZDeEeD��ZFdP�ZGGdQ�dReH��ZIdvdT�ZJdwdU�ZKej4dV���ZLdxdW�ZMdJd8ddeKfdX�ZNdY�ZOdZ�ZPd[�ZQd\�ZRdaSd]�ZTd^�ZUdaVd_�ZWd`�ZXda�ZYdb�ZZdc�Z[dd�Z\da]de�Z^dydg�Z_dydh�Z`di�Zadj�Zbdk�Zcdl�Zddm�Zedn�Zfdo�Zgdp�ZhdS)z�)�
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�rtspu�sftp�svn�svn+ssh�ws�wss)rrrrr�telnetrrr r#r!r"�snewsr$r%r&�rsyncr(r)r'�nfs�gitzgit+sshr*r+)rr�hdlr$rrr!r"r%r&�sip�sipsr#r'�tel)
rr1�mailto�newsr,rrr-r2r3)rrrrr!r"r#rr%r&r2r3)
rrr1rrr6rrr!r"r-r r$zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.)�	�
�
c�l�	t���t���dS�N)r�cache_clear�_byte_quoter_factory���6/usr/local/apps/python3/lib/python3.11/urllib/parse.py�clear_cacherAUs/��N��������$�$�&�&�&�&�&r?�ascii�strictc��|Sr;r>)�objs r@�_nooprFcs���Jr?c�.�|�||��Sr;��encode)rE�encoding�errorss   r@�_encode_resultrLfs���:�:�h��'�'�'r?c�>���t��fd�|D����S)Nc3�L�K�|]}|r|�����ndV��dS)rN��decode��.0�xrJrKs  ��r@�	<genexpr>z_decode_args.<locals>.<genexpr>ls;�����G�G�Q�q�8����(�F�+�+�+�b�G�G�G�G�G�Gr?)�tuple)�argsrJrKs ``r@�_decode_argsrWjs*�����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�	TypeErrorrFrWrL)rV�	str_input�args   r@�_coerce_argsr_ns����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>rBrCc�4���|j��fd�|D���S)Nc3�D�K�|]}|�����V��dSr;rHrQs  ��r@rTz)_ResultMixinStr.encode.<locals>.<genexpr>��1�����*T�*T�!�1�8�8�H�f�+E�+E�*T�*T�*T�*T�*T�*Tr?)�_encoded_counterpart��selfrJrKs ``r@rIz_ResultMixinStr.encode��,����(�t�(�*T�*T�*T�*T�*T�t�*T�*T�*T�U�Ur?N�rBrC)�__name__�
__module__�__qualname__�	__slots__rIr>r?r@rara�6������H��I�V�V�V�V�V�Vr?rac��eZdZ	dZdd�ZdS)�_ResultMixinBytesr>rBrCc�4���|j��fd�|D���S)Nc3�D�K�|]}|�����V��dSr;rOrQs  ��r@rTz+_ResultMixinBytes.decode.<locals>.<genexpr>�rdr?)�_decoded_counterpartrfs ``r@rPz_ResultMixinBytes.decode�rhr?Nri)rjrkrlrmrPr>r?r@rprp�rnr?rpc��eZdZ	dZed���Zed���Zed���Zed���Ze	e
j��ZdS)�_NetlocResultMixinBaser>c��|jdS)Nr��	_userinfo�rgs r@�usernamez_NetlocResultMixinBase.username�����~�a� � r?c��|jdS)NrYrwrys r@�passwordz_NetlocResultMixinBase.password�r{r?c��|jd}|sdSt|t��rdnd}|�|��\}}}|���|z|zS)Nr�%�%)�	_hostinforZr[�	partition�lower)rg�hostname�	separator�percent�zones     r@r�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)NrYz+Port could not be cast to integer value as ri��zPort out of range 0-65535)r��isdigit�isascii�int�
ValueError)rg�ports  r@r�z_NetlocResultMixinBase.port�s����~�a� �����|�|�~�~�
Y�$�,�,�.�.�
Y��4�y�y��� �!W�t�!W�!W�X�X�X���&�&�&�&��&�&�&�&� �!<�=�=�=��r?N)
rjrkrlrm�propertyrzr}r�r��classmethod�types�GenericAlias�__class_getitem__r>r?r@ruru�s�������R��I�
�!�!��X�!��!�!��X�!��1�1��X�1��	�	��X�	�$��E�$6�7�7���r?ruc�>�eZdZdZed���Zed���ZdS)�_NetlocResultMixinStrr>c��|j}|�d��\}}}|r|�d��\}}}|sd}ndx}}||fS)N�@�:��netloc�
rpartitionr��rgr��userinfo�	have_info�hostinforz�
have_passwordr}s        r@rxz_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��rgr��_r��have_open_br�	bracketedr�r�s        r@r�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�rjrkrlrmr�rxr�r>r?r@r�r���M�������I�
�	"�	"��X�	"�����X���r?r�c�>�eZdZdZed���Zed���ZdS)�_NetlocResultMixinBytesr>c��|j}|�d��\}}}|r|�d��\}}}|sd}ndx}}||fS)N�@�:r�r�s        r@rxz!_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        r@r�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?r@r�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�urlrys r@�geturlzDefragResult.geturl<s&���=�	��8�c�>�D�M�1�1��8�Or?N�rjrkrlrmr�r>r?r@rr:�(�������I�����r?c��eZdZdZd�ZdS)rr>c� �t|��Sr;�r	rys r@r�zSplitResult.geturlD����$���r?Nr�r>r?r@rrB�(�������I� � � � � r?c��eZdZdZd�ZdS)rr>c� �t|��Sr;�rrys r@r�zParseResult.geturlIr�r?Nr�r>r?r@rrGr�r?c��eZdZdZd�ZdS)rr>c�B�|jr|jdz|jzS|jS)N�#r�rys r@r�zDefragResultBytes.geturlOs&���=�	��8�d�?�T�]�2�2��8�Or?Nr�r>r?r@rrMr�r?rc��eZdZdZd�ZdS)rr>c� �t|��Sr;r�rys r@r�zSplitResultBytes.geturlWr�r?Nr�r>r?r@rrUr�r?rc��eZdZdZd�ZdS)rr>c� �t|��Sr;r�rys r@r�zParseResultBytes.geturl\r�r?Nr�r>r?r@rrZr�r?rc��ttfttftt
ff}|D]\}}||_||_�dSr;)rrrrrrrers)�
_result_pairs�_decoded�_encodeds   r@�_fix_result_transcodingr�`sW��	�(�)�	�&�'�	�&�'��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
          r@rrms����&#/�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�rrrY)�find�rfind)r��is  r@r�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     r@�_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     r@�_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?)�typedc�4�	t||��\}}}tD].}|�|d��}|�|d��}�/t|��}dx}x}}|�d��}|dkru|d���r[|d���rA|d|�D]
}	|	tvrn*�|d|����||dzd�}}|dd�dkr2t|d��\}}d|vrd|vsd|vrd|vrtd	���|rd
|vr|�d
d��\}}d|vr|�dd��\}}t|��t|||||��}
||
��S)Nrr�rrY��//r�r�zInvalid IPv6 URLr�r�)r_�_UNSAFE_URL_BYTES_TO_REMOVEr��boolr�r��isalpha�scheme_charsr�r�r��splitr�r)r�r�r�r��br�r�r�r�r��vs           r@rr�s����(#/�s�F�";�";��C���
(�'�'���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��*�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        r@rr�s`��5�
3?�
�2K�A�F�F�C����.�
�&����f�f�%���>�*�f�f�c�5�(�%K�L�L�M�M�Mr?c���	t|�\}}}}}}|s|r6|tvr-|dd�dkr|r|dd�dkrd|z}d|pdz|z}|r|dz|z}|r|dz|z}|r|dz|z}||��S)	Nr�r�rYr�rr�r�r�)r_�uses_netloc)r�r�r�r�r�r�r�s       r@r	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����rY�..�.)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                    r@rrs���%����
����� ,�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	         r@rrFs|���'�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�rYrc��i|]?}tD]5}||z���t�||z����6�@Sr>)�_hexdigrI�bytes�fromhex)rRrr�s   r@�
<dictcomp>z$unquote_to_bytes.<locals>.<dictcomp>ls\��9�9�9���9�9�+,��1�u�n�n�&�&��
�
�a�!�e�(<�(<�9�9�9�9r?r�)
r�rZr[rIr�r�
_hextobyter �KeyErrorr)�string�bits�resr�items     r@rrYs:��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([-]+)rr�c���	t|t��r#t|���||��Sd|vr	|j|S|�d}|�d}t
�|��}|dg}|j}tdt|��d��D]H}|t||���||����|||dz���Id�	|��S)Nrrr�rrYr�r)
rZr!rrPr��_asciirer�ranger�r)r&rJrKr'r(rr�s       r@rrys����&�%� � �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)rJrK�max_num_fieldsr�)rr)�qs�keep_blank_values�strict_parsingrJrKr/r��
parsed_result�pairs�name�values           r@rr�s����8�M��b�+�^�'��%3�y�
J�
J�
J�E��*�*���e��=� � ��$��&�&�u�-�-�-�-�#(�'�M�$����r?c�F�	t|��\}}t|��\}}|rt|ttf��st	d���|�1|rd|�|��znd}	||	krt	d���g}
|r|�|��ng}|D]�}|s|s�|�dd��}
t|
��dkr-|rt	d|�����|r|
�d��n�]t|
d��s|r�|
d�	d	d
��}t|||���}||��}|
d�	d	d
��}t|||���}||��}|
�||f����|
S)Nz*Separator must be of type string or bytes.rYrzMax number of fields exceeded�=r�zbad query field: r�+� )rJrK)r_rZr[r!r��countr�r�rr�r)r0r1r2rJrKr/r�r�r��
num_fields�r�
query_args�
name_value�nvr5r6s                r@rr�s����6&�b�)�)��B���	�*�*�L�I�q��G�Z�	�C��<�@�@�G��E�F�F�F�
�!�02�9�Q����)�,�,�,�,��
��J�&�&��<�=�=�=�
�A�(*�2����)�$�$�$��J� �$�$�
��	�.�	��
�
�
�c�1�
%�
%���r�7�7�a�<�<��
H� �j�*�*�!F�G�G�G� �
��	�	�"�
�
�
�
���r�!�u�:�:�	$�*�	$��a�5�=�=��c�*�*�D��4�(�6�B�B�B�D�!�>�$�'�'�D��q�E�M�M�#�s�+�+�E��E�H�V�D�D�D�E�"�N�5�)�)�E�
�H�H�d�E�]�#�#�#���Hr?c�R�	|�dd��}t|||��S)Nr9r:)r�r)r&rJrKs   r@rrs.���
�^�^�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�AttributeErrorrj)r5s r@�__getattr__rKsY���x����
�@�)�Q�	8�	8�	8�	8���
�I�8�I�I��I�I�
J�
J�Jr?c�"�eZdZ	d�Zd�Zd�ZdS)rIc�F�	t�|��|_dSr;)�_ALWAYS_SAFE�union�safe)rgrPs  r@�__init__z_Quoter.__init__"s��!� �&�&�t�,�,��	�	�	r?c�(�dt|���d�S)Nz<Quoter �>)�dictrys r@�__repr__z_Quoter.__repr__&s��)�$�t�*�*�)�)�)�)r?c�j�||jvrt|��nd�|��}|||<|S)Nz%{:02X})rP�chr�format)rgr�r(s   r@�__missing__z_Quoter.__missing__)s7���T�Y���c�!�f�f�f�I�,<�,<�Q�,?�,?����Q���
r?N)rjrkrlrQrUrYr>r?r@rIrIsF�������-�-�-�*�*�*�����r?rIr�c���	t|t��r#|s|S|�d}|�d}|�||��}n"|�td���|�td���t	||��S)NrrCz,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)rZr[rIr\r)r&rPrJrKs    r@r
r
/s���%�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)Nr:� r9)rZr[r!r
r�)r&rPrJrK�spaces     r@rres����
�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;)rI�__getitem__)rPs r@r=r=ws���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 bytesrrB�ignorec��g|]
}|dk�|��S)�r>)rRr�s  r@�
<listcomp>z$quote_from_bytes.<locals>.<listcomp>�s��1�1�1�A��S���a���r?c�&��g|]
}�|����Sr>r>)rR�char�quoters  �r@rdz$quote_from_bytes.<locals>.<listcomp>�s!���0�0�0�T�F�F�4�L�L�0�0�0r?)rZr!�	bytearrayr\r[rI�rstrip�_ALWAYS_SAFE_BYTESrPr=r)�bsrPrgs  @r@rr{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 objectr8r-)
�hasattrrmr�rZrUr\r!r[rr)r��doseqrPrJrK�	quote_via�err�l�kr�rS�elts            r@r
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�rD)rFrGrH�	_to_bytes�r�s r@�to_bytesrx�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)rZr[rIrP�UnicodeError�reprrws r@rvrv�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)NrY�<rrS�zURL:)r[�striprws r@�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�rD)rFrGrH�
_splittyperws r@�	splittyper��3���M�8�$��4�4�4�4��c�?�?�r?c���	t�tjdtj��at�|��}|r-|���\}}|���|fSd|fS)Nz
([^/:]+):(.*))�	_typeprog�re�compile�DOTALL�match�groupsr�)r�r�r��datas    r@r�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�rD)rFrGrH�
_splithostrws r@�	splithostr�r�r?c���	t�tjdtj��at�|��}|r.|���\}}|r|ddkrd|z}||fSd|fS)Nz//([^/#?]*)(.*)rr�)�	_hostprogr�r�r�r�r�)r�r��	host_portrs    r@r�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�rD)rFrGrH�
_splituser��hosts r@�	splituserr�,�5���M�8�$��4�4�4�4��d���r?c�F�	|�d��\}}}|r|nd|fS)Nr��r�)r��userr�s   r@r�r�3s1��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�rD)rFrGrH�_splitpasswd)r�s r@�splitpasswdr�9s5���M�8�$��4�4�4�4�����r?c�F�	|�d��\}}}||r|ndfS�Nr��r�)r�r��passwds   r@r�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�rD)rFrGrH�
_splitportr�s r@�	splitportr�Fr�r?c���	t�tjdtj��at�|��}|r|���\}}|r||fS|dfS)Nz
(.*):([0-9]*))�	_portprogr�r�r��	fullmatchr�)r�r�r�s   r@r�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�rD)rFrGrH�_splitnport)r��defports  r@�
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     r@r�r�ds}��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�rD)rFrGrH�_splitqueryrws r@�
splitqueryr�us5���M�8�$��4�4�4�4��s���r?c�J�	|�d��\}}}|r||fS|dfS)Nr�r�)r�rr�r�s    r@r�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�rD)rFrGrH�	_splittagrws r@�splittagr��s3���M�8�$��4�4�4�4��S�>�>�r?c�J�	|�d��\}}}|r||fS|dfSr�r�)r�rr��tags    r@r�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�rD)rFrGrH�
_splitattrrws r@�	splitattrr��r�r?c�R�	|�d��}|d|dd�fS)Nr�rrY)r�)r��wordss  r@r�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�rD)rFrGrH�_splitvalue)�attrs r@�
splitvaluer��s5���M�9�$��4�4�4�4��t���r?c�F�	|�d��\}}}||r|ndfS)Nr8r�)r�r�r6s   r@r�r��s1��7�����,�,��D�%���5�*�%�%�d�+�+r?)rT)r)T)rr�)FFrr�Nr-)r�NN)rNN)r�)r)i�collectionsr�	functoolsr��sysr�rF�__all__rr�r��non_hierarchical�
uses_query�
uses_fragmentr�r�rA�_implicit_encoding�_implicit_errorsrFrLrWr_�objectrarprur�r��_DefragResultBase�_SplitResultBase�_ParseResultBase�__doc__r�r�r�r�rr�r��
ResultBaserrrrrrr�rr�r�r��	lru_cacherrr	rrr r$rr�r+rrrr�	frozensetrNr!rjrKrTrIr
rr=rr
rxrvr�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@�<module>r�sy���:#�"�"�"�"�"�����	�	�	�	�
�
�
�
���������H�H�H��0�0�0�
�
����%�%�%��F�F�F��8�8�8�
�%�%�%�
�
��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�(���4� � � �0�0�0�!� �0�d	N�	N�	N����&B:�B:�B:�B:�J6�6�6� #��
�
����<�2�:�&�'�'������8:?�PS�'�'�'�'�T;@�QT�A
�A
�A
�A
�F-�-�-�-��y�!�"�"���U�<�(�(��K�K�K������d����*4*�4*�4*�4*�l$�$�$�$�$��%�%���%�2�2�2�2�(!�r�D��"�M�M�M�M�`������
�
�
����
�	�
�
�
����
�	�������+�+�+����-�-�-����
�	����&�&�&�&�����"���������������������,�,�,�,�,r?