§
    ‹ã÷cb“  ã                  ór  — d dl mZ ddlmZ d dlZd dlmZ d dlZd dl	Zd dl
Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d	d
lmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl&m(Z( ddlmZ ej)        rd dl*Z+	 d dl,Z,dZ-n# e.$ r dZ-Y nw xY wdZ/da0dZ1g d¢Z2 ej3        d¦  «        Z4d?d„Z5d@dAd „Z6dBd"„Z7dCd$„Z8dDd*„Z9dEd-„Z: G d.„ d/e#¦  «        Z; G d0„ d1e;¦  «        Z< G d2„ d3¦  «        Z=dFd6„Z>dGdHd;„Z? ed¬<¦  «         G d=„ d>¦  «        ¦   «         Z@dS )Ié    )Úannotationsé   )ÚmlogN)Ú	dataclass)Ú	b64encode)Únetrc)ÚPathé   )ÚWrapMode)Úcoredata)Ú	quiet_gitÚGITÚProgressBarÚMesonExceptionÚwindows_proof_rmtreeÚ
Popen_safe)Ú
FeatureNew)Ú
SubProject)ÚmesonlibTFg     À‚@úwrapdb.mesonbuild.com)ÚfileÚgitÚhgÚsvnÚpatchÚurlstrÚstrÚreturnúurllib.parse.ParseResultc                ó   — t           j                             | ¦  «        }|j        st	          | › d�¦  «        ‚|j                             t          ¦  «        st	          | › d�¦  «        ‚t          r|j        dk    st	          d| › �¦  «        ‚|S )z3 raises WrapException if not whitelisted subdomain z is not a valid URLz  is not a whitelisted WrapDB URLÚhttpsz8WrapDB did not have expected SSL https url, instead got )	ÚurllibÚparseÚurlparseÚhostnameÚWrapExceptionÚendswithÚWHITELIST_SUBDOMAINÚhas_sslÚscheme)r   Úurls     ú6/usr/lib/python3/dist-packages/mesonbuild/wrap/wrap.pyÚwhitelist_wrapdbr-   A   s›   € å
Œ,×
Ò
 Ñ
'Ô
'€CØŒ<ð <Ý˜vÐ:Ð:Ð:Ñ;Ô;Ð;ØŒ<× Ò Õ!4Ñ5Ô5ð IÝ˜vÐGÐGÐGÑHÔHÐHÝð a�s”z WÒ,Ð,ÝÐ_ÐW]Ð_Ð_Ñ`Ô`Ð`Ø€Jó    Ú	urlstringÚallow_insecureÚboolÚhave_optú'http.client.HTTPResponse'c                óÈ  — |rd}nd}t          | ¦  «        }t          rÜ	 t          j        dt          j                             t          j                             |¦  «        t          ¬¦  «        ¦  «        S # t          j
        j        $ rn}d| › d|› d�}t          |j        t          j        ¦  «        r-|rt!          j        |› d�¦  «         n"t%          |› |› �¦  «        ‚t%          |¦  «        ‚Y d }~nTd }~ww xY w|st%          d	t&          j        › d
|› �¦  «        ‚t*          s$t!          j        d	t&          j        › d�¦  «         da|                     d¬¦  «        }	 t          j        dt          j                             t          j                             |¦  «        t          ¬¦  «        ¦  «        S # t          j
        j        $ r}t%          d| › d|› �¦  «        ‚d }~ww xY w)Nz:

    To allow connecting anyway, pass `--allow-insecure`.Ú zhttp.client.HTTPResponse©ÚtimeoutzWrapDB connection failed to z with error ú.z(

    Proceeding without authentication.zSSL module not available in z: Cannot contact the WrapDB.z#: WrapDB traffic not authenticated.TÚhttp)r*   )r-   r)   ÚTÚcastr"   ÚrequestÚurlopenr#   Ú
urlunparseÚREQ_TIMEOUTÚerrorÚURLErrorÚ
isinstanceÚreasonÚsslÚSSLCertVerificationErrorr   Úwarningr&   ÚsysÚ
executableÚSSL_WARNING_PRINTEDÚ_replace)r/   r0   r2   Úinsecure_msgr+   ÚexcpÚmsgÚ	nossl_urls           r,   Úopen_wrapdburlrO   L   s.  € Øð ØUˆˆàˆå
˜9Ñ
%Ô
%€CÝð 'ð
	)Ý”6Ð4µf´n×6LÒ6LÍVÌ\×MdÒMdÐehÑMiÔMiÕs~Ð6LÑ6Ô6ñ  Aô  Að  AøÝŒ|Ô$ð 	)ð 	)ð 	)ØO°ÐOÐOÈÐOÐOÐOˆCÝ˜$œ+¥sÔ'CÑDÔDð )Ø!ð @Ý”L CÐ!SÐ!SÐ!SÑTÔTÐTÐTå'¨3Ð(>°Ð(>Ð(>Ñ?Ô?Ð?å# CÑ(Ô(Ð(ð	 UÐTÐTÐTÐTøøøøð		)øøøð ð 'ÝÐu½3¼>ÐuÐuÐgsÐuÐuÑvÔvÐvõ #ð 	'ÝŒLÐk½¼ÐkÐkÐkÑlÔlÐlØ"&Ðð —’ F�Ñ+Ô+€IðZÝŒvÐ0µ&´.×2HÒ2HÍÌ×I`ÒI`ÐajÑIkÔIkõ  vAÐ2Hñ  3Bô  3Bñ  Cô  Cð  	CøÝŒ<Ô ð Zð Zð ZÝÐX¸9ÐXÐXÐRVÐXÐXÑYÔYÐYøøøøðZøøøs2   ŸAA5 Á5C7Â	A$C2Ã2C7ÅAF3 Æ3G!ÇGÇG!Úbytesc                óL   — t          d| d¦  «        }|                     ¦   «         S )Nz.https://wrapdb.mesonbuild.com/v2/releases.jsonT)rO   Úread)r0   r+   s     r,   Úget_releases_datarS   o   s#   € Ý
ÐIÈ>Ð[_Ñ
`Ô
`€CØ�8Š8‰:Œ:Ðr.   úT.Dict[str, T.Any]c                ó’   — t          | ¦  «        }t          j        dt          j        |                     ¦   «         ¦  «        ¦  «        S )NrT   )rS   r:   r;   ÚjsonÚloadsÚdecode)r0   Údatas     r,   Úget_releasesrZ   s   s4   € Ý˜^Ñ,Ô,€DÝŒ6Ð&­¬
°4·;²;±=´=Ñ(AÔ(AÑBÔBÐBr.   ÚwrapfileÚnameÚnew_versionÚnew_revisionÚNonec                óâ   — t          d|› d|› d|› d|› d�	|d¦  «        }t          | d¦  «        5 }|                     |                     ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú!https://wrapdb.mesonbuild.com/v2/Ú_ú-ú/ú.wrapTÚwb)rO   ÚopenÚwriterR   )r[   r\   r]   r^   r0   r+   Úfs          r,   Úupdate_wrap_filerj   w   sÉ   € Ý
Ðl¸TÐlÐlÀKÐlÐlÐR^ÐlÐlÐaeÐlÐlÐlØ'¨ñ/ô /€Cå	ˆh˜Ñ	Ô	ð  Ø	�Š�—’‘
”
ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¯(A$Á$A(Á+A(Ú	patch_urlúT.Tuple[str, str]c                óÆ  — t           j                             | ¦  «        }|j        dk    rt	          d| › d�¦  «        ‚|j                             d¦  «                             d¦  «        }|d         dk    r|d         |d         fS |d         d	k    r>|d         }|                     d
d¦  «        \  }}|                     dd¦  «        \  }}||fS t	          d| › �¦  «        ‚)Nr   zURL z$ does not seems to be a wrapdb patchrd   r   Úv1éýÿÿÿéþÿÿÿÚv2rb   r
   rc   zInvalid wrapdb URL )	r"   r#   r$   Únetlocr&   ÚpathÚstripÚsplitÚrsplit)rk   ÚuÚarrÚtagrb   ÚversionÚrevisions          r,   Úparse_patch_urlr|   }   sç   € ÝŒ×Ò˜iÑ(Ô(€AØ„xÐ*Ò*Ð*ÝÐR 9ÐRÐRÐRÑSÔSÐSØ
Œ&�,Š,�sÑ
Ô
×
!Ò
! #Ñ
&Ô
&€CØ
ˆ1„v�‚~€~à�2Œw˜˜BœÐÐØ	ˆQŒ�4Šˆà�"ŒgˆØ—Z’Z  QÑ'Ô'‰
ˆˆ7Ø#ŸNšN¨3°Ñ2Ô2Ñˆ�Ø˜Ð Ð åÐ=°)Ð=Ð=Ñ>Ô>Ð>r.   c                  ó   — e Zd ZdS )r&   N©Ú__name__Ú
__module__Ú__qualname__© r.   r,   r&   r&   Ž   ó   € € € € € Ø€Dr.   r&   c                  ó   — e Zd ZdS )ÚWrapNotFoundExceptionNr~   r‚   r.   r,   r…   r…   ‘   rƒ   r.   r…   c                  óH   — e Zd Zddd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dS )ÚPackageDefinitionr5   Úfnamer   Ú
subprojectc                ój  — || _         t          |¦  «        | _        d | _        i | _        i | _        g | _        g | _        t          j	         
                    |¦  «        | _
        | j
                             d¦  «        | _        | j        r| j
        d d…         n| j
        | _        d | j        | j                             ¦   «         <   || _        d| _        | j        rŽ|                      ¦   «          t%          |dd¬¦  «        5 }t'          j        |                     ¦   «                              d¦  «        ¦  «                             ¦   «         | _        d d d ¦  «         n# 1 swxY w Y   | j                             d| j        ¦  «        | _        t          j	                             | j        ¦  «        rt9          d¦  «        ‚| j        r%| j        t:          vrt9          d	| j        ›�¦  «        ‚t          j	                             t          j	                             | j         ¦  «        d
