asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a bYh9@sddlZddlZddlZddlZddlZgdZgdZgdZgdZgdZ gdZ gdZ d Z d Z gd Zd ZiZd dZdZdZddZeefddZeefddZddZGdddeZGdddeZGdddeZGdd d eeZGd!d"d"eeZdd#lmZed$d%Zed&d'Z ed(d)Z!d*e_"d+ej#_"d,ej$_"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$eeZ+Gd6d&d&e eZ,Gd7d(d(e!eZ-Gd8d9d9eeZ.Gd:d;d;e eZ/Gdd?Z1e1[1ddBdCZ2dDdEZ3ddFdGZ4dHdIZ5ddJdKZ6dLdMZ7dNdOZ8ddPdQZ9dRdSZ:dTZ;dadWZ?ddZd[Z@dd^d_ZAdd`daZBddbdcZCeDddZEeFeEZGiZHGdedfdfejIZJddhdiZKddjdkZLddldmZMd\d@ddeLfdndoZNdpdqZOdrdsZPdtduZQdvdwZRdaSdxdyZTdzd{ZUdaVd|d}ZWd~dZXddZYddZZddZ[ddZ\da]ddZ^dddZ_dddZ`ddZaddZbddZcddZdddZeddZfddZgddZhdS)N)urlparse urlunparseurljoin urldefragurlsplit urlunsplit urlencodeparse_qs parse_qslquote quote_plusquote_from_bytesunquote unquote_plusunquote_to_bytes DefragResult ParseResult SplitResultDefragResultBytesParseResultBytesSplitResultBytes)ftphttpgophernntpimapwaisfilehttpsshttpmmsprosperortsprtspusftpsvnsvn+sshwswss)rrrrrtelnetrrrr!rr snewsr"r#r$rsyncr&r'r%nfsgitzgit+sshr(r))rrhdlr"rrrr r#r$sipsipsr!r%tel) rr/mailtonewsr*rrr+r0r1) rrrrrr r!rr#r$r0r1) rrr/rrr4rrrr r+rr"zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!  )   cCsttdSN) _parse_cacheclear _safe_quotersr=r=(/usr/local/lib/python3.9/urllib/parse.py clear_cache`sr?asciistrictcCs|Sr9r=)objr=r=r>_nooposrCcCs |||Sr9encode)rBencodingerrorsr=r=r>_encode_resultrsrHcstfdd|DS)Nc3s"|]}|r|ndVqdS)rNdecode.0xrFrGr=r> xz_decode_args..)tuple)argsrFrGr=rNr> _decode_argsvsrScGsVt|dt}|ddD]}|rt|t|krtdq|rH|tfSt|tfS)Nrz$Cannot mix str and non-str arguments) isinstancestr TypeErrorrCrSrH)rR str_inputargr=r=r> _coerce_argszs  rZc@seZdZdZdddZdS)_ResultMixinStrr=r@rAcs|jfdd|DS)Nc3s|]}|VqdSr9rDrKrNr=r>rOrPz)_ResultMixinStr.encode..)_encoded_counterpartselfrFrGr=rNr>rEsz_ResultMixinStr.encodeN)r@rA)__name__ __module__ __qualname__ __slots__rEr=r=r=r>r[sr[c@seZdZdZdddZdS)_ResultMixinBytesr=r@rAcs|jfdd|DS)Nc3s|]}|VqdSr9rIrKrNr=r>rOrPz+_ResultMixinBytes.decode..)_decoded_counterpartr]r=rNr>rJsz_ResultMixinBytes.decodeN)r@rA)r_r`rarbrJr=r=r=r>rcsrcc@sJeZdZdZeddZeddZeddZedd Ze e j Z d S) _NetlocResultMixinBaser=cCs |jdS)Nr _userinfor^r=r=r>usernamesz_NetlocResultMixinBase.usernamecCs |jdS)NrTrfrhr=r=r>passwordsz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|tr dnd}||\}}}|||S)Nr%%) _hostinforUrV partitionlower)r^hostname separatorpercentzoner=r=r>rps  z_NetlocResultMixinBase.hostnamecCsj|jd}|durfzt|d}Wn&tyFd|}t|dYn0d|kr\dksfntd|S)NrT z+Port could not be cast to integer value as rizPort out of range 0-65535)rmint ValueError)r^portmessager=r=r>rws   z_NetlocResultMixinBase.portN) r_r`rarbpropertyrirjrprw classmethodtypes GenericAlias__class_getitem__r=r=r=r>res    rec@s(eZdZdZeddZeddZdS)_NetlocResultMixinStrr=cCsD|j}|d\}}}|r4|d\}}}|srgsz_NetlocResultMixinStr._userinfocCsl|j}|d\}}}|d\}}}|rL|d\}}}|d\}}}n|d\}}}|sdd}||fS)Nr[]rrr^r_r have_open_br bracketedrprwr=r=r>rmsz_NetlocResultMixinStr._hostinfoNr_r`rarbryrgrmr=r=r=r>r~s  r~c@s(eZdZdZeddZeddZdS)_NetlocResultMixinBytesr=cCsD|j}|d\}}}|r4|d\}}}|srgsz!_NetlocResultMixinBytes._userinfocCsl|j}|d\}}}|d\}}}|rL|d\}}}|d\}}}n|d\}}}|sdd}||fS)Nr[]rrrr=r=r>rmsz!_NetlocResultMixinBytes._hostinfoNrr=r=r=r>rs  r) namedtuplerz 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@seZdZdZddZdS)rr=cCs |jr|jd|jS|jSdSN#fragmenturlrhr=r=r>geturlKszDefragResult.geturlNr_r`rarbrr=r=r=r>rIsc@seZdZdZddZdS)rr=cCst|Sr9rrhr=r=r>rSszSplitResult.geturlNrr=r=r=r>rQsc@seZdZdZddZdS)rr=cCst|Sr9rrhr=r=r>rXszParseResult.geturlNrr=r=r=r>rVsc@seZdZdZddZdS)rr=cCs |jr|jd|jS|jSdS)N#rrhr=r=r>r^szDefragResultBytes.geturlNrr=r=r=r>r\src@seZdZdZddZdS)rr=cCst|Sr9rrhr=r=r>rfszSplitResultBytes.geturlNrr=r=r=r>rdsrc@seZdZdZddZdS)rr=cCst|Sr9rrhr=r=r>rkszParseResultBytes.geturlNrr=r=r=r>risrcCs4ttfttfttff}|D]\}}||_||_qdSr9)rrrrrrr\rd)Z _result_pairsZ_decodedZ_encodedr=r=r>_fix_result_transcodingos rrTc Csft||\}}}t|||}|\}}}}}|tvrHd|vrHt|\}}nd}t||||||} || S)N;r)rZr uses_params _splitparamsr) rschemeallow_fragments_coerce_result splitresultrqueryrparamsresultr=r=r>r|s rcCsRd|vr,|d|d}|dkr6|dfSn |d}|d|||ddfS)N/rrrrT)findrfind)rir=r=r>rs   rcCsHt|}dD]"}|||}|dkr t||}q |||||dfS)Nz/?#r)lenrmin)rstartdelimcwdelimr=r=r> _splitnetlocs   rcCs|r |rdSddl}|dd}|dd}|dd}|dd}|d|}||kr`dSdD] }||vrdtd |d d qddS) Nrrrrr?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)isascii unicodedatareplace normalizerv)rrnnetloc2rr=r=r> _checknetlocs       rc Cst||\}}}|t}|t}tD]}||d}||d}q(t|}|||t|t|f}t |d}|r|||St tt krt d}}} | d} | dkr|d| D]} | tvrqq|d| || dd}}|dddkrrsH       " rcCs<t|\}}}}}}}|r&d||f}|t|||||fS)Nz%s;%s)rZr) componentsrrrrrrrr=r=r>rs  rcCst|\}}}}}}|s4|r`|tvr`|dddkr`|rP|dddkrPd|}d|pXd|}|rp|d|}|r|d|}|r|d|}||S) NrrrTrrrrr)rZ uses_netloc)rrrrrrrr=r=r>rs    rc Cs|s|S|s|St||\}}}t|d|\}}}}}} t|||\} } } } }}| |ks`| tvrh||S| tvr| r|t| | | | ||fS|} | s| s|} |} |s|}|t| | | | ||fS|d}|ddkr|d=| dddkr| d}n(|| d}td|dd|dd<g}|D]N}|dkrZz |WntyVYn0n|dkrjq(n | |q(|ddvr| d|t| | d |pd| ||fS)NrrrT...)rr) rZr uses_relativerrrfilterpop IndexErrorappendjoin)baserrrbschemebnetlocbpathbparamsbquery bfragmentrrpathrrr base_partssegments resolved_pathsegr=r=r>rsb            rc CsTt|\}}d|vr>t|\}}}}}}t|||||df}nd}|}|t||S)Nrr)rZrrr) rrsrpaqfragdefragr=r=r>r]s r0123456789ABCDEFabcdefc Cs|s|jdSt|tr"|d}|d}t|dkr<|S|dg}|j}tdurbddtDa|ddD]P}z(|t|dd||ddWqnty|d||Yqn0qnd |S) NrPutf-8rlrTrcSs.i|]&}tD]}||t||q qSr=)_hexdigrEbytesfromhex)rLrrr=r=r> s z$unquote_to_bytes..r) rrUrVrErr _hextobyterKeyErrorr)stringbitsresritemr=r=r>rps,      rz([-]+)rrcCst|trt|||Sd|vr,|j|S|dur8d}|durDd}t|}|dg}|j}tdt|dD],}|t|||||||dqnd |S)NrkrrrrTrr) rUrrrJr_asciirerrangerr)rrFrGrrrrr=r=r>rs   rF&c CsNi}t|||||||d}|D]*\} } | |vr>|| | q| g|| <q|S)N)rFrGmax_num_fieldsrq)r r) qskeep_blank_valuesstrict_parsingrFrGrrq parsed_resultpairsnamevaluer=r=r>r s  r cCs.t|\}}t|\}}|r*t|ttfs2td|durXd||} || krXtddd||D} g} | D]} | s|sqt| dd} t| dkr|rtd| f|rt| d nqtt| ds|rt| d  d d }t |||d }||}| d d d }t |||d }||}| ||fqt| S)Nz*Separator must be of type string or bytes.rTzMax number of fields exceededcSsg|]}|qSr=r=)rLs1r=r=r> rPzparse_qsl..=rzbad query field: %rrr+ rN) rZrUrVrrvcountrrrrr)rrrrFrGrrqrr num_fieldsrr name_valuenvrrr=r=r>r s:     r cCs|dd}t|||S)Nrr)rr)rrFrGr=r=r>rs rsBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c@s$eZdZddZddZddZdS)QuotercCst||_dSr9) _ALWAYS_SAFEunionsafe)r^rr=r=r>__init__1szQuoter.__init__cCsd|jjt|fS)Nz<%s %r>) __class__r_dictrhr=r=r>__repr__5szQuoter.__repr__cCs(||jvrt|nd|}|||<|S)Nz%{:02X})rchrformat)r^rrr=r=r> __missing__9szQuoter.__missing__N)r_r`rarrrr=r=r=r>r )sr rcCsbt|tr8|s|S|durd}|dur*d}|||}n |durHtd|durXtdt||S)NrrAz,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)rUrVrErWr )rrrFrGr=r=r>r ?s' r cCsdt|trd|vs$t|tr2d|vr2t||||St|trBd}nd}t|||||}|ddS)Nr r)rUrVrr r)rrrFrGspacer=r=r>r us r cst|ttfstd|sdSt|tr6|dd}ntdd|D}|t|s^|Sz t |Wn$t yt |j t |<Yn0d fdd|DS)Nz!quote_from_bytes() expected bytesrr@ignorecSsg|]}|dkr|qS)r=)rLrr=r=r>rrPz$quote_from_bytes..csg|] }|qSr=r=)rLcharquoterr=r>rrP)rUr bytearrayrWrVrErstrip_ALWAYS_SAFE_BYTESrJr<rr  __getitem__r)bsrr=rr>r s   r c Cst|dr|}nNzt|r0t|dts0tWn.ty`t\}}}td|Yn0g} |s|D]j\} } t| t r|| |} n|t | |||} t| t r|| |} n|t | |||} | | d| qnn |D]\} } t| t r|| |} n|t | |||} t| t r@|| |} | | d| qt| t rn|| |||} | | d| qz t| } Wn8ty|t | |||} | | d| Yq0| D]B} t| t r|| |} n|t | |||} | | d| qqd | S)Nitemsrz1not a valid non-string sequence or mapping objectrr) hasattrr$rrUrQrWsysexc_infowith_tracebackrrVrr)rdoseqrrFrG quote_viatyvatblkrrMeltr=r=r>rsR                 rcCstjdtddt|S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r stacklevel)warningswarnDeprecationWarning _to_bytesrr=r=r>to_bytessr8cCsHt|trDz|d}Wn&tyBtdt|dYn0|S)NASCIIzURL z contains non-ASCII characters)rUrVrErJ UnicodeErrorreprr7r=r=r>r6s    r6cCs`t|}|dddkr<|dddkr<|dd}|dddkr\|dd}|S)NrTzURL:)rVrr7r=r=r>unwraps   r?cCstjdtddt|S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splittyper7r=r=r> splittypesrAcCsDtdurtdtjat|}|r<|\}}||fSd|fS)Nz ([^/:]+):(.*)) _typeprogrecompileDOTALLmatchgroupsro)rrFrdatar=r=r>r@s   r@cCstjdtddt|S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splithostr7r=r=r> splithost#srJcCsXtdurtdtjat|}|rP|\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rr) _hostprogrCrDrErFrG)rrF host_portrr=r=r>rI+s  rIcCstjdtddt|S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splituserhostr=r=r> splituser:srPcCs |d\}}}|r|nd|fS)Nrr)rOuserrr=r=r>rMAsrMcCstjdtddt|S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splitpasswd)rRr=r=r> splitpasswdGsrTcCs |d\}}}||r|ndfSNrrn)rRrpasswdr=r=r>rSNsrScCstjdtddt|S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splitportrNr=r=r> splitportTsrYcCsDtdurtdtjat|}|r<|\}}|r<||fS|dfS)Nz (.*):([0-9]*)) _portprogrCrDrE fullmatchrG)rOrFrwr=r=r>rX]s  rXrcCstjdtddt||S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splitnport)rOdefportr=r=r> splitnportksr^cCsR|d\}}}|s|}n0|rJz t|}Wnty@d}Yn0||fS||fSrU)rrurv)rOr]rrwnportr=r=r>r\rs   r\cCstjdtddt|S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splitqueryr7r=r=r> splitquerysracCs$|d\}}}|r||fS|dfS)NrrQ)rrrrr=r=r>r`sr`cCstjdtddt|S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splittagr7r=r=r>splittagsrccCs$|d\}}}|r||fS|dfSrrQ)rrrtagr=r=r>rbsrbcCstjdtddt|S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr1)r3r4r5 _splitattrr7r=r=r> splitattrsrfcCs|d}|d|ddfS)NrrrT)r)rwordsr=r=r>res recCstjdtddt|S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadrr1)r3r4r5 _splitvalue)attrr=r=r> splitvaluesrjcCs |d\}}}||r|ndfS)NrrV)rirrr=r=r>rhsrh)rT)r)rT)T)rr)FFrrNr)FFrrNr)rr)rNN)rNN)r)r)r)irCr&r{ collectionsr3__all__rrrnon_hierarchical uses_query uses_fragmentrrrrr:r?_implicit_encoding_implicit_errorsrCrHrSrZobjectr[rcrer~rr_DefragResultBase_SplitResultBase_ParseResultBase__doc__rrrrrrr ResultBaserrrrrrrrrrrrrrrrrrrrDrrr r r frozensetrrr!r< defaultdictr r r r rr8r6r?rArBr@rJrKrIrPrMrTrSrYrZrXr^r\rar`rcrbrfrerjrhr=r=r=r>"s    '           =  E   * C  6   Q