1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
U
 ý°d–2ã@sddlmZddlZddlZddlZddlmZmZddlm    Z    dZ
dZ e  d¡Z Gd    d
„d
eƒZGd d „d eƒZGd d„deƒZGdd„deƒZeedœdd„Zeeedœdd„Zeedœdd„Zeedœdd„Zeeefedœdd„Zeeefeedœd d!„ZdBeeed#œd$d%„Zeedœd&d'„Zeedœd(d)„Zeddœd*d+„Z eeed,œd-d.„Z!dCeeeed/œd0d1„Z"eeee#fddœd2d3„Z$eedœd4d5„Z%eeee#fedœd6d7„Z&dDeeeed9œd:d;„Z'dEeeee#feeeeed<œd=d>„Z(dFeeee#feeeed?œd@dA„Z)dS)Gé)ÚidnadataéN)ÚUnionÚOptional)Úintranges_containé    sxn--u [.。.。]c@seZdZdZdS)Ú    IDNAErrorz7 Base exception for all IDNA-encoding related problems N©Ú__name__Ú
__module__Ú __qualname__Ú__doc__©rrú@d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\idna/core.pyr src@seZdZdZdS)Ú IDNABidiErrorz= Exception when bidirectional requirements are not satisfied Nr    rrrrrsrc@seZdZdZdS)ÚInvalidCodepointz> Exception when a disallowed or unallocated codepoint is used Nr    rrrrrsrc@seZdZdZdS)ÚInvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used Nr    rrrrrsr)ÚcpÚreturncCs0t t|ƒ¡}|dkr,t t|ƒ¡s,tdƒ‚|S)Nrz Unknown character in unicodedata)Ú unicodedataÚ    combiningÚchrÚnameÚ
ValueError)rÚvrrrÚ_combining_class s
r)rÚscriptrcCstt|ƒtj|ƒS)N)rÚordrÚscripts)rrrrrÚ
_is_script'sr)ÚsrcCs
| d¡S)NÚpunycode)Úencode©r rrrÚ    _punycode*sr$cCs
d |¡S)NzU+{:04X})Úformatr#rrrÚ_unot-sr&)ÚlabelrcCst|ƒdkrdSdS)Né?FT©Úlen©r'rrrÚvalid_label_length1s r,)r'Ú trailing_dotrcCst|ƒ|rdndkrdSdS)NéþéýFTr))r'r-rrrÚvalid_string_length7sr0F)r'Ú    check_ltrrc    Cs^d}t|dƒD]:\}}t |¡}|dkr<td t|ƒ|¡ƒ‚|dkrd}q|sV|sVdSt |d¡}|dkrrd}n |d    kr€d}ntd
 t|ƒ¡ƒ‚d}d}t|dƒD]¦\}}t |¡}|r|d krÒtd  |¡ƒ‚|d kràd}n |dkrìd}|dkrJ|s|}n||krJtdƒ‚q¤|dkr.td |¡ƒ‚|dkr>d}q¤|dkr¤d}q¤|sZtdƒ‚dS)NFrÚz1Unknown directionality in label {} at position {})ÚRÚALÚANTr)r3r4ÚLz=First codepoint in label {} must be directionality L, R or AL)
r3r4r5ÚENÚESÚCSÚETÚONÚBNÚNSMzGInvalid direction for codepoint at position {} in a right-to-left label)r3r4r7r5r=)r5r7z2Can not mix numeral types in a right-to-left label)r6r7r8r9r:r;r<r=zGInvalid direction for codepoint at position {} in a left-to-right label)r6r7z0Label ends with illegal codepoint directionality)Ú    enumeraterÚ bidirectionalrr%Úrepr)    r'r1Ú
bidi_labelÚidxrÚ    directionÚrtlÚ valid_endingÚ number_typerrrÚ
check_bidi=sP
 
 
 
 
 
 
rGcCs"t |d¡ddkrtdƒ‚dS)NrÚMz0Label begins with an illegal combining characterT)rÚcategoryrr+rrrÚcheck_initial_combinerxsrJcCs<|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+rrrÚcheck_hyphen_ok~s
rOcCst d|¡|krtdƒ‚dS)NÚNFCz%Label must be in Normalization Form C)rÚ    normalizerr+rrrÚ    check_nfc†srR)r'ÚposrcCs4t||ƒ}|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  rrTFrNÚTr6ÚDr3i  )rrÚ_virama_combining_classÚrangerÚ joining_typesÚgetr*)r'rSÚcp_valueÚokÚiÚ joining_typerrrÚvalid_contextj‹s<   
 
r^)r'rSÚ    exceptionrcCs¾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élTFiuÚGreekióiôÚHebrewiû0u・ÚHiraganaÚKatakanaÚHani`iiiðiù)rr*r)r'rSr_rZrrrrÚvalid_contexto¶s@  (
" 
 
rgc 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 LabelÚPVALIDÚCONTEXTJz*Joiner {} not allowed at position {} in {}rz<Unknown codepoint adjacent to joiner {} at position {} in {}ÚCONTEXTOú-Codepoint {} not allowed at position {} in {}z-Codepoint {} at position {} of {} not allowed)Ú
isinstanceÚbytesÚ    bytearrayÚdecoder*rrRrOrJr>rrrÚcodepoint_classesr^rr%r&r@rrgrrG)r'rSrrZrrrÚ check_labelàs<
 
ÿ
ÿ   rqcCs~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Ústrrqr$Ú_alabel_prefix©r'Z label_bytesrrrÚalabelÿs"
rxcCsØt|ttfƒs@z| d¡}WqDtk
r<t|ƒ|YSXn|}| ¡}| t¡rŽ|t    tƒd…}|srt
dƒ‚|  d¡ddkr t
dƒ‚nt|ƒ|  d¡Sz|  d¡}Wnt k
rÊt
dƒ‚YnXt|ƒ|S)Nrrz5Malformed A-label, no Punycode eligible content foundrNrMz"A-label must not end with a hyphenr!zInvalid A-label) rlrmrnr"rtrqÚlowerÚ
startswithrvr*rroÚ UnicodeErrorrwrrrrss, 
 
 
rsT)ÚdomainÚ
std3_rulesÚ transitionalrc Cs(ddlm}d}t|ƒD]\}}t|ƒ}zº||dkr:|nt ||df¡d}|d}    d}
t|ƒdkrp|d}
|    d    ks˜|    d
kr„|r˜|    d kr¢|s¢|
dkr¢||7}n@|
dk    rÔ|    d ksÊ|    d kr¾|rÊ|    d
krÔ|rÔ||
7}n|    d krâtƒ‚Wqtk
rtd t    |ƒ|dt
|ƒ¡ƒ‚YqXqt   d|¡S)zBRe-map the characters in the string according to UTS46 processing.r)Ú    uts46datar2éÚZNérKÚVrUÚ3rHÚIrkrP) rr>rÚbisectÚ bisect_leftr*Ú
IndexErrorrr%r&r@rrQ) r|r}r~rÚoutputrSÚcharÚ
code_pointÚuts46rowÚstatusÚ replacementrrrÚ uts46_remap4sZ ÿ ÿÿþþþ
ÿÿþþ
 
ÿÿ r)r ÚstrictÚuts46r}r~rc    Csðt|ttfƒr:z| d¡}Wntk
r8tdƒ‚YnX|rJt|||ƒ}d}g}|rb| d¡}n
t |¡}|rz|dgkr‚tdƒ‚|ddkr˜|d=d}|D]$}t    |ƒ}|r¸| 
|¡qœtd    ƒ‚qœ|rÐ| 
d
¡d   |¡}t ||ƒsìtd ƒ‚|S) NrrzGshould pass a unicode string to the function rather than a byte string.FÚ.r2ú Empty domainrNTú Empty labelóó.zDomain too long) rlrmrnroÚUnicodeDecodeErrorrrÚsplitÚ_unicode_dots_rerxÚappendÚjoinr0)    r rr‘r}r~r-ÚresultÚlabelsr'rrrr"Ts8  
 
 
 
 
r")r rr‘r}rcCsÖzt|ttfƒr| d¡}Wntk
r8tdƒ‚YnX|rJt||dƒ}d}g}|sbt |¡}n
| d¡}|rz|dgkr‚tdƒ‚|ds”|d=d}|D]$}t    |ƒ}|r´| 
|¡q˜td    ƒ‚q˜|rÌ| 
d¡d  |¡S)
NrrzInvalid ASCII in A-labelFr’r2r“rNTr”) rlrmrnror—rrr™r˜rsršr›)r rr‘r}r-rœrr'rrrrous2  
 
 
ro)F)F)TF)FFFF)FFF)*r2rr†rÚreÚtypingrrÚ    intrangesrrVrvÚcompiler™r{rrrrÚintrruÚboolrrmr$r&r,r0rGrJrOrRr^rgrnrqrxrsrr"rorrrrÚ<module>s<  
;+* $!