ñÕYfÒ# ã @ s d d l Z d d l Z d d l Z d d l m Z e j d ƒ Z d Z d Z d d „ Z d d „ Z
d
d „ Z Gd d
„ d
e j ƒ Z Gd d „ d e j
ƒ Z Gd d „ d e j ƒ Z Gd d „ d e e j ƒ Z Gd d „ d e e j ƒ Z d d „ Z d S)é N)Ú ucd_3_2_0u [.。.。]s xn--zxn--c C s} g } x6 | D]. } t j | ƒ r% q
| j t j | ƒ ƒ q
Wd j | ƒ } t j d | ƒ } x¥ | D]� } t j | ƒ sô t j | ƒ sô t j | ƒ sô t j
| ƒ sô t j | ƒ sô t j | ƒ sô t j
| ƒ sô t j | ƒ sô t j | ƒ rg t d | ƒ ‚ qg Wd d „ | Dƒ } x[ | D]S } | r"t d d „ | Dƒ ƒ rSt d ƒ ‚ | d si| d r"t d ƒ ‚ q"W| S)
NÚ ZNFKCzInvalid character %rc S s g | ] } t j | ƒ ‘ q S© )Ú
stringprepZin_table_d1)Ú.0Úxr r ú3/opt/alt/python35/lib64/python3.5/encodings/idna.pyú
) s znameprep..c s s | ] } t j | ƒ Vq d S)N)r Zin_table_d2)r r r r r ú 2 s znameprep..zViolation of BIDI requirement 2r é zViolation of BIDI requirement 3éÿÿÿÿ)r Zin_table_b1ÚappendZmap_table_b2ÚjoinÚunicodedataZ normalizeZin_table_c12Zin_table_c22Zin_table_c3Zin_table_c4Zin_table_c5Zin_table_c6Zin_table_c7Zin_table_c8Zin_table_c9ÚUnicodeErrorÚany)ÚlabelZnewlabelÚcZRandALr r r Únameprep s4
r c C s* y | j d ƒ } Wn t k
r' Yn3 Xd t | ƒ k oE d k n rN | St d ƒ ‚ t | ƒ } y | j d ƒ } Wn t k
r� Yn3 Xd t | ƒ k o« d k n r´ | St d ƒ ‚ | j t ƒ rÛ t d ƒ ‚ | j d ƒ } t | } d t | ƒ k od k n r| St d ƒ ‚ d S)NÚasciir é@ zlabel empty or too longzLabel starts with ACE prefixÚpunycode)Úencoder Úlenr Ú
startswithÚsace_prefixÚ
ace_prefix)r r r r ÚToASCII> s,
"
"
"r c C s t | t ƒ r d } n4 y | j d ƒ } d } Wn t k
rK d } Yn X| s’ t | ƒ } y | j d ƒ } Wn t k
r‘ t d ƒ ‚ Yn X| j t ƒ s® t | d ƒ S| t t ƒ d … } | j d ƒ } t
| ƒ } t | d ƒ j ƒ t | d ƒ k rt d | | ƒ ‚ | S)NTr FzInvalid character in IDN labelr zIDNA does not round-trip)Ú
isinstanceÚbytesr r r r r Ústrr Údecoder Úlower)r Z
pure_asciiZlabel1ÚresultZlabel2r r r Ú ToUnicodei s*
$r$ c @ s. e Z d Z d d d „ Z d d d „ Z d S)ÚCodecÚstrictc C sh | d k r t d | ƒ ‚ | s&