+
    –°³jÌ@  ã                   óä  € R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHt ^ RIHt ^RIHtHtHtHtHtHt ^R	IHt ^R
IHtHt ]
'       d   ^RIHt ]P>                  ! ] 4      t!]PD                  ! R4      t#Rt$RRRR/t% ! R R4      t&]R+R R ll4       t' ! R R]4      t( ! R R]4      t)R,R R llt*R R lt+R R lt,R R  lt-R! R" lt.R# R$ lt/R% R& lt0R' R( lt1R) R* lt2R# )-z.Git LFS related type definitions and utilitiesN)ÚIterable)Úceil)Úgetsize)ÚTYPE_CHECKINGÚBinaryIOÚ	TypedDict)Úunquote)Ú	constants)Úbuild_hf_headersÚfix_hf_endpoint_in_urlÚhf_raise_for_statusÚhttp_backoffÚloggingÚvalidate_hf_hub_args)ÚSliceFileObj)Úsha256Úsha_fileobj)ÚCommitOperationAddz^[0-9a-f]{40}$zlfs-multipart-uploadÚAcceptzapplication/vnd.git-lfs+jsonzContent-Typec                   ó  a € ] tR t^5t o RtRV 3R lR llt]V 3R lR l4       t]P                  V 3R lR l4       t]V 3R	 lR
 l4       t	V 3R lR lt
]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tRtV tR# )Ú
UploadInfoav  
Data structure holding required information to determine whether a blob
should be uploaded to the hub using the LFS protocol or the regular protocol.

The SHA256 of the blob is computed lazily: creating an `UploadInfo` from a local path only reads
the first 512 bytes of the file. The full file is read (and hashed) only if `sha256` is accessed
before it has been set. When a file is uploaded through the Xet protocol, the SHA256 is computed
during upload (single read pass) and set afterwards.

Args:
    size (`int`):
        Size in bytes of the blob
    sample (`bytes`):
        First 512 bytes of the blob
    sha256 (`bytes`, *optional*):
        SHA256 hash of the blob, if already known. Otherwise computed lazily from `source_path`.
    source_path (`str`, *optional*):
        Path to the local file the blob comes from. Required to lazily compute `sha256` if not provided.
Nc          	      óN   <€ V ^8„  d   QhRS[ RS[RS[R,          RS[R,          /# )é   ÚsizeÚsampler   NÚsource_path)ÚintÚbytesÚstr)ÚformatÚ__classdict__s   "€ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/huggingface_hub/lfs.pyÚ__annotate__ÚUploadInfo.__annotate__J   s;   ø€ ÷ (ñ (áð(ñ ð(ñ ˜•ð	(ñ
 ˜4•Zñ(ó    c                ó\   € Vf   Vf   \        R4      hWn        W n        W0n        W@n        R # )Nz2Either `sha256` or `source_path` must be provided.)Ú
ValueErrorr   r   Ú_sha256Ú_source_path)Úselfr   r   r   r   s   &&&&&r!   Ú__init__ÚUploadInfo.__init__J   s/   € ð Š>˜kÒ1ÜÐQÓRÐRØŒ	ØŒØŒØ'Ör$   c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úreturn©r   )r   r    s   "€r!   r"   r#   Y   s   ø€ ÷ ñ ™ñ r$   c                ó  € V P                   fT   V P                  f   Q h\        V P                  R4      ;_uu_ 4       p\        V4      V n         RRR4       V P                   # V P                   #   + '       g   i     T P                   # ; i)zZSHA256 of the blob. If not set yet, reads the whole file from `source_path` to compute it.NÚrb)r'   r(   Úopenr   )r)   Úfiles   & r!   r   ÚUploadInfo.sha256X   sl   € ð �<‰<ÒØ×$Ñ$Ò0Ð0Ð0Ü�d×'Ñ'¨×.Ô.°$Ü*¨4Ó0�”÷ /à�|‰|Ðˆt�|‰|Ð÷ /Ö.à�|‰|Ðús   ½A.Á.B		c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úvaluer.   Nr/   )r   r    s   "€r!   r"   r#   b   s   ø€ ÷ ñ ™Eð  dñ r$   c                ó   € Wn         R # )N©r'   )r)   r6   s   &&r!   r   r4   a   s   € àŽr$   c                ó    <€ V ^8„  d   QhRS[ /# r-   )Úbool)r   r    s   "€r!   r"   r#   f   s   ø€ ÷ (ñ (™4ñ (r$   c                ó   € V P                   RJ# )zVWhether the SHA256 is already known (accessing `sha256` will not trigger a file read).Nr8   )r)   s   &r!   Ú	is_hashedÚUploadInfo.is_hashede   s   € ð �|‰| 4Ð'Ð'r$   c                ó    <€ V ^8„  d   QhRS[ /# r-   ©r   )r   r    s   "€r!   r"   r#   j   s   ø€ ÷ =ñ =™#ñ =r$   c                ó|   € V P                   e   V P                   P                  4       MRpRV P                   RV R2# )Nz<not computed>zUploadInfo(size=z	, sha256=Ú))r'   Úhexr   )r)   Úshas   & r!   Ú__repr__ÚUploadInfo.__repr__j   s9   € Ø$(§L¡LÒ$<ˆd�l‰l×ÑÔ ÐBRˆØ! $§)¡) ¨I°c°U¸!Ð<Ð<r$   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úpathr?   )r   r    s   "€r!   r"   r#   o   s   ø€ ÷ ?ñ ?™Sñ ?r$   c                ó¾   € \        V4      p\        VR 4      ;_uu_ 4       pVP                  R4      R,          pRRR4       V ! VXVR7      #   + '       g   i     L; i)r1   é   ºNi   NN)r   r   r   )r   r2   Úpeek)ÚclsrG   r   r3   r   s   &&   r!   Ú	from_pathÚUploadInfo.from_pathn   sI   € ä�t‹}ˆÜ�$˜×Ô Ø—Y‘Y˜s“^ DÕ)ˆF÷ á˜ V¸Ô>Ð>÷ ×ús    AÁA	c                ó    <€ V ^8„  d   QhRS[ /# )r   Údatar/   )r   r    s   "€r!   r"   r#   v   s   ø€ ÷ Bñ B™eñ Br$   c                ój   € \        V4      P                  4       pV ! \        V4      VR ,          VR7      # )rJ   )r   r   r   )r   ÚdigestÚlen)rL   rP   rC   s   && r!   Ú
from_bytesÚUploadInfo.from_bytesu   s+   € ä�T‹l×!Ñ!Ó#ˆÙœ˜D›	¨$¨t­*¸SÔAÐAr$   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úfileobj)r   )r   r    s   "€r!   r"   r#   {   s   ø€ ÷ 9ñ 9¡8ñ 9r$   c                óî   € VP                  R 4      pVP                  ^ \        P                  4       \	        V4      pVP                  4       pVP                  ^ \        P                  4       V ! WCVR7      # )rI   )r   r   r   )ÚreadÚseekÚioÚSEEK_SETr   Útell)rL   rW   r   rC   r   s   &&   r!   Úfrom_fileobjÚUploadInfo.from_fileobjz   sV   € à—‘˜cÓ"ˆØ�‰�QœŸ™Ô$Ü˜'Ó"ˆØ�|‰|‹~ˆØ�‰�QœŸ™Ô$Ù˜°Ô8Ð8r$   )r'   r(   r   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r*   Úpropertyr   Úsetterr<   rD   ÚclassmethodrM   rT   r^   Ú__static_attributes__Ú__classdictcell__©r    s   @r!   r   r   5   sœ   ø‡ € ñ÷((ò (ð ÷ó ðð ‡]�]÷ó ðð ÷(ó ð(÷=ð =ð ÷?ó ð?ð ÷Bó ðBð ÷9ó ö9r$   r   c                ó~  € V ^8„  d   QhR\         \        ,          R\        R,          R\        R\        R\        R,          R\        R,          R\        \        \        3,          R,          R	\        \        ,          R,          R
\
        \        \        ,          \        \        ,          \        R,          3,          /	# )r   Úupload_infosÚtokenNÚ	repo_typeÚrepo_idÚrevisionÚendpointÚheadersÚ	transfersr.   )r   r   r   ÚdictÚlistÚtuple)r   s   "r!   r"   r"   …   s¬   € ÷ Xñ XÜœ:Õ&ðXä��:ðXô ðXô ð	Xô
 �D�jðXô �D�jðXô ”#”s�(�^˜dÕ"ðXô ”C�y˜4ÕðXô Œ4”�:”tœD•z¤3¨¥:Ð-Õ.ñXr$   c                óT  € Ve   TM\         P                  pRpV\         P                  9   d   \         P                  V,          pV RV V R2p	RRRVe   TMRR	.R
V  U
u. uF+  p
RV
P                  P	                  4       RV
P
                  /NK-  	  up
RR/pVe   R\        V4      /VR&   / \        C\        VR7      CT;'       g    / Cp\        RW–VR7      p\        V4       VP                  4       pVP                  R
R4      p\        V\        4      '       g   \        R4      hVP                  R4      p\        V\         4      '       d   TMRpV Uu. uF  pRV9  g   K  \#        V4      NK  	  upV Uu. uF  pRV9   g   K  \%        V4      NK  	  upV3# u up
i u upi u upi )aa  
Requests the LFS batch endpoint to retrieve upload instructions

Learn more: https://github.com/git-lfs/git-lfs/blob/main/docs/api/batch.md

Args:
    upload_infos (`Iterable` of `UploadInfo`):
        `UploadInfo` for the files that are being uploaded, typically obtained
        from `CommitOperationAdd.upload_info`
    token (`str` or `None`):
        An authentication token (see https://huggingface.co/settings/token).
        Pass `None` to fall back to the local cached token (or no token if unauthenticated).
    repo_type (`str`):
        Type of the repo to upload to: `"model"`, `"dataset"` or `"space"`.
    repo_id (`str`):
        A namespace (user or an organization) and a repo name separated
        by a `/`.
    revision (`str`, *optional*):
        The git revision to upload to.
    endpoint (`str`, *optional*):
        The Hub endpoint to send the request to. Defaults to the value of `HF_ENDPOINT`.
    headers (`dict`, *optional*):
        Additional headers to include in the request
    transfers (`list`, *optional*):
        List of transfer methods to use. Defaults to ["basic", "multipart"].

Returns:
    `LfsBatchInfo`: 3-tuple:
        - First element is the list of upload instructions from the server
        - Second element is a list of errors, if any
        - Third element is the chosen transfer adapter if provided by the server (e.g. "basic", "multipart", "xet")

Raises:
    [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
        If an argument is invalid or the server response is malformed.
    [`HfHubHTTPError`]
        If the server returned an error.
NÚ Ú/z.git/info/lfs/objects/batchÚ	operationÚuploadrs   ÚbasicÚ	multipartÚobjectsÚoidr   Ú	hash_algor   ÚnameÚref)rm   ÚPOST©rr   ÚjsonzMalformed response from serverÚtransferÚerror)r	   ÚENDPOINTÚREPO_TYPES_URL_PREFIXESr   rB   r   r   ÚLFS_HEADERSr
   r   r   r…   ÚgetÚ
isinstanceru   r&   r   Ú_validate_batch_actionsÚ_validate_batch_error)rl   rm   rn   ro   rp   rq   rr   rs   Ú
url_prefixÚ	batch_urlr{   ÚpayloadÚrespÚ
batch_infor~   Úchosen_transferÚobjs   &&&&&&&&         r!   Úpost_lfs_batch_infor–   „   sÊ  € ðb $Ò/‰x´Y×5GÑ5G€HØ€JØ”I×5Ñ5Ô5Ü×6Ñ6°yÕAˆ
Ø�*˜A˜j˜\¨'¨Ð2MÐN€Ià�XØ )Ò"7‘Y¸gÀ{Ð=SØñ
 'ó
ñ
 '�ð �v—}‘}×(Ñ(Ó*Ø˜Ÿ™óñ 'ñ
ð 	�Xð€Gð ÒØ ¤'¨(Ó"3Ð4ˆ�‰ðÜ
ðä
 Ô
'ðð �=ˆ=�bð€Gô
 ˜ 	ÀÔI€DÜ˜ÔØ—‘“€Jà�n‰n˜Y¨Ó-€GÜ�gœt×$Ò$ÜÐ9Ó:Ð:à —n‘n ZÓ0€OÜ)3°OÄS×)IÒ)I‘oÈt€Oñ 29ÓO±¨#¸GÈ3Ñ<NÔ	%Ô	  Ö	%±ÑOÙ/6ÓI©w¨¸'ÀS¹.Ô	#Ô	˜sÖ	#©wÑIØðð ùò9
ùò: 	PùÚIs   Á 1FÅ	F Å$F Å9	F%ÆF%c                   ó,   a € ] tR t^àt o V 3R ltRtV tR# )ÚPayloadPartTc                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r   Ú
partNumberÚetag)r   r   )r   r    s   "€r!   r"   ÚPayloadPartT.__annotate__à   s   ø‡ ‚ Ù�Oñ á
�Iò r$   © N)r`   ra   rb   rc   Ú__annotate_func__rh   ri   rj   s   @r!   r˜   r˜   à   s   ø‡ ‡ „ r$   r˜   c                   ó0   a € ] tR t^åt o RtV 3R ltRtV tR# )ÚCompletionPayloadTz?Payload that will be sent to the Hub when uploading multi-part.c                óB   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   # )r   r   Úparts)r   ru   r˜   )r   r    s   "€r!   r"   ÚCompletionPayloadT.__annotate__å   s#   ø‡ ‚ ñ 
�Hñ ñ ‘ÕÑò	 r$   r�   N)r`   ra   rb   rc   rd   rž   rh   ri   rj   s   @r!   r    r    å   s   ø‡ € ÙI÷ ƒ r$   r    c                óœ   € V ^8„  d   QhRRR\         R\        R,          R\         \        \        3,          R,          R\        R,          RR/# )	r   rz   r   Úlfs_batch_actionrm   Nrr   rq   r.   )rt   r   )r   s   "r!   r"   r"   ì   si   € ÷ JAñ JAØ#ðJAäðJAô ��:ðJAô ”#”s�(�^˜dÕ"ð	JAô
 �D�jðJAð 
ñJAr$   c           	     ób  € \        V4       VP                  R4      pVf&   \        P                  RV P                   R24       R# VR,          R,          p\        V4       VR,          P                  R4      pVe   \        V4       VP                  R/ 4      pVP                  R4      p	\        VR	,          VR
7      p
V	e    \        V	4      p	\        YYšR7       M\        W
R7       Ve}   \        V4       \        VR	,          V4      p\        RV\        W#R7      RV P                  P                  P!                  4       RV P                  P"                  /R7      p\%        V4       \        P                  V P                   R24       R#   \        \        3 d    \        RT	 R24      hi ; i)ae  
Handles uploading a given object to the Hub with the LFS protocol.

Can be a No-op if the content of the file is already present on the hub large file storage.

Args:
    operation (`CommitOperationAdd`):
        The add operation triggering this upload.
    lfs_batch_action (`dict`):
        Upload instructions from the LFS batch endpoint for this object. See [`~utils.lfs.post_lfs_batch_info`] for
        more details.
    token (`str`, *optional*):
        An authentication token (see https://huggingface.co/settings/token). Used to call the
        optional LFS verify step at the end of the upload. If `None`, falls back to the local
        cached token.
    headers (`dict`, *optional*):
        Headers to include in the request, including authentication and user agent headers.
    endpoint (`str`, *optional*):
        The Hub endpoint to send the request to. Defaults to the value of `HF_ENDPOINT`.

Raises:
    [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
        If `lfs_batch_action` is improperly formatted
    [`HfHubHTTPError`]
        If the upload resulted in an error
ÚactionsNzContent of file z. is already present upstream - skipping uploadr{   ÚverifyÚheaderÚ
chunk_sizeÚhref)rq   zTMalformed response from LFS batch endpoint: `chunk_size` should be an integer. Got 'z'.)rz   r©   rª   Ú
upload_url)rz   r¬   rƒ   )rm   rr   r   r   r„   z: Upload successful)r�   r‹   ÚloggerÚdebugÚpath_in_repoÚ_validate_lfs_actionr   r   r&   Ú	TypeErrorÚ_upload_multi_partÚ_upload_single_partr   r
   Úupload_infor   rB   r   r   )rz   r¥   rm   rr   rq   r§   Úupload_actionÚverify_actionr©   rª   r¬   Ú
verify_urlÚverify_resps   &&&&&        r!   Ú
lfs_uploadr¹   ì   s˜  € ôD Ð,Ô-Ø×"Ñ" 9Ó-€GØ‚ä�‰Ð'¨	×(>Ñ(>Ð'?Ð?mÐnÔoÙð % YÕ/°Õ9€MÜ˜Ô'Ø$ YÕ/×3Ñ3°HÓ=€MØÒ Ü˜]Ô+ð ×Ñ˜x¨Ó,€FØ—‘˜LÓ)€JÜ'¨°fÕ(=ÈÔQ€JØÒð	Ü˜Z›ˆJô
 	 YÈ*Ölä iÕGð Ò Ü˜]Ô+Ü+¨M¸&Õ,AÀ8ÓLˆ
Ü"ØØÜ$¨5ÔBØ˜×.Ñ.×5Ñ5×9Ñ9Ó;¸VÀY×EZÑEZ×E_ÑE_Ð`ô	
ˆô 	˜KÔ(Ü
‡L�L�I×*Ñ*Ð+Ð+>Ð?Ö@øô' œIÐ&ô 	ÜØfÐgqÐfrÐrtÐuóð ð	ús   ÃF Æ!F.c                ó$   € V ^8„  d   QhR\         /# )r   Ú
lfs_action©rt   )r   s   "r!   r"   r"   9  s   € ÷ ñ ¤Tñ r$   c                óÖ   € \        V P                  R4      \        4      '       d9   V P                  R4      e1   \        V P                  R4      \        4      '       g   \	        R4      hV # )ú.validates response from the LFS batch endpointr«   r©   z"lfs_action is improperly formatted)rŒ   r‹   r   rt   r&   )r»   s   &r!   r°   r°   9  sQ   € ô 	�:—>‘> &Ó)¬3×/Ò/Ø�^‰^˜HÓ%Ò-´¸J¿N¹NÈ8Ó<TÔVZ×1[Ò1[äÐ=Ó>Ð>ØÐr$   c                ó$   € V ^8„  d   QhR\         /# )r   Úlfs_batch_actionsr¼   )r   s   "r!   r"   r"   C  s   € ÷ ñ ¬tñ r$   c                óp  € \        V P                  R4      \        4      '       d&   \        V P                  R4      \        4      '       g   \	        R4      hV P                  R/ 4      P                  R4      pV P                  R/ 4      P                  R4      pVe   \        V4       Ve   \        V4       V # )r¾   r   r   z)lfs_batch_actions is improperly formattedr§   r{   r¨   )rŒ   r‹   r   r   r&   r°   )rÀ   rµ   r¶   s   &  r!   r�   r�   C  s�   € äÐ(×,Ñ,¨UÓ3´S×9Ò9¼jÐIZ×I^ÑI^Ð_eÓIfÔhk×>lÒ>lÜÐDÓEÐEà%×)Ñ)¨)°RÓ8×<Ñ<¸XÓF€MØ%×)Ñ)¨)°RÓ8×<Ñ<¸XÓF€MØÒ Ü˜]Ô+ØÒ Ü˜]Ô+ØÐr$   c                ó$   € V ^8„  d   QhR\         /# )r   Úlfs_batch_errorr¼   )r   s   "r!   r"   r"   Q  s   € ÷ ñ ¬4ñ r$   c                ó¨  € \        V P                  R4      \        4      '       d&   \        V P                  R4      \        4      '       g   \	        R4      hV P                  R4      p\        V\
        4      '       dK   \        VP                  R4      \        4      '       d&   \        VP                  R4      \        4      '       g   \	        R4      hV # )r¾   r   r   z'lfs_batch_error is improperly formattedr‡   ÚmessageÚcode)rŒ   r‹   r   r   r&   rt   )rÃ   Ú
error_infos   & r!   rŽ   rŽ   Q  sš   € ä�×*Ñ*¨5Ó1´3×7Ò7¼JÀ×GZÑGZÐ[aÓGbÔdg×<hÒ<hÜÐBÓCÐCØ ×$Ñ$ WÓ-€Jä�:œt×$Ò$Ü�z—~‘~ iÓ0´#×6Ò6Ü�z—~‘~ fÓ-¬s×3Ò3äÐBÓCÐCØÐr$   c                ó,   € V ^8„  d   QhRRR\         RR/# )r   rz   r   r¬   r.   Nr?   )r   s   "r!   r"   r"   _  s"   € ÷ &ñ &Ð#7ð &ÄSð &ÈTñ &r$   c                ó¤   € V P                  RR7      ;_uu_ 4       p\        RWR7      p\        V4       RRR4       R#   + '       g   i     R# ; i)a#  
Uploads `fileobj` as a single PUT HTTP request (basic LFS transfer protocol)

Args:
    upload_url (`str`):
        The URL to PUT the file to.
    fileobj:
        The file-like object holding the data to upload.

Raises:
    [`HfHubHTTPError`]
        If the upload resulted in an error.
T©Ú	with_tqdmÚPUT©rP   N)Úas_filer   r   )rz   r¬   rW   Úresponses   &&  r!   r³   r³   _  s=   € ð 
×	Ñ	 TÐ	×	*Ô	*¨gä  zÔ@ˆÜ˜HÔ%÷ 
+×	*×	*Ò	*ús	   ›>¾A	c          
      óD   € V ^8„  d   QhRRR\         R\        R\        RR/# )r   rz   r   r©   rª   r¬   r.   N)rt   r   r   )r   s   "r!   r"   r"   s  s3   € ÷ (ñ (Ð"6ð (Äð (ÔRUð (Ôcfð (Ðkoñ (r$   c           	     óà   € \        WP                  VR7      p\        WVR7      p\        RV\	        WPP                  P
                  P                  4       4      \        R7      p\        V4       R# )z8
Uploads file using HF multipart LFS transfer protocol.
)r©   r´   rª   )rz   Úsorted_parts_urlsrª   rƒ   )r…   rr   N)	Ú_get_sorted_parts_urlsr´   Ú_upload_parts_iterativelyr   Ú_get_completion_payloadr   rB   rŠ   r   )rz   r©   rª   r¬   rÒ   Úresponse_headersÚcompletion_ress   &&&&   r!   r²   r²   s  sg   € ô
 /°f×J_ÑJ_ÐlvÔwÐô 1ØÈZôÐô "ØØÜ$Ð%5×7LÑ7L×7SÑ7S×7WÑ7WÓ7YÓZÜô	€Nô ˜Ö'r$   c          	      ó^   € V ^8„  d   QhR\         R\        R\        R\        \        ,          /# )r   r©   r´   rª   r.   )rt   r   r   ru   r   )r   s   "r!   r"   r"   Š  s/   € ÷ #ñ #¤4ð #´jð #Ìcð #ÔVZÔ[^ÕV_ñ #r$   c           
      ó~  € \        V P                  4        UUu. uF=  w  r4VP                  4       '       g   K  \        V4      ^ 8”  g   K/  \	        V^
4      V3NK?  	  uppR R7       UUu. uF  w  rTVNK	  	  ppp\        V4      pV\        VP                  V,          4      8w  d   \        R4      hV# u uppi u uppi )é    c                 ó   € V ^ ,          # )rÚ   r�   )Úts   &r!   Ú<lambda>Ú(_get_sorted_parts_urls.<locals>.<lambda>“  s   € ˜!˜Až$r$   )Úkeyz0Invalid server response to upload large LFS file)ÚsortedÚitemsÚisdigitrS   r   r   r   r&   )r©   r´   rª   Úpart_numr¬   Ú_Úsorted_part_upload_urlsÚ	num_partss   &&&     r!   rÓ   rÓ   Š  sÆ   € ô $ð -3¯L©L¬Nôá,:Ñ(�HØ×#Ñ#×%ô 0ä*-¨h«-¸!Ñ*;ô 0”�X˜rÓ" JÓ/Ù,:òñ
 õ
ô
ñ
‰MˆAó 	ñ
ð ñ 
ô Ð+Ó,€IØ”D˜×)Ñ)¨JÕ6Ó7Ô7ÜÐKÓLÐLØ"Ð"ùóùó
s   ™B3
¸B3
Á
B3
Á*B9c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r   rÖ   r   r.   )ru   rt   r   r    )r   s   "r!   r"   r"   œ  s&   € ÷ (ñ (¬d´4­jð (¼sð (ÔGYñ (r$   c                 óÚ   € . p\        V 4       FU  w  r4VP                  R 4      pVe   VR8X  d   \        RV RV^,            24      hVP                  RV^,           R V/4       KW  	  RVRV/# )r›   rx   zInvalid etag (`z`) returned for part rš   r   r¢   )Ú	enumerater‹   r&   Úappend)rÖ   r   r¢   Úpart_numberr©   r›   s   &&    r!   rÕ   rÕ   œ  s‚   € Ø "€EÜ(Ð)9Ö:ÑˆØ�z‰z˜&Ó!ˆØŠ<˜4 2œ:Ü˜¨t¨fÐ4IÈ+ÐXYÍ/ÐIZÐ[Ó\Ð\Ø�‰à˜k¨A�oØ˜ðö	
ñ	  ;ð �3˜ Ð'Ð'r$   c          	      ól   € V ^8„  d   QhRRR\         \        ,          R\        R\         \        ,          /# )r   rz   r   rÒ   rª   r.   )ru   r   r   rt   )r   s   "r!   r"   r"   «  s4   € ÷ ñ Ø#ðÜ8<¼S½	ðÜORðä	Œ$…Zñr$   c                 óx  € . pV P                  R R7      ;_uu_ 4       p\        V4       F]  w  rV\        VW%,          VR7      ;_uu_ 4       p\        RWgR7      p\	        V4       VP                  VP                  4       RRR4       K_  	  RRR4       V#   + '       g   i     K|  ; i  + '       g   i     T# ; i)TrÊ   )Ú	seek_fromÚ
read_limitrÌ   rÍ   N)rÎ   ré   r   r   r   rê   rr   )	rz   rÒ   rª   rr   rW   Úpart_idxÚpart_upload_urlÚfileobj_sliceÚpart_upload_ress	   &&&      r!   rÔ   rÔ   «  s­   € ð €GØ	×	Ñ	 TÐ	×	*Ô	*¨gÜ)2Ð3DÖ)EÑ%ˆHÜØØ$Õ/Ø%÷õ ð ä".¨u°oÔ"Z�Ü# OÔ4Ø—‘˜×6Ñ6Ô7÷ñ ñ *F÷ 
+ð €N÷÷ ð ú÷ 
+Ö	*ð €Nús#   �-B(Á
4BÁ>B(ÂB%Â	B(Â(B9	)NNNN)NNN)3rd   r[   ÚreÚcollections.abcr   Úmathr   Úos.pathr   Útypingr   r   r   Úurllib.parser   Úhuggingface_hubr	   Úutilsr
   r   r   r   r   r   Ú
utils._lfsr   Ú	utils.shar   r   Ú_commit_apir   Ú
get_loggerr`   r­   ÚcompileÚ	OID_REGEXÚLFS_MULTIPART_UPLOAD_COMMANDrŠ   r   r–   r˜   r    r¹   r°   r�   rŽ   r³   r²   rÓ   rÕ   rÔ   r�   r$   r!   Ú<module>r     så   ðñ 5ã 	Û 	Ý $Ý Ý ß 5Ñ 5Ý  å %÷÷ õ %ß *÷ Ý/à	×	Ò	˜HÓ	%€à�JŠJÐ(Ó)€	à5Ð ð Ð,ØÐ2ð€÷L9ñ L9ð^ öXó ðXôv�9ô ô
˜ô ÷JAõZõõõ&õ((õ.#õ$(÷r$   