§
     ’ÞjòA  ã                   ó>  — 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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  G d„ de¦  «        Zd„ fd	„Zd
„ Zd„ Zdddddœd„Zdadad ag adadd„Zd„ Zdd„Zdd„Z d„ Z!d d„Z"d!d„Z#d„ Z$d"d„Z%d#d„Z& e'¦   «         Z(d#d„Z)d#d„Z*dS )$é    N)ÚNamedTemporaryFileÚTemporaryDirectory)Úquote)Útqdm)ÚDownloadCancelledÚcheck_download_cancelledÚdownload_contextÚdownload_operationÚinstall_hf_download_patchÚresolve_download_genc                   ó   — e Zd ZdZdS )ÚDownloadErrorzFAn asset transfer failed; stop the operation before trying to load it.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú=C:\Users\johnn\OneDrive\Documents\AI\shared\utils\download.pyr   r   
   s   € € € € € ØPÐPÐPÐPr   r   c                  ó   — d S ©Nr   r   r   r   ú<lambda>r      s   € ¸d€ r   c                 ó&   ‡ ‡‡— ddl mŠ ˆ ˆˆfd„}|S )Nr   )Úwrapsc                 óf   •‡ ‡— t          j        ‰ ¦  «        Š ‰‰ ¦  «        ˆ ˆˆˆfd„¦   «         }|S )Nc                  ór  •—  ‰j         | i |¤Ž}|j        } ‰|d         ¦  «        }ddlm}m} t          |¦  «        5   |||d         ‰¦  «        5 }|j        |d<   	  ‰
|j        i |j        ¤Žcd d d ¦  «         cd d d ¦  «         S # t          |f$ r d|d<   Y d d d ¦  «         d d d ¦  «         dS t          $ rV}t          |¦  «        }	t          j        |	¦  «          |d         d|	¦  «         Y d }~d d d ¦  «         d d d ¦  «         dS d }~ww xY w# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	NÚstater   )ÚMediaControlÚMediaProcessingAbortedÚsend_cmdTÚabortÚerrorF)ÚbindÚ	argumentsÚshared.utils.media_controlr   r   r
   r    ÚargsÚkwargsr   r   Ústrr   Úwrite)r&   r'   Úboundr$   Úgenr   r   ÚcontrolÚexcÚmessageÚfnÚget_gen_infoÚget_offloadobjÚ	signatures             €€€€r   Úrunz3generation_downloads.<locals>.decorate.<locals>.run   sˆ  ø€ à"�I”N DÐ3¨FÐ3Ð3ˆEØœˆIØ�,˜y¨Ô1Ñ2Ô2ˆCØWÐWÐWÐWÐWÐWÐWÐWÝ# CÑ(Ô(ð !ð !¨,¨,°s¸IÀjÔ<QÐSaÑ*bÔ*bð !ÐfmØ(/Ô(8�	˜*Ñ%ð	!Ø˜2˜uœzÐ:¨U¬\Ð:Ð:ð!ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ñ !ô !ð !ð !øõ *Ð+AÐBð  ð  ð  Ø#'�C˜‘LØð!ð !ð !ñ !ô !ð !ð !ð !ð !ñ !ô !ð !ð !ð !õ %ð !ð !ð !Ý! #™hœh�GÝ”J˜wÑ'Ô'Ð'Ø)�I˜jÔ)¨'°7Ñ;Ô;Ð;Ø ˜5˜5˜5ð!ð !ð !ñ !ô !ð !ð !ð !ð !ñ !ô !ð !ð !ð !øøøøð!øøøð!ð !ð !ð !øøøð !ð !ð !ð !ð !ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !sq   ¾D,ÁDÁBÁ/D,ÂDÂDÂD,Â2	DÂ;5DÃ0DÃ4D,ÄDÄDÄD	ÄD,ÄD	ÄD,Ä,D0Ä3D0)Úinspectr2   )r/   r3   r2   r0   r1   r   s   ` @€€€r   Údecoratez&generation_downloads.<locals>.decorate   sV   øøø€ ÝÔ% bÑ)Ô)ˆ	à	ˆˆr‰Œð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ñ 
Œð	!ð" ˆ
r   )Ú	functoolsr   )r0   r1   r5   r   s   `` @r   Úgeneration_downloadsr7      sA   øøø€ ØÐÐÐÐÐðð ð ð ð ð ð ð, €Or   c                  ó   — ddl m}  | j        S )Nr   ©Ú	constants)Úhuggingface_hubr:   ÚHF_HUB_OFFLINEr9   s    r   Ú_offliner=   *   s   € à)Ð)Ð)Ð)Ð)Ð)ØÔ#Ð#r   c                 óJ   — t          ¦   «         rt          | › d|› �¦  «        ‚d S )NzŽ is missing and WanGP runs offline (--offline): copy it into a checkpoints folder, or run once without --offline to download it
Download URL: )r=   r   )ÚnameÚurls     r   Ú_ensure_onlinerA   0   sQ   € Ý�z„zð {Ý˜tð  zð  zð  uxð  zð  zñ  {ô  {ð  	{ð{ð {r   Té   ©r+   Úshow_filenameÚ
file_indexÚ
file_countc                 ó¾  ‡— ddl m}m}  |‰d         ‰d         fi ˆfd„dD ¦   «         ¤Ž}t          ‰d         |¦  «         t	          | ¦  «        } t          ¦   «          	 t          | ‰d         |||¦  «        5   |di ‰¤Žcd d d ¦  «         S # 1 swxY w Y   d S # t          $ r ‚ t          $ r-}t          d‰d         › d‰d         › d	|› d
|› �¦  «        |‚d }~ww xY w)Nr   )Úhf_hub_downloadÚ
hf_hub_urlÚrepo_idÚfilenamec                 ó*   •— i | ]}|‰v ¯|‰|         “ŒS r   r   ©Ú.0Úkeyr'   s     €r   ú
<dictcomp>z _hf_download.<locals>.<dictcomp>8   sQ   ø€ ð  ?`ð  ?`ð  ?`ÐTWð  RUð  Y_ð  R_ð  R_¸sÀFÈ3ÄKð  R_ð  R_ð  R_r   )Ú	subfolderÚ	repo_typeÚrevisionÚendpointzUnable to Download z From ú: z
Download URL: r   )
r;   rH   rI   rA   r   r   r	   r   Ú	Exceptionr   )	r+   rD   rE   rF   r'   rH   rI   r@   r-   s	       `    r   Ú_hf_downloadrW   5   s¾  ø€ Ø;Ð;Ð;Ð;Ð;Ð;Ð;Ð;à
ˆ*�V˜IÔ&¨¨zÔ(:ð  að  að  ?`ð  ?`ð  ?`ð  ?`ð  \Nð  ?`ñ  ?`ô  ?`ð  að  a€CÝ�6˜*Ô% sÑ+Ô+Ð+Ý
˜sÑ
#Ô
#€CÝÑÔÐðFÝ˜c 6¨*Ô#5°}ÀjÐR\Ñ]Ô]ð 	-ð 	-Ø"�?Ð,Ð, VÐ,Ð,ð	-ð 	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øåð ð ð ØÝð Fð Fð FÝÐ{°&¸Ô2DÐ{Ð{ÈFÐS\ÔL]Ð{Ð{ÐadÐ{Ð{ÐvyÐ{Ð{Ñ|Ô|ð  CFð  	FøøøøðFøøøs<   Á B Á9BÂB ÂBÂB ÂBÂB ÂCÂ/(CÃCg      à?c                 ó  — t          j         ¦   «         }| |z  }t          �| dk    r|a|adag ad}|t          z
  t
          k    ršt          dk    rŠ|t          z
  |t          z
  z  }t                               |¦  «         t          t          ¦  «        dk    rt                               d¦  «         t          t          ¦  «        t          t          ¦  «        z  }|a|an0t          r)t          t          ¦  «        t          t          ¦  «        z  }d„ }|r|nd}	|dk    r||dk    rd ||¦  «        › d�nd}
d	|	› d
 ||¦  «        › |
› �}t          j                             |                     d¦  «        ¦  «         t          j                             ¦   «          dS | |z  }t          d||z  dz  ¦  «        }d}t!          ||z  dz  ¦  «        }d|z  d||z
  z  z   }d„ }|dk    rd ||¦  «        › d�nd}
d	|	› d|› d|d›d ||¦  «        › d ||¦  «        › d|
› �}t          j                             |                     d¦  «        ¦  «         t          j                             ¦   «          |dk    rt#          ¦   «          dS dS )a  
    Simple progress bar hook for urlretrieve
    
    Args:
        block_num: Number of blocks downloaded so far
        block_size: Size of each block in bytes
        total_size: Total size of the file in bytes
        filename: Name of the file being downloaded (optional)
    Nr   é   c                 ó@   — dD ]}| dk     r	| d›|› �c S | dz  } Œ| d›d�S ©N)ÚBÚKBÚMBÚGBi   ú.1fÚTBr   ©Ú	bytes_valÚunits     r   Úformat_bytesz#progress_hook.<locals>.format_bytess   óT   € Ø+ð 	ð 	ˆDØ˜4ÒÐØ#Ð/Ð/¨Ð/Ð/Ð/Ð/Ð/Ø˜ÑˆIˆIØÐ#Ð#Ð#Ð#Ð#r   zUnknown filez @ z/sÚ úrU   éP   éd   é(   u   â–ˆu   â–‘c                 ó@   — dD ]}| dk     r	| d›|› �c S | dz  } Œ| d›d�S r[   r   rb   s     r   re   z#progress_hook.<locals>.format_bytesŽ   rf   r   z: [z] r`   z% (ú/ú))ÚtimeÚ_start_timeÚ
_last_timeÚ_last_downloadedÚ_speed_historyÚ_update_intervalÚappendÚlenÚpopÚsumÚsysÚstdoutr)   ÚljustÚflushÚminÚintÚprint)Ú	block_numÚ
block_sizeÚ
total_sizerK   Úcurrent_timeÚ
downloadedÚspeedÚcurrent_speedre   Úfile_displayÚ	speed_strÚlineÚpercentÚ
bar_lengthÚfilledÚbars                   r   Úprogress_hookrŽ   K   sÞ  € õ ”9‘;”;€LØ˜ZÑ'€Jõ Ð˜i¨1šn˜nØ"ˆØ!ˆ
ØÐØˆð €EØ•jÑ Õ$4Ò4Ð4Ý˜Š>ˆ>Ø'Õ*:Ñ:¸|ÍjÑ?XÑYˆMÝ×!Ò! -Ñ0Ô0Ð0å•>Ñ"Ô" QÒ&Ð&Ý×"Ò" 1Ñ%Ô%Ð%å�Ñ'Ô'­#­nÑ*=Ô*=Ñ=ˆEà!ˆ
Ø%ÐÐÝ	ð :å•NÑ#Ô#¥c­.Ñ&9Ô&9Ñ9ˆð$ð $ð $ð  (Ð;�8�8¨^€Là�Q‚€à5:¸Q²Y°YÐ1˜,˜, uÑ-Ô-Ð1Ð1Ð1Ð1ÀBˆ	ØI�LÐIÐI L L°Ñ$<Ô$<ÐI¸iÐIÐIˆåŒ
×Ò˜Ÿš B™œÑ(Ô(Ð(ÝŒ
×ÒÑÔÐØˆà˜ZÑ'€JÝ�#˜
 ZÑ/°3Ñ6Ñ7Ô7€Gð €JÝ�˜gÑ%¨Ñ+Ñ,Ô,€FØ
�&‰.˜5 J°Ñ$7Ñ8Ñ
8€Cð$ð $ð $ð 27¸²°Ð-�l�l 5Ñ)Ô)Ð-Ð-Ð-Ð-À€Ið z�ÐyÐy ÐyÐy¨ÐyÐyÐy¸¸ÀZÑ8PÔ8PÐyÐyÐS_ÐS_Ð`jÑSkÔSkÐyÐyÐnwÐyÐy€Då„J×Ò�T—Z’Z ‘_”_Ñ%Ô%Ð%Ý„J×ÒÑÔÐð �#‚~€~Ý‰Œˆˆˆð €~r   c                 ó"   ‡ — da dadag aˆ fd„}|S )z2Creates a progress hook with the filename includedNr   c                 ó(   •— t          | ||‰¦  «        S r   )rŽ   )r€   r�   r‚   rK   s      €r   Úhookz"create_progress_hook.<locals>.hook«   s   ø€ Ý˜Y¨
°JÀÑIÔIÐIr   )rp   rq   rr   rs   )rK   r‘   s   ` r   Úcreate_progress_hookr’   ¢   s=   ø€ ð €KØ€JØÐØ€NðJð Jð Jð Jð Jà€Kr   c                 óˆ  ‡— ddl m}m}m} ddlm}	 t          |¦  «        }t          |¦  «         |€d gt          |¦  «        z  }g }
t          |||¦  «        D �]²\  }}}|�t          |¦  «        dk    rd }|�|nt          |¦  «        dk    r|nd }|	 
                    |¦  «        }|� t          j                             ||¦  «        n|}t          |¦  «        dk    rË|�t          ¦   «         rv|	                     |€|nt          j                             ||¦  «        d¬¦  «        €;t!          ||j        › d| › dt%          |¦  «        › �¦  «          || |dz   |¬	¦  «         �Œ|r|                     d¦  «        dz   nd
Šˆfd„ |¦   «                              | ¦  «        D ¦   «         }|D ]_}t          |¦  «         |	                     t-          |||¦  «        d¬¦  «        €(|
                     t1          | |||pd ¬¦  «        ¦  «         Œ`�Œ´t3          |
d¦  «        D ]%\  }}t5          di |¤|||t          |
¦  «        dœ¤Ž Œ&d S )Nr   )ÚHfApir:   Úsnapshot_download©Úfiles_locatorF©Úerror_if_nonerm   z/tree/main/z/*)rJ   Úallow_patternsÚ	local_dirrg   c                 óh   •— g | ].}|                      ‰¦  «        ¯|t          ‰¦  «        d …         ‘Œ/S r   )Ú
startswithrv   )rN   r?   Úprefixs     €r   ú
<listcomp>z%process_files_def.<locals>.<listcomp>Ç   s=   ø€ ÐoÐoÐo¨DÐW[×WfÒWfÐgmÑWnÔWnÐo�T�#˜f™+œ+˜,˜,Ô'ÐoÐoÐor   )rJ   rK   r›   rQ   rB   rC   r   )r;   r”   r:   r•   Úshared.utilsr—   r   r   rv   ÚzipÚget_smart_download_rootÚosÚpathÚjoinr=   Úlocate_folderrA   ÚENDPOINTr   ÚrstripÚlist_repo_filesÚlocate_fileÚ_download_relpathru   ÚdictÚ	enumeraterW   )ÚrepoIdÚsourceFolderListÚfileListÚtargetFolderListr+   rD   r”   r:   r•   ÚflÚ	downloadsÚtargetFolderÚsourceFolderÚfilesÚexplicit_targetÚ
targetRootr›   ÚonefileÚindexÚdownloadrž   s                       @r   Úprocess_files_defr¼   °   sç  ø€ ØCÐCÐCÐCÐCÐCÐCÐCÐCÐCØ0Ð0Ð0Ð0Ð0Ð0å
˜sÑ
#Ô
#€CÝ˜SÑ!Ô!Ð!ØÐØ ˜6¥CÐ(8Ñ$9Ô$9Ñ9ÐØ€IÝ-0Ð1AÐCSÐU]Ñ-^Ô-^ð ~ñ ~Ñ)ˆ�l EØÐ#­¨LÑ(9Ô(9¸QÒ(>Ð(>ØˆLØ*6Ð*B˜,˜,ÕY\Ð]iÑYjÔYjÐmnÒYnÐYnÈÈÐtxˆØ×/Ò/°Ñ@Ô@ˆ
Ø>JÐ>V•B”G—L’L ¨\Ñ:Ô:Ð:Ð\fˆ	Ýˆu‰:Œ:˜Š?ˆ?Øˆ{�h™jœjˆ{Ø×#Ò#°LÐ4H L LÍbÌgÏlÊlÐ[gÐiuÑNvÔNvð  GLÐ#ñ  Mô  Mð  UÝ" <°IÔ4FÐ1qÐ1qÈÐ1qÐ1qÕ\aÐbnÑ\oÔ\oÐ1qÐ1qÑrÔrÐrØ%Ð%¨fÀ\ÐTXÑEXÐdmÐnÑnÔnÐnÙà7CÐK�\×(Ò(¨Ñ-Ô-°Ñ3Ð3ÈˆFØoÐoÐoÐo°E°E±G´G×4KÒ4KÈFÑ4SÔ4SÐoÑoÔoˆEØð 	~ð 	~ˆGÝ$ SÑ)Ô)Ð)Ø�~Š~Õ/°¸gÀ|ÑTÔTÐdiˆ~ÑjÔjÐrØ× Ò ¥¨f¸wÐR[ÐgsÐg{Ðw{Ð!|Ñ!|Ô!|Ñ}Ô}Ð}øñ	~õ % Y°Ñ2Ô2ð tð t‰ˆˆxÝÐsÐs�xÐs S¸ÐRWÕdgÐhqÑdrÔdrÐsÐsÐsÐsÐsÐsðtð tr   c                 óR  — | €dn| } |�t          |¦  «        dk    rd }|€5t          | ¦  «        dk    r t          j                             | |¦  «        n|S t          | ¦  «        dk    r!t          j                             || |¦  «        nt          j                             ||¦  «        S )Nrg   r   )rv   r£   r¤   r¥   )Úsource_folderrK   Útarget_folders      r   r«   r«   Ð   s¶   € Ø'Ð/�B�B°]€MØÐ ¥S¨Ñ%7Ô%7¸1Ò%<Ð%<ØˆØÐÝ8;¸MÑ8JÔ8JÈQÒ8NÐ8N�rŒw�|Š|˜M¨8Ñ4Ô4Ð4ÐT\Ð\ÝCFÀ}ÑCUÔCUÐXYÒCYÐCY�2Œ7�<Š<˜ }°hÑ?Ô?Ð?Õ_aÔ_f×_kÒ_kÐlyð  |Dñ  `Eô  `Eð  Er   c                 óÆ  — ddl m} | €g S t          | t          ¦  «        r+g }| D ]$}|                     t          |¦  «        ¦  «         Œ%|S |                      dg ¦  «        }|                      dg ¦  «        }|                      d¦  «        }|€d gt          |¦  «        z  }g }t          |||¦  «        D ]¬\  }}}	t          |¦  «        dk    rQt          |d|	¦  «         
                    d¦  «        }
|                     |
d¬	¦  «        €|                     |
¦  «         Œj|D ]?}t          |||	¦  «        }|                     |d¬	¦  «        €|                     |¦  «         Œ@Œ­|S )
Nr   r–   r¯   r°   r±   rg   z\/Fr˜   )r    r—   Ú
isinstanceÚlistÚextendÚdownload_def_missing_filesÚgetrv   r¡   r«   r¨   r¦   ru   rª   )Údownload_defr²   ÚmissingÚone_defÚsource_foldersÚ
file_listsÚtarget_foldersr¾   r¶   r¿   Ú
rel_folderrK   Úrel_paths                r   rÄ   rÄ   Ù   sœ  € Ø0Ð0Ð0Ð0Ð0Ð0àÐØˆ	Ý�,¥Ñ%Ô%ð ØˆØ#ð 	@ð 	@ˆGØ�NŠNÕ5°gÑ>Ô>Ñ?Ô?Ð?Ð?ØˆØ!×%Ò%Ð&8¸"Ñ=Ô=€NØ×!Ò! *¨bÑ1Ô1€JØ!×%Ò%Ð&8Ñ9Ô9€NØÐØ˜¥# nÑ"5Ô"5Ñ5ˆØ€GÝ/2°>À:È~Ñ/^Ô/^ð 	)ð 	)Ñ+ˆ�u˜mÝˆu‰:Œ:˜Š?ˆ?Ý*¨=¸"¸mÑLÔL×SÒSÐTYÑZÔZˆJØ×Ò 
¸%ÐÑ@Ô@ÐHØ—’˜zÑ*Ô*Ð*ØØð 	)ð 	)ˆHÝ(¨¸À-ÑPÔPˆHØ�~Š~˜h°eˆ~Ñ<Ô<ÐDØ—’˜xÑ(Ô(Ð(øð	)ð €Nr   c                 ó.   — | �|r | d|¦  «         d S d S d S )NÚstatusr   )r    Ústatus_texts     r   Úsend_download_statusrÑ   ö   s3   € ØÐ ÐØˆ�˜;Ñ'Ô'Ð'Ð'Ð'ð ÐÐÐr   c                 ó6  — t          |¦  «        }t          |¦  «         | � t          t          | ¦  «        ¦  «        dk    rdS t	          ||¦  «         |€ddlm}  |t          ||¬¦  «        }t          | t          ¦  «        r| D ]
} |di |¤Ž Œn |di | ¤Ž dS )Nr   F)Úpartial©r+   rD   Tr   )
r   r   rv   rÄ   rÑ   r6   rÓ   r¼   rÁ   rÂ   )rÆ   r    rÐ   r+   rD   Úprocess_filesrÓ   rÈ   s           r   Úprocess_files_def_if_neededrÖ   û   sß   € Ý
˜sÑ
#Ô
#€CÝ˜SÑ!Ô!Ð!ØÐ�sÕ#=¸lÑ#KÔ#KÑLÔLÐPQÒQÐQØˆuÝ˜ ;Ñ/Ô/Ð/ØÐØ%Ð%Ð%Ð%Ð%Ð%Ø˜Õ 1°sÈ-ÐXÑXÔXˆÝ�,¥Ñ%Ô%ð &Ø#ð 	%ð 	%ˆGØˆMÐ$Ð$˜GÐ$Ð$Ð$Ð$ð	%ð 	ˆÐ%Ð%˜Ð%Ð%Ð%Øˆ4r   c                  ó"   — ddl m}   | ¦   «         S )Nr   ©Úquery_download_def)Úpreprocessing.roformer.assetsrÙ   rØ   s    r   Ú/query_audio_background_replacement_download_defrÛ     s#   € Ø@Ð@Ð@Ð@Ð@Ð@àÐÑÔÐr   ú7Downloading audio background replacement model files...c                 óB   — t          t          ¦   «         | |||¬¦  «        S )N©r    rÐ   r+   rÕ   )rÖ   rÛ   rÞ   s       r   Ú%download_audio_background_replacementrß     s>   € Ý&Õ'VÑ'XÔ'XÐckð  zEð  KNð  ^kð  lñ  lô  lð  lr   c                 óŠ   — t          | t          ¦  «        rt          di | ¤||dœ¤Ž d S | pg D ]}|�t          di |¤||dœ¤Ž Œd S )NrÔ   r   )rÁ   r¬   r¼   )Údownload_defsr+   rD   rÆ   s       r   Úprocess_download_defsrâ     s„   € Ý�-¥Ñ&Ô&ð ÝÐPÐP˜MÐP¨sÀ-ÐPÐPÐPÐPÐPØˆØ%Ð+¨ð Tð TˆØÐ#ÝÐSÐS ÐS°#À]ÐSÐSÐSÐSÐSøðTð Tr   c                 ó´  ‡‡‡— t          |¦  «        }t          }t          j        |d¬¦  «        j        Š||dœŠt          d„ ‰                     ¦   «         D ¦   «         ¦  «        s ˆfd„‰                     ¦   «         D ¦   «         Št          ‰¦  «        dk     �rt          j	        |¦  «        r|nt          |¦  «        j        }t          j        |¦  «        pt          j        |¦  «        }|                     dd¦  «                             d¦  «        Št!          ˆfd	„t#          ‰d
d…         ¦  «        D ¦   «         d
¦  «        }|r	d|› d|› d�nd|› d�}|t$          vrQt$                               |¦  «         d                     ˆfd„dD ¦   «         ¦  «        }	t+          d|› d|	› d�¦  «         t-          |¦  «          || |fi ‰¤Ž}
t-          |¦  «         |
S )z@Call the active downloader, including older plugin replacements.F)Úfollow_wrappedrÔ   c              3   óJ   K  — | ]}|j         t          j        j        k    V — Œd S r   )Úkindr4   Ú	ParameterÚVAR_KEYWORD)rN   Úps     r   ú	<genexpr>zdownload_url.<locals>.<genexpr>(  s/   è è € ÐTÐT¸1ˆqŒv�Ô*Ô6Ò6ÐTÐTÐTÐTÐTÐTr   c                 ód   •— i | ],\  }}|‰v ¯	‰|         j         t          j        j        k    ¯)||“Œ-S r   )ræ   r4   rç   ÚPOSITIONAL_ONLY)rN   rO   ÚvalueÚ
parameterss      €r   rP   z download_url.<locals>.<dictcomp>)  si   ø€ ð  Rð  Rð  R¡  eÀÈ
ÐARÐARÐWaÐbeÔWfÔWkÕovô  pAô  pQò  XQð  XQ�#�uð  XQð  XQð  XQr   é   ú\rm   c              3   ód   •K  — | ]*\  }}|                      ¦   «         d k    ¯‰|dz            V — Œ+dS )ÚpluginsrB   N)Úlower)rN   ÚiÚpartÚpartss      €r   rê   zdownload_url.<locals>.<genexpr>.  sB   øè è € ÐfÐf©¨¨4ÈDÏJÊJÉLÌLÐ\eÒLeÐLe�u˜Q ™U”|ÐLeÐLeÐLeÐLeÐfÐfr   NéÿÿÿÿzPlugin 'z' (rn   zDownload Replacement 'ú'z, c              3   ó$   •K  — | ]
}|‰v¯|V — Œd S r   r   rM   s     €r   rê   zdownload_url.<locals>.<genexpr>2  s.   øè è € Ð]Ð]¨È3ÐV\ÐK\ÐK\ ÐK\ÐK\ÐK\ÐK\Ð]Ð]r   zH[Downloads] Warning: Unable to Enable the Full Download Progress Bar as z Does Not Support z‚. Continuing Without These Arguments; Please Update the Plugin. Download Cancellation May Also Be Unavailable During the Transfer.)r   Údownload_filer4   r2   rî   ÚanyÚvaluesÚitemsrv   Ú	isroutineÚtypeÚ__call__ÚgetsourcefileÚgetfileÚreplaceÚsplitÚnextr­   Ú_download_compat_warningsÚaddr¥   r   r   )r@   rK   r+   rD   Ú
downloaderÚimplementationÚsourceÚpluginÚownerrÇ   Úresultr'   rî   rö   s              @@@r   Údownload_urlr  "  s6  øøø€ å
˜sÑ
#Ô
#€CÝ€JÝÔ" :¸eÐDÑDÔDÔO€JØ¨=Ð9Ð9€FÝÐTÐTÀ
×@QÒ@QÑ@SÔ@SÐTÑTÔTÑTÔTð Rð Rð  Rð  Rð  R¨v¯|ª|©~¬~ð  Rñ  Rô  RˆÝ
ˆ6�{„{�Q‚�Ý'.Ô'8¸Ñ'DÔ'DÐc˜˜Í$ÈzÑJZÔJZÔJcˆÝÔ& ~Ñ6Ô6ÐY½'¼/È.Ñ:YÔ:YˆØ—’˜t SÑ)Ô)×/Ò/°Ñ4Ô4ˆÝÐfÐfÐfÐfµ9¸UÀ3ÀBÀ3¼ZÑ3HÔ3HÐfÑfÔfÐhlÑmÔmˆØ39ÐaÐ/˜6Ð/Ð/ fÐ/Ð/Ð/Ð/Ð?aÐX^Ð?aÐ?aÐ?aˆØÕ1Ð1Ð1Ý%×)Ò)¨%Ñ0Ô0Ð0Ø—i’iÐ]Ð]Ð]Ð]Ð/GÐ]Ñ]Ô]Ñ]Ô]ˆGÝð  BÐ]bð  Bð  BÐv}ð  Bð  Bð  Bñ  Cô  Cð  CÝ˜SÑ!Ô!Ð!ØˆZ˜˜XÐ0Ð0¨Ð0Ð0€FÝ˜SÑ!Ô!Ð!Ø€Mr   c           	      óÞ  — ddl m} t          |¦  «        }t          |¦  «         |                      d¦  «        d         } t          t          j                             |¦  «        | ¦  «         |  	                    d¦  «        �rµd| v �r°t          j         
                    |¦  «        }| t          d¦  «        d …         } |                      d¦  «        }|d         }t          j                             |d         ¦  «        }t          j         
                    |d         ¦  «        }	t          |	¦  «        dk    r=t          ||t          |¦  «        dk    r|                     ¦   «         n|||¬¦  «         d S t          |¦  «        dk    r|                     ¦   «         n|}
t          j        |
d¬	¦  «         t          d
|
¬¦  «        5 }t          ||||	||¬¦  «         t          |¦  «         t!          j        t          j                             ||	|¦  «        |
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S |��’ddlm} t+          ¦   «          t-          |||¦  «        5  t/          t          j         
                    |¦  «        pdddd¬¦  «        5 }|j        }	 |                     | |t          j                             |¦  «        ¬¦  «         n7# t4          $ r* |                     ¦   «          t          j        |¦  «         ‚ w xY w	 d d d ¦  «         n# 1 swxY w Y   	 t          |¦  «         t          j        ||¦  «         t          j                             |¦  «        rt          j        |¦  «         n9# t          j                             |¦  «        rt          j        |¦  «         w w xY wd d d ¦  «         d S # 1 swxY w Y   d S ddlm }  || |tC          |¦  «        ¦  «         d S )Nr   r–   ú|zhttps://huggingface.co/z/resolve/main/r÷   )rJ   rK   r›   r+   rD   T)Úexist_okÚ_temp)rž   Údir)rJ   rK   r›   rQ   r+   rD   )Úfile_downloadú.Ú
_download_z.incompleteF)r  rž   ÚsuffixÚdelete)Údisplayed_filename)Úurlretrieve)"r    r—   r   r   r  rA   r£   r¤   Úbasenamer�   Údirnamerv   rW   Úget_download_locationÚmakedirsr   ÚshutilÚmover¥   r;   r  r   r	   r   r?   Úhttp_getÚBaseExceptionÚcloseÚremover  ÚexistsÚurllib.requestr  r’   )r@   rK   r+   rD   r²   Úbase_dirÚ	url_partsr®   r¹   rµ   ÚtgtÚtemp_dir_pathÚhfÚ	temp_fileÚ	temp_pathr  s                   r   rú   rú   :  sö  € Ø0Ð0Ð0Ð0Ð0Ð0å
˜sÑ
#Ô
#€CÝ˜SÑ!Ô!Ð!Ø
�)Š)�C‰.Œ.˜Ô
€CÝ•2”7×#Ò# HÑ-Ô-¨sÑ3Ô3Ð3Ø
‡~‚~Ð/Ñ0Ô0ñ 'CÐ5EÈÐ5LÑ5LÝ”7—?’? 8Ñ,Ô,ˆØ•#Ð/Ñ0Ô0Ð1Ð1Ô2ˆØ—I’IÐ.Ñ/Ô/ˆ	Ø˜1”ˆÝ”'×"Ò" 9¨R¤=Ñ1Ô1ˆÝ”w—’ y°¤}Ñ5Ô5ˆÝˆ|ÑÔ Ò!Ð!Ý °'ÕcfÐgoÑcpÔcpÐtuÒcuÐcuÀR×E]ÒE]ÑE_ÔE_ÐE_ð  |Dð  JMð  ]jð  kñ  kô  kð  kð  kð  kå03°H±´ÀÒ0BÐ0B�"×*Ò*Ñ,Ô,Ð,ÈˆCÝŒK˜ dÐ+Ñ+Ô+Ð+Ý#¨7¸Ð<Ñ<Ô<ð UÀÝ V°gÈÐbnÐtwð  HUð  Vñ  Vô  Vð  VÝ(¨Ñ-Ô-Ð-Ý”�BœGŸLšL¨¸ÀgÑNÔNÐPSÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Uð Uð 
‰Ø7Ð7Ð7Ð7Ð7Ð7å!Ñ#Ô#Ð#Ý˜c 8¨]Ñ;Ô;ð 	)ð 	)å#­¬¯ª¸Ñ(AÔ(AÐ(HÀSÐQ]Ðfsð  }Bð  Cñ  Cô  Cð ð  GPØ%œN�	ðØ—K’K  YÅ2Ä7×CSÒCSÐT\ÑC]ÔC]�KÑ^Ô^Ð^Ð^øÝ$ð ð ð Ø—O’OÑ%Ô%Ð%Ý”I˜iÑ(Ô(Ð(Øðøøøð _ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð)Ý(¨Ñ-Ô-Ð-Ý”
˜9 hÑ/Ô/Ð/å”7—>’> )Ñ,Ô,ð )Ý”I˜iÑ(Ô(Ð(øøõ ”7—>’> )Ñ,Ô,ð )Ý”I˜iÑ(Ô(Ð(Ð(ð)øøøð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð" 	/Ð.Ð.Ð.Ð.Ð.àˆ�C˜Õ#7¸Ñ#AÔ#AÑBÔBÐBÐBÐBsy   ÇAH+È+H/È2H/É 3O ÊLÊ5KËLË4LÌLÌ
O ÌL	ÌO ÌL	ÌO Ì"$M:Í4O Í:6N0Î0O Ï OÏOr   )NNNNNT)NN)NNNTN)NrÜ   NN)NT)+r4   r£   r  ry   ro   Útempfiler   r   Úurllib.parser   r   Úshared.utils.download_progressr   r   r	   r
   r   r   rV   r   r7   r=   rA   rW   rp   rq   rr   rs   rt   rŽ   r’   r¼   r«   rÄ   rÑ   rÖ   rÛ   rß   râ   Úsetr  r  rú   r   r   r   ú<module>r2     s¤  ðà €€€Ø Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nð  nðQð Qð Qð Qð Q�Iñ Qô Qð Qð 7C°lð ð ð ð ð8$ð $ð $ð{ð {ð {ð
 ¨D¸QÈ1ð Fð Fð Fð Fð Fð  €Ø€
ØÐ Ø€ØÐ ðTð Tð Tð Tðnð ð ðtð tð tð tð@Eð Eð Eð Eðð ð ð:(ð (ð (ð (ð
ð ð ð ð" ð  ð  ðlð lð lð lðTð Tð Tð Tð  ˜C™EœEÐ ðð ð ð ð0.Cð .Cð .Cð .Cð .Cð .Cr   