¦  «        | _        d S )Nre   éûÿÿÿFÚrúutf-8©ÚencodingÚ	directoryz+Directory key must be a name and not a pathúUnknown wrap type Úpackagefiles) Úfilenamer   r‰   ÚtypeÚvaluesÚprovided_depsÚprovided_programsÚ
diff_filesÚosrs   Úbasenamer'   Úhas_wrapr\   ÚlowerÚoriginal_filenameÚ
redirectedÚ
parse_wraprg   ÚhashlibÚsha256rR   ÚencodeÚ	hexdigestÚwrapfile_hashÚgetr�   Údirnamer&   Ú	ALL_TYPESÚjoinÚfilesdir)Úselfrˆ   r‰   r   s       r,   Ú__init__zPackageDefinition.__init__•   s  € ØˆŒÝ$ ZÑ0Ô0ˆŒØˆŒ	ØˆŒØˆÔØ!#ˆÔØˆŒÝœ×(Ò(¨Ñ/Ô/ˆŒØœ×.Ò.¨wÑ7Ô7ˆŒØ*.¬-ÐJ�D”M # 2 #Ô&Ð&¸T¼]ˆŒ	à04ˆÔ˜4œ9Ÿ?š?Ñ,Ô,Ñ-à!&ˆÔØˆŒØŒ=ð 	]Ø�OŠOÑÔÐÝ�e˜S¨7Ð3Ñ3Ô3ð ]°tÝ%,¤^°D·I²I±K´K×4FÒ4FÀwÑ4OÔ4OÑ%PÔ%P×%ZÒ%ZÑ%\Ô%\�Ô"ð]ð ]ð ]ñ ]ô ]ð ]ð ]ð ]ð ]ð ]ð ]øøøð ]ð ]ð ]ð ]àœŸš¨°d´iÑ@Ô@ˆŒÝŒ7�?Š?˜4œ>Ñ*Ô*ð 	OÝÐ MÑNÔNÐNØŒ9ð 	D˜œ­)Ð3Ð3ÝÐ B°T´YÐ BÐ BÑCÔCÐCÝœŸš¥R¤W§_¢_°T´]Ñ%CÔ%CÀ^ÑTÔTˆŒˆˆs   Ä AEÅE!Å$E!r   r_   c                ó  — 	 t          j        d ¬¦  «        }|                     | j        d¬¦  «         n1# t           j        $ r}t          d| j        › d|›�¦  «        ‚d }~ww xY w|                      |¦  «         | j        dk    r÷t          | j        ¦  «        j
        }t          | j        d         ¦  «        }t          |j        ¦  «        D ]9\  }}|dz  d	k    r|d
k    rt          d¦  «        ‚Œ$|dk    rt          d¦  «        ‚Œ:|j        dk    rt          d¦  «        ‚||z  }|                     ¦   «         st          d|› d�¦  «        ‚t!          |¦  «        | _        |                      ¦   «          d| _        n|                      |¦  «         d| j        v r(t)          dd¦  «                             | j        ¦  «         dD ]F}|› d�| j        v r8|› d�| j        vr,t)          d|› d�d¦  «                             | j        ¦  «         ŒGd S )N)Úinterpolationr�   rŽ   zFailed to parse z: Úredirectr“   r   r   ú..z*wrap-redirect filename cannot contain ".."ÚsubprojectszCwrap-redirect filename must be in the form foo/subprojects/bar.wrapre   z+wrap-redirect filename must be a .wrap filezwrap-redirect z filename does not existTÚpatch_directoryzWrap files with patch_directoryz0.55.0)r   ÚsourceÚ	_filenameÚ_urlzLocal wrap patch files without )ÚconfigparserÚConfigParserrR   r“   ÚErrorr&   rš   Úparse_wrap_sectionr”   r	   Úparentr•   Ú	enumerateÚpartsÚsuffixÚis_filer   rŸ   rž   Úparse_provide_sectionr   Úuser‰   )rª   ÚconfigÚer¦   rˆ   ÚiÚpÚwhats           r,   rŸ   zPackageDefinition.parse_wrap°   s\  € ð	KÝ!Ô.¸TÐBÑBÔBˆFØ�KŠK˜œ°ˆKÑ8Ô8Ð8Ð8øÝÔ!ð 	Kð 	Kð 	KÝÐ I°4´=Ð IÐ IÀAÐ IÐ IÑJÔJÐJøøøøð	Køøøà×Ò Ñ'Ô'Ð'ØŒ9˜
Ò"Ð"õ ˜4œ=Ñ)Ô)Ô0ˆGÝ˜œ ZÔ0Ñ1Ô1ˆEÝ! %¤+Ñ.Ô.ð sð s‘��1Ø�q‘5˜A’:�:Ø˜D’y�yÝ+Ð,XÑYÔYÐYð !ð ˜MÒ)Ð)Ý+Ð,qÑrÔrÐrð *àŒ|˜wÒ&Ð&Ý#Ð$QÑRÔRÐRØ˜e‘OˆEØ—=’=‘?”?ð VÝ#Ð$T°UÐ$TÐ$TÐ$TÑUÔUÐUÝ ™JœJˆDŒMØ�OŠOÑÔÐØ"ˆDŒOˆOà×&Ò& vÑ.Ô.Ð.Ø ¤Ð+Ð+ÝÐ8¸(ÑCÔC×GÒGÈÌÑXÔXÐXØ'ð 	hð 	hˆDØÐ!Ð!Ð! T¤[Ð0Ð0¸°]°]°]È$Ì+Ð5UÐ5UÝÐG¸TÐGÐGÐGÈÑRÔR×VÒVÐW[ÔWfÑgÔgÐgøð	hð 	hs   ‚14 ´A"ÁAÁA"rÀ   úconfigparser.ConfigParserc                ó*  — t          |                     ¦   «         ¦  «        dk     rt          d| j        › �¦  «        ‚|                     ¦   «         d         | _        | j                             d¦  «        st          | j        ›d| j        › �¦  «        ‚| j        dd …         | _        t          || j                 ¦  «        | _        d| j        v rÁt          dd	¦  «         
                    | j        ¦  «         | j        d                              d
¦  «        D ]z}t          |                     ¦   «         ¦  «        }|                     ¦   «         rt          d¦  «        ‚d|j        v rt          d¦  «        ‚| j                             |¦  «         Œyd S d S )Nr
   zMissing sections in r   zwrap-z! is not a valid first section in é   r˜   zWrap files with diff_filesz0.63.0ú,z#diff_files paths cannot be absoluter¯   z$diff_files paths cannot contain "..")ÚlenÚsectionsr&   rš   Úwrap_sectionÚ
