§
    ‹ã÷cþz  ã                  óŠ  — d dl mZ d dlmZ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mZ d dlmZ d dlZd dlZd dlZddlmZ ddlmZmZmZmZmZ dd	lmZmZmZm Z m!Z!m"Z"m#Z# ej$        rzd d
l%m&Z& ej'        ej(                 Z) G d„ de&¦  «        Z* G d„ de*¦  «        Z+ G d„ de*¦  «        Z, G d„ de*¦  «        Z- G d„ de*¦  «        Z. G d„ de*¦  «        Z/ G d„ de*¦  «        Z0d 1                    e¦  «        Z2d4d„Z3 G d „ d!¦  «        Z4 ed"¬#¦  «         G d$„ d%¦  «        ¦   «         Z5d5d)„Z6d5d*„Z7d6d-„Z8d7d/„Z9d8d3„Z:dS )9é    )Úannotations)Ú	dataclassÚInitVarN)ÚThreadPoolExecutor)ÚPathé   )Úmlog)Ú	quiet_gitÚGitExceptionÚ
Popen_safeÚMesonExceptionÚwindows_proof_rmtree)ÚResolverÚWrapExceptionÚ	ALL_TYPESÚPackageDefinitionÚparse_patch_urlÚupdate_wrap_fileÚget_releases)ÚProtocolc                  óL   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   dS )Ú	ArgumentsÚstrÚ	sourcedirÚintÚnum_processesúT.List[str]ÚsubprojectsÚtypeszT.Callable[[], bool]Úsubprojects_funcÚboolÚallow_insecureN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú9/usr/lib/python3/dist-packages/mesonbuild/msubprojects.pyr   r      sT   € € € € € € Øˆˆ‰ØÐÐÑØ Ð Ð Ñ Øˆ
ˆ
‰
Ø.Ð.Ð.Ñ.ØÐÐÑÐÐr)   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚUpdateArgumentsr!   ÚrebaseÚresetNr#   r(   r)   r*   r,   r,   "   s"   € € € € € € Øˆˆ‰Øˆˆ‰ˆˆr)   r,   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚUpdateWrapDBArgumentsr!   ÚforcezT.Dict[str, T.Any]ÚreleasesNr#   r(   r)   r*   r0   r0   &   s'   € € € € € € Øˆˆ‰Ø$Ð$Ð$Ñ$Ð$Ð$r)   r0   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚCheckoutArgumentsr!   Úbr   Úbranch_nameNr#   r(   r)   r*   r4   r4   *   s'   € € € € € € Øˆˆ‰ØÐÐÑÐÐr)   r4   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚForeachArgumentsr   Úcommandr   ÚargsNr#   r(   r)   r*   r8   r8   .   s'   € € € € € € Øˆˆ‰ØÐÐÑÐÐr)   r8   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚPurgeArgumentsr!   ÚconfirmÚinclude_cacheNr#   r(   r)   r*   r<   r<   2   s'   € € € € € € Øˆˆ‰ØÐÐÑÐÐr)   r<   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚPackagefilesArgumentsr!   ÚapplyÚsaveNr#   r(   r)   r*   r@   r@   6   s"   € € € € € € Øˆˆ‰Øˆ
ˆ
‰
ˆ
ˆ
r)   r@   ú, Úpathr   Ú	base_pathÚreturnúT.Set[Path]c                ó.  ‡— | j         dk    rNt          j        | d¦  «        5 }ˆfd„|                     ¦   «         D ¦   «         }d d d ¦  «         n# 1 swxY w Y   n:t	          j        | ¦  «        5 }ˆfd„|D ¦   «         }d d d ¦  «         n# 1 swxY w Y   |S )Nz.zipÚrc                ó$   •— h | ]}‰|j         z  ’ŒS r(   )Úfilename©Ú.0ÚirE   s     €r*   ú	<setcomp>z%read_archive_files.<locals>.<setcomp>?   s    ø€ ÐTÐTÐT¸˜Y¨¬Ñ3ÐTÐTÐTr)   c                ó$   •— h | ]}‰|j         z  ’ŒS r(   )ÚnamerL   s     €r*   rO   z%read_archive_files.<locals>.<setcomp>B   s    ø€ ÐEÐEÐE°A˜Y¨¬Ñ/ÐEÐEÐEr)   )ÚsuffixÚzipfileÚZipFileÚinfolistÚtarfileÚopen)rD   rE   Úzip_archiveÚarchive_filesÚtar_archives    `   r*   Úread_archive_filesr[   <   s=  ø€ Ø„{�fÒÐÝŒ_˜T 3Ñ'Ô'ð 	U¨;ØTÐTÐTÐT¸[×=QÒ=QÑ=SÔ=SÐTÑTÔTˆMð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uøõ Œ\˜$ÑÔð 	F ;ØEÐEÐEÐE¸ÐEÑEÔEˆMð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	FàÐs#   ¢!AÁAÁAÁ/B
Â
BÂBc                  ó6   — e Zd Zdd„Zdd„Zdd„Zdd
„Zdd„ZdS )ÚLoggerÚtotal_tasksr   rF   ÚNonec                ó†   — t          j        ¦   «         | _        || _        d| _        t          ¦   «         | _        d| _        d S )Nr   Ú )Ú	threadingÚLockÚlockr^   Úcompleted_tasksÚsetÚrunning_tasksÚshould_erase_line)Úselfr^   s     r*   Ú__init__zLogger.__init__F   s;   € Ý”NÑ$Ô$ˆŒ	Ø&ˆÔØ ˆÔÝ),©¬ˆÔØ!#ˆÔÐÐr)   c                óR   — | j         rt          | j         d¬¦  «         d| _         d S d S )Nú©Úendra   )rh   Úprint©ri   s    r*   ÚflushzLogger.flushM   s;   € ØÔ!ð 	(Ý�$Ô(¨dÐ3Ñ3Ô3Ð3Ø%'ˆDÔ"Ð"Ð"ð	(ð 	(r)   c                óJ  — d| j         › d| j        › �}t          j        ¦   «         j        t          |¦  «        z
  }d                     | j        ¦  «        }t          |¦  «        dz   |k    r|d |dz
  …         dz   }|d|› d�z   }t          | j	        |d	d
¬¦  «         d| _	        d S )Nz
Progress: z / rC   é   é   ú...z (ú)ra   rl   )Úseprn   z[K)
re   r^   ÚshutilÚget_terminal_sizeÚcolumnsÚlenÚjoinrg   ro   rh   )ri   ÚlineÚmax_lenÚrunnings       r*   Úprint_progresszLogger.print_progressR   s´   € ØG˜DÔ0ÐGÐG°TÔ5EÐGÐGˆÝÔ*Ñ,Ô,Ô4µs¸4±y´yÑ@ˆØ—)’)˜DÔ.Ñ/Ô/ˆÝˆw‰<Œ<˜!Ñ˜gÒ%Ð%Ø˜l˜w¨™{˜lÔ+¨eÑ3ˆGØ�o˜7�o�o�oÑ%ˆÝˆdÔ$ d°¸Ð=Ñ=Ô=Ð=Ø!)ˆÔÐÐr)   Ú	wrap_namer   c                ó¢   — | j         5  | j                             |¦  «         |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©N)rd   rg   Úaddr€   )ri   r�   s     r*   ÚstartzLogger.start\   s—   € ØŒYð 	"ð 	"ØÔ×"Ò" 9Ñ-Ô-Ð-Ø×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ˆ/AÁAÁAÚ	log_queueú,T.List[T.Tuple[mlog.TV_LoggableList, T.Any]]c                ó  — | j         5  |                      ¦   «          |D ]\  }}t          j        |i |¤Ž Œ| j                             |¦  «         | xj        dz  c_        |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rd   rq   r	   Úlogrg   Úremovere   r€   )ri   r�   r†   r:   Úkwargss        r*   ÚdonezLogger.donea   sã   € ØŒYð 	"ð 	"Ø�JŠJ‰LŒLˆLØ )ð *ð *‘��fÝ”˜$Ð) &Ð)Ð)Ð)Ð)ØÔ×%Ò% iÑ0Ô0Ð0ØÐ Ô  AÑ%Ð Ô Ø×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ˆA,BÂBÂBN)r^   r   rF   r_   ©rF   r_   )r�   r   rF   r_   )r�   r   r†   r‡   rF   r_   )r$   r%   r&   rj   rq   r€   r…   rŒ   r(   r)   r*   r]   r]   E   sx   € € € € € ð$ð $ð $ð $ð(ð (ð (ð (ð
*ð *ð *ð *ð"ð "ð "ð "ð
"ð "ð "ð "ð "ð "r)   r]   F)Úeqc                  ó4  — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   d5d„Zd6d„Zd7d„Zed8d„¦   «         Zd7d„Z	d7d„Z
d9d„Zd:d„Zd;d„Zd;d„Zd<d!„Zd<d"„Zd=d>d%„Zd<d&„Zd<d'„Zd7d(„Zd;d)„Zd7d*„Zd7d+„Zd7d,„Zd7d-„Zd7d.„Zd7d/„Zd7d0„Zed?d2„¦   «         Zd7d3„Zd4S )@ÚRunnerr]   ÚloggerzInitVar[Resolver]rI   r   Úwrapr   Úrepo_dirú'Arguments'Úoptionsr   rF   r_   c                ó"  — t          j         |¦  «        | _        t          j                             |j        | j        j        ¦  «        | j        _        | j        | j        _        | j	        j
                             | ¦  «        | _        g | _        d S rƒ   )ÚcopyÚwrap_resolverÚosrD   r|   Úsubdir_rootr’   Ú	directoryÚdirnamer•   r    Ú__get__Ú
run_methodr†   )ri   rI   s     r*   Ú__post_init__zRunner.__post_init__s   si   € õ "œY q™\œ\ˆÔÝ%'¤W§\¢\°!´-ÀÄÔATÑ%UÔ%UˆÔÔ"Ø"&¤)ˆÔÔØ04´Ô0M×0UÒ0UÐVZÑ0[Ô0[ˆŒØGIˆŒˆˆr)   r:   úmlog.TV_Loggabler‹   úT.Anyc                óX   — | j                              t          |¦  «        |f¦  «         d S rƒ   )r†   ÚappendÚlist)ri   r:   r‹   s      r*   r‰   z
Runner.log|   s)   € ØŒ×Ò�t D™zœz¨6Ð2Ñ3Ô3Ð3Ð3Ð3r)   r!   c                ój  — | j                              | j        j        ¦  «         	 |                      ¦   «         }nN# t
          $ rA}|                      t          j        d¦  «        t          |¦  «        ¦  «         d}Y d }~nd }~ww xY w| j          
                    | j        j        | j        ¦  «         |S )NzError:F)r‘   r…   r’   rQ   rž   r   r‰   r	   Úredr   rŒ   r†   )ri   ÚresultÚes      r*   Úrunz
Runner.run   s©   € ØŒ×Ò˜$œ)œ.Ñ)Ô)Ð)ð	Ø—_’_Ñ&Ô&ˆFˆFøÝð 	ð 	ð 	Ø�HŠH•T”X˜hÑ'Ô'­¨Q©¬Ñ0Ô0Ð0ØˆFˆFˆFˆFˆFˆFøøøøð	øøøð 	Œ×Ò˜œœ¨¬Ñ8Ô8Ð8Øˆs   ¦; »
BÁ7BÂBú'UpdateWrapDBArguments'c                ó8   — t          | j        ¦  «        | _        d S rƒ   )r   r"   r2   ©r•   s    r*   Úpre_update_wrapdbzRunner.pre_update_wrapdb‰   s   € å'¨Ô(>Ñ?Ô?ˆÔÐÐr)   c                ó  — |                       d| j        j        › d�¦  «         t          j        d| j        ¦  «        }|j                             | j        j        ¦  «        }|s|                       d¦  «         dS 	 | j                             d¦  «        }|                     dd¦  «        \  }}n…# t          $ rx 	 | j                             d	¦  «        }t          |¦  «        \  }}nG# t          $ r: |j        s,|                       d
t          j        d¦  «        ¦  «         Y Y dS d x}}Y nw xY wY nw xY w|d         d         }|                     dd¦  «        \  }}	||k    s|	|k    rr| j        j        r| j        j        n| j        j        › d�}
t#          |
| j        j        ||	|j        ¦  «         |                       dt          j        |¦  «        ¦  «         n(|                       dt          j        |¦  «        ¦  «         dS )Nz#Checking latest WrapDB version for ru   r0   z  -> Wrap not found in wrapdbTÚwrapdb_versionú-r   Ú	patch_urlú  ->zBCould not determine current version, use --force to update any wayFÚversionsr   z.wrapz  -> New version downloaded:z  -> Already at latest version:)r‰   r’   rQ   ÚTÚcastr•   r2   ÚgetÚsplitr   r   r1   r	   r¦   ÚrsplitÚhas_wraprK   r   r"   Úblue)ri   r•   Úinfor¯   ÚbranchÚrevisionr±   Úlatest_versionÚ
new_branchÚnew_revisionrK   s              r*   Úupdate_wrapdbzRunner.update_wrapdb�   s!  € Ø�ŠÐJ°t´y´~ÐJÐJÐJÑKÔKÐKÝ”&Ð0°$´,Ñ?Ô?ˆð Ô×#Ò# D¤I¤NÑ3Ô3ˆØð 	Ø�HŠHÐ4Ñ5Ô5Ð5Ø�4ð	)Ø!œYŸ]š]Ð+;Ñ<Ô<ˆNØ-×3Ò3°C¸Ñ;Ô;ÑˆF�H�HøÝð 
	)ð 
	)ð 
	)ð)Ø œIŸMšM¨+Ñ6Ô6�	Ý#2°9Ñ#=Ô#=Ñ �˜˜øÝ ð )ð )ð )Ø”}ð !Ø—H’H˜V¥T¤XÐ.rÑ%sÔ%sÑtÔtÐtØ ˜5˜5˜5Ø$(Ð(�˜˜˜ð	)øøøøøð
	)øøøð ˜jÔ)¨!Ô,ˆØ#1×#8Ò#8¸¸aÑ#@Ô#@Ñ ˆ
�LØ˜ÒÐ <°8Ò#;Ð#;Ø-1¬YÔ-?Ða�t”yÔ)Ð)ÈÌ	ÔHZÐEaÐEaÐEaˆHÝ˜X t¤y¤~Ø'¨Ø$Ô3ñ5ô 5ð 5ð �HŠHÐ3µT´Y¸~Ñ5NÔ5NÑOÔOÐOÐOà�HŠHÐ6½¼	À.Ñ8QÔ8QÑRÔRÐRàˆtsB   Á<3B0 Â0
D2Â;,C(Ã'D2Ã(9D,Ä!D2Ä%D,Ä)D2Ä+D,Ä,D2Ä1D2c           	     óØ  — t          j        d| j        ¦  «        }|j        ržt	          | j        ¦  «         	 | j                             | j        j	        d¦  «         |  
                    d¦  «         dS # t          $ r@}|  
                    dt          j        t          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w|  
                    d¦  «         |  
                    d¦  «         dS )	Nr,   Úmesonz  -> New version extractedTr²   Fzd  -> Subproject has not changed, or the new source/patch needs to be extracted on the same location.z<     Pass --reset option to delete directory and redownload.)r´   rµ   r•   r.   r   r“   r˜   Úresolver’   rQ   r‰   r   r	   r¦   r   )ri   r•   r¨   s      r*   Úupdate_filezRunner.update_fileµ   sé   € Ý”&Ð*¨D¬LÑ9Ô9ˆØŒ=ð 	õ ! ¤Ñ/Ô/Ð/ðØÔ"×*Ò*¨4¬9¬>¸7ÑCÔCÐCØ—’Ð5Ñ6Ô6Ð6Ø�tøÝ ð ð ð Ø—’˜¥¤­#¨a©&¬&Ñ!1Ô!1Ñ2Ô2Ð2Ø�u�u�u�u�uøøøøðøøøð �HŠHÐ{Ñ|Ô|Ð|Ø�HŠHÐSÑTÔTÐTØ�5s   ·:A3 Á3
B=Á=5B8Â8B=Úcmdr   c                ó<   — t          || j        d¬¦  «        d         S )NT)Úcheckr   )r
   r“   ©ri   rÆ   s     r*   Ú
git_outputzRunner.git_outputË   s   € Ý˜˜dœm°4Ð8Ñ8Ô8¸Ô;Ð;r)   c                óV   — |                       |                      |¦  «        ¦  «         d S rƒ   )r‰   rÊ   rÉ   s     r*   Úgit_verbosezRunner.git_verboseÎ   s&   € Ø�Š�—’ Ñ%Ô%Ñ&Ô&Ð&Ð&Ð&r)   c                óp   — t          g d¢| j        ¦  «        d         s|                      dg¦  «         d S d S )N)Údiffú--quietÚHEADr   Ústash)r
   r“   rÌ   rp   s    r*   Ú	git_stashzRunner.git_stashÑ   sL   € õ Ð4Ð4Ð4°d´mÑDÔDÀQÔGð 	(ð ×Ò˜g˜YÑ'Ô'Ð'Ð'Ð'ð	(ð 	(r)   c           
     ó@  — |                       g d¢¦  «        }d„ |                     d¦  «        D ¦   «         }|                      dt          j        |d         ¦  «        t          j        |d         ¦  «        |d         t          j        |d         ¦  «        ¦  «         d S )	N)ÚshowrÏ   z!--pretty=format:%h%n%d%n%s%n[%an]c                ó6   — g | ]}|                      ¦   «         ‘ŒS r(   ©Ústrip)rM   Úss     r*   ú
<listcomp>z#Runner.git_show.<locals>.<listcomp>Ü   s    € Ð?Ð?Ð?˜q�—’‘”Ð?Ð?Ð?r)   ú
r²   r   r   é   rs   )rÊ   r·   r‰   r	   Úyellowr¦   rº   )ri   Úcommit_messageÚpartss      r*   Úgit_showzRunner.git_showÚ   sŒ   € ØŸšÐ)aÐ)aÐ)aÑbÔbˆØ?Ð? N×$8Ò$8¸Ñ$>Ô$>Ð?Ñ?Ô?ˆØ�Š��œ U¨1¤XÑ.Ô.µ´¸¸q¼Ñ0BÔ0BÀEÈ!ÄHÍdÌiÐX]Ð^_ÔX`ÑNaÔNaÑbÔbÐbÐbÐbr)   r½   c           	     óª  — 	 |                       g d¢¦  «         n¹# t          $ r¬}|                      dt          j        | j        ¦  «        dt          j        |¦  «        ¦  «         |                      t          j        |j        ¦  «        ¦  «         |                      t          j        t          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY wdS )N)z-czrebase.autoStash=truer-   Ú
FETCH_HEADz  -> Could not rebaseÚontoFT)	rÊ   r   r‰   r	   Úboldr“   r¦   Úoutputr   ©ri   r½   r¨   s      r*   Ú
git_rebasezRunner.git_rebaseß   sÈ   € ð	Ø�OŠOÐSÐSÐSÑTÔTÐTÐTøÝð 	ð 	ð 	Ø�HŠHÐ,­d¬i¸¼Ñ.FÔ.FÈÕPTÔPYÐZbÑPcÔPcÑdÔdÐdØ�HŠH•T”X˜aœhÑ'Ô'Ñ(Ô(Ð(Ø�HŠH•T”X�c !™fœfÑ%Ô%Ñ&Ô&Ð&Ø�5�5�5�5�5øøøøð		øøøð
 ˆts   ‚ š
C¤B!CÃCc           	     ó6  — 	 |                       ¦   «          |                      g d¢¦  «         | j                             ¦   «          | j                             ¦   «          n¹# t
          $ r¬}|                      dt          j        | j	        ¦  «        dt          j        |¦  «        ¦  «         |                      t          j
        |j        ¦  «        ¦  «         |                      t          j
        t          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY wdS )N)r.   z--hardrá   z  -> Could not resetÚtoFT)rÒ   rÊ   r˜   Úapply_patchÚapply_diff_filesr   r‰   r	   rã   r“   r¦   rä   r   rå   s      r*   Ú	git_resetzRunner.git_reseté   s  € ð	ð �NŠNÑÔÐØ�OŠOÐ=Ð=Ð=Ñ>Ô>Ð>ØÔ×*Ò*Ñ,Ô,Ð,ØÔ×/Ò/Ñ1Ô1Ð1Ð1øÝð 	ð 	ð 	Ø�HŠHÐ+­T¬Y°t´}Ñ-EÔ-EÀtÍTÌYÐW_ÑM`ÔM`ÑaÔaÐaØ�HŠH•T”X˜aœhÑ'Ô'Ñ(Ô(Ð(Ø�HŠH•T”X�c !™fœfÑ%Ô%Ñ&Ô&Ð&Ø�5�5�5�5�5øøøøð		øøøð
 ˆts   ‚AA  Á 
DÁ*B!DÄDFÚcreatec           	     ó
  — dd|dg}|r|                      dd¦  «         	 |                      ¦   «          |                      |¦  «         n¹# t          $ r¬}|                      dt          j        |¦  «        dt          j        | j        ¦  «        ¦  «         |                      t          j        |j	        ¦  «        ¦  «         |                      t          j        t          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY wd	S )
NÚcheckoutz--ignore-other-worktreesz--r   ú-bz  -> Could not checkoutÚinFT)ÚinsertrÒ   rÊ   r   r‰   r	   rã   r“   r¦   rä   r   )ri   r½   rì   rÆ   r¨   s        r*   Úgit_checkoutzRunner.git_checkoutø   sý   € ØÐ5°xÀÐFˆØð 	 Ø�JŠJ�q˜$ÑÔÐð		ð �NŠNÑÔÐØ�OŠO˜CÑ Ô Ð Ð øÝð 	ð 	ð 	Ø�HŠHÐ.µ´	¸(Ñ0CÔ0CÀTÍ4Ì9ÐUYÔUbÑKcÔKcÑdÔdÐdØ�HŠH•T”X˜aœhÑ'Ô'Ñ(Ô(Ð(Ø�HŠH•T”X�c !™fœfÑ%Ô%Ñ&Ô&Ð&Ø�5�5�5�5�5øøøøð		øøøð
 ˆts    )A
 Á

D ÁB!C;Ã;D c                ó^   — |                       |¦  «        }|r|                      |¦  «        }|S rƒ   )rò   rë   ©ri   r½   Úsuccesss      r*   Úgit_checkout_and_resetzRunner.git_checkout_and_reset  s5   € ð ×#Ò# HÑ-Ô-ˆØð 	/Ø—n’n XÑ.Ô.ˆGØˆr)   c                ó^   — |                       |¦  «        }|r|                      |¦  «        }|S rƒ   )rò   ræ   rô   s      r*   Úgit_checkout_and_rebasezRunner.git_checkout_and_rebase  s5   € ð ×#Ò# HÑ-Ô-ˆØð 	0Ø—o’o hÑ/Ô/ˆGØˆr)   c           	     ó€  — t          j        d| j        ¦  «        }t          j                             t          j                             | j        d¦  «        ¦  «        sÐ|j        r�t          | j        ¦  «         	 | j
                             | j        j        d¦  «         |                      ¦   «          dS # t          $ r@}|                      dt#          j        t'          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w|                      d¦  «         |                      d¦  «         dS | j        j                             d	¦  «        }| j        j                             d
¦  «        }| j        j                             d¦  «        }|r|s|                      d¦  «         dS 	 |                      g d¢¦  «                             ¦   «         }n¥# t0          $ r˜}|                      dt#          j        | j        ¦  «        ¦  «         |                      t#          j        |j        ¦  «        ¦  «         |                      t#          j        t'          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w|j        rÜ	 |                      ddd|g¦  «         |r|                      dddd|g¦  «         nÈ# t0          $ r˜}|                      dt#          j        | j        ¦  «        ¦  «         |                      t#          j        |j        ¦  «        ¦  «         |                      t#          j        t'          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w||k    r|                      d|›d|›�¦  «         dS 	 |                      g d¢¦  «                             ¦   «         }|dk    r|nd}n¥# t0          $ r˜}|                      dt#          j        | j        ¦  «        ¦  «         |                      t#          j        |j        ¦  «        ¦  «         |                      t#          j        t'          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w| j
                             |¦  «        r:t9          dd|dz   g| j        ¦  «        d         r|                      dd|g¦  «         nÛ	 d }d!}	|                      dd"|d"|	d|g¦  «         n¹# t0          $ r¬}|                      d#t#          j        |¦  «        d$t#          j        | j        ¦  «        ¦  «         |                      t#          j        |j        ¦  «        ¦  «         |                      t#          j        t'          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY w|dk    r3|j        r|                      |¦  «        }
n�|                      |¦  «        }
nk||k    r3|j        r|                      |¦  «        }
nH|                       |¦  «        }
n2|j        r|                      |¦  «        }
n|                       |¦  «        }
|
r|                      ¦   «          |
S )%Nr,   z.gitrÃ   Tr²   Fz  -> Not a git repository.z7Pass --reset option to delete directory and redownload.r½   Úurlzpush-urlz"  -> No revision or URL specified.)Úremotezget-urlÚoriginz.  -> Failed to determine current origin URL inrû   zset-urlrü   z--pushz"  -> Failed to reset origin URL inz  -> URL changed from ú to )ú	rev-parsez--abbrev-refrÐ   rÐ   ra   z*  -> Failed to determine current branch inrþ   z--verifyz	^{commit}r   Úfetchú.z#+refs/heads/*:refs/remotes/origin/*z+refs/tags/*:refs/tags/*z--refmapz  -> Could not fetch revisionrð   )!r´   rµ   r•   r™   rD   Úexistsr|   r“   r.   r   r˜   rÄ   r’   rQ   Úupdate_git_doner   r‰   r	   r¦   r   Úvaluesr¶   rÊ   r×   r   rã   rä   Úis_git_full_commit_idr
   rö   rø   rë   ræ   )ri   r•   r¨   r½   rú   Úpush_urlÚ
origin_urlr¼   Úheads_refmapÚtags_refmaprõ   s              r*   Ú
update_gitzRunner.update_git  s  € Ý”&Ð*¨D¬LÑ9Ô9ˆÝŒw�~Š~�bœgŸlšl¨4¬=¸&ÑAÔAÑBÔBð 	ØŒ}ð å$ T¤]Ñ3Ô3Ð3ð!ØÔ&×.Ò.¨t¬y¬~¸wÑGÔGÐGØ×(Ò(Ñ*Ô*Ð*Ø˜4øÝ$ð !ð !ð !Ø—H’H˜V¥T¤X­c°!©f¬fÑ%5Ô%5Ñ6Ô6Ð6Ø ˜5˜5˜5˜5˜5øøøøð!øøøð —’Ð5Ñ6Ô6Ð6Ø—’ÐRÑSÔSÐSØ�uØ”9Ô#×'Ò'¨
Ñ3Ô3ˆØŒiÔ×"Ò" 5Ñ)Ô)ˆØ”9Ô#×'Ò'¨
Ñ3Ô3ˆØð 	˜sð 	à�HŠHÐ9Ñ:Ô:Ð:Ø�4ð	ØŸšÐ)HÐ)HÐ)HÑIÔI×OÒOÑQÔQˆJˆJøÝð 	ð 	ð 	Ø�HŠHÐEÅtÄyÐQUÔQ^ÑG_ÔG_Ñ`Ô`Ð`Ø�HŠH•T”X˜aœhÑ'Ô'Ñ(Ô(Ð(Ø�HŠH•T”X�c !™fœfÑ%Ô%Ñ&Ô&Ð&Ø�5�5�5�5�5øøøøð		øøøð
 Œ=ð 	ðØ—’ ¨9°hÀÐ DÑEÔEÐEØð YØ—O’O X¨y¸(ÀHÈhÐ$WÑXÔXÐXøøÝð ð ð Ø—’Ð=½t¼yÈÌÑ?WÔ?WÑXÔXÐXØ—’�œ !¤(Ñ+Ô+Ñ,Ô,Ð,Ø—’�œ¥# a¡&¤&Ñ)Ô)Ñ*Ô*Ð*Ø�u�u�u�u�uøøøøð	øøøð
 �JÒÐØ�HŠHÐG¨jÐGÐGÀÐGÐGÑHÔHÐHØ�5ð	à—_’_Ð%JÐ%JÐ%JÑKÔK×QÒQÑSÔSˆFØ%¨Ò/Ð/�V�V°RˆFˆFøÝð 	ð 	ð 	Ø�HŠHÐAÅ4Ä9ÈTÌ]ÑC[ÔC[Ñ\Ô\Ð\Ø�HŠH•T”X˜aœhÑ'Ô'Ñ(Ô(Ð(Ø�HŠH•T”X�c !™fœfÑ%Ô%Ñ&Ô&Ð&Ø�5�5�5�5�5øøøøð		øøøð
 Ô×3Ò3°HÑ=Ô=ð 	Ý˜;¨
°H¸{Ñ4JÐKÈTÌ]Ñ[Ô[Ð\]Ô^ð	ð
 �OŠO˜W c¨8Ð4Ñ5Ô5Ð5Ð5ðð  E�Ø8�Ø—’ ¨*°lÀJÐP[Ð]eÐgoÐ pÑqÔqÐqÐqøÝð ð ð Ø—’Ð8½$¼)ÀHÑ:MÔ:MÈtÕUYÔU^Ð_cÔ_lÑUmÔUmÑnÔnÐnØ—’�œ !¤(Ñ+Ô+Ñ,Ô,Ð,Ø—’�œ¥# a¡&¤&Ñ)Ô)Ñ*Ô*Ð*Ø�u�u�u�u�uøøøøð	øøøð �RŠ<ˆ<àŒ}ð AØ×5Ò5°hÑ?Ô?��à×6Ò6°xÑ@Ô@��Ø�xÒÐð Œ}ð 4ØŸ.š.¨Ñ2Ô2��àŸ/š/¨(Ñ3Ô3��ð
 Œ}ð 4Ø×5Ò5°hÑ?Ô?��àŸ/š/¨(Ñ3Ô3�Øð 	#Ø× Ò Ñ"Ô"Ð"Øˆs|   Á99B4 Â4
C>Â>5C9Ã9C>Æ&)G Ç
I2ÇBI-É-I2É=5J3 Ê3
MÊ=BMÍMÍ<3N0 Î0
QÎ:BQÑQÒ* S Ó
VÓB!U<Õ<Vc                ó\   — |                       g d¢¦  «         |                      ¦   «          d S )N)Ú	submoduleÚupdatez
--checkoutz--recursive)rÊ   rß   rp   s    r*   r  zRunner.update_git_done}  s,   € Ø�ŠÐLÐLÐLÑMÔMÐMØ�Š‰Œˆˆˆr)   c                ó`  — | j                              d¦  «        }|                     ¦   «         dk    rt          j        ddg| j        ¬¦  «         n]t          j        dd|g| j        ¬¦  «        dk    r;t          j        ddg| j        ¬¦  «         t          j        dd|g| j        ¬¦  «         dS )	Nr½   ÚtipÚhgÚpull©Úcwdrî   r   T)r’   r¶   ÚlowerÚ
subprocessÚcallr“   Ú
check_call)ri   Úrevnos     r*   Ú	update_hgzRunner.update_hg�  s¬   € Ø”	—’˜jÑ)Ô)ˆØ�;Š;‰=Œ=˜EÒ!Ð!õ ŒO˜T 6˜N°´Ð>Ñ>Ô>Ð>Ð>åŒ  j°%Ð8¸d¼mÐLÑLÔLÐPQÒQÐQÝÔ% t¨V n¸$¼-ÐHÑHÔHÐHÝÔ% t¨Z¸Ð&?ÀTÄ]ÐSÑSÔSÐSØˆtr)   c                ó2  — | j                              d¦  «        }t          dddd| j        g¦  «        \  }}}|}||k    rdS |                     ¦   «         dk    rt          j        ddg| j        ¬¦  «         nt          j        ddd	|g| j        ¬¦  «         dS )
Nr½   Úsvnr»   z--show-itemTÚheadr  r  z-r)r’   r¶   r   r“   r  r  r  r  )ri   r  Ú_ÚoutÚcurrent_revnos        r*   Ú
update_svnzRunner.update_svnŽ  s¤   € Ø”	—’˜jÑ)Ô)ˆÝ  v¨}¸jÈ$Ì-ÐXÑYÔY‰	ˆˆ3�ØˆØ˜EÒ!Ð!Ø�4Ø�;Š;‰=Œ=˜FÒ"Ð"õ ŒO˜U HÐ-°4´=ÐAÑAÔAÐAÐAåÔ! 5¨(°D¸%Ð"@ÀdÄmÐTÑTÔTÐTØˆtr)   c                ó0  — |                       d| j        j        › d�¦  «         d}t          j                             | j        ¦  «        s#|                       d¦  «         | j        j         }nä| j        j	        dk    r|  
                    ¦   «         }n¿| j        j	        dk    r|                      ¦   «         }nš| j        j	        dk    r|                      ¦   «         }nu| j        j	        dk    r|                      ¦   «         }nP| j        j	        €#|                       d	¦  «         | j        j         }n!|                       d
| j        j	        d¦  «         |rCt          j                             | j        ¦  «        r| j                             | j        ¦  «         |S )Nz	Updating ru   Fz  -> Not used.ÚfileÚgitr  r  z/  -> Cannot update subproject with no wrap filez  -> Cannot updateÚ
subproject)r‰   r’   rQ   r™   rD   Úisdirr“   r•   r   ÚtyperÅ   r	  r  r  Úupdate_hash_cache)ri   rõ   s     r*   r  zRunner.update�  si  € Ø�ŠÐ0˜TœYœ^Ð0Ð0Ð0Ñ1Ô1Ð1ØˆÝŒw�}Š}˜Tœ]Ñ+Ô+ð 	IØ�HŠHÐ%Ñ&Ô&Ð&àœ,Ô2Ð2ˆGˆGØŒYŒ^˜vÒ%Ð%Ø×&Ò&Ñ(Ô(ˆGˆGØŒYŒ^˜uÒ$Ð$Ø—o’oÑ'Ô'ˆGˆGØŒYŒ^˜tÒ#Ð#Ø—n’nÑ&Ô&ˆGˆGØŒYŒ^˜uÒ$Ð$Ø—o’oÑ'Ô'ˆGˆGØŒYŒ^Ð#Ø�HŠHÐFÑGÔGÐGàœ,Ô2Ð2ˆGˆGà�HŠHÐ)¨4¬9¬>¸<ÑHÔHÐHØð 	7•r”w—}’} T¤]Ñ3Ô3ð 	7ØŒI×'Ò'¨¬Ñ6Ô6Ð6Øˆr)   c                ó®  — t          j        d| j        ¦  «        }| j        j        dk    s$t
          j                             | j        ¦  «        sdS |j	        r|j	        n| j         
                    d¦  «        }|sdS |                      d|› d| j        j        › d�¦  «         |                      ||j        ¬¦  «        r|                      ¦   «          dS d	S )
Nr4   r"  Tr½   z	Checkout z in ru   )rì   F)r´   rµ   r•   r’   r%  r™   rD   r$  r“   r6   r¶   r‰   rQ   rò   r5   rß   )ri   r•   r6   s      r*   rî   zRunner.checkout¶  sÎ   € Ý”&Ð,¨d¬lÑ;Ô;ˆàŒ9Œ>˜UÒ"Ð"­"¬'¯-ª-¸¼Ñ*FÔ*FÐ"Ø�4Ø-4Ô-@Ð_�gÔ)Ð)ÀdÄiÇmÂmÐT^ÑF_ÔF_ˆØð 	à�4Ø�ŠÐA˜[ÐAÐA¨d¬i¬nÐAÐAÐAÑBÔBÐBØ×Ò˜[°´ÐÑ;Ô;ð 	Ø�MŠM‰OŒOˆOØ�4Øˆur)   c           	     óÔ  — |                       d| j        j        › d�¦  «         t          j                             | j        ¦  «        r|                       d¦  «         dS 	 | j                             | j        j        d¦  «         |                       d¦  «         nM# t          $ r@}|                       dt          j        t          |¦  «        ¦  «        ¦  «         Y d }~dS d }~ww xY wdS )	Nz	Download ru   z  -> Already downloadedTrÃ   z	  -> doner²   F)r‰   r’   rQ   r™   rD   r$  r“   r˜   rÄ   r   r	   r¦   r   )ri   r¨   s     r*   ÚdownloadzRunner.downloadÅ  sâ   € Ø�ŠÐ0˜TœYœ^Ð0Ð0Ð0Ñ1Ô1Ð1ÝŒ7�=Š=˜œÑ'Ô'ð 	Ø�HŠHÐ.Ñ/Ô/Ð/Ø�4ð	ØÔ×&Ò& t¤y¤~°wÑ?Ô?Ð?Ø�HŠH�[Ñ!Ô!Ð!Ð!øÝð 	ð 	ð 	Ø�HŠH�V�TœX¥c¨!¡f¤fÑ-Ô-Ñ.Ô.Ð.Ø�5�5�5�5�5øøøøð	øøøð ˆts   Á :B Â
C%Â%5C Ã C%c                óv  — t          j        d| j        ¦  «        }|                      d| j        › �¦  «         t
          j                             | j        ¦  «        s|                      d¦  «         dS |j        g|j	        z   }t          |t          j        | j        ¬¦  «        \  }}}|j        dk    rod                     d                     |¦  «        |j        ¦  «        }|                      d	t!          j        |¦  «        ¦  «         |                      |d
¬¦  «         dS |                      |d
¬¦  «         dS )Nr8   zExecuting command in ú  -> Not downloaded yetT)Ústderrr  r   z.Command '{}' returned non-zero exit status {}.ú z  -> ra   rm   F)r´   rµ   r•   r‰   r“   r™   rD   r$  r9   r:   r   r  ÚSTDOUTÚ
returncodeÚformatr|   r	   r¦   )ri   r•   rÆ   Úpr  r  Úerr_messages          r*   ÚforeachzRunner.foreachÒ  s  € Ý”&Ð+¨T¬\Ñ:Ô:ˆà�ŠÐ8¨¬Ð8Ð8Ñ9Ô9Ð9ÝŒw�}Š}˜Tœ]Ñ+Ô+ð 	Ø�HŠHÐ.Ñ/Ô/Ð/Ø�4ØŒÐ '¤,Ñ.ˆÝ˜s­:Ô+<À$Ä-ÐPÑPÔP‰	ˆˆ3�ØŒ<˜1ÒÐØJ×QÒQÐRU×RZÒRZÐ[^ÑR_ÔR_ÐabÔamÑnÔnˆKØ�HŠH�W�dœh {Ñ3Ô3Ñ4Ô4Ð4Ø�HŠH�S˜bˆHÑ!Ô!Ð!Ø�5à�Š�˜"ˆÑÔÐØˆtr)   c                óæ  — t          j        d| j        ¦  «        }| j        j        sdS | j        j        r]t          | j        j        ¦  «                             ¦   «         }|j	        r| 
                    ¦   «          t          j        d|› �¦  «         | j        j        dk    r^t          | j        j        ¦  «                             ¦   «         }|j	        r| 
                    ¦   «          |                      d|› �¦  «         |j        �rft          | j        j        ¦  «                             ¦   «         }	 || j                             d¦  «        z  }|                     ¦   «         r3|j	        r| 
                    ¦   «          |                      d|› �¦  «         n# t&          $ r Y nw xY w	 || j                             d¦  «        z  }|                     ¦   «         r3|j	        r| 
                    ¦   «          |                      d|› �¦  «         n# t&          $ r Y nw xY w	 t)          |                     ¦   «         ¦  «        st-          t/          |¦  «        ¦  «         n# t0          $ r Y nw xY wt          | j        ¦  «        }|j                             ¦   «         |j        z  }|                     ¦   «         r5|j	        r| 
                    ¦   «          |                      d|› �¦  «         dS |                     ¦   «         sdS 	 |j	        rt-          t/          |¦  «        ¦  «         |                      d|› �¦  «         n2# t<          $ r%}t          j        d|› d|› �¦  «         Y d }~d	S d }~ww xY wdS )
Nr<   Tz	Deleting ÚredirectÚsource_filenameÚpatch_filenamezUnable to remove: z: F) r´   rµ   r•   r’   r%  Ú
redirectedr   Úoriginal_filenamerÄ   r=   Úunlinkr	   r‰   rK   r>   r˜   Úcachedirr¶   Úis_filer   ÚanyÚiterdirr   r   ÚFileNotFoundErrorr“   ÚparentrQ   Ú
is_symlinkÚis_dirÚOSErrorÚerror)ri   r•   Úredirect_fileÚpackagecacheÚsubproject_cache_fileÚsubproject_patch_fileÚsubproject_source_dirr¨   s           r*   ÚpurgezRunner.purgeä  sÀ  € Ý”&Ð)¨4¬<Ñ8Ô8ˆð ŒyŒ~ð 	Ø�4àŒ9Ôð 	2Ý  ¤Ô!<Ñ=Ô=×EÒEÑGÔGˆMØŒð 'Ø×$Ò$Ñ&Ô&Ð&ÝŒHÐ0 Ð0Ð0Ñ1Ô1Ð1àŒ9Œ>˜ZÒ'Ð'Ý  ¤Ô!3Ñ4Ô4×<Ò<Ñ>Ô>ˆMØŒð 'Ø×$Ò$Ñ&Ô&Ð&Ø�HŠHÐ0 Ð0Ð0Ñ1Ô1Ð1àÔ ñ 	Ý Ô 2Ô ;Ñ<Ô<×DÒDÑFÔFˆLðØ(4°t´y·}²}ÐEVÑ7WÔ7WÑ(WÐ%Ø(×0Ò0Ñ2Ô2ð BØ”ð 7Ø-×4Ò4Ñ6Ô6Ð6Ø—H’HÐ@Ð)>Ð@Ð@ÑAÔAÐAøøÝ ð ð ð Ø�ðøøøðØ(4°t´y·}²}ÐEUÑ7VÔ7VÑ(VÐ%Ø(×0Ò0Ñ2Ô2ð BØ”ð 7Ø-×4Ò4Ñ6Ô6Ð6Ø—H’HÐ@Ð)>Ð@Ð@ÑAÔAÐAøøÝ ð ð ð Ø�ðøøøð
Ý˜<×/Ò/Ñ1Ô1Ñ2Ô2ð <Ý(­¨\Ñ):Ô):Ñ;Ô;Ð;øøÝ$ð ð ð Ø�ðøøøõ !% T¤]Ñ 3Ô 3Ðà 5Ô <× DÒ DÑ FÔ FÐI^ÔIcÑ cÐð !×+Ò+Ñ-Ô-ð 	ØŒð /Ø%×,Ò,Ñ.Ô.Ð.Ø�HŠHÐ8Ð!6Ð8Ð8Ñ9Ô9Ð9Ø�4Ø$×+Ò+Ñ-Ô-ð 	Ø�4ð	ØŒð AÝ$¥SÐ)>Ñ%?Ô%?Ñ@Ô@Ð@Ø�HŠHÐ8Ð!6Ð8Ð8Ñ9Ô9Ð9Ð9øÝð 	ð 	ð 	ÝŒJÐHÐ,AÐHÐHÀQÐHÐHÑIÔIÐIØ�5�5�5�5�5øøøøð	øøøð ˆtsP   Ä4A$F Æ
F&Æ%F&Æ*A$H È
HÈHÈ =I É
I+É*I+Ì;L? Ì?
M.Í	M)Í)M.ú'PurgeArguments'c                óh   — | j         s*t          j        d¦  «         t          j        d¦  «         d S d S )Nra   z<Nothing has been deleted, run again with --confirm to apply.)r=   r	   r‰   r¬   s    r*   Ú
post_purgezRunner.post_purge,  s=   € àŒð 	UÝŒH�R‰LŒLˆLÝŒHÐSÑTÔTÐTÐTÐTð	Uð 	Ur)   c                ó   — t          j        d| j        ¦  «        }|j        r|j        rt          d¦  «         dS |j        ry|                      d| j        j        › d�¦  «         t          j
                             | j        ¦  «        s|                      d¦  «         dS | j                             ¦   «          dS |j        �r¼d| j        j        vrt!          j        d	¦  «         dS d
| j        j        vrt!          j        d¦  «         dS t%          | j        j        | j        j        d
         ¦  «        }t)          | j        j                             dd¦  «        ¦  «        }t%          | j        ¦  «        }t%          | j        j        | j        j        d         ¦  «        }|r|n|j        }t1          ||¦  «        }t3          |                     d¦  «        ¦  «        }|                      d| j        j        › d|› d�¦  «         t7          j        |¦  «         ||z
  D ]b}	|	                     ¦   «         sŒ|	                     |¦  «        }
||
z  }|j                             dd¬¦  «         t7          j         |	|¦  «         ŒcdS )Nr@   z0error: --apply and --save are mutually exclusiveFz#Re-applying patchfiles overlay for ru   r+  TÚpatch_directoryz-can only save packagefiles to patch_directoryr6  z-can only save packagefiles from a [wrap-file]Úlead_directory_missingz**/*zSaving rý   )ÚparentsÚexist_ok)!r´   rµ   r•   rA   rB   ro   r‰   r’   rQ   r™   rD   r$  r“   r˜   ré   r  r	   rD  r   r;  r!   r¶   Úfilesdirr@  r[   rf   Úglobrx   Úrmtreer<  Úrelative_toÚmkdirÚcopyfile)ri   r•   Úarchive_pathrP  r›   ÚpackagefilesrE   rY   Údirectory_filesÚsrc_pathÚrel_pathÚdst_paths               r*   rZ  zRunner.packagefiles2  sl  € Ý”&Ð0°$´,Ñ?Ô?ˆàŒ=ð 	˜Wœ\ð 	åÐDÑEÔEÐEØ�5ØŒ=ð 	Ø�HŠHÐN¸4¼9¼>ÐNÐNÐNÑOÔOÐOÝ”7—=’= ¤Ñ/Ô/ð Ø—’Ð2Ñ3Ô3Ð3Ø�tØÔ×*Ò*Ñ,Ô,Ð,Ø�4ØŒ<ñ 	4Ø ¨¬	Ô(8Ð8Ð8Ý”
ÐJÑKÔKÐKØ�uØ ¨¬	Ô(8Ð8Ð8Ý”
ÐJÑKÔKÐKØ�uÝ Ô 2Ô ;¸T¼YÔ=MÐN_Ô=`ÑaÔaˆLÝ%)¨$¬)Ô*:×*>Ò*>Ð?WÐY^Ñ*_Ô*_Ñ%`Ô%`Ð"Ý˜Tœ]Ñ+Ô+ˆIÝ ¤	Ô 2°D´IÔ4DÐEVÔ4WÑXÔXˆLà%;ÐQ˜	˜	ÀÔAQˆIÝ.¨|¸YÑGÔGˆMÝ! )§.¢.°Ñ"8Ô"8Ñ9Ô9ˆOà�HŠHÐD˜tœyœ~ÐDÐD°<ÐDÐDÐDÑEÔEÐEÝŒM˜,Ñ'Ô'Ð'Ø+¨mÑ;ð 4ð 4�Ø×'Ò'Ñ)Ô)ð ØØ#×/Ò/°	Ñ:Ô:�Ø'¨(Ñ2�Ø”×%Ò%¨d¸TÐ%ÑBÔBÐBÝ” ¨(Ñ3Ô3Ð3Ð3Øˆtr)   N)rI   r   rF   r_   )r:   r    r‹   r¡   rF   r_   )rF   r!   )r•   rª   rF   r_   )rÆ   r   rF   r   )rÆ   r   rF   r_   r�   )r½   r   rF   r!   )F)r½   r   rì   r!   rF   r!   )r•   rK  rF   r_   )r$   r%   r&   r'   rŸ   r‰   r©   Ústaticmethodr­   rÁ   rÅ   rÊ   rÌ   rÒ   rß   ræ   rë   rò   rö   rø   r	  r  r  r  r  rî   r)  r3  rJ  rM  rZ  r(   r)   r*   r�   r�   k   sŒ  € € € € € € à€N€N�NØÐÐÑØÐÐÑØ€M€M�MØÐÐÑðJð Jð Jð Jð4ð 4ð 4ð 4ðð ð ð ð ð@ð @ð @ñ „\ð@ð&ð &ð &ð &ðPð ð ð ð,<ð <ð <ð <ð'ð 'ð 'ð 'ð(ð (ð (ð (ðcð cð cð cð
ð ð ð ðð ð ð ðð ð ð ð ð ð ð ð ðð ð ð ðcð cð cð cðJð ð ð ðð ð ð ðð ð ð ðð ð ð ð2ð ð ð ðð ð ð ðð ð ð ð$Fð Fð Fð FðP ðUð Uð Uñ „\ðUð
'ð 'ð 'ð 'ð 'ð 'r)   r�   r1  úargparse.ArgumentParserr_   c                óæ   — |                       ddd¬¦  «         |                       dddt          › d�¬¦  «         |                       d	d t          d
¬¦  «         |                       dddd¬¦  «         d S )Nz--sourcedirr   zPath to source directory)ÚdefaultÚhelpz--typesra   z?Comma-separated list of subproject types. Supported types are: z (default: all)z--num-processesz2How many parallel processes to use (Since 0.59.0).)rb  r%  rc  z--allow-insecureFÚ
store_truez"Allow insecure server connections.©rb  Úactionrc  )Úadd_argumentÚALL_TYPES_STRINGr   ©r1  s    r*   Úadd_common_argumentsrj  \  s¬   € Ø‡N‚N�=¨#Ø2ð ñ 4ô 4ð 4à‡N‚N�9 bØ{ÕZjÐ{Ð{Ð{ð ñ }ô }ð }à‡N‚NÐ$¨d½ØLð ñ Nô Nð Nà‡N‚NÐ%¨u¸\Ø<ð ñ >ô >ð >ð >ð >r)   c                ó6   — |                       ddd¬¦  «         d S )Nr   Ú*z"List of subprojects (default: all)©Únargsrc  )rg  ri  s    r*   Úadd_subprojects_argumentro  f  s.   € Ø‡N‚N�=¨Ø<ð ñ >ô >ð >ð >ð >r)   Ú
subparsersú'SubParsers'c                ó"  — |                       dd¬¦  «        }|                     dddd¬¦  «         t          |¦  «         t          |¦  «         |                     t
          j        ¬	¦  «         |                     t
          j        ¬
¦  «         |S )Nr  z,Update wrap files from WrapDB (Since 0.63.0)©rc  z--forceFrd  z4Update wraps that does not seems to come from WrapDBre  ©r    )Úpre_func)Ú
add_parserrg  rj  ro  Úset_defaultsr�   rÁ   r­   )rp  r1  s     r*   Úadd_wrap_update_parserrx  j  s‘   € Ø×Ò˜hÐ-[ÐÑ\Ô\€AØ‡N‚N�9 e°LØNð ñ Pô Pð På˜ÑÔÐÝ˜QÑÔÐØ‡N‚N¥FÔ$8€NÑ9Ô9Ð9Ø‡N‚N�FÔ4€NÑ5Ô5Ð5Ø€Hr)   Úparserc                ó¢  — |                       dd¬¦  «        }d|_        |                     dd¬¦  «        }|                     ddd	d
¬¦  «         |                     ddd	d¬¦  «         t	          |¦  «         t          |¦  «         |                     t          j        ¬¦  «         |                     dd¬¦  «        }|                     ddd	d¬¦  «         |                     ddd¬¦  «         t	          |¦  «         t          |¦  «         |                     t          j	        ¬¦  «         |                     dd¬¦  «        }t	          |¦  «         t          |¦  «         |                     t          j
        ¬¦  «         |                     dd¬¦  «        }|                     ddd¬¦  «         |                     dt          j        t          j        ¬¦  «         t	          |¦  «         |                     g ¬ ¦  «         |                     t          j        ¬¦  «         |                     d!d"¬¦  «        }t	          |¦  «         t          |¦  «         |                     d#d	dd$¬%¦  «         |                     d&d	dd'¬%¦  «         |                     t          j        ¬¦  «         |                     t          j        ¬(¦  «         |                     d)d*¬¦  «        }t	          |¦  «         t          |¦  «         |                     d+d	dd,¬%¦  «         |                     d-d	dd.¬%¦  «         |                     t          j        ¬¦  «         d S )/NÚCommandsr9   )ÚtitleÚdestTr  z&Update all subprojects from wrap filesrs  z--rebaserd  zeRebase your branch on top of wrap's revision. Deprecated, it is now the default behaviour. (git only)re  z--resetFzBCheckout wrap's revision and hard reset to that commit. (git only)rt  rî   zCheckout a branch (git only)rï   zCreate a new branchr6   ú?zMName of the branch to checkout or create (default: revision set in wrap file)rm  r)  z¸Ensure subprojects are fetched, even if not in use. Already downloaded subprojects are not modified. This can be used to pre-fetch all subprojects and avoid downloads during configure.r3  z/Execute a command in each subproject directory.zcommand ...z/Command to execute in each subproject directory)Úmetavarrc  r:   ©r   rJ  z*Remove all wrap-based subproject artifactsz--include-cachez Remove the package cache as well)rf  rb  rc  z	--confirmz+Confirm the removal of subproject artifacts)Ú	post_funcrZ  zManage the packagefiles overlayz--applyz$Apply packagefiles to the subprojectz--savez%Save packagefiles from the subproject)Úadd_subparsersÚrequiredrv  rg  rj  ro  rw  r�   r  rî   r)  ÚargparseÚ	REMAINDERÚSUPPRESSr3  rJ  rM  rZ  )ry  rp  r1  s      r*   Úadd_argumentsr‡  t  si  € Ø×&Ò&¨Z¸iÐ&ÑHÔH€JØ€JÔà×Ò˜hÐ-UÐÑVÔV€AØ‡N‚N�: t°LðRð ñ Sô Sð Sð ‡N‚N�9 e°LØ]ð ñ _ô _ð _å˜ÑÔÐÝ˜QÑÔÐØ‡N‚N¥F¤M€NÑ2Ô2Ð2à×Ò˜jÐ/MÐÑNÔN€AØ‡N‚N�4 ¨|Ø-ð ñ /ô /ð /à‡N‚N�=¨Øgð ñ iô ið iå˜ÑÔÐÝ˜QÑÔÐØ‡N‚N¥F¤O€NÑ4Ô4Ð4à×Ò˜jð 0EÐñ 	Fô 	F€Aõ ˜ÑÔÐÝ˜QÑÔÐØ‡N‚N¥F¤O€NÑ4Ô4Ð4à×Ò˜iÐ._ÐÑ`Ô`€AØ‡N‚N�9 mØIð ñ Kô Kð Kà‡N‚N�6¥Ô!3Ý Ô)ð ñ +ô +ð +å˜ÑÔÐØ‡N‚N˜r€NÑ"Ô"Ð"Ø‡N‚N¥F¤N€NÑ3Ô3Ð3à×Ò˜gÐ,XÐÑYÔY€AÝ˜ÑÔÐÝ˜QÑÔÐØ‡N‚NÐ$¨\À5ÐOq€NÑrÔrÐrØ‡N‚N�; |¸UÐIv€NÑwÔwÐwØ‡N‚N¥F¤L€NÑ1Ô1Ð1Ø‡N‚N�VÔ.€NÑ/Ô/Ð/à×Ò˜nÐ3TÐÑUÔU€AÝ˜ÑÔÐÝ˜QÑÔÐØ‡N‚N�9 \¸5ÐGm€NÑnÔnÐnØ‡N‚N�8 L¸%ÐFm€NÑnÔnÐnØ‡N‚N¥FÔ$7€NÑ8Ô8Ð8Ð8Ð8r)   r•   r”   r   c                óü  ‡ ‡— t           j                             t           j                             ‰ j        ¦  «        ¦  «        }t           j                             t           j                             |d¦  «        ¦  «        s*t          j        dt          j	        |¦  «        d¦  «         dS t           j                             |d¦  «        }t           j         
                    |¦  «        s*t          j        dt          j	        |¦  «        d¦  «         dS t          |dd‰ j        ¬	¦  «        }‰ j        r&ˆ fd
„|j                             ¦   «         D ¦   «         }n&t#          |j                             ¦   «         ¦  «        }‰ j        r$d„ ‰ j                             d¦  «        D ¦   «         ng Š‰D ]%}|t*          vrt-          d|›dt.          › �¦  «        ‚Œ&g }g }t1          j        ¦   «         }t5          ‰ j        ¦  «        }	‰rˆfd„|D ¦   «         }t9          ‰ dd ¦  «        }
|
r |
‰ ¦  «         t;          t=          |¦  «        ¦  «        }|D ]†}t?          ||j         ¦  «         !                    ¦   «         }tE          ||||‰ ¦  «        }| #                    |	|j$        ¦  «        }| %                    |¦  «         | %                    |j&        ¦  «         Œ‡| '                    t1          j(        |Ž ¦  «        }| )                    ¦   «          t9          ‰ dd ¦  «        }|r |‰ ¦  «         d„ tU          ||¦  «        D ¦   «         }|r.d}|d                     |¦  «        z  }t          j+        |¦  «         t=          |¦  «        S )Nzmeson.buildÚ	Directoryz-does not seem to be a Meson source directory.r   r   z"does not seem to have subprojects.r   T)Úwrap_frontendr"   c                ó,   •— g | ]\  }}|‰j         v ¯|‘ŒS r(   r€  )rM   rQ   r’   r•   s      €r*   rÙ   zrun.<locals>.<listcomp>µ  s*   ø€ ÐWÐWÐW™*˜$ ¸4À7ÔCVÐ;VÐ;V�Ð;VÐ;VÐ;Vr)   c                ó6   — g | ]}|                      ¦   «         ‘ŒS r(   rÖ   )rM   Úts     r*   rÙ   zrun.<locals>.<listcomp>¸  s    € Ð9Ð9Ð9˜1ˆQ�WŠW‰YŒYÐ9Ð9Ð9r)   ú,zUnknown subproject type z, supported types are: c                ó&   •— g | ]}|j         ‰v ¯|‘ŒS r(   )r%  )rM   r’   r   s     €r*   rÙ   zrun.<locals>.<listcomp>Á  s%   ø€ Ð>Ð>Ð>˜$¨4¬9¸Ð+=Ð+=�Ð+=Ð+=Ð+=r)   ru  r�  c                ó   — g | ]	\  }}|°|‘Œ
S r(   r(   )rM   rQ   rõ   s      r*   rÙ   zrun.<locals>.<listcomp>Ñ  s!   € ÐRÐRÐR™˜˜wÈ'ÐR�ÐRÐRÐRr)   zlPlease check logs above as command failed in some subprojects which could have been left in conflict state: rC   ),r™   rD   ÚrelpathÚrealpathr   Úisfiler|   r	   rD  rã   r$  r‰   r   r"   r   ÚwrapsÚitemsr¤   r  r   r·   r   r   rh  ÚasyncioÚget_event_loopr   r   Úgetattrr]   r{   r   r›   Úas_posixr�   Úrun_in_executorr©   r£   rQ   Úrun_until_completeÚgatherrq   ÚzipÚwarning)r•   Úsrc_dirÚsubprojects_dirrI   r”  r�  ÚtasksÚ
task_namesÚloopÚexecutorru  r‘   r’   rœ   ÚrunnerÚtaskÚresultsr�  ÚfailuresÚmr   s   `                   @r*   r©   r©   ª  sH  øø€ ÝŒg�oŠo�bœg×.Ò.¨wÔ/@ÑAÔAÑBÔB€GÝŒ7�>Š>�"œ'Ÿ,š, w°Ñ>Ô>Ñ?Ô?ð ÝŒ
�;¥¤	¨'Ñ 2Ô 2Ð4cÑdÔdÐdØˆqÝ”g—l’l 7¨MÑ:Ô:€OÝŒ7�=Š=˜Ñ)Ô)ð ÝŒ��dœi¨Ñ0Ô0Ð2VÑWÔWÐWØˆqÝ�˜-°tÈGÔLbÐcÑcÔc€AØÔð 'ØWÐWÐWÐW¨¬¯ª©¬ÐWÑWÔWˆˆå�Q”W—^’^Ñ%Ô%Ñ&Ô&ˆØ=D¼]ÐRÐ9Ð9 ¤× 3Ò 3°CÑ 8Ô 8Ð9Ñ9Ô9Ð9ÐPR€EØð lð lˆØ•IÐÐÝ Ð!j¸AÐ!jÐ!jÕXhÐ!jÐ!jÑkÔkÐkð à')€EØ €JÝÔ!Ñ#Ô#€DÝ! 'Ô"7Ñ8Ô8€HØð ?Ø>Ð>Ð>Ð> %Ð>Ñ>Ô>ˆÝ�w 
¨DÑ1Ô1€HØð Øˆ�ÑÔÐÝ•C˜‘J”JÑÔ€FØð %ð %ˆÝ�¨¬Ñ7Ô7×@Ò@ÑBÔBˆÝ˜  4¨°'Ñ:Ô:ˆØ×#Ò# H¨f¬jÑ9Ô9ˆØ�Š�TÑÔÐØ×Ò˜$œ)Ñ$Ô$Ð$Ð$Ø×%Ò%¥g¤n°eÐ&<Ñ=Ô=€GØ
‡L‚L�N„N€NÝ˜ ¨dÑ3Ô3€IØð Øˆ	�'ÑÔÐØRÐR­#¨j¸'Ñ*BÔ*BÐRÑRÔR€HØð ØzˆØ	ˆT�YŠY�xÑ Ô Ñ ˆÝŒ�Q‰ŒˆÝˆx‰=Œ=Ðr)   )rD   r   rE   r   rF   rG   )r1  r`  rF   r_   )rp  rq  rF   r`  )ry  r`  rF   r_   )r•   r”   rF   r   );Ú
__future__r   Údataclassesr   r   r™   r  r„  r–  rb   r—   rx   Úconcurrent.futures.threadr   Úpathlibr   Útypingr´   rV   rS   ra   r	   Úmesonlibr
   r   r   r   r   Ú	wrap.wrapr   r   r   r   r   r   r   ÚTYPE_CHECKINGÚtyping_extensionsr   Ú_SubParsersActionÚArgumentParserÚ
SubParsersr   r,   r0   r4   r8   r<   r@   r|   rh  r[   r]   r�   rj  ro  rx  r‡  r©   r(   r)   r*   ú<module>r¶     sÀ  ðØ "Ð "Ð "Ð "Ð "Ð "à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð Ð Ð Ø _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _ðIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið „?ð #Ø*Ð*Ð*Ð*Ð*Ð*àÔ+¨HÔ,CÔD€Jðð ð ð ð �Hñ ô ð ðð ð ð ð ˜)ñ ô ð ð%ð %ð %ð %ð % 	ñ %ô %ð %ðð ð ð ð ˜Iñ ô ð ðð ð ð ð ˜9ñ ô ð ðð ð ð ð ˜ñ ô ð ðð ð ð ð  	ñ ô ð ð —9’9˜YÑ'Ô'Ð ðð ð ð ð#"ð #"ð #"ð #"ð #"ñ #"ô #"ð #"ðL €ˆeÐÑÔðmð mð mð mð mñ mô mñ Ôðmð`>ð >ð >ð >ð>ð >ð >ð >ðð ð ð ð49ð 49ð 49ð 49ðl,ð ,ð ,ð ,ð ,ð ,r)   