U ��.e�-�@s>ddlmZddlZddlZddlZddlZddlmZdZdZ e� d�Z ej ddkr`e ZeZGd d �d e�ZGd d �d e�ZGd d�de�ZGdd�de�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd7dd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Z d8d(d)�Z!d*d+�Z"d,d-�Z#d.d/�Z$d9d1d2�Z%d:d3d4�Z&d;d5d6�Z'dS)<�)�idnadata�N)�intranges_contain� sxn--u [.。.。]�c@seZdZdZdS)� IDNAErrorz7 Base exception for all IDNA-encoding related problems N��__name__� __module__� __qualname__�__doc__�r r �9/usr/lib/python3.8/site-packages/pip/_vendor/idna/core.pyrsrc@seZdZdZdS)� IDNABidiErrorz= Exception when bidirectional requirements are not satisfied Nrr r r rrsrc@seZdZdZdS)�InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used Nrr r r rrsrc@seZdZdZdS)�InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used Nrr r r rrsrcCs0t�t|��}|dkr,t�t|��s,td��|S)Nrz Unknown character in unicodedata)� unicodedataZ combining�unichr�name� ValueError)�cp�vr r r�_combining_class$s rcCstt|�tj|�S)N)r�ordrZscripts)rZscriptr r r� _is_script+srcCs |�d�S)N�punycode)�encode��sr r r� _punycode.srcCs d�|�S)Nz U+{0:04X})�formatrr r r�_unot1sr!cCst|�dkrdSdS)N�?FT��len��labelr r r�valid_label_length5s r'cCst|�|rdndkrdSdS)N����FTr#)r&� trailing_dotr r r�valid_string_length<sr+Fc Cs^d}t|d�D]:\}}t�|�}|dkrd}q�|dkr�d}q�|�sZtd��dS)NFr�z3Unknown directionality in label {0} at position {1})�R�AL�ANTr)r-r.�Lz>First codepoint in label {0} must be directionality L, R or AL) r-r.r/�EN�ES�CS�ET�ON�BN�NSMzHInvalid direction for codepoint at position {0} in a right-to-left label)r-r.r1r/r7)r/r1z2Can not mix numeral types in a right-to-left label)r0r1r2r3r4r5r6r7zHInvalid direction for codepoint at position {0} in a left-to-right label)r0r1z0Label ends with illegal codepoint directionality)� enumeraterZ bidirectionalrr �repr) r&Z check_ltrZ bidi_label�idxr� directionZrtlZ valid_endingZ number_typer r r� check_bidiCsP       r<cCs"t�|d�ddkrtd��dS)Nr�Mz0Label begins with an illegal combining characterT)r�categoryrr%r r r�check_initial_combinersr?cCs<|dd�dkrtd��|ddks0|ddkr8td��d S) N��z--z4Label has disallowed hyphens in 3rd and 4th positionr�-�����z)Label must not start or end with a hyphenT)rr%r r r�check_hyphen_ok�s rDcCst�d|�|krtd��dS)N�NFCz%Label must be in Normalization Form C)r� normalizerr%r r r� check_nfc�srGcCs4t||�}|dkr�|dkr8tt||d��tkr8dSd}t|ddd�D]B}tj�t||��}|td�krrqL|td�td �fkrLd}q�qL|s�dSd}t|dt|��D]B}tj�t||��}|td�kr�q�|td �td �fkr�d}q�q�|S|d k�r,|dk�r(tt||d��tk�r(dSdSdSdS) Ni rrTFrC�Tr0�Dr-i )rr�_virama_combining_class�rangerZ joining_types�getr$)r&�pos�cp_value�ok�iZ joining_typer r r�valid_contextj�s<     rQcCs�t||�}|dkrdd|kr0t|�dkr`nn,t||d�dkr`t||d�dkr`dSdS|dkr�|t|�dkr�t|�dkr�t||dd�SdS|d ks�|d kr�|dkr�t||dd �SdS|d k�r|D]6}|d kr�q�t|d��s t|d��s t|d�r�dSq�dSd|k�r.dk�rhnn6|D],}dt|�k�rVdk�r6nndS�q6dSd|k�r�dk�r�nn6|D],}dt|�k�r�dk�r�nndS�q�dSdS)N�rr�lTFiuZGreeki�i�ZHebrewi�0u・ZHiraganaZKatakanaZHani`iii�i�)rr$r)r&rMZ exceptionrNrr r r�valid_contexto�s>  ( "    rTc CsLt|ttf�r|�d�}t|�dkr,td��t|�t|�t|�t |�D]�\}}t |�}t |t j d�rpqLqLt |t j d�r�z,t||�s�td�t|�|dt|����Wn2tk r�td�t|�|dt|����YnXqLt |t j d ��r t||��s>td �t|�|dt|����qLtd �t|�|dt|����qLt|�dS) Nzutf-8rz Empty LabelZPVALIDZCONTEXTJz-Joiner {0} not allowed at position {1} in {2}rz?Unknown codepoint adjacent to joiner {0} at position {1} in {2}ZCONTEXTO�0Codepoint {0} not allowed at position {1} in {2}z0Codepoint {0} at position {1} of {2} not allowed)� isinstance�bytes� bytearray�decoder$rrGrDr?r8rrrZcodepoint_classesrQrr r!r9rrTrr<)r&rMrrNr r r� check_label�s<   � �   rZcCs~z(|�d�}t|�t|�s$td��|WStk r<YnX|sJtd��t|�}t|�t|�}t|}t|�sztd��|S)N�asciizLabel too longzNo Input) r�ulabelr'r�UnicodeEncodeError�unicoderZr�_alabel_prefixr%r r r�alabel s" r`cCs�t|ttf�s>z|�d�}Wn tk r<t|�|YSX|��}|�t�rb|t t�d�}nt|�|� d�S|� d�}t|�|S)Nr[r) rVrWrXrr]rZ�lower� startswithr_r$rYr%r r rr\#s    r\Tc Cs(ddlm}d}z�t|�D]�\}}t|�}||dkr8|nt�||df�d}|d} t|�dkrj|dnd} | d ks�| d kr�|r�| d kr�|s�| dkr�||7}q| dk r�| d ks�| d kr�|r�| d kr�|r�|| 7}q| d krt��qt�d|�WStk �r"t d� t |�|dt |����YnXdS)zBRe-map the characters in the string according to UTS46 processing.r)� uts46datar,��Zrr@N�VrI�3r=�IrErU) rcr8r�bisectZ bisect_leftr$� IndexErrorrrFrr r!r9) Zdomain� std3_rules� transitionalrc�outputrM�charZ code_pointZuts46rowZstatusZ replacementr r r� uts46_remap8sV ������ ���� ��roc Cs�t|ttf�r|�d�}|r(t|||�}d}g}|r@|�d�}n t�|�}|rX|dgkr`td��|ddkrv|d=d}|D]$}t|�}|r�|� |�qztd��qz|r�|� d �d � |�}t ||�s�td ��|S) Nr[F�.r,� Empty domainrCT� Empty label��.zDomain too long) rVrWrXrYro�split�_unicode_dots_rerr`�append�joinr+) r�strict�uts46rkrlr*�result�labelsr&r r rrTs2          rcCs�t|ttf�r|�d�}|r(t||d�}d}g}|s@t�|�}n |�d�}|rX|dgkr`td��|dsr|d=d}|D]$}t|�}|r�|� |�qvtd��qv|r�|� d�d� |�S) Nr[Frpr,rqrCTrr) rVrWrXrYrorvrurr\rwrx)rryrzrkr*r{r|r&r r rrYss,       rY)F)F)TF)FFFF)FFF)(r,rrir�re�sysZ intrangesrrJr_�compilerv� version_info�strr^�chrr� UnicodeErrorrrrrrrrr!r'r+r<r?rDrGrQrTrZr`r\rorrYr r r r�sB    < , )