startswithr”   Údictr•   r   r¿   r‰   ru   r	   rt   Úis_absoluter»   r˜   Úappend)rª   rÀ   Úsrs   s       r,   r¸   z$PackageDefinition.parse_wrap_sectionÔ   s†  € Ýˆv�ŠÑ Ô Ñ!Ô! AÒ%Ð%ÝÐ F°t´}Ð FÐ FÑGÔGÐGØ"ŸOšOÑ-Ô-¨aÔ0ˆÔØÔ ×+Ò+¨GÑ4Ô4ð 	jÝ 4Ô#4Ð hÐ hÐY]ÔYfÐ hÐ hÑiÔiÐiØÔ% a b bÔ)ˆŒ	Ý˜6 $Ô"3Ô4Ñ5Ô5ˆŒØ˜4œ;Ð&Ð&ÝÐ3°XÑ>Ô>×BÒBÀ4Ä?ÑSÔSÐSØ”[ Ô.×4Ò4°SÑ9Ô9ð -ð -�Ý˜AŸGšG™IœI‘”�Ø×#Ò#Ñ%Ô%ð OÝ'Ð(MÑNÔNÐNØ˜4œ:Ð%Ð%Ý'Ð(NÑOÔOÐOØ”×&Ò& tÑ,Ô,Ð,Ð,ð 'Ð&ð-ð -r.   c                ó²  — |                      d¦  «        r¿|d                              ¦   «         D ]¦\  }}|dk    r:d„ |                     d¦  «        D ¦   «         }| j                             |¦  «         ŒE|dk    r0d„ |                     d¦  «        D ¦   «         }| xj        |z  c_        Œ{|sd|›d| j        › d	�}t          |¦  «        ‚|| j        |<   Œ¥d S d S )
NÚprovideÚdependency_namesc                ó\   — i | ])}|                      ¦   «                              ¦   «         d “Œ*S ©N)rt   rœ   ©Ú.0Úns     r,   ú
<dictcomp>z;PackageDefinition.parse_provide_section.<locals>.<dictcomp>í   s,   € Ð!PÐ!PÐ!P¸a !§'¢'¡)¤)§/¢/Ñ"3Ô"3°TÐ!PÐ!PÐ!Pr.   rÈ   Úprogram_namesc                ó6   — g | ]}|                      ¦   «         ‘ŒS r‚   )rt   rÖ   s     r,   ú
<listcomp>z;PackageDefinition.parse_provide_section.<locals>.<listcomp>ò   s    € Ð!BÐ!BÐ!B° !§'¢'¡)¤)Ð!BÐ!BÐ!Br.   z#Empty dependency variable name for ú in zk. If the subproject uses meson.override_dependency() it can be added in the "dependency_names" special key.)Úhas_sectionÚitemsru   r–   Úupdater—   rš   r&   )rª   rÀ   ÚkÚvÚ
names_dictÚ
names_listÚms          r,   r¾   z'PackageDefinition.parse_provide_sectionæ   s)  € Ø×Ò˜iÑ(Ô(ð 	*Ø˜yÔ)×/Ò/Ñ1Ô1ð *ð *‘��1ØÐ*Ò*Ð*ð "QÐ!PÀ1Ç7Â7È3Á<Ä<Ð!PÑ!PÔ!P�JØÔ&×-Ò-¨jÑ9Ô9Ð9ØØ˜Ò'Ð'à!BÐ!B°Q·W²W¸S±\´\Ð!BÑ!BÔ!B�JØÐ*Ô*¨jÑ8Ð*Ô*ØØð +ðR¸qð Rð RÈÌð Rð Rð R�Aõ (¨Ñ*Ô*Ð*Ø()�Ô" 1Ñ%Ð%ð'	*ð 	*ð*ð *r.   Úkeyc                ón   — 	 | j         |         S # t          $ r t          d|›d| j        › �¦  «        ‚w xY w)NzMissing key rÝ   )r•   ÚKeyErrorr&   rš   )rª   ræ   s     r,   r¥   zPackageDefinition.getü   sU   € ð	KØ”;˜sÔ#Ð#øÝð 	Kð 	Kð 	KÝÐ I¨sÐ IÐ I¸$¼-Ð IÐ IÑJÔJÐJð	Køøøs   ‚ �%4Úsubproject_directoryc                óB   — t           j                             |d¦  «        S )Nz.meson-subproject-wrap-hash.txt)r™   rs   r¨   )rª   ré   s     r,   Úget_hashfilezPackageDefinition.get_hashfile  s   € ÝŒw�|Š|Ð0Ð2SÑTÔTÐTr.   c                óÎ   — | j         r]t          |                      |¦  «        dd¬¦  «        5 }|                     | j        dz   ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )NÚwr�   rŽ   ú
)r›   rg   rë   rh   r¤   )rª   ré   r   s      r,   Úupdate_hash_cachez#PackageDefinition.update_hash_cache  s¶   € ØŒ=ð 	6Ý�d×'Ò'Ð(<Ñ=Ô=¸sÈWÐUÑUÔUð 6ÐY]Ø—
’
˜4Ô-°Ñ4Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ð	6ð 	6s   ­AÁAÁAN)r5   )rˆ   r   r‰   r   ©r   r_   )rÀ   rÅ   r   r_   )ræ   r   r   r   )ré   r   r   r   )ré   r   r   r_   )
r   r€   r�   r«   rŸ   r¸   r¾   r¥   rë   rï   r‚   r.   r,   r‡   r‡   ”   s·   € € € € € ðUð Uð Uð Uð Uð6"hð "hð "hð "hðH-ð -ð -ð -ð$*ð *ð *ð *ð,Kð Kð Kð KðUð Uð Uð Uð6ð 6ð 6ð 6ð 6ð 6r.   r‡   Úsubdir_rootÚpackagenamec                ó¶   — t           j                             | |dz   ¦  «        }t           j                             |¦  «        rt	          |¦  «        }|j        S |S )Nre   )r™   rs   r¨   Úisfiler‡   r�   )rñ   rò   rˆ   Úwraps       r,   Úget_directoryrö   
  sM   € ÝŒG�LŠL˜ k°GÑ&;Ñ<Ô<€EÝ	„w‡~‚~�eÑÔð Ý  Ñ'Ô'ˆØŒ~ÐØÐr.   ÚcmdúT.List[str]Ú
workingdirÚcheckc                ó˜   — 	 t          j        | ||¬¦  «        S # t           j        $ r!}t          t	          |¦  «        ¦  «        ‚d}~ww xY w)zQ
    Wrapper to convert GitException to WrapException caught in interpreter.
    ©rú   N)r   Úverbose_gitÚGitExceptionr&   r   )r÷   rù   rú   rÁ   s       r,   rý   rý     sU   € ð$ÝÔ# C¨¸5ÐAÑAÔAÐAøÝÔ ð $ð $ð $Ý�C ™FœFÑ#Ô#Ð#øøøøð$øøøs   ‚ ™A	¨AÁA	)Úeqc                  óJ  — e Zd ZU ded<   ded<   dZded<   ej        Zded<   dZd	ed
<   dZ	d	ed<   dDd„Z
dDd„ZdDd„ZdEd„ZdDd„ZdFd„ZdGd„ZdHd„ZdId„ZdJd"„ZdKd$„ZdDd%„ZdLd&„ZdDd'„ZdDd(„ZdDd)„ZdMd+„ZdDd,„ZdDd-„ZdNd0„ZdOd3„ZdPdQd8„ZdOd9„Z dRdSd<„Z!dTd=„Z"dDd>„Z#dDd?„Z$dUdB„Z%dCS )VÚResolverr   Ú
source_dirÚsubdirr5   r‰   r   Ú	wrap_modeFr1   Úwrap_frontendr0   r   r_   c                ó’  — t           j                             | j        | j        ¦  «        | _        t           j                             | j        d¦  «        | _        i | _        d | _        i | _	        i | _
        i | _        i | _        i | _        |                      ¦   «          |                      ¦   «          |                      ¦   «          d S )NÚpackagecache)r™   rs   r¨   r  r  rñ   ÚcachedirÚwrapsr   r–   r—   ÚwrapdbÚwrapdb_provided_depsÚwrapdb_provided_programsÚ
load_wrapsÚ
load_netrcÚload_wrapdb)rª   s    r,   Ú__post_init__zResolver.__post_init__#  s¥   € Ýœ7Ÿ<š<¨¬¸¼ÑEÔEˆÔÝœŸš TÔ%5°~ÑFÔFˆŒØˆŒ
Ø(,ˆŒ
ØˆÔØ!#ˆÔØ*,ˆŒØ68ˆÔ!Ø:<ˆÔ%Ø�ŠÑÔÐØ�ŠÑÔÐØ×ÒÑÔÐÐÐr.   c                óª   — 	 t          ¦   «         | _         d S # t          $ r Y d S t          $ r%}t          j        d|› d�d¬¦  «         Y d }~d S d }~ww xY w)Nzfailed to process netrc file: r8   F©Úfatal)r   ÚFileNotFoundErrorÚ	Exceptionr   rF   )rª   rÁ   s     r,   r  zResolver.load_netrc1  s†   € ð	MÝ™œˆDŒJˆJˆJøÝ ð 	ð 	ð 	ØˆFˆFÝð 	Mð 	Mð 	MÝŒLÐ>¸!Ð>Ð>Ð>ÀeÐLÑLÔLÐLÐLÐLÐLÐLÐLÐLøøøøð	Møøøs   ‚ —
A¤	A­AÁAc                ó   — t           j                             | j        ¦  «        sd S t	          t          j        | j        ¦  «        ¦  «        \  }}}ddh}|D ]r}|                     d¦  «        sŒt           j                             | j        |¦  «        }t          || j	        ¦  «        }|| j
        |j        <   ||j        |j        hz  }Œs|D ]P}||v rŒt           j                             | j        |¦  «        }t          || j	        ¦  «        }|| j
        |j        <   ŒQ| j
                             ¦   «         D ]}|                      |¦  «         Œd S )Nr  r’   re   )r™   rs   Úisdirrñ   ÚnextÚwalkr'   r¨   r‡   r‰   r	  r\   r�   r•   Úadd_wrap)rª   ÚrootÚdirsÚfilesÚignore_dirsrÂ   rˆ   rõ   s           r,   r  zResolver.load_wraps9  sP  € ÝŒw�}Š}˜TÔ-Ñ.Ô.ð 	ØˆFÝ ¥¤¨Ô)9Ñ!:Ô!:Ñ;Ô;Ñˆˆd�EØ% ~Ð6ˆØð 	7ð 	7ˆAØ—:’:˜gÑ&Ô&ð ØÝ”G—L’L Ô!1°1Ñ5Ô5ˆEÝ$ U¨D¬OÑ<Ô<ˆDØ$(ˆDŒJ�t”yÑ!Ø˜DœN¨D¬IÐ6Ñ6ˆKˆKàð 	)ð 	)ˆAØ�KÐÐØÝ”G—L’L Ô!1°1Ñ5Ô5ˆEÝ$ U¨D¬OÑ<Ô<ˆDØ$(ˆDŒJ�t”yÑ!Ð!à”J×%Ò%Ñ'Ô'ð 	 ð 	 ˆDØ�MŠM˜$ÑÔÐÐð	 ð 	 r.   rõ   r‡   c                ób  — |j                              ¦   «         D ]F}|| j         v r1| j         |         }d|›d|j        › d|j        › �}t          |¦  «        ‚|| j         |<   ŒG|j        D ]F}|| j        v r1| j        |         }d|›d|j        › d|j        › �}t          |¦  «        ‚|| j        |<   ŒGd S )NzMultiple wrap files provide z dependency: z and z
 program: )r–   Úkeysrš   r&   r—   )rª   rõ   rá   Ú	prev_wraprå   s        r,   r  zResolver.add_wrapP  sô   € ØÔ#×(Ò(Ñ*Ô*ð 	)ð 	)ˆAØ�DÔ&Ð&Ð&Ø Ô.¨qÔ1�	Øm°1ÐmÐmÀTÄ]ÐmÐmÐYbÔYkÐmÐm�Ý# AÑ&Ô&Ð&Ø$(ˆDÔ˜qÑ!Ð!ØÔ'ð 	-ð 	-ˆAØ�DÔ*Ð*Ð*Ø Ô2°1Ô5�	Øj°1ÐjÐjÀ$Ä-ÐjÐjÐV_ÔVhÐjÐj�Ý# AÑ&Ô&Ð&Ø(,ˆDÔ" 1Ñ%Ð%ð	-ð 	-r.   c                ó
  ‡— 	 t          | j        d¦  «                             dd¬¦  «        5 }t          j        |¦  «        | _        d d d ¦  «         n# 1 swxY w Y   n# t          $ r Y d S w xY w| j                             ¦   «         D ]y\  Š}| j         	                    ˆfd„| 
                    dg ¦  «        D ¦   «         ¦  «         | j         	                    ˆfd„| 
                    dg ¦  «        D ¦   «         ¦  «         Œzd S )	Nzwrapdb.jsonrŒ   r�   rŽ   c                ó   •— i | ]}|‰“ŒS r‚   r‚   ©r×   rÂ   r\   s     €r,   rÙ   z(Resolver.load_wrapdb.<locals>.<dictcomp>e  s   ø€ Ð-`Ð-`Ð-`¸!¨a°Ð-`Ð-`Ð-`r.   rÓ   c                ó   •— i | ]}|‰“ŒS r‚   r‚   r$  s     €r,   rÙ   z(Resolver.load_wrapdb.<locals>.<dictcomp>f  s   ø€ Ð1aÐ1aÐ1a¸a°!°TÐ1aÐ1aÐ1ar.   rÚ   )r	   rñ   rg   rV   Úloadr
  r  rß   r  rà   r¥   r  )rª   ri   Úinfor\   s      @r,   r  zResolver.load_wrapdb^  s\  ø€ ð	Ý�dÔ&¨Ñ6Ô6×;Ò;¸CÈ'Ð;ÑRÔRð +ÐVWÝ"œi¨™lœl�”ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øøå ð 	ð 	ð 	ØˆFˆFð	øøøàœ+×+Ò+Ñ-Ô-ð 	cð 	c‰JˆD�$ØÔ%×,Ò,Ð-`Ð-`Ð-`Ð-`¸t¿xºxÐHZÐ\^Ñ?_Ô?_Ð-`Ñ-`Ô-`ÑaÔaÐaØÔ)×0Ò0Ð1aÐ1aÐ1aÐ1aÀ4Ç8Â8ÈOÐ]_ÑC`ÔC`Ð1aÑ1aÔ1aÑbÔbÐbÐbð	cð 	cs4   ƒ*A ­AÁA ÁAÁA ÁAÁA Á
A-Á,A-Ú	subp_namec                ó¢  — | j                              |¦  «        }|sd S |                      ¦   «          |d         d         }|                     dd¦  «        \  }}t          j                             d|› d|› d|› d|› d�	¦  «        }t          | j        |› d�¦  «        }| 	                    d	¦  «        5 }| 
                    |                     ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d
|› d|› d|› �¦  «         t          t          |¦  «        ¦  «        }	|	| j        |	j        <   |                      |	¦  «         |	S )NÚversionsr   rc   r
   ra   rb   rd   re   rf   z
Installed z	 version z
 revision )r
  r¥   Úcheck_can_downloadrv   r"   r<   r=   r	   rñ   rg   rh   rR   r   Úlogr‡   r   r	  r\   r  )
rª   r(  r'  Úlatest_versionrz   r{   r+   rˆ   ri   rõ   s
             r,   Úget_from_wrapdbzResolver.get_from_wrapdbh  s“  € ØŒ{�Š˜yÑ)Ô)ˆØð 	Ø�4Ø×ÒÑ!Ô!Ð!Ø˜jÔ)¨!Ô,ˆØ*×1Ò1°#°qÑ9Ô9Ñˆ�ÝŒn×$Ò$Ð%zÈÐ%zÐ%zÐU\Ð%zÐ%zÐ_gÐ%zÐ%zÐjsÐ%zÐ%zÐ%zÑ{Ô{ˆÝ�TÔ%¨)Ð':Ð':Ð':Ñ;Ô;ˆØ�ZŠZ˜ÑÔð 	  Ø�GŠG�C—H’H‘J”JÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 åŒÐO˜iÐOÐO°'ÐOÐOÀXÐOÐOÑPÔPÐPÝ ¥ U¡¤Ñ,Ô,ˆØ $ˆŒ
�4”9ÑØ�Š�dÑÔÐØˆs   Â3(C'Ã'C+Ã.C+Úother_resolverú
'Resolver'c                ób  — |j                              ¦   «         D ] \  }}| j                              ||¦  «         Œ!|j                             ¦   «         D ] \  }}| j                             ||¦  «         Œ!|j                             ¦   «         D ] \  }}| j                             ||¦  «         Œ!d S rÕ   )r	  rß   Ú
setdefaultr–   r—   )rª   r/  rá   râ   s       r,   Úmerge_wrapszResolver.merge_wrapsy  sÅ   € Ø"Ô(×.Ò.Ñ0Ô0ð 	(ð 	(‰DˆAˆqØŒJ×!Ò! ! QÑ'Ô'Ð'Ð'Ø"Ô0×6Ò6Ñ8Ô8ð 	0ð 	0‰DˆAˆqØÔ×)Ò)¨!¨QÑ/Ô/Ð/Ð/Ø"Ô4×:Ò:Ñ<Ô<ð 	4ð 	4‰DˆAˆqØÔ"×-Ò-¨a°Ñ3Ô3Ð3Ð3ð	4ð 	4r.   rò   ú)T.Tuple[T.Optional[str], T.Optional[str]]c                óä   — |                      ¦   «         }| j                             |¦  «        }|r#|j                             |¦  «        }|j        |fS | j                             |¦  «        }|d fS rÕ   )rœ   r–   r¥   r\   r  )rª   rò   rõ   Údep_varÚ	wrap_names        r,   Úfind_dep_providerzResolver.find_dep_provider�  sv   € ð "×'Ò'Ñ)Ô)ˆØÔ!×%Ò% kÑ2Ô2ˆØð 	&ØÔ(×,Ò,¨[Ñ9Ô9ˆGØ”9˜gÐ%Ð%ØÔ-×1Ò1°+Ñ>Ô>ˆ	Ø˜$ˆÐr.   ÚdepnameúT.Optional[str]c                ór   — | j                              |¦  «        }|r|j                             |¦  «        nd S rÕ   )r	  r¥   r–   )rª   r(  r9  rõ   s       r,   Úget_varnamezResolver.get_varnameŒ  s6   € ØŒz�~Š~˜iÑ(Ô(ˆØ26Ð@ˆtÔ!×%Ò% gÑ.Ô.Ð.¸DÐ@r.   Únamesrø   c                óš   — |D ]G}| j                              |¦  «        }|r	|j        c S | j                             |¦  «        }|r|c S ŒHd S rÕ   )r—   r¥   r\   r  )rª   r=  r\   rõ   r7  s        r,   Úfind_program_providerzResolver.find_program_provider�  sq   € Øð 	!ð 	!ˆDØÔ)×-Ò-¨dÑ3Ô3ˆDØð !Ø”yÐ Ð Ð ØÔ5×9Ò9¸$Ñ?Ô?ˆIØð !Ø Ð Ð Ð ð!àˆtr.   Úmethodc                óF
  — || _         || _        | j                             |¦  «        | _        | j        s|                      |¦  «        | _        | j        sd| j         › d�}t          |¦  «        ‚| j        j        | _        | j        j        �rÐt          j	         
                    t          j	                             | j        j        ¦  «        | j        j        ¦  «        | _        t          j	                             | j        ¦  «        s/t          j	         
                    | j        | j        ¦  «        | _        t          j	         
                    | j        | j        j        ¦  «        }| j        j        |k    rçt          j	                             | j        j        | j        ¦  «        }t%          j        dt%          j        |¦  «        ¦  «         t+          |dd¬¦  «        5 }|                     t/          j        d                     t          j	                             | j        j        | j        ¦  «        ¦  «        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   n| j        j        | _        t          j	                             | j        | j        ¦  «        }|dk    r&t          j	         
                    | j        d	¦  «        }n;|d
k    r&t          j	         
                    | j        d¦  «        }nt5          d¦  «        ‚t          j	                             |¦  «        r|                      ¦   «          |S |                      ¦   «          t          j	                             | j        ¦  «        r5t          j	                             | j        ¦  «        st5          d¦  «        ‚�n| j        j        dk    r|                      ¦   «          nŸ|                       ¦   «          | j        j        dk    r|  !                    ¦   «          nf| j        j        dk    r|  "                    ¦   «          nA| j        j        dk    r|  #                    ¦   «          nt5          d| j        j        ›�¦  «        ‚	 |  $                    ¦   «          |  %                    ¦   «          n## tL          $ r tO          | j        ¦  «         ‚ w xY wt          j	                             |¦  «        s0t5          dt          j	                             |¦  «        › d�¦  «        ‚| j         (                    | j        ¦  «         |S )Nz%Neither a subproject directory nor a z.wrap file was found.ÚUsingrí   r�   rŽ   zf                        [wrap-redirect]
                        filename = {}
                        Úmesonzmeson.buildÚcmakezCMakeLists.txtz2Only the methods "meson" and "cmake" are supportedz*Path already exists but is not a directoryr   r   r   r   r‘   zSubproject exists but has no z file))rò   r�   r	  r¥   rõ   r.  r…   r›   r™   rs   r¨   r¦   r“   Úexistsrñ   rš   Úrelpathr  r   r,  Úboldrg   rh   ÚtextwrapÚdedentÚformatr&   ÚvalidateÚresolve_git_submoduler  r”   Úget_filer+  Úget_gitÚget_hgÚget_svnÚapply_patchÚapply_diff_filesr  r   rï   )	rª   rò   r@  rå   Ú
main_fnameÚrelri   Úrel_pathÚ	buildfiles	            r,   ÚresolvezResolver.resolveš  sˆ  € Ø&ˆÔØ$ˆŒØ”J—N’N ;Ñ/Ô/ˆŒ	ØŒyð 	:Ø×,Ò,¨[Ñ9Ô9ˆDŒIØŒyð 	+Ø_¸Ô8HÐ_Ð_Ð_ˆAÝ'¨Ñ*Ô*Ð*ØœÔ,ˆŒàŒ9Ôñ 	.õ
 œ7Ÿ<š<­¬¯ª¸¼	Ô8JÑ(KÔ(KÈTÌYÔM`ÑaÔaˆDŒLÝ”7—>’> $¤,Ñ/Ô/ð NÝ!œwŸ|š|¨DÔ,<¸d¼nÑMÔM�”åœŸš dÔ&6¸¼	Ô8JÑKÔKˆJØŒyÔ! ZÒ/Ð/Ý”g—o’o d¤iÔ&8¸$¼/ÑJÔJ�Ý”˜¥$¤)¨C¡.¤.Ñ1Ô1Ð1õ ˜* c°GÐ<Ñ<Ô<ð \ÀØ—G’G�HœOð -÷ #šF¥2¤7§?¢?°4´9Ô3EÀtÔGWÑ#XÔ#XÑYÔYñ[ô [ñ \ô \ð \ð\ð \ð \ñ \ô \ð \ð \ð \ð \ð \ð \øøøð \ð \ð \ð \øð  œ9Ô-ˆDŒLÝ”7—?’? 4¤<°´ÑAÔAˆà�WÒÐÝœŸš T¤\°=ÑAÔAˆIˆIØ�wÒÐÝœŸš T¤\Ð3CÑDÔDˆIˆIåÐ TÑUÔUÐUõ Œ7�>Š>˜)Ñ$Ô$ð 	Ø�MŠM‰OŒOˆOØˆOð 	×"Ò"Ñ$Ô$Ð$åŒ7�>Š>˜$œ,Ñ'Ô'ð 	Ý”7—=’= ¤Ñ.Ô.ð RÝ#Ð$PÑQÔQÐQñRð ŒyŒ~ Ò'Ð'Ø—’‘”��à×'Ò'Ñ)Ô)Ð)Ø”9”> UÒ*Ð*Ø—L’L‘N”N�N�NØ”Y”^ tÒ+Ð+Ø—K’K‘M”M�M�MØ”Y”^ uÒ,Ð,Ø—L’L‘N”N�N�Nå'Ð(O¸T¼Y¼^Ð(OÐ(OÑPÔPÐPðØ× Ò Ñ"Ô"Ð"Ø×%Ò%Ñ'Ô'Ð'Ð'øÝð ð ð Ý$ T¤\Ñ2Ô2Ð2Øðøøøõ
 Œw�~Š~˜iÑ(Ô(ð 	dÝÐ bÅÄ×@PÒ@PÐQZÑ@[Ô@[Ð bÐ bÐ bÑcÔcÐcð
 	Œ	×#Ò# D¤LÑ1Ô1Ð1àˆs   ÇA(IÉIÉIÑ'(R Ò R0c                óN   — | j         t          j        u rd}t          |¦  «        ‚d S )Nz7Automatic wrap-based subproject downloading is disabled)r  r   Ú
nodownloadr&   )rª   rå   s     r,   r+  zResolver.check_can_downloadð  s/   € ð Œ>�XÔ0Ð0Ð0ØIˆAÝ Ñ"Ô"Ð"ð 1Ð0r.   c                óÐ  — t           sdS t          j                             | j        ¦  «        sdS t          dgt          | j        ¦  «        j        ¦  «        \  }}|sdS t          g d¢| j        ¦  «        \  }}|sdS |                     d¦  «        rt          j
        d¦  «         dS |                     d¦  «        rt          d¦  «        ‚|                     d	¦  «        r(t          g d
¢| j        ¦  «        rdS t          d¦  «        ‚|                     d¦  «        r0t          g d¢| j        ¦  «         t          ddg| j        ¦  «         dS |dk    rdS t          d|›�¦  «        ‚)NFz	rev-parse)Ú	submoduleÚstatusr8   ú+z"git submodule might be out of dateTÚUz!git submodule has merge conflictsrc   )r[  rà   ú--initr8   zgit submodule failed to initú )r[  rà   r8   Úcheckoutr8   r5   zUnknown git submodule output: )r   r™   rs   r  r¦   r   r	   r¹   rÌ   r   rF   r&   rý   )rª   ÚretÚouts      r,   rL  zResolver.resolve_git_submodule÷  sˆ  € õ ð 	Ø�5õ Œw�}Š}˜Tœ\Ñ*Ô*ð 	Ø�5å˜k˜]­D°´Ñ,>Ô,>Ô,EÑFÔF‰ˆˆSØð 	Ø�5åÐ9Ð9Ð9¸4¼<ÑHÔH‰ˆˆSØð 	Ø�5à�>Š>˜#ÑÔð 	ÝŒLÐ=Ñ>Ô>Ð>Ø�4Ø�^Š^˜CÑ Ô ð 	ÝÐ CÑDÔDÐDà�^Š^˜CÑ Ô ð 	ÝÐAÐAÐAÀ4Ä<ÑPÔPð Ø�tÝÐ >Ñ?Ô?Ð?à�^Š^˜CÑ Ô ð 	ÝÐ4Ð4Ð4°d´lÑCÔCÐCÝ˜ SÐ)¨4¬<Ñ8Ô8Ð8ð �4Ø�BŠYˆYà�5ÝÐD¸SÐDÐDÑEÔEÐEr.   c                óÄ   — |                       d¦  «        }| j        }d| j        j        v r t	          j        | j        ¦  «         | j        }t          j        ||¦  «         d S )Nr²   Úlead_directory_missing)	Úget_file_internalrñ   rõ   r•   r™   Úmkdirr¦   ÚshutilÚunpack_archive)rª   rs   Úextract_dirs      r,   rM  zResolver.get_file  sa   € Ø×%Ò% hÑ/Ô/ˆØÔ&ˆð $ t¤yÔ'7Ð7Ð7ÝŒH�T”\Ñ"Ô"Ð"Øœ,ˆKÝÔ˜d KÑ0Ô0Ð0Ð0Ð0r.   c                ó  — t           st          d| j        › d�¦  «        ‚| j                             d¦  «        }ddd|dg}d}g }| j        j                             d	d
¦  «        d
k    r#d}d| j        j                             d	¦  «        g}|�rM|                      |¦  «        �r7t          ddd| j        g| j	        d¬¦  «         t          ddd| j                             d¦  «        g| j
        d¬¦  «         | j                             d¦  «        }t          dg|¢d‘|‘| j
        d¬¦  «         t          || j
        d¬¦  «         | j        j                             dd
¦  «                             ¦   «         dk    rt          dddddg|¢| j
        d¬¦  «         | j        j                             d¦  «        }|rt          dddd|g| j
        d¬¦  «         d S d S |s®t          d| j                             d¦  «        | j        g| j	        d¬¦  «         |                     ¦   «         d k    r^t          || j
        ¦  «        sIt          d| j                             d¦  «        |g| j
        d¬¦  «         t          || j
        d¬¦  «         nadddg|¢}|                     ¦   «         d k    r|d!|gz  }|| j                             d¦  «        | j        gz  }t          || j	        d¬¦  «         | j        j                             dd
¦  «                             ¦   «         dk    rt          dddddg|¢| j
        d¬¦  «         | j        j                             d¦  «        }|rt          dddd|g| j
        d¬¦  «         d S d S )"Nz'Git program not found, cannot download z.wrap via git.r{   z-czadvice.detachedHead=falsera  z--FÚdepthr5   Tz--depthz%init.defaultBranch=meson-dummy-branchÚinitrü   ÚremoteÚaddÚoriginr+   Úfetchzclone-recursiveÚtruer[  rà   r_  z
--checkoutz--recursivezpush-urlzset-urlz--pushÚcloneÚheadz--branch)r   r&   rò   rõ   r¥   r•   Úis_git_full_commit_idrý   r�   rñ   r¦   rœ   )rª   ÚrevnoÚcheckout_cmdÚ
is_shallowÚdepth_optionÚpush_urlÚargss          r,   rN  zResolver.get_git)  sí  € Ýð 	lÝÐ jÈ$ÔJZÐ jÐ jÐ jÑkÔkÐkØ”	—’˜jÑ)Ô)ˆØÐ9¸:ÀuÈdÐSˆØˆ
ØˆØŒ9Ô×Ò ¨Ñ,Ô,°Ò2Ð2ØˆJØ% t¤yÔ'7×';Ò';¸GÑ'DÔ'DÐEˆLàñ  	k˜$×4Ò4°UÑ;Ô;ñ  	kõ ˜ÐFÈÐPTÔP^Ð_ÐaeÔaqÐy}Ð~Ñ~Ô~Ð~Ý˜ 5¨(°D´I·M²MÀ%Ñ4HÔ4HÐIÈ4Ì<Ð_cÐdÑdÔdÐdØ”I—M’M *Ñ-Ô-ˆEÝ˜ÐA <ÐA°ÐA¸5ÐAÀ4Ä<ÐW[Ð\Ñ\Ô\Ð\Ý˜ d¤l¸$Ð?Ñ?Ô?Ð?ØŒyÔ×#Ò#Ð$5°rÑ:Ô:×@Ò@ÑBÔBÀfÒLÐLÝ˜[¨(°H¸lØ*ð;Ø-9ð;Ø<@¼LÐPTðVñ Vô Vð Và”yÔ'×+Ò+¨JÑ7Ô7ˆHØð kÝ˜X y°(¸HÀhÐOÐQUÔQ]ÐeiÐjÑjÔjÐjÐjÐjðkð kð ð @Ý˜W d¤i§m¢m°EÑ&:Ô&:¸D¼NÐKÈTÔM]ÐeiÐjÑjÔjÐjØ—;’;‘=”= FÒ*Ð*Ý& |°T´\ÑBÔBð LÝ# W¨d¬i¯mªm¸EÑ.BÔ.BÀEÐ$JÈDÌLÐ`dÐeÑeÔeÐeÝ# L°$´,ÀdÐKÑKÔKÐKøàÐ9¸7ÐRÀ\ÐR�Ø—;’;‘=”= FÒ*Ð*Ø˜Z¨Ð/Ñ/�DØ˜œŸš uÑ-Ô-¨t¬~Ð>Ñ>�Ý˜D $Ô"2¸$Ð?Ñ?Ô?Ð?ØŒyÔ×#Ò#Ð$5°rÑ:Ô:×@Ò@ÑBÔBÀfÒLÐLÝ˜[¨(°H¸lÈMÐiÐ\hÐiØ œL°ð6ñ 6ô 6ð 6à”yÔ'×+Ò+¨JÑ7Ô7ˆHØð kÝ˜X y°(¸HÀhÐOÐQUÔQ]ÐeiÐjÑjÔjÐjÐjÐjðkð kr.   c                ó°  — | j         j        sd S | j                              | j        ¦  «        }t          j                             |¦  «        rQt          |dd¬¦  «        5 }|                     ¦   «          	                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   nd S | j         j
        }||k    r$t          j        d| j         j        › d�¦  «         d S d S )NrŒ   r�   rŽ   zSubproject zW's revision may be out of date; its wrap file has changed since it was first configured)rõ   r›   rë   r¦   r™   rs   rô   rg   rR   rt   r¤   r   rF   r\   )rª   Úhashfiler   Úexpected_hashÚactual_hashs        r,   rK  zResolver.validateV  s+  € àŒyÔ!ð 	ØˆFð ”9×)Ò)¨$¬,Ñ7Ô7ˆÝŒ7�>Š>˜(Ñ#Ô#ð 	Ý�h ¨gÐ6Ñ6Ô6ð 4¸$Ø $§	¢	¡¤× 1Ò 1Ñ 3Ô 3�ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øð ˆFà”iÔ-ˆð ˜KÒ'Ð'ÝŒLð  P t¤y¤~ð  Pð  Pð  Pñ  Qô  Qð  Qð  Qð  Qð (Ð's   Á'BÂBÂBrv  c                ó^   — d}t          |¦  «        dv rt          d„ |D ¦   «         ¦  «        }|S )NF>   é(   é@   c              3  ó   K  — | ]}|d v V — Œ	dS )Ú0123456789AaBbCcDdEeFfNr‚   )r×   Úchs     r,   ú	<genexpr>z1Resolver.is_git_full_commit_id.<locals>.<genexpr>m  s(   è è € ÐHÐH¸B˜Ð7Ð7ÐHÐHÐHÐHÐHÐHr.   )rÉ   Úall)rª   rv  Úresults      r,   ru  zResolver.is_git_full_commit_idj  s9   € ØˆÝˆu‰:Œ:˜Ð!Ð!ÝÐHÐHÀ%ÐHÑHÔHÑHÔHˆFØˆr.   c                ól  — | j                              d¦  «        }t          j        d¦  «        }|st	          d¦  «        ‚t          j        |d| j                              d¦  «        | j        g| j        ¬¦  «         | 	                    ¦   «         dk    r t          j        |d|g| j
        ¬¦  «         d S d S )	Nr{   r   zMercurial program not found.rs  r+   ©ÚcwdÚtipra  )rõ   r¥   rh  Úwhichr&   Ú
subprocessÚ
check_callr�   rñ   rœ   r¦   )rª   rv  r   s      r,   rO  zResolver.get_hgp  sË   € Ø”	—’˜jÑ)Ô)ˆÝŒ\˜$ÑÔˆØð 	@ÝÐ >Ñ?Ô?Ð?ÝÔ˜r 7¨D¬I¯MªM¸%Ñ,@Ô,@Ø#œ~ð/Ø48Ô4Dð	Fñ 	Fô 	Fð 	Fà�;Š;‰=Œ=˜EÒ!Ð!ÝÔ! 2 z°5Ð"9Ø&*¤lð4ñ 4ô 4ð 4ð 4ð 4ð "Ð!r.   c           	     ó   — | j                              d¦  «        }t          j        d¦  «        }|st	          d¦  «        ‚t          j        |dd|| j                              d¦  «        | j        g| j        ¬¦  «         d S )Nr{   r   zSVN program not found.ra  z-rr+   rŠ  )	rõ   r¥   rh  r�  r&   rŽ  r�  r�   rñ   )rª   rv  r   s      r,   rP  zResolver.get_svn{  s�   € Ø”	—’˜jÑ)Ô)ˆÝŒl˜5Ñ!Ô!ˆØð 	:ÝÐ 8Ñ9Ô9Ð9ÝÔ˜s J°°e¸T¼Y¿]º]È5Ñ=QÔ=QØ#œ~ð/Ø48Ô4Dð	Fñ 	Fô 	Fð 	Fð 	Fð 	Fr.   rr   úT.Optional[T.Tuple[str, str]]c                ó|   — | j         �|| j         j        vrd S | j                              |¦  «        \  }}}|�|}||fS rÕ   )r   ÚhostsÚauthenticators)rª   rr   ÚloginÚaccountÚpasswords        r,   Úget_netrc_credentialszResolver.get_netrc_credentialsƒ  sO   € ØŒ:Ð ¨t¬zÔ/?Ð!?Ð!?Ø�4à#'¤:×#<Ò#<¸VÑ#DÔ#DÑ ˆˆw˜ØÐØˆEà�hˆÐr.   r/   rl   c           	     ó<  — d}t          j        ¦   «         }t          j        d| j        d¬¦  «        }t
          j                             |¦  «        }|j        r=|j         	                    t          ¦  «        rt          || j        | j        ¬¦  «        }�n¯t          |v rt          |› d�¦  «        ‚ddt          j        › �i}|                      |j        ¦  «        }|�Îd	|j        vrÅ|\  }	}
|j        d
k    rSt)          |	› d|
› �                     ¦   «         ¦  «                             ¦   «         }|                     dd|› �i¦  «         nb|j        dk    rAt
          j                             |                     |	› d|
› d	|j        › �¬¦  «        ¦  «        }nt5          j        dd¬¦  «         	 t
          j                             ||¬¦  «        }t
          j                             |t>          ¬¦  «        }nP# t
          j         j!        $ r9}t5          j"        tG          |¦  «        ¦  «         t          d|› d�¦  «        ‚d }~ww xY wtI          j%        |¦  «        5 }|5 }	 tM          | '                    ¦   «         d         ¦  «        }n# tP          $ r d }Y nw xY w|€ŒtS          d¦  «         	 | *                    |¦  «        }|dk    rn+|                     |¦  «         | +                    |¦  «         ŒG| ,                    ¦   «         }||j-        fcd d d ¦  «         cd d d ¦  «         S t\          j/         0                    ¦   «          tc          d|d¬¦  «        }	 | *                    |¦  «        }|dk    rnM|                     |¦  «         | +                    |¦  «         |                     te          |¦  «        ¦  «         Œi| 3                    ¦   «          | ,                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ||j-        fS )Ni (  rf   F)ÚmodeÚdirÚdelete)r0   r2   z" may be a WrapDB-impersonating URLz
User-Agentzmesonbuild/ú@r!   ú:ÚAuthorizationzBasic Úftp)rr   zNMeson is not going to use netrc credentials for protocols other than https/ftpr  )Úheadersr6   zcould not get z is the internet available?zContent-Lengthz!Downloading file of unknown size.Tr.   ÚdownloadÚDownloading)Úbar_typeÚtotalÚdesc)4r    r¡   ÚtempfileÚNamedTemporaryFiler  r"   r#   r$   r%   r'   r(   rO   r0   r  r&   r   rz   r˜  rr   r*   r   r¢   rX   rà   r>   rJ   r   rF   r<   ÚRequestr=   r?   r@   rA   r,  r   Ú
contextlibÚclosingÚintr'  Ú	TypeErrorÚprintrR   rh   r£   r\   rG   ÚstdoutÚflushr   rÉ   Úclose)rª   r/   Ú	blocksizeÚhÚtmpfiler+   Úrespr¡  Úcredsr•  r—  Ú	enc_credsÚreqrÁ   ÚdlsizeÚblockÚ	hashvalueÚprogress_bars                     r,   Úget_datazResolver.get_data�  sÔ  € Øˆ	ÝŒNÑÔˆÝÔ-°4¸T¼]ÐSXÐYÑYÔYˆÝŒl×#Ò# IÑ.Ô.ˆØŒ<ð 	]˜CœL×1Ò1Õ2EÑFÔFð 	]Ý! )¸DÔ<OÐZ^ÔZlÐmÑmÔmˆD‰DÝ  IÐ-Ð-Ý 9Ð PÐ PÐ PÑQÔQÐQà#Ð%Eµ8Ô3CÐ%EÐ%EÐFˆGØ×.Ò.¨s¬zÑ:Ô:ˆEàÐ  S°´
Ð%:Ð%:Ø"'‘��xØ”: Ò(Ð(Ý )¨UÐ*?Ð*?°XÐ*?Ð*?×*FÒ*FÑ*HÔ*HÑ IÔ I× PÒ PÑ RÔ R�IØ—N’N OÐ5I¸iÐ5IÐ5IÐ#JÑKÔKÐKÐKØ”Z 5Ò(Ð(Ý &¤× 7Ò 7¸¿ºÈuÐLnÐLnÐW_ÐLnÐLnÐbeÔblÐLnÐLn¸Ñ8oÔ8oÑ pÔ p�I�Iå”LÐ!qØ',ð.ñ .ô .ð .ð]Ý”n×,Ò,¨YÀÐ,ÑHÔH�Ý”~×-Ò-¨c½;Ð-ÑGÔG��øÝ”<Ô(ð ]ð ]ð ]Ý”�˜Q™œÑ Ô Ð Ý#Ð$[°YÐ$[Ð$[Ð$[Ñ\Ô\Ð\øøøøð]øøøõ Ô Ñ%Ô%ð 	&¨¨wð 	&¸'ðÝ˜TŸYšY™[œ[Ð)9Ô:Ñ;Ô;��øÝð ð ð Ø���ðøøøàˆ~ÝÐ9Ñ:Ô:Ð:ð)Ø ŸIšI iÑ0Ô0�EØ ’|�|ØØ—H’H˜U‘O”O�OØ—M’M %Ñ(Ô(Ð(ð)ð ŸKšK™MœM�	Ø  '¤,Ð.ð	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&õ ŒJ×ÒÑÔÐÝ&°
À&Ø,9ð;ñ ;ô ;ˆLð0ØŸ	š	 )Ñ,Ô,�Ø˜C’<�<ØØ—’˜‘”�Ø—’˜eÑ$Ô$Ð$Ø×#Ò#¥C¨¡J¤JÑ/Ô/Ð/ð0ð ×ÒÑ Ô Ð ØŸš™œˆIð5	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð6 ˜'œ,Ð&Ð&s�   Æ,AG4 Ç4IÈ4H<È<IÉP
ÉO3É'JÊO3ÊJÊO3ÊJÊA8O3ÌP
Ì%CO3Ï'P
Ï3O7	Ï7P
Ï:O7	Ï;P
Ð
PÐPTrÄ   rs   Úhash_requiredc           	     ó¸  — |dz   | j         j        vr|sd S | j                              |dz   ¦  «                             ¦   «         }t	          j        ¦   «         }t          |d¦  «        5 }|                     |                     ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    ¦   «         }||k    rt          d|› d|› d|› d�¦  «        ‚d S )NÚ_hashÚrbúIncorrect hash for ú:
 ú expected
 ú actual.)rõ   r•   r¥   rœ   r    r¡   rg   rà   rR   r£   r&   )rª   rÄ   rs   r¾  Úexpectedr³  ri   Údhashs           r,   Ú
check_hashzResolver.check_hashÈ  s  € Ø�'‰> ¤Ô!1Ð1Ð1¸-Ð1ØˆFØ”9—=’= ¨¡Ñ0Ô0×6Ò6Ñ8Ô8ˆÝŒNÑÔˆÝ�$˜ÑÔð 	 Ø�HŠH�Q—V’V‘X”XÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—’‘”ˆØ�HÒÐÝÐ e°dÐ eÐ eÀÐ eÐ eÐV[Ð eÐ eÐ eÑfÔfÐfð Ðs   Á((BÂB Â#B c                óö   — g d¢}|D ]^}	 |                       |¦  «        c S # t          $ r8}t          j        d|› d�d¬¦  «         t	          j        |¦  «         Y d }~ŒWd }~ww xY w|                       |¦  «        S )N)r
   r   é   é   é   zfailed to download with error: z. Trying after a delay...Fr  )r½  r  r   rF   ÚtimeÚsleep)rª   r/   ÚdelaysÚdrÁ   s        r,   Úget_data_with_backoffzResolver.get_data_with_backoffÓ  s¥   € Ø!Ð!Ð!ˆØð 	ð 	ˆAðØ—}’} YÑ/Ô/Ð/Ð/Ð/øÝð ð ð Ý”Ð[¸qÐ[Ð[Ð[ÐchÐiÑiÔiÐiÝ”
˜1‘”������øøøøðøøøð �}Š}˜YÑ'Ô'Ð's   Š!¡
A#«.AÁA#ÚofnameÚfallbackc           	     óâ  — |                       ¦   «          | j                             ||rdndz   ¦  «        }t          j        dt          j        | j        ¦  «        |dt          j        |¦  «        ¦  «         	 |                      |¦  «        \  }}| j                             |dz   ¦  «                             ¦   «         }||k    r-t          j
        |¦  «         t          d|› d|› d|› d	�¦  «        ‚ng# t          $ rZ |sV|dz   | j        j        v r|                      ||d
¬¦  «        cY S t          j        dt          j        |dz   ¦  «        d¦  «         ‚ w xY wt          j        ||¦  «         d S )NÚ_fallback_urlr´   r£  ÚfromrÀ  rÂ  rÃ  rÄ  rÅ  T)rÓ  z'A fallback URL could be specified usingzkey in the wrap file)r+  rõ   r¥   r   r,  rG  rò   rÑ  rœ   r™   Úremover&   r•   r¢  Úrename)rª   rÄ   rÒ  rÓ  ÚsrcurlrÇ  r´  rÆ  s           r,   r¢  zResolver.downloadÝ  s”  € Ø×ÒÑ!Ô!Ð!Ø”—’˜t¸(Ð'N  ÈÑOÑPÔPˆÝŒ�¥¤	¨$Ô*:Ñ ;Ô ;¸TÀ6Í4Ì9ÐU[ÑK\ÔK\Ñ]Ô]Ð]ð	Ø!×7Ò7¸Ñ?Ô?‰NˆE�7Ø”y—}’} T¨G¡^Ñ4Ô4×:Ò:Ñ<Ô<ˆHØ˜Ò Ð Ý”	˜'Ñ"Ô"Ð"Ý#Ð$i¸$Ð$iÐ$iÀHÐ$iÐ$iÐZ_Ð$iÐ$iÐ$iÑjÔjÐjð !øõ ð 	ð 	ð 	Øð TØ˜/Ñ)¨T¬YÔ-=Ð=Ð=ØŸ=š=¨¨vÀ˜=ÑEÔEÐEÐEÐEÝ”ÐBÝœ 4¨/Ñ#9Ñ:Ô:Ð<RñTô Tð Tàð	øøøõ 	Œ	�'˜6Ñ"Ô"Ð"Ð"Ð"s   Á8A:C3 Ã35EÄ*-Ec                óÚ  — | j                              |dz   ¦  «        }|dz   | j         j        v r½t          j                             | j        |¦  «        }t          j                             |¦  «        rF|                      ||¦  «         t          j
        dt          j        | j        ¦  «        |d¦  «         |S t          j        | j        d¬¦  «         |                      ||¦  «         |S t          | j         j        ¦  «        |z  }|                     ¦   «         st#          d|› d�¦  «        ‚|                      ||                     ¦   «         d	¬
¦  «         |                     ¦   «         S )Nr³   r´   rB  zfrom cache.T)Úexist_okzFile "ú" does not existF)r¾  )rõ   r¥   r•   r™   rs   r¨   r  rE  rÈ  r   r,  rG  rò   Úmakedirsr¢  r	   r©   r&   Úas_posix)rª   rÄ   r“   Ú
cache_pathrs   s        r,   rf  zResolver.get_file_internalð  s9  € Ø”9—=’= ¨Ñ!3Ñ4Ô4ˆØ�&‰=˜DœIÔ,Ð,Ð,ÝœŸš d¤m°XÑ>Ô>ˆJåŒw�~Š~˜jÑ)Ô)ð "Ø—’  jÑ1Ô1Ð1Ý”˜¥$¤)¨DÔ,<Ñ"=Ô"=¸tÀ]ÑSÔSÐSØ!Ð!åŒK˜œ°Ð5Ñ5Ô5Ð5Ø�MŠM˜$ 
Ñ+Ô+Ð+ØÐå˜œ	Ô*Ñ+Ô+¨hÑ6ˆDà—;’;‘=”=ð EÝ#Ð$C¨TÐ$CÐ$CÐ$CÑDÔDÐDØ�OŠO˜D $§-¢-¡/¤/ÀˆOÑGÔGÐGà—=’=‘?”?Ð"r.   c                ó
  — d| j         j        v r-d| j         j        v rd| j         j        ›d�}t          |¦  «        ‚d| j         j        v r¡|                      d¦  «        }	 t          j        || j        ¦  «         d S # t          $ rb t          j
        ¦   «         5 }t          j        ||¦  «         |                      || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   Y d S Y d S w xY wd| j         j        v rŠ| j         j        d         }t          j                             | j         j        |¦  «        }t          j                             |¦  «        st          d|› �¦  «        ‚|                      || j        ¦  «         d S d S )NÚpatch_filenamer±   z
Wrap file z: must not have both "patch_filename" and "patch_directory"r   z patch directory does not exist: )rõ   r•   rš   r&   rf  rh  ri  rñ   r  r§  ÚTemporaryDirectoryÚ	copy_treer™   rs   r¨   r©   r  r¦   )rª   rå   rs   ÚworkdirÚ	patch_dirÚsrc_dirs         r,   rQ  zResolver.apply_patch  sÛ  € Ø˜tœyÔ/Ð/Ð/Ð4EÈÌÔIYÐ4YÐ4YØm˜TœYÔ/ÐmÐmÐmˆAÝ Ñ"Ô"Ð"Ø˜tœyÔ/Ð/Ð/Ø×)Ò)¨'Ñ2Ô2ˆDð>ÝÔ% d¨DÔ,<Ñ=Ô=Ð=Ð=Ð=øÝð >ð >ð >ÝÔ0Ñ2Ô2ð >°gÝÔ)¨$°Ñ8Ô8Ð8Ø—N’N 7¨DÔ,<Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð>øøøð  $¤)Ô"2Ð2Ð2Øœ	Ô(Ð):Ô;ˆIÝ”g—l’l 4¤9Ô#5°yÑAÔAˆGÝ”7—=’= Ñ)Ô)ð TÝ#Ð$RÀyÐ$RÐ$RÑSÔSÐSØ�NŠN˜7 D¤LÑ1Ô1Ð1Ð1Ð1ð 3Ð2s6   Á A< Á<C(Â1CÃ
C(ÃC	ÃC(ÃC	ÃC(Ã'C(c                ó„  — | j         j        D �]1}t          j        d|› d�¦  «         t	          | j         j        ¦  «        |z  }|                     ¦   «         st          d|› d�¦  «        ‚t          j	         
                    t          |¦  «        | j        ¦  «        }t          rt          ddd|g}n$t          rt          dd	d
d|g}nt          d¦  «        ‚t          || j        t           j        ¬¦  «        \  }}}|j        dk    r9t          j        |                     ¦   «         ¦  «         t          d|› d�¦  «        ‚�Œ3d S )NzApplying diff file "ú"zDiff file "rÜ  z-fz-p1z-iz--work-treer8   Úapplyz5Missing "patch" or "git" commands to apply diff files)r‹  Ústderrr   zFailed to apply diff file ")rõ   r˜   r   r,  r	   r©   rE  r&   r™   rs   rF  r   r¦   ÚPATCHr   r   rŽ  ÚSTDOUTÚ
returncodert   )rª   r“   rs   rF  r÷   rÃ   rc  rb   s           r,   rR  zResolver.apply_diff_files  sK  € Øœ	Ô,ð 	Oñ 	OˆHÝŒHÐ7¨HÐ7Ð7Ð7Ñ8Ô8Ð8Ý˜œ	Ô*Ñ+Ô+¨hÑ6ˆDØ—;’;‘=”=ð JÝ#Ð$H°$Ð$HÐ$HÐ$HÑIÔIÐIÝ”g—o’o¥c¨$¡i¤i°´Ñ>Ô>ˆGÝð 	]Ý˜d E¨4°Ð9��Ýð ]õ
 ˜M¨3°¸ÀÐH��å#Ð$[Ñ\Ô\Ð\å" 3¨D¬LÅÔARÐSÑSÔS‰IˆAˆs�AØŒ|˜qÒ Ð Ý”˜Ÿš™œÑ%Ô%Ð%Ý#Ð$MÀ(Ð$MÐ$MÐ$MÑNÔNÐNñ !ð%	Oð 	Or.   Úroot_src_dirÚroot_dst_dirc                óx  — t          j        |¦  «        D �]#\  }}}|                     ||d¦  «        }t           j                             |¦  «        st          j        |¦  «         |D ]Ï}t           j                             ||¦  «        }t           j                             ||¦  «        }	t           j                             |	¦  «        rY	 t          j        |	¦  «         nC# t          $ r6 t          j	        |	t          j        ¦  «         t          j        |	¦  «         Y nw xY wt          j        ||¦  «         ŒÐ�Œ%dS )zG
        Copy directory tree. Overwrites also read only files.
        r
   N)r™   r  Úreplacers   rE  rÝ  r¨   r×  ÚPermissionErrorÚchmodÚstatÚS_IWUSRrh  Úcopy2)
rª   rî  rï  ræ  rb   r  Údst_dirÚfile_Úsrc_fileÚdst_files
             r,   rã  zResolver.copy_tree0  s1  € õ "$¤¨Ñ!6Ô!6ð 	0ñ 	0ÑˆG�Q˜Ø—o’o l°LÀ!ÑDÔDˆGÝ”7—>’> 'Ñ*Ô*ð %Ý”˜GÑ$Ô$Ð$Øð 	0ð 	0�Ýœ7Ÿ<š<¨°Ñ7Ô7�Ýœ7Ÿ<š<¨°Ñ7Ô7�Ý”7—>’> (Ñ+Ô+ð ,ð,Ýœ	 (Ñ+Ô+Ð+Ð+øÝ*ð ,ð ,ð ,Ýœ ­4¬<Ñ8Ô8Ð8Ýœ	 (Ñ+Ô+Ð+Ð+Ð+ð,øøøõ ”˜X wÑ/Ô/Ð/Ð/ñ	0ð		0ð 	0s   Ã
CÃ=DÄDNrð   )rõ   r‡   r   r_   )r(  r   r   r‡   )r/  r0  r   r_   )rò   r   r   r4  )r(  r   r9  r   r   r:  )r=  rø   r   r:  )rò   r   r@  r   r   r   )r   r1   )rv  r   r   r1   )rr   r   r   r‘  )r/   r   r   rl   )T)rÄ   r   rs   r   r¾  r1   r   r_   ©F)rÄ   r   rÒ  r   rÓ  r1   r   r_   )rÄ   r   r   r   )rî  r   rï  r   r   r_   )&r   r€   r�   Ú__annotations__r‰   r   Údefaultr  r  r0   r  r  r  r  r  r.  r3  r8  r<  r?  rW  r+  rL  rM  rN  rK  ru  rO  rP  r˜  r½  rÈ  rÑ  r¢  rf  rQ  rR  rã  r‚   r.   r,   r  r    sÖ  € € € € € € à€O€O�OØ€K€K�KØ€JÐÐÐÑØ"Ô*€IÐ*Ð*Ð*Ñ*Ø€MÐÐÐÑØ €NÐ Ð Ð Ñ ðð ð ð ðMð Mð Mð Mð ð  ð  ð  ð.-ð -ð -ð -ðcð cð cð cðð ð ð ð"4ð 4ð 4ð 4ð	ð 	ð 	ð 	ðAð Að Að Aðð ð ð ðTð Tð Tð Tðl#ð #ð #ð #ð&Fð &Fð &Fð &FðP1ð 1ð 1ð 1ð+kð +kð +kð +kðZQð Qð Qð Qð(ð ð ð ð	4ð 	4ð 	4ð 	4ðFð Fð Fð Fðð ð ð ð9'ð 9'ð 9'ð 9'ðv	gð 	gð 	gð 	gð 	gð(ð (ð (ð (ð#ð #ð #ð #ð #ð&#ð #ð #ð #ð,2ð 2ð 2ð 2ð&Oð Oð Oð Oð.0ð 0ð 0ð 0ð 0ð 0r.   r  )r   r   r   r   )FF)r/   r   r0   r1   r2   r1   r   r3   )r0   r1   r   rP   )r0   r1   r   rT   )r[   r   r\   r   r]   r   r^   r   r0   r1   r   r_   )rk   r   r   rl   )rñ   r   rò   r   r   r   rû  )r÷   rø   rù   r   rú   r1   r   r1   )AÚ
__future__r   r5   r   rª  Údataclassesr   Úurllib.requestr"   Úurllib.errorÚurllib.parser™   r    rh  r§  rô  rŽ  rG   rµ   rÍ  Útypingr:   rH  rV   Úbase64r   r   Úpathlibr	   r   r   r   r   r   r   r   r   r   Úinterpreterbaser   r   ÚTYPE_CHECKINGÚhttp.clientr9   rD   r)   ÚImportErrorr?   rI   r(   r§   r�  rë  r-   rO   rS   rZ   rj   r|   r&   r…   r‡   rö   rý   r  r‚   r.   r,   ú<module>r
     s±  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dØ (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð à„?ð ØÐÐÐðð €J€J€JØ€G€GøØð ð ð Ø€G€G€Gðøøøð €ØÐ Ø-Ð à(Ð(Ð(€	àˆŒ�WÑÔ€ð	ð 	ð 	ð 	ð!Zð !Zð !Zð !Zð !ZðFð ð ð ðCð Cð Cð Cðð ð ð ð?ð ?ð ?ð ?ð"	ð 	ð 	ð 	ð 	�Nñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜Mñ 	ô 	ð 	ðt6ð t6ð t6ð t6ð t6ñ t6ô t6ð t6ðlð ð ð ð$ð $ð $ð $ð $ð €ˆeÐÑÔðf0ð f0ð f0ð f0ð f0ñ f0ô f0ñ Ôðf0ð f0ð f0s   ÂB& Â&B0Â/B0