a XC?h���@sddlZddlZddlZddlZddlZddlZgd�Zgd�Zgd�Zgd�Z gd�Z gd�Z gd�Z d Z d Zgd �Zd ZiZd d�ZdZdZdd�Zeefdd�Zeefdd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd �d ee�ZGd!d"�d"ee�Zdd#lmZed$d%�Z ed&d'�Z!ed(d)�Z"d*e _#d+e j$_#d,e j%_#d-e!_#d.e!j&_#d/e!j'_#d0e!j(_#d1e!j)_#d2e!j%_#d3e"_#e!j&j#e"j&_#e!j'j#e"j'_#e!j(j#e"j(_#d4e"j*_#e!j)j#e"j)_#e!j%j#e"j%_#eZ+Gd5d$�d$e e�Z,Gd6d&�d&e!e�Z-Gd7d(�d(e"e�Z.Gd8d9�d9e e�Z/Gd:d;�d;e!e�Z0Gdd?�Z2e2�[2d�dBdC�Z3dDdE�Z4d�dFdG�Z5dHdI�Z6dJdK�Z7dLdM�Z8d�dNdO�Z9dPdQ�Z:dRdS�Z;d�dTdU�Zda?dYdZ�Z@e�Ad[�ZBd�d^d_�ZCd�dbdc�ZDd�ddde�ZEd�dfdg�ZFeGdh�ZHeIeH�ZJiZKGdidj�djejL�ZMd�dldm�ZNd�dndo�ZOd�dpdq�ZPd`d@ddeOfdrds�ZQdtdu�ZRdvdw�ZSdxdy�ZTdzd{�ZUdaVd|d}�ZWd~d�ZXdaYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_da`d�d��Zad�d�d��Zbd�d�d��Zcd�d��Zdd�d��Zed�d��Zfd�d��Zgd�d��Zhd�d��Zid�d��Zjd�d��ZkdS)��N)�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�telnetrrrr!rr �snewsr"r#r$Zrsyncr&r'r%ZnfsZgitzgit+sshr(r))rr�hdlr"rrrr r#r$�sip�sipsr!r%Ztel) rr,Zmailto�newsr*rrr+r-r.) rrrrrr r!rr#r$r-r.) rrr,rrr/rrrr r+rr"zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!  )� � � �cCst��t��dS�N)� _parse_cache�clear� _safe_quoters�r8r8�1/opt/alt/python39/lib64/python3.9/urllib/parse.py� clear_cacheasr:�ascii�strictcCs|Sr4r8)�objr8r8r9�_nooppsr>cCs |�||�Sr4��encode)r=�encoding�errorsr8r8r9�_encode_resultssrCcst��fdd�|D��S)Nc3s"|]}|r|����ndVqdS)rN��decode��.0�x�rArBr8r9� y�z_decode_args..)�tuple)�argsrArBr8rIr9� _decode_argswsrNcGsVt|dt�}|dd�D]}|rt|t�|krtd��q|rH|tfSt|�tfS)Nr�z$Cannot mix str and non-str arguments)� isinstance�str� TypeErrorr>rNrC)rMZ str_input�argr8r8r9� _coerce_args{s  rTc@seZdZdZddd�ZdS)�_ResultMixinStrr8r;r<cs|j��fdd�|D��S)Nc3s|]}|����VqdSr4r?rFrIr8r9rJ�rKz)_ResultMixinStr.encode..)�_encoded_counterpart��selfrArBr8rIr9r@�sz_ResultMixinStr.encodeN)r;r<)�__name__� __module__� __qualname__� __slots__r@r8r8r8r9rU�srUc@seZdZdZddd�ZdS)�_ResultMixinBytesr8r;r<cs|j��fdd�|D��S)Nc3s|]}|����VqdSr4rDrFrIr8r9rJ�rKz+_ResultMixinBytes.decode..)�_decoded_counterpartrWr8rIr9rE�sz_ResultMixinBytes.decodeN)r;r<)rYrZr[r\rEr8r8r8r9r]�sr]c@sJeZdZdZedd��Zedd��Zedd��Zedd ��Ze e j �Z d S) �_NetlocResultMixinBaser8cCs |jdS)Nr�� _userinfo�rXr8r8r9�username�sz_NetlocResultMixinBase.usernamecCs |jdS)NrOr`rbr8r8r9�password�sz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|t�r dnd}|�|�\}}}|��||S)Nr�%�%)� _hostinforPrQ� partition�lower)rX�hostname� separatorZpercentZzoner8r8r9rj�s  z_NetlocResultMixinBase.hostnamecCsj|jd}|durfzt|d�}Wn&tyFd|��}t|�d�Yn0d|kr\dksfntd��|S)NrO� z+Port could not be cast to integer value as ri��zPort out of range 0-65535)rg�int� ValueError)rX�port�messager8r8r9ro�s   z_NetlocResultMixinBase.portN) rYrZr[r\�propertyrcrdrjro� classmethod�types� GenericAlias�__class_getitem__r8r8r8r9r_�s    r_c@s(eZdZdZedd��Zedd��ZdS)�_NetlocResultMixinStrr8cCsD|j}|�d�\}}}|r4|�d�\}}}|std��nt�|�}t|tj�r>td��dS)N�vz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)r��re�matchrn� ipaddressZ ip_addressrPZ IPv4Address)rjZipr8r8r9r��s      r�c Cs�t||�\}}}|�t�}|�t�}tD]}|�|d�}|�|d�}q(t|�}|||t|�t|�f}t� |d�}|r|||�St t�t kr�t �d}}} |� d�} | dkr�|d| �D]} | tvr�q�q�|d| ���|| dd�}}|dd�dk�rXt|d�\}}d|v�r d|v�s4d|v�rt|�\}}}}}}t|||||df�}nd}|}|t||��S)Nr�r)rTrrr) r�r��sr��p�a�qZfragZdefragr8r8r9r{s rZ0123456789ABCDEFabcdefc Cs�|s|jdSt|t�r"|�d�}|�d�}t|�dkr<|S|dg}|j}tdurbdd�tD�a|dd�D]P}z(|t|dd��||dd��Wqnty�|d�||�Yqn0qnd� |�S) NrK�utf-8rfrOrcSs.i|]&}tD]}||��t�||��q qSr8)�_hexdigr@�bytes�fromhex)rGr�r�r8r8r9� �s �z$unquote_to_bytes..r�) r�rPrQr@r�r�� _hextobyter��KeyErrorr�)�string�bits�resr��itemr8r8r9r�s,     � rz([-]+)r�r�cCs�t|t�rt|��||�Sd|vr,|j|S|dur8d}|durDd}t�|�}|dg}|j}tdt|�d�D],}|t||��||��|||d�qnd� |�S)Nrer�r�rrOr�r) rPr�rrEr��_asciirer��ranger�r�)r�rArBr�r�r�r�r8r8r9r�s   rF�&c CsNi}t|||||||d�}|D]*\} } | |vr>|| �| �q| g|| <q|S)N)rArB�max_num_fieldsrk)r r�) �qs�keep_blank_values�strict_parsingrArBr�rkZ parsed_result�pairs�name�valuer8r8r9r �s�  r cCs.t|�\}}t|�\}}|r*t|ttf�s2td��|durXd|�|�} || krXtd��dd�|�|�D�} g} | D]�} | s�|s�qt| �dd�} t| �dkr�|r�td| f��|rt| �d �nqtt| d�s�|rt| d � d d �}t |||d �}||�}| d� d d �}t |||d �}||�}| �||f�qt| S)Nz*Separator must be of type string or bytes.rOzMax number of fields exceededcSsg|]}|�qSr8r8)rG�s1r8r8r9� rKzparse_qsl..�=r�zbad query field: %rrr�+� rI) rTrPrQr�rn�countr�r�r�r�r)r�r�r�rArBr�rkr�r�� num_fieldsr��rZ name_valueZnvr�r�r8r8r9r �s:     r cCs|�dd�}t|||�S)Nr�r�)r�r)r�rArBr8r8r9r7s rsBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c@s$eZdZdd�Zdd�Zdd�ZdS)�QuotercCst�|�|_dSr4)� _ALWAYS_SAFE�union�safe)rXr�r8r8r9�__init__OszQuoter.__init__cCsd|jjt|�fS)Nz<%s %r>)� __class__rY�dictrbr8r8r9�__repr__SszQuoter.__repr__cCs(||jvrt|�nd�|�}|||<|S)Nz%{:02X})r��chr�format)rXr�r�r8r8r9� __missing__WszQuoter.__missing__N)rYrZr[r�r�rr8r8r8r9r�Gsr�r�cCsbt|t�r8|s|S|durd}|dur*d}|�||�}n |durHtd��|durXtd��t||�S)Nr�r<z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)rPrQr@rRr )r�r�rArBr8r8r9r ]s' r cCsdt|t�rd|vs$t|t�r2d|vr2t||||�St|t�rBd}nd}t|||||�}|�dd�S)Nr�� r�)rPrQr�r r�)r�r�rArBZspacer8r8r9r �s�� r cs�t|ttf�std��|sdSt|t�r6|�dd�}ntdd�|D��}|�t|�s^|��Sz t |�Wn$t y�t |�j t |<�Yn0d� �fdd�|D��S)Nz!quote_from_bytes() expected bytesrr;�ignorecSsg|]}|dkr|�qS)�r8)rGr�r8r8r9r��rKz$quote_from_bytes..csg|] }�|��qSr8r8)rG�char�Zquoterr8r9r��rK)rPr�� bytearrayrRrQr@�rstrip�_ALWAYS_SAFE_BYTESrEr7r�r�� __getitem__r�)Zbsr�r8rr9r �s   r c Cst|d�r|��}nNzt|�r0t|dt�s0t�Wn.ty`t��\}}}td��|��Yn0g} |s�|D]j\} } t| t �r�|| |�} n|t | �|||�} t| t �r�|| |�} n|t | �|||�} | � | d| �qn�n |D�]\} } t| t ��r|| |�} n|t | �|||�} t| t ��r@|| |�} | � | d| �q�t| t ��rn|| |||�} | � | d| �q�z t| �} Wn8t�y�|t | �|||�} | � | d| �Yq�0| D]B} t| t ��r�|| |�} n|t | �|||�} | � | d| ��q�q�d� | �S)N�itemsrz1not a valid non-string sequence or mapping objectr�r�) �hasattrr r�rPrLrR�sys�exc_info�with_tracebackr�rQr�r�)r�Zdoseqr�rArBZ quote_viaZtyZva�tb�l�kr�rH�eltr8r8r9r�sR   �              rcCstjdtdd�t|�S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r��� stacklevel)�warnings�warn�DeprecationWarning� _to_bytes�r�r8r8r9�to_bytes s�rcCsHt|t�rDz|�d���}Wn&tyBtdt|�d��Yn0|S)N�ASCIIzURL z contains non-ASCII characters)rPrQr@rE� UnicodeError�reprrr8r8r9rs   � rcCs`t|���}|dd�dkr<|dd�dkr<|dd���}|dd�dkr\|dd���}|S)NrO��zURL:)rQr�rr8r8r9�unwraps   r!cCstjdtdd�t|�S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splittyperr8r8r9� splittype,s�r#cCsDtdurt�dtj�at�|�}|r<|��\}}|��|fSd|fS)Nz ([^/:]+):(.*))� _typeprogr��compile�DOTALLr��groupsri)r�r�r��datar8r8r9r"4s   r"cCstjdtdd�t|�S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splithostrr8r8r9� splithostAs�r*cCsXtdurt�dtj�at�|�}|rP|��\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rr�)� _hostprogr�r%r&r�r')r�r�Z host_portr�r8r8r9r)Is  r)cCstjdtdd�t|�S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splituser��hostr8r8r9� splituserXs�r/cCs |�d�\}}}|r|nd|fS)Nrw�r{)r.�userr�r8r8r9r,_sr,cCstjdtdd�t|�S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splitpasswd)r1r8r8r9� splitpasswdes�r3cCs |�d�\}}}||r|ndfS�Nrx�rh)r1r�Zpasswdr8r8r9r2lsr2cCstjdtdd�t|�S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splitportr-r8r8r9� splitportrs�r7cCsDtdurt�dtj�at�|�}|r<|��\}}|r<||fS|dfS)Nz (.*):([0-9]*))� _portprogr�r%r&� fullmatchr')r.r�ror8r8r9r6{s  r6r�cCstjdtdd�t||�S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splitnport)r.�defportr8r8r9� splitnport�s�r<cCsR|�d�\}}}|s|}n0|rJz t|�}Wnty@d}Yn0||fS||fSr4)r{rmrn)r.r;r�roZnportr8r8r9r:�s   r:cCstjdtdd�t|�S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splitqueryrr8r8r9� splitquery�s�r>cCs$|�d�\}}}|r||fS|dfS)Nr�r0)r�r�r�r�r8r8r9r=�sr=cCstjdtdd�t|�S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splittagrr8r8r9�splittag�s�r@cCs$|�d�\}}}|r||fS|dfSr�r0)r�r�r��tagr8r8r9r?�sr?cCstjdtdd�t|�S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�r)rrr� _splitattrrr8r8r9� splitattr�s�rCcCs|�d�}|d|dd�fS)Nr�rrO)r�)r�Zwordsr8r8r9rB�s rBcCstjdtdd�t|�S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr�r)rrr� _splitvalue)�attrr8r8r9� splitvalue�s�rFcCs |�d�\}}}||r|ndfS)Nr�r5)rEr�r�r8r8r9rD�srD)rT)r)rT)T)r�r�)FFr�r�Nr�)FFr�r�Nr�)r�r�)r�NN)rNN)r�)r�)r�)lr�r rs� collectionsrr��__all__r�r�r�Znon_hierarchicalZ uses_queryZ uses_fragmentr�r�r�r�r5r:Z_implicit_encodingZ_implicit_errorsr>rCrNrT�objectrUr]r_rvr�r�Z_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase�__doc__r�r�r�rzr�r�r�Z ResultBaserrrrrrr�rr�r�r�r�r�rrrrrr�r�rr%r�rr r r� frozensetr�r�rr7� defaultdictr�r r r rrrr!r#r$r"r*r+r)r/r,r3r2r7r8r6r<r:r>r=r@r?rCrBrFrDr8r8r8r9�"s�  � � '  ��         >  E  � *� C  6  � Q