+
    –°³jœ‘  ã                   óR  a € R= ta0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHtHt ^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtH t H!t! ^ R
I"H#t# ^ RI$t$^ RI$H%t% ^ RI&H't'H(t( ^ RI)H*t* ^ RI+H,t,H-t- ^ RI.H/t/H0t0H1t1H2t2H3t3 ^ RI4H5t5H6t6H7t7 ^ RI8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@ ^ RIAHBtB ^ RICHDtDHEtEHFtF ^ RIGHHtH ^ RIIHJtJ . R>OtKRtL] ^ k RtM] ^k ] ! R R4      4       tN] ! R R 4      4       tO ! R! R]4      tPR"tQR# R$ ltR ! R% R&]4      tS ! R' R(]S4      tT ! R) R*]S4      tU ! R+ R,4      tVR- R. ltWR/ R0 ltXR1 R2 ltYR3 R4 ltZ ! R5 R]4      t[ ! R6 R][4      t\ ! R7 R8]E4      t] ! R9 R:4      t^ ! R; R]D4      t_ ! R< R]]]B4      t`R# )?é    N)ÚABCÚabstractmethod)ÚCallableÚ	GeneratorÚIterableÚIteratorÚSequence)Úcontextmanager)Ú	dataclass)ÚEnum)ÚUnsupportedOperation)ÚPath)ÚAnyÚcastÚFinalÚIO)ÚBuffer)ÚTensor)Ú_get_available_device_typeÚ_get_device_module)Únarrow_tensor_by_index)ÚExtensionRegistryÚStreamTransformExtension)ÚCUSTOM_METADATA_KEYÚDCP_VERSION_KEYÚ
FORMAT_KEYÚFORMAT_VALUEÚHF_DCP_VERSION)ÚMetadataÚSTATE_DICT_TYPEÚStorageMeta)ÚLoadItemTypeÚLoadPlanÚLoadPlannerÚReadItemÚSavePlanÚSavePlannerÚ	WriteItemÚWriteItemType)ÚBlockingAsyncStager)ÚStorageReaderÚStorageWriterÚWriteResult)Ú_create_file_view)ÚFutureÚFileSystemWriterÚFileSystemReaderÚ
FileSystemÚFileSystemBaseÚSerializationFormatz	.metadataz1.0.0c                   ó:   a € ] tR t^Jt o RtRtR tV 3R ltRtV t	R# )Ú_StorageInfoz#This is the per entry storage info.Nc                óv   € V P                   P                  4        UUu/ uF  w  rVf   K  WbK  	  upp# u uppi ©N)Ú__dict__Úitems)ÚselfÚkÚvs   &  Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/checkpoint/filesystem.pyÚ__getstate__Ú_StorageInfo.__getstate__S   s1   € Ø!%§¡×!4Ñ!4Ô!6ÔHÑ!6™˜¸!”�’Ñ!6ÒHÐHùÓHs   ž5«5c                óh   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[S[ ,          R,          ;R&   # )é   Úrelative_pathÚoffsetÚlengthNÚtransform_descriptors)ÚstrÚintr	   )ÚformatÚ__classdict__s   "€r>   Ú__annotate__Ú_StorageInfo.__annotate__J   s@   ø‡ ‚ ñ Ññ	 ñ
 �Kñ ñ �Kñ ñ $¡C�=¨4Õ/Ñ6ò ó    © )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rF   r?   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rJ   s   @r>   r6   r6   J   s   ø‡ € á-ð
 37ÐòI÷ ƒ rM   r6   c                   ó,   a € ] tR t^Wt o V 3R ltRtV tR# )Ú_StoragePrefixc                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rB   Úprefix©rG   )rI   rJ   s   "€r>   rK   Ú_StoragePrefix.__annotate__W   s   ø‡ ‚ á�Kò rM   rN   N)rO   rP   rQ   rR   rT   rU   rV   rW   s   @r>   rY   rY   W   s   ø‡ ‡ „ rM   rY   c                   ó   € ] tR t^\tRtRtRtR# )r4   Ú
torch_saveÚsafetensorsrN   N)rO   rP   rQ   rR   Ú
TORCH_SAVEÚSAFETENSORSrU   rN   rM   r>   r4   r4   \   s   † Ø€JØ„KrM   z.distcpc                ó$   € V ^8„  d   QhR\         /# ©rB   Úreturnr\   )rI   s   "r>   rK   rK   d   s   € ÷ ñ œñ rM   c                  ó>   € \        \        P                  ! 4       4      # r8   )rG   ÚuuidÚuuid4rN   rM   r>   Ú_generate_uuidri   d   s   € ÜŒt�zŠz‹|ÓÐrM   c                   ót   a € ] tR t^ht o ]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# )	Ú_TensorLoaderc                ó*   <€ V ^8„  d   QhRS[ RS[RR/# ©rB   ÚsizeÚobjre   N©rH   Úobject)rI   rJ   s   "€r>   rK   Ú_TensorLoader.__annotate__j   s"   ø€ ÷ ñ ™ð ¡&ð ¨Tñ rM   c                ó   € R # r8   rN   ©r;   rn   ro   s   &&&r>   ÚaddÚ_TensorLoader.addi   ó   € árM   c                ó   <€ V ^8„  d   QhRR/# ©rB   re   NrN   )rI   rJ   s   "€r>   rK   rr   n   ó   ø€ ÷ ñ ˜tñ rM   c                ó   € R # r8   rN   ©r;   s   &r>   Ústart_loadingÚ_TensorLoader.start_loadingm   rw   rM   c                óZ   <€ V ^8„  d   QhRS[ S[S[P                  S[3,          ,          /# rd   ©r   ÚtupleÚtorchr   rq   )rI   rJ   s   "€r>   rK   rr   r   s'   ø€ ÷ ñ ™¡¡u§|¡|±VÐ';Õ!<Õ=ñ rM   c                ó   € R # r8   rN   r|   s   &r>   ÚvaluesÚ_TensorLoader.valuesq   rw   rM   rN   N)
rO   rP   rQ   rR   r   ru   r}   r„   rU   rV   rW   s   @r>   rk   rk   h   s?   ø‡ € Ø÷ó ðð ÷ó ðð ÷ó örM   rk   c                   óh   a € ] tR t^vt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR	tV t	R
# )Ú_SerialCpuLoaderc                ó$   <€ V ^8„  d   QhRS[ RR/# )rB   Úresolve_funre   N)r   )rI   rJ   s   "€r>   rK   Ú_SerialCpuLoader.__annotate__w   s   ø€ ÷ 2ñ 2¡Hð 2°ñ 2rM   c                ó    € Wn         . V n        R # r8   )r‰   r:   )r;   r‰   s   &&r>   Ú__init__Ú_SerialCpuLoader.__init__w   s   € Ø&ÔØ/1ˆŽ
rM   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# rm   rp   )rI   rJ   s   "€r>   rK   rŠ   {   s"   ø€ ÷ 'ñ '™ð '¡&ð '¨Tñ 'rM   c                ó>   € V P                   P                  W34       R # r8   )r:   Úappendrt   s   &&&r>   ru   Ú_SerialCpuLoader.add{   s   € Ø�
‰
×Ñ˜4˜+Ö&rM   c                ó   <€ V ^8„  d   QhRR/# ry   rN   )rI   rJ   s   "€r>   rK   rŠ   ~   rz   rM   c                ó   € R # r8   rN   r|   s   &r>   r}   Ú_SerialCpuLoader.start_loading~   s   € ÙrM   c                óZ   <€ V ^8„  d   QhRS[ S[S[P                  S[3,          ,          /# rd   r€   )rI   rJ   s   "€r>   rK   rŠ   �   s'   ø€ ÷ 
ñ 
™¡¡u§|¡|±VÐ';Õ!<Õ=ñ 
rM   c              #  ó  "  € V P                    Fw  w  rV P                  V4      P                  4       pVP                  4       pVP	                  4       P                  4       VP                  8w  d   VP                  4       pVV3x € Ky  	  R # 5ir8   )r:   r‰   ÚdetachÚcpuÚuntyped_storagern   ÚnbytesÚclone©r;   Ú_ro   Útensors   &   r>   r„   Ú_SerialCpuLoader.values�   sr   é € Ø—j”j‰FˆAØ×%Ñ% cÓ*×1Ñ1Ó3ˆFØ—Z‘Z“\ˆFØ×%Ñ%Ó'×,Ñ,Ó.°&·-±-Ô?àŸ™›�àØðô ó !ùs   ‚B
B)r:   r‰   N)
rO   rP   rQ   rR   rŒ   ru   r}   r„   rU   rV   rW   s   @r>   r‡   r‡   v   s-   ø‡ € ÷2ð 2÷'ð '÷ð ÷
ö 
rM   r‡   c                   ó¾   a € ] tR t^Žt o RV 3R lR llt]V 3R lR l4       tV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltRtV tR# )Ú_OverlappingCpuLoaderNc                óR   <€ V ^8„  d   QhRS[ RS[P                  R,          RS[RR/# )rB   r‰   ÚstreamNÚinflight_threshholdre   )r   r‚   ÚStreamrH   )rI   rJ   s   "€r>   rK   Ú"_OverlappingCpuLoader.__annotate__�   sB   ø€ ÷ Iñ IáðIñ —‘˜tÕ#ðIñ !ð	Ið
 
ñIrM   c                óV  € Wn         . V n        W0n        ^ V n        \        P
                  ! 4       V n        ^ V n        RV n        V'       d   VP                  M	\        4       V n	        \        V P                  4      V n        \        \        P                  P                   T;'       g    V P                  P#                  4       4      V n        V P$                  V P                  P#                  4       8w  d6   V P$                  P'                  V P                  P#                  4       4       R# R# )r   FN)r‰   r:   r¤   Úin_flight_dataÚcollectionsÚdequeÚcurrent_itemsÚidxÚstartedÚdevice_typer   r   Údevice_moduler   r‚   Úcudar¥   Úcurrent_streamr£   Úwait_stream)r;   r‰   r£   r¤   s   &&&&r>   rŒ   Ú_OverlappingCpuLoader.__init__�   sá   € ð 'ÔØ/1ˆŒ
Ø#6Ô ØˆÔÜ0;×0AÒ0AÓ0CˆÔØˆŒØˆŒç"(ˆF×ÒÔ.HÓ.Jð 	Ôô 0°×0@Ñ0@ÓAˆÔÜÜ�J‰J×Ñ˜v×LÐL¨×);Ñ);×)JÑ)JÓ)Ló
ˆŒð �;‰;˜$×,Ñ,×;Ñ;Ó=Ô=Ø�K‰K×#Ñ# D×$6Ñ$6×$EÑ$EÓ$GÖHñ >rM   c                ó    <€ V ^8„  d   QhRS[ /# rd   ©Úbool)rI   rJ   s   "€r>   rK   r¦   §   s   ø€ ÷ +ñ +‘tñ +rM   c                óF   € V P                   \        V P                  4      8¬  # r8   )r¬   Úlenr:   r|   s   &r>   Ú_doneÚ_OverlappingCpuLoader._done¦   s   € à�x‰xœ3˜tŸz™z›?Ñ*Ð*rM   c                óZ   <€ V ^8„  d   QhRS[ S[S[P                  S[3,          ,          /# rd   )Úlistr�   r‚   r   rq   )rI   rJ   s   "€r>   rK   r¦   ª   s'   ø€ ÷ ñ ™™U¡5§<¡<±Ð#7Õ8Õ9ñ rM   c                ó˜  € . pV P                   V P                  8¼  d   V P                  P                  4        V P                   V P                  8¼  dx   V P                  P                  4       pV ;P                   V^ ,          P                  4       V^ ,          P                  4       ,          ,          un         VP                  V4       K’  V# )r   )	r¨   r¤   r£   Úsynchronizer«   ÚpopleftÚnumelÚelement_sizer�   )r;   ÚdrainedÚvals   &  r>   Ú_drainÚ_OverlappingCpuLoader._drainª   s‘   € ØˆØ×Ñ $×":Ñ":Ô:Ø�K‰K×#Ñ#Ô%Ø×!Ñ! T×%=Ñ%=Ô=Ø×$Ñ$×,Ñ,Ó.ˆCØ×Ò 3 q¥6§<¡<£>°C¸µF×4GÑ4GÓ4IÕ#IÕIÕØ�N‰N˜3ÖØˆrM   c                ó   <€ V ^8„  d   QhRR/# ry   rN   )rI   rJ   s   "€r>   rK   r¦   ´   s   ø€ ÷ Nñ N˜ñ NrM   c                ó¾  € V P                   P                  V P                  4      ;_uu_ 4        V P                  '       Eg€   V P                  V P                  8  Edd   V P
                  V P                  ,          w  rV ;P                  ^,          un        V P                  V4      P                  4       pVP                  P                  V P                  8X  d   VP                  RRR7      pMwVP                  \        P                  ! R4      8X  dS   VP                  4       P                  4       VP!                  4       VP"                  ,          8w  d   VP%                  4       pV P&                  P)                  VV34       V ;P                  VP!                  4       VP+                  4       ,          ,          un        EK’  RRR4       R#   + '       g   i     R# ; i)é   r˜   T)ÚdeviceÚnon_blockingN)r¯   r£   r¹   r¨   r¤   r:   r¬   r‰   r—   rÉ   Útyper®   Útor‚   r™   rn   rÀ   Úitemsizer›   r«   r�   rÁ   rœ   s   &   r>   Ú_refillÚ_OverlappingCpuLoader._refill´   sC  € Ø×Ñ×&Ñ& t§{¡{×3Õ3Ø—j—j‘j T×%8Ñ%8¸4×;SÑ;SÕ%SØŸ™ D§H¡HÕ-‘�Ø—’˜A••Ø×)Ñ)¨#Ó.×5Ñ5Ó7�Ø—=‘=×%Ñ%¨×)9Ñ)9Ô9Ø#ŸY™Y¨eÀ$˜YÓG‘FØ—]‘]¤e§l¢l°5Ó&9Ô9à×.Ñ.Ó0×5Ñ5Ó7Ø!Ÿ<™<›>¨F¯O©OÕ;ô<ð "(§¡£˜à×"Ñ"×)Ñ)àØðôð ×#Ò# v§|¡|£~¸×8KÑ8KÓ8MÕ'MÕM×#Ð#÷+ 4×3×3Ò3ús   ®GÁE?GÇG	c                óZ   <€ V ^8„  d   QhRS[ S[S[P                  S[3,          ,          /# rd   )r   r�   r‚   r   rq   )rI   rJ   s   "€r>   rK   r¦   Ì   s'   ø€ ÷ "ñ "™¡%©¯©±fÐ(<Õ"=Õ>ñ "rM   c                ó¼   € V P                   '       g   \        R 4      h\        V P                  4      ^ 8”  d   V P                  P                  4        V P                  # )z._finish called before all items were processed)r¹   ÚAssertionErrorr¸   r«   r£   r¾   r|   s   &r>   Ú_finishÚ_OverlappingCpuLoader._finishÌ   sF   € Ø�z�zˆzÜ Ð!QÓRÐRÜˆt×!Ñ!Ó" QÔ&Ø�K‰K×#Ñ#Ô%Ø×!Ñ!Ð!rM   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# rm   rp   )rI   rJ   s   "€r>   rK   r¦   Ó   s"   ø€ ÷ 'ñ '™ð '¡&ð '¨Tñ 'rM   c                óx   € V P                   '       d   \        R 4      hV P                  P                  W34       R# )z&cannot add items after loading startedN)r­   ÚRuntimeErrorr:   r�   rt   s   &&&r>   ru   Ú_OverlappingCpuLoader.addÓ   s+   € Ø�<�<ˆ<ÜÐGÓHÐHØ�
‰
×Ñ˜4˜+Ö&rM   c                ó   <€ V ^8„  d   QhRR/# ry   rN   )rI   rJ   s   "€r>   rK   r¦   Ø   s   ø€ ÷ ñ ˜tñ rM   c                ó¼   € V P                   '       d   R # RV n         V P                  P                  \        P                  ! ^ 4      R7       V P                  4        R # )NT©Úkey)r­   r:   ÚsortÚoperatorÚ
itemgetterrÎ   r|   s   &r>   r}   Ú#_OverlappingCpuLoader.start_loadingØ   s;   € Ø�<�<ˆ<ÙØˆŒØ�
‰
�‰œH×/Ò/°Ó2ˆÔ3Ø�‰ŽrM   c                óZ   <€ V ^8„  d   QhRS[ S[S[P                  S[3,          ,          /# rd   r€   )rI   rJ   s   "€r>   rK   r¦   ß   s'   ø€ ÷ "ñ "™¡¡u§|¡|±VÐ';Õ!<Õ=ñ "rM   c              #  óâ   "  € V P                  4        V P                  '       g-   V P                  4       pV P                  4        T R j  x€L
  K>  V P	                  4        R j  x€L
  R #  L  L5ir8   )r}   r¹   rÄ   rÎ   rÓ   )r;   rÂ   s   & r>   r„   Ú_OverlappingCpuLoader.valuesß   sN   é € Ø×ÑÔØ—*—*�*Ø—k‘k“mˆGØ�L‰LŒNØ×Òà—<‘<“>×!Ò!ñ á!ùs(   ‚"A/¥%A/Á
A+ÁA/Á$A-Á%A/Á-A/)
r«   r¯   r®   r¬   r¨   r¤   r:   r‰   r­   r£   )Ni@B )rO   rP   rQ   rR   rŒ   Úpropertyr¹   rÄ   rÎ   rÓ   ru   r}   r„   rU   rV   rW   s   @r>   r¡   r¡   Ž   sc   ø‡ € ÷Iò Ið. ÷+ó ð+÷ð ÷Nð N÷0"ð "÷'ð '÷
ð ÷"ö "rM   r¡   c                   óL   a € ] tR t^ét o RtRV 3R lR lltV 3R lR ltRtV tR# )	Ú_StorageWriterTransformsúœ
This is experimental, and will likely move elsewhere in the
future.  It lives here to minimize changes while we are still
learning and gathering feedback.
Nc                óB   <€ V ^8„  d   QhRS[ S[,          R,          RR/# )rB   Ú
extensionsNre   )r	   r   )rI   rJ   s   "€r>   rK   Ú%_StorageWriterTransforms.__annotate__ð   s,   ø€ ÷ 	Cñ 	CÙ"Ñ#;Õ<¸tÕCð	Cà	ñ	CrM   c                ó.   € Vf
   RV n         R# TV n         R# )zß
If the extensions arg is None, this means the implementation
should provide whatever defaults it chooses.  An empty
sequence indicates no extensions should be used.  At this
time, the default extensions sequence is empty.
NrN   ©ré   )r;   ré   s   &&r>   rŒ   Ú!_StorageWriterTransforms.__init__ð   s   € ð !+Ò 2˜"ˆŽ¸
ˆŽrM   c          	      óv   <€ V ^8„  d   QhRS[ RS[P                  RS[S[S[,          S[S[,          3,          /# )rB   Ú
write_itemÚ
raw_streamre   )r(   ÚioÚIOBaser�   r   Úbytesr¼   rG   )rI   rJ   s   "€r>   rK   rê   û   s@   ø€ ÷ Yñ YÙ#ðYÙ13·±ðYá	‰r‘%�y™$™s�)Ð#Õ	$ñYrM   c                ó0  €  ! R  R\         P                  4      p\        \        \        ,          V! V4      4      pV P
                   F  pVP                  V4      pK  	  T\        V P
                  4       Uu. uF  qUP                  4       NK  	  up3# u upi )c                   ó\   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltR tR	tV t	R
# )ÚE_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriteri  c                ó4   <€ V ^8„  d   QhRS[ P                  /# )rB   Úraw)rñ   rò   )rI   rJ   s   "€r>   rK   ÚR_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriter.__annotate__  s   ø€ ÷ ñ ¡B§I¡Iñ rM   c                ó   € Wn         R # r8   ©rø   )r;   rø   s   &&r>   rŒ   ÚN_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriter.__init__  s   € Ø–rM   c                ó    <€ V ^8„  d   QhRS[ /# rd   rµ   )rI   rJ   s   "€r>   rK   rù   	  s   ø€ ÷ ñ ¡4ñ rM   c                ó   € R # )TrN   r|   s   &r>   Ú	writeableÚO_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriter.writeable	  s   € ÙrM   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rB   Úbre   )r   rH   )rI   rJ   s   "€r>   rK   rù     s   ø€ ÷ )ñ )™vð )©#ñ )rM   c                ó8   € V P                   P                  V4      # r8   )rø   Úwrite)r;   r  s   &&r>   r  ÚK_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriter.write  s   € Ø—x‘x—~‘~ aÓ(Ð(rM   c                óZ   € V P                  4        V P                  P                  4        R # r8   )Úflushrø   r|   s   &r>   ÚcloseÚK_StorageWriterTransforms.transform_save_stream.<locals>.NoCloseWriter.close  s   € Ø—
‘
”Ø—‘—‘Ö rM   rû   N)
rO   rP   rQ   rR   rŒ   rÿ   r  r  rU   rV   rW   s   @r>   ÚNoCloseWriterrö     s-   ø‡ € ÷ð ÷ð ÷)ð )÷!ð !rM   r
  )	rñ   rò   r   r   ró   ré   Útransform_toÚreversedÚget_descriptor)r;   rï   rð   r
  r  Úexs   &&&   r>   Útransform_save_streamÚ._StorageWriterTransforms.transform_save_streamû   sv   € ô	!œBŸI™Iô 	!ô œBœu�I¡}°ZÓ'@ÓAˆà—/”/ˆBØŸ?™?¨<Ó8ŠLñ "ð ¼XÀdÇoÁoÔ=VÓWÑ=V°r×0Ñ0Ö2Ñ=VÑWÐXÐXùÒWs   Á7Brì   r8   )	rO   rP   rQ   rR   rS   rŒ   r  rU   rV   rW   s   @r>   ræ   ræ   é   s"   ø‡ € ñ÷	Cò 	C÷Yö YrM   ræ   c                ó0   € V ^8„  d   QhR\         R\        /# )rB   Úitemre   )r(   rH   )rI   s   "r>   rK   rK     s   € ÷ 	4ñ 	4”Yð 	4¤3ñ 	4rM   c                 ó  € ^pV P                   f   \        R4      hV P                   P                   F  pW,          pK  	  V P                   P                  P                  pV\
        P                  P                  V4      ,          # )rÈ   z&WriteItem tensor_data must not be None)Útensor_datarÒ   rn   Ú
propertiesÚdtyper‚   Ú_utilsÚ_element_size)r  rn   Úsr  s   &   r>   Ú
_item_sizer    so   € Ø€DØ×ÑÒÜÐEÓFÐFà×Ñ×"Ô"ˆØ�	Šñ #ð ×Ñ×'Ñ'×-Ñ-€EØ”%—,‘,×,Ñ,¨UÓ3Õ3Ð3rM   c                ó~   € V ^8„  d   QhR\         R\        \        ,          R\        \        \        ,          ,          /# )rB   Úbinsr:   re   )rH   r¼   r(   )rI   s   "r>   rK   rK   (  s.   € ÷ ñ ¤#ð ¬d´9­oð Ä$ÄtÌIÅÕBWñ rM   c                 óÜ  € V ^8X  d   V.# V Uu. uF%  q"P                   \        P                  8X  g   K#  VNK'  	  ppV Uu. uF%  q"P                   \        P                  8w  g   K#  VNK'  	  pp\        V 4       Uu. uF  p. NK  	  pp\        V 4       Uu. uF  p^ NK  	  ppVP	                  \
        RR7       \        V4       F#  w  r‚WhV ,          ,          P                  V4       K%  	  V Fh  p\        \        V4      \        P                  ! ^4      R7      ^ ,          p	Wi,          P                  V4       Wy;;,          \        V4      ,          uu&   Kj  	  V# u upi u upi u upi u upi )rÈ   T)rÜ   ÚreverserÛ   )rË   r)   ÚBYTE_IOÚrangerÝ   r  Ú	enumerater�   ÚminrÞ   rß   )
r  r:   ÚwiÚbytes_wÚtensor_wr�   ÚbucketsÚbucket_sizesÚir¬   s
   &&        r>   Ú_split_by_size_and_typer)  (  s%  € Øˆq„yØˆwˆá!ÓF™E�b§W¡W´×0EÑ0EÑ%E�rˆr™E€GÐFÙ"ÓG™U�r§g¡g´×1FÑ1FÑ&F—�™U€HÐGä27¸´+Ó%>±+¨Q£b±+€GÐ%>Ü$ Tœ{Ó+™{˜!“A™{€LÐ+à‡M�M”j¨$€MÔ/ä˜7Ö#‰ˆØ�D•Õ× Ñ  Ö$ñ $ó ˆä”)˜LÓ)¬x×/BÒ/BÀ1Ó/EÔFÀqÕIˆØ�×Ñ˜BÔØ×œZ¨›^Õ+Õñ	 ð €Nùò# GùÚGùâ%>ùÚ+s"   � E´EÁ  EÁ%EÁ:E$ÂE)c                ó¾   € V ^8„  d   QhR\         R\        P                  R\        P                  \        P
                  ,          R\        R\        R\        R\        /# )rB   Ú
transformsr£   Údatarï   Ústorage_keyÚserialization_formatre   )
ræ   rñ   rò   ÚBytesIOr‚   r   r(   rG   r4   r-   )rI   s   "r>   rK   rK   @  s_   € ÷ 4ñ 4Ü(ð4ä�I‰Ið4ô �*‰*”u—|‘|Õ
#ð4ô ð	4ô
 ð4ô .ð4ô ñ4rM   c                 óž  € VP                  4       pV P                  W14      w  rxVP                  \        P                  8X  dL   \        V\        P                  4      '       g   \        R 4      hVP                  VP                  4       4       M†\        V\        P                  4      '       g   \        R4      hVP                  \        P                  ! R4      8w  d   \        R4      hV\        P                  8X  d   \        P                   ! W'4       VP#                  4        V\        P                  8X  g!   \        V\        P                  4      '       d   VP                  4       V,
          p	M%VP%                  4       VP'                  4       ,          p	\)        V4      ^ 8X  d   RMTp
\+        VP,                  V	\/        VVV	V
R7      R7      # )z/Data must be io.BytesIO for BYTE_IO write itemsz5Data must be torch.Tensor for non-BYTE_IO write itemsr˜   zTensor must be on CPU deviceN)rF   )ÚindexÚsize_in_bytesÚstorage_data)Útellr  rË   r)   r  Ú
isinstancerñ   r/  rÒ   r  Ú	getbufferr‚   r   rÉ   r4   ra   Úsaver  rÀ   rÁ   r¸   r-   r1  r6   )r+  r£   r,  rï   r-  r.  rD   r  rF   rE   Úinfo_transform_descriptorss   &&&&&&     r>   Ú_write_itemr9  @  sp  € ð �[‰[‹]€Fà,6×,LÑ,LØó-Ñ)€\ð ‡�œ-×/Ñ/Ô/Ü˜$¤§
¡
×+Ò+Ü Ð!RÓSÐSØ×Ñ˜4Ÿ>™>Ó+Õ,ä˜$¤§¡×-Ò-Ü ØGóð ð �;‰;œ%Ÿ,š, uÓ-Ô-Ü Ð!?Ó@Ð@ØÔ#6×#AÑ#AÔAÜ�JŠJ�tÔ*à×ÑÔàÔ2×=Ñ=Ô=ÄØŒb�j‰j÷Bò Bð —‘“ Õ'‰à—‘“ × 1Ñ 1Ó 3Õ3ˆô
 Ð)Ó*¨aÔ/‰Ð5Jð ô Ø×ÑØÜ!ØØØØ"<ô	
ô	ð 	rM   c                ó°   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        R\        R\
        R\        R\
        R	\        R
R/
# )rB   Úcreate_streamÚ
file_queueÚresult_queueÚplannerr+  r¤   Ú	use_fsyncÚthread_countr.  re   N)r   ÚqueueÚQueuer'   ræ   rH   r¶   r4   )rI   s   "r>   rK   rK   w  s€   € ÷ kñ kÜðkä—‘ðkô —+‘+ðkô ð	kô
 )ðkô ðkô ðkô ðkô .ðkð 
ñkrM   c	                 ó*  €   VP                  4       w  ršp\        P                  P                  4       p\	        \        VR4      pV^8X  db   \        P
                  P                  4       '       g   V'       d6   VP                  4       '       d    V^ 8”  d   \        VP                  VR7      pM\        VP                  4      pV Uu. uF%  qÿP                  \        P                  8w  g   K#  VNK'  	  ppV F  pVP                  \        V4      V4       K   	  VP                  4        V Uu. uF%  qÿP                  \        P                  8X  g   K#  VNK'  	  pp. pV ! V	R4      ;_uu_ 4       pV F3  pVP                  V4      pVP!                  \#        VVVVV
V4      4       K5  	  / p/ pVP%                  4        F”  w  ppVP&                  '       g   \)        R4      hVP!                  \#        VVVVV
V4      4       VVVP*                  P,                  &   RVP.                  P0                  P2                  /VVP*                  P,                  &   K–  	  V\4        P6                  8X  dW   ^ RIHp VP=                  V! V\>        \@        PB                  ! V4      \D        \G        \H        4      \J        \L        /R7      4       V'       d6   VPO                  4         \P        PR                  ! VPU                  4       4       VP_                  4        RRR4       VPa                  V4       EK#  u upi u upi   \V        \X        3 d$   p\Z        P\                  ! RT 24        Rp?LeRp?ii ; i  + '       g   i     Le; i  \b        Pd                   d     R# i ; i)	TN)r¤   ÚwbzTensor must be on CPUÚsaved_offsets)r7  )Úmetadataú9fsync not supported for this stream, relying on flush(): )3Ú
get_nowaitr‚   Ú_CÚ_get_privateuse1_backend_nameÚgetattrr°   Úis_availabler¡   Úresolve_datar‡   rË   r)   r  ru   r  r}   r�   r9  r„   Úis_cpurÒ   r1  Úfqnr  ÚchunkÚoffsetsr4   rb   Úsafetensors.torchr7  r  r   ÚjsonÚdumpsr   rG   r   r   r   r  ÚosÚfsyncÚfilenoÚAttributeErrorr   ÚwarningsÚwarnr  ÚputrA  ÚEmpty)r;  r<  r=  r>  r+  r¤   r?  r@  r.  Ú	file_namer-  Úwrite_itemsÚcustom_backend_nameÚcustom_device_modÚloaderr#  r%  rï   r$  Úwrite_resultsr£   r,  Útensor_dictÚmetadata_dictrž   r7  Úes   &&&&&&&&&                  r>   Ú_write_files_from_queuerf  w  s  € ð`ØØ2<×2GÑ2GÓ2IÑ/ˆI Kô #(§(¡(×"HÑ"HÓ"JÐÜ '¬Ð/BÀDÓ IÐð  Ô!ä—J‘J×+Ñ+×-Ò-ß)Ð.?×.LÑ.L×.NÒ.Nà'¨!Ô+ä.Ø×(Ñ(Ø(;ô‘ô
 *Ø×(Ñ(ó�ñ &1ÓU¡[˜r·G±G¼}×?TÑ?TÑ4TŸ˜¡[ˆHÐUÛ&�
Ø—
‘
œ: jÓ1°:Ö>ñ 'à× Ñ Ô"á$/ÓT¡K˜b·7±7¼m×>SÑ>SÑ3S—r�r¡KˆGÐTØˆMá˜y¨$×/Ô/°6Û")�JØ"×/Ñ/°
Ó;�DØ!×(Ñ(Ü#Ø&Ø"Ø Ø&Ø'Ø0óö	ñ #*ð !�Ø "�Ø*0¯-©-®/Ñ&�F˜JØ!Ÿ=Ÿ=˜=Ü,Ð-DÓEÐEØ!×(Ñ(Ü#Ø&Ø"Ø"Ø&Ø'Ø0óô	ð 9?�K 
× 0Ñ 0× 4Ñ 4Ñ5à'¨×)?Ñ)?×)EÑ)E×)MÑ)Mð;�M *×"2Ñ"2×"6Ñ"6Ó7ñ +:ð$ (Ô+>×+JÑ+JÔJÝ6à—L‘LÙØ'ä 3´T·Z²ZÀÓ5NÜ /´´^Ó1DÜ *¬Lð&ôô	÷ à—L‘L”NðÜŸš §¡£Ô1ð
 —‘”÷s 0ðt ×Ñ˜]×+ùòE Vùò
 Uøôp +Ô,@ÐAô Ü ŸšØWÐXYÐWZÐ[÷ñ ûðú÷k 0×/ûôv �;‰;ô Úðús‘   ‚A-M9 Á0M9 Á8M9 Â8M9 Ã L%Ã+L%Ã1:M9 Ä+ L*ÅL*ÅM9 Å+EM&ËM&Ë$L/Ë9M&Ì	&M9 Ì/M#Í MÍM&ÍM#Í#M&Í&M6	Í1M9 Í9NÎNc                   ó  a € ] tR tRt o ]]V 3R lR l4       4       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	]V 3R
 lR l4       t
]]V 3R lR l4       4       t]V 3R lR l4       t]V 3R lR l4       tRtV tR# )r3   iå  c          	      óz   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ RS[S[P
                  RR3,          /# ©rB   ÚpathÚmodere   N©rG   rU  ÚPathLiker   rñ   rò   )rI   rJ   s   "€r>   rK   ÚFileSystemBase.__annotate__è  s>   ø€ ÷ /ñ /Ù™"Ÿ+™+Õ%ð/Ù-0ð/á	‘2—9‘9˜d DÐ(Õ	)ñ/rM   c                ó   € R # r8   rN   )r;   rj  rk  s   &&&r>   r;  ÚFileSystemBase.create_streamæ  s   € ñ ,/rM   c                ót   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ RS[ S[P                  ,          /# ©rB   rj  Úsuffixre   ©rG   rU  rm  )rI   rJ   s   "€r>   rK   rn  í  s7   ø€ ÷  ñ  Ù™"Ÿ+™+Õ%ð Ù/2ð á	‰r�{‰{Õ	ñ rM   c                ó   € R # r8   rN   ©r;   rj  rs  s   &&&r>   Úconcat_pathÚFileSystemBase.concat_pathì  s   € ñ  rM   c                ór   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          RR/# ©rB   rj  Únew_pathre   Nrt  )rI   rJ   s   "€r>   rK   rn  ò  s*   ø€ ×WÑW™3¡§¡Õ,ÐW¹¹b¿k¹kÕ8IÐWÈdÑWrM   c                ó   € R # r8   rN   ©r;   rj  r{  s   &&&r>   ÚrenameÚFileSystemBase.renameñ  s   € ÙTWrM   c                ón   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          /# ©rB   rj  re   rt  )rI   rJ   s   "€r>   rK   rn  õ  s%   ø€ ×JÑJ™c¡B§K¡KÕ/ÐJ±C¹"¿+¹+Õ4EÑJrM   c                ó   € R # r8   rN   ©r;   rj  s   &&r>   Ú	init_pathÚFileSystemBase.init_pathô  s   € ÙGJrM   c                óH   <€ V ^8„  d   QhRS[ S[P                  ,          RR/# ©rB   rj  re   Nrt  )rI   rJ   s   "€r>   rK   rn  ø  s   ø€ ×9Ñ9™#¡§¡Õ+Ð9°Ñ9rM   c                ó   € R # r8   rN   rƒ  s   &&r>   ÚmkdirÚFileSystemBase.mkdir÷  s   € Ù69rM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# ©rB   Úcheckpoint_idre   ©rG   rU  rm  r¶   )rI   rJ   s   "€r>   rK   rn  ü  s   ø€ ×RÑR±3¹¿¹Õ3DÐRÉÑRrM   c                ó   € R # r8   rN   ©Úclsr�  s   &&r>   Úvalidate_checkpoint_idÚ%FileSystemBase.validate_checkpoint_idú  s   € áORrM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# r�  rŽ  )rI   rJ   s   "€r>   rK   rn  ÿ  s   ø€ ×:Ñ:™3¡§¡Õ,Ð:±Ñ:rM   c                ó   € R # r8   rN   rƒ  s   &&r>   ÚexistsÚFileSystemBase.existsþ  s   € Ù7:rM   c                óH   <€ V ^8„  d   QhRS[ S[P                  ,          RR/# r‡  rt  )rI   rJ   s   "€r>   rK   rn    s   ø€ ×;Ñ;™C¡"§+¡+Õ-Ð;°$Ñ;rM   c                ó   € R # r8   rN   rƒ  s   &&r>   Úrm_fileÚFileSystemBase.rm_file  s   € Ù8;rM   rN   N)rO   rP   rQ   rR   r
   r   r;  rw  r~  r„  r‰  Úclassmethodr’  r–  rš  rU   rV   rW   s   @r>   r3   r3   å  s‘   ø‡ € ØØ÷/ó ó ð/ð ÷ ó ð ð ßWó ØWàßJó ØJàß9ó Ø9àØßRó ó àRàß:ó Ø:àß;ó Þ;rM   c                   óÖ   a € ] tR tRt o ]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	]
V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )r2   i  c          	      óz   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ RS[S[P
                  RR3,          /# ri  rl  )rI   rJ   s   "€r>   rK   ÚFileSystem.__annotate__  s>   ø€ ÷ *ñ *Ù™"Ÿ+™+Õ%ð*Ù-0ð*á	‘2—9‘9˜d DÐ(Õ	)ñ*rM   c              #  óô   "  € \        V\        4      '       g   \        V4      pVP                  V4      ;_uu_ 4       p\        \        P
                  V4      x € R R R 4       R #   + '       g   i     R # ; i5ir8   )r5  r   Úopenr   rñ   rò   )r;   rj  rk  r£   s   &&& r>   r;  ÚFileSystem.create_stream  sH   é € ô ˜$¤×%Ò%Ü˜“:ˆDØ�Y‰Y�t�_Œ_ Ü”r—y‘y &Ó)Ò)÷ �_�_Š_üs   ‚;A8½A$Á
A8Á$A5	Á/	A8c                ót   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ RS[ S[P                  ,          /# rr  rt  )rI   rJ   s   "€r>   rK   rŸ    s4   ø€ ÷ ñ ¡¡b§k¡kÕ 1ð ¹3ð Á3ÉÏÉÕCTñ rM   c                óT   € \        V\        4      '       g   \        V4      pW,          # r8   ©r5  r   rv  s   &&&r>   rw  ÚFileSystem.concat_path  s    € Ü˜$¤×%Ò%Ü˜“:ˆDØ�}ÐrM   c                ón   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          /# r�  rt  )rI   rJ   s   "€r>   rK   rŸ    s-   ø€ ÷ ñ ™c¡B§K¡KÕ/ð ±C¹"¿+¹+Õ4Eñ rM   c                óH   € \        V\        4      '       g   \        V4      pV# r8   r¥  rƒ  s   &&r>   r„  ÚFileSystem.init_path  s   € Ü˜$¤×%Ò%Ü˜“:ˆDØˆrM   c                ór   <€ V ^8„  d   QhRS[ S[P                  ,          RS[ S[P                  ,          RR/# rz  rt  )rI   rJ   s   "€r>   rK   rŸ    s4   ø€ ÷ *ñ *™3¡§¡Õ,ð *¹¹b¿k¹kÕ8Ið *Èdñ *rM   c                ó†   € \        V\        4      '       g   \        V4      pVP                  \        \        V4      4       R # r8   )r5  r   r~  r   r}  s   &&&r>   r~  ÚFileSystem.rename  s+   € Ü˜$¤×%Ò%Ü˜“:ˆDà�‰”Dœ˜xÓ(Ö)rM   c                óH   <€ V ^8„  d   QhRS[ S[P                  ,          RR/# r‡  rt  )rI   rJ   s   "€r>   rK   rŸ    s$   ø€ ÷ 0ñ 0™#¡§¡Õ+ð 0°ñ 0rM   c                ón   € \        V\        4      '       g   \        V4      pVP                  R R R7       R# )T)ÚparentsÚexist_okN)r5  r   r‰  rƒ  s   &&r>   r‰  ÚFileSystem.mkdir  s(   € Ü˜$¤×%Ò%Ü˜“:ˆDØ�
‰
˜4¨$ˆ
Ö/rM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# rŒ  rŽ  )rI   rJ   s   "€r>   rK   rŸ  %  s$   ø€ ÷ ñ ±3¹¿¹Õ3Dð Éñ rM   c                ó0  € \        V\        4      '       d   R # R\        V4      9   d   R# \        V4      P                   FR  pVP	                  4       '       g   K  \
        P                  ! \        V4      \
        P                  4      '       g   KQ   R # 	  R# )Tz://F)r5  r   rG   r¯  r–  rU  ÚaccessÚW_OK)r‘  r�  Úps   && r>   r’  Ú!FileSystem.validate_checkpoint_id$  sb   € ä�m¤T×*Ò*Ùà”C˜Ó&Ô&Ùä�mÓ$×,Ô,ˆAØ�x‰x�zŒzœbŸiši¬¨A«´·±×8Ô8Úñ -ñ rM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# r�  rŽ  )rI   rJ   s   "€r>   rK   rŸ  2  s$   ø€ ÷ ñ ™3¡§¡Õ,ð ±ñ rM   c                ód   € \        V\        4      '       g   \        V4      pVP                  4       # r8   )r5  r   r–  rƒ  s   &&r>   r–  ÚFileSystem.exists2  s$   € Ü˜$¤×%Ò%Ü˜“:ˆDØ�{‰{‹}ÐrM   c                óH   <€ V ^8„  d   QhRS[ S[P                  ,          RR/# r‡  rt  )rI   rJ   s   "€r>   rK   rŸ  7  s$   ø€ ÷ ñ ™C¡"§+¡+Õ-ð °$ñ rM   c                óh   € \        V\        4      '       g   \        V4      pVP                  4        R # r8   )r5  r   Úunlinkrƒ  s   &&r>   rš  ÚFileSystem.rm_file7  s!   € Ü˜$¤×%Ò%Ü˜“:ˆDØ�‰ŽrM   c                óZ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[S[ ,          /# r�  )rG   rU  rm  r¼   )rI   rJ   s   "€r>   rK   rŸ  <  s(   ø€ ÷ 0ñ 0‘s™RŸ[™[Õ(ð 0©T±#­Yñ 0rM   c                ó    € \        V\        4      '       g   \        V4      pVP                  4        Uu. uF  p\        V4      NK  	  up# u upi r8   )r5  r   ÚiterdirrG   )r;   rj  r¶  s   && r>   ÚlsÚFileSystem.ls<  s:   € Ü˜$¤×%Ò%Ü˜“:ˆDØ $§¡¤Ó/¡˜1”�A–¡Ñ/Ð/ùÒ/s   ´ArN   N)rO   rP   rQ   rR   r
   r;  rw  r„  r~  r‰  rœ  r’  r–  rš  rÂ  rU   rV   rW   s   @r>   r2   r2     sq   ø‡ € Ø÷*ó ð*÷ð ÷
ð ÷
*ð *÷0ð 0ð
 ÷ó ð÷ð ÷
ð ÷
0ö 0rM   c                   ó\  a a€ ] tR tRt oRtRR^RRR]P                  3V3R lV 3R llltR!V3R lR	 lltV3R
 lR lt	V3R lR lt
V3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltR!V3R lR llt]V3R lR l4       t]V3R lR l4       tR tVtV ;t# )"Ú_FileSystemWriteriB  aE  
Basic implementation of StorageWriter using file IO.

This implementation makes the following assumptions and simplifications:

* The checkpoint path is an empty or non-existing directory.
* File creation is atomic

The checkpoint consist of one file per write request plus
a `.metadata` file with the serialized metadata.

Té€–˜ Nc                óœ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RS[RS[RS[RS[S[,          R,          R	S[R
S[RS[RR/# )rB   rj  Úsingle_file_per_rankÚ
sync_filesr@  Úper_thread_copy_aheadÚ	overwriteÚ_extensionsNr.  ÚargsÚkwargsre   )	rG   rU  rm  r¶   rH   r	   r   r4   r   )rI   rJ   s   "€r>   rK   Ú_FileSystemWriter.__annotate__P  s�   ø€ ÷ '*ñ '*á‘B—K‘KÕð'*ñ #ð'*ñ ð	'*ñ
 ð'*ñ  #ð'*ñ ð'*ñ Ñ6Õ7¸$Õ>ð'*ñ 2ð'*ñ ð'*ñ ð'*ð 
ñ'*rM   c	                ó$  <€ \         SV `  4        \        4       V n        V P                  P	                  V4      V n        W n        W0n        W@n        WPn	        \        4       V n        W`n        \        V4      V n        W€n        RV n        RV n        R# )aå  
Initialize the writer pointing to `path`.

Args:
    path: directory where the checkpoint will be written to.
    single_file_per_rank: Produce one file per rank instead of one file per tensor/blob. Default to True.
    sync_files : force files to be synced to permanent storage. Default to True.
    thread_count: Number of IO threads to use to write. Default to 1.
    per_thread_copy_ahead: How many bytes to copy from the GPU ahead of saving them. Default 10Mb.
    overwrite: Whether to allow overwriting existing checkpoints. Defaults to True.
    _extensions: Extensions to apply to output streams (EXPERIMENTAL)

N. B. If sync_files is disabled, there's no guarantee that the checkpoint will be consistent in the case of a failure.
NT)ÚsuperrŒ   r2   Úfsr„  rj  rÈ  rÉ  r@  rÊ  ri   Úsave_idrË  ræ   r+  r.  ÚrankÚuse_collectives)r;   rj  rÈ  rÉ  r@  rÊ  rË  rÌ  r.  rÍ  rÎ  Ú	__class__s   &&&&&&&&&*,€r>   rŒ   Ú_FileSystemWriter.__init__P  sv   ø€ ô6 	‰ÑÔÜ“,ˆŒØ—G‘G×%Ñ% dÓ+ˆŒ	Ø$8Ô!Ø$ŒØ(ÔØ%:Ô"Ü%Ó'ˆŒØ"ŒÜ2°;Ó?ˆŒØ$8Ô!Ø $ˆŒ	Ø%)ˆÖrM   c                óV   <€ V ^8„  d   QhRS[ S[P                  ,          R,          RR/# ©rB   r�  Nre   rt  )rI   rJ   s   "€r>   rK   rÏ  y  s)   ø€ ÷ (ñ (¡3©¯©Õ#4°tÕ#;ð (Àtñ (rM   c                ót   € V'       d!   V P                   P                  V4      V n        \        4       V n        R # r8   )rÒ  r„  rj  ri   rÓ  ©r;   r�  s   &&r>   ÚresetÚ_FileSystemWriter.resety  s%   € ßØŸ™×)Ñ)¨-Ó8ˆDŒIÜ%Ó'ˆŽrM   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )rB   Úis_coordinatorrÍ  rÎ  re   N)r¶   r   )rI   rJ   s   "€r>   rK   rÏ  ~  s3   ø€ ÷ Cñ CÙ"ðCÙ+.ðCÙ:=ðCà	ñCrM   c                ó`   € VP                  R 4      V n        VP                  RR4      V n        R# )rÔ  rÕ  TN)ÚgetrÔ  rÕ  )r;   rß  rÍ  rÎ  s   &&*,r>   Úset_up_storage_writerÚ'_FileSystemWriter.set_up_storage_writer~  s(   € ð —J‘J˜vÓ&ˆŒ	Ø%Ÿz™zÐ*;¸TÓBˆÖrM   c                ó    <€ V ^8„  d   QhRS[ /# rd   rµ   )rI   rJ   s   "€r>   rK   rÏ  „  s   ø€ ÷ 	-ñ 	-¡$ñ 	-rM   c                ó¦   € V P                   '       d   V P                  R R7      pMV P                  ^ R7      pV P                  P                  V4      # )N)rÔ  )rÕ  Ú_get_metadata_pathrÒ  r–  )r;   Úmetadata_paths   & r>   Ú_metadata_existsÚ"_FileSystemWriter._metadata_exists„  sI   € Ø××Ðà ×3Ñ3¸Ð3Ó>‰Mð !×3Ñ3¸Ð3Ó;ˆMà�w‰w�~‰~˜mÓ,Ð,rM   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©rB   Úplanre   )r&   )rI   rJ   s   "€r>   rK   rÏ  �  s   ø€ ÷ ñ ¡xð ±Hñ rM   c                óÜ  € V P                   P                  V P                  4       V P                  4       '       db   V P                  '       d6   \
        P                  ! R V P                   RV P                  : R2^R7       M\        RV P                  : R24      hV P                  eB   V P                  '       g0   \        P                  ! V\        RV P                   R24      R7      pV# )	z#Detected an existing checkpoint in z#, overwriting since self.overwrite=z². Past version 2.5 of PyTorch, `overwrite` will default to False. Set this variable to True to maintain this functionality or False to raise when an existing checkpoint is found.)Ú
stacklevelz-Checkpoint already exists and self.overwrite=Ú.Ú__r�   ©r3  )rÒ  r‰  rj  rè  rË  rY  rZ  r×   rÔ  rÕ  ÚdataclassesÚreplacerY   ©r;   rì  s   &&r>   Úprepare_local_planÚ$_FileSystemWriter.prepare_local_plan�  sÆ   € Ø�‰�‰�d—i‘iÔ Ø× Ñ ×"Ò"Ø�~�~ˆ~Ü—’Ø9¸$¿)¹)¸ÐDhÐY]×YgÑYgÑXið jkð kð  !ö	ô #Ð%SÀDÇNÁNÑCTÐTUÐ#VÓWÐWà�9‰9Ò ¨×)=×)=Ð)=Ü×&Ò&Ø¤>°B°t·y±y°kÀÐ2CÓ#DôˆDð ˆrM   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# ©rB   Úplansre   )r¼   r&   )rI   rJ   s   "€r>   rK   rÏ  £  s#   ø€ ÷ ñ ©©h­ð ¹DÁ½Nñ rM   c                ó´   € \        V4       UUu. uF:  w  r#VP                  f&   \        P                  ! V\	        RV R24      R7      MTNK<  	  pppV# u uppi )Nrð  r�   rñ  )r!  r3  rò  ró  rY   )r;   rù  r(  rì  Ú	new_planss   &&   r>   Úprepare_global_planÚ%_FileSystemWriter.prepare_global_plan£  sl   € ô
 % UÔ+ô	
ñ ,‘�ð × Ñ Ò(ô ×Ò ´>ÀBÀqÀcÈÀ)Ó3LÕMàòñ ,ð	 	ñ 
ð Ðùó
s   �A Ac                óL   <€ V ^8„  d   QhRS[ RS[RS[S[S[,          ,          /# )rB   rì  r>  re   )r&   r'   r/   r¼   r-   )rI   rJ   s   "€r>   rK   rÏ  ¬  s3   ø€ ÷ 5ñ 5áð5ñ ð5ñ 
‘‘[Õ!Õ	"ñ	5rM   c                ó  a	a
€ VP                   o
^ o	V	V
3R lp\        P                  ! 4       pV P                  '       di   \	        V P
                  VP                  4       FC  pV! 4       pV P                  P                  V P                  V4      pVP                  WvV34       KE  	  MTVP                   FD  pV! 4       pV P                  P                  V P                  V4      pVP                  WvV.34       KF  	  V P                  W$4      # )r   c                  óF   <€ SP                    S \         2p S^,          oV # )rÈ   )r[   ÚDEFAULT_SUFFIX)r]  Ú
file_countÚstorage_plans    €€r>   Úgen_fileÚ._FileSystemWriter.write_data.<locals>.gen_file´  s,   ø€ à'×.Ñ.Ð/°
¨|¼NÐ;KÐLˆIØ˜!�OˆJØÐrM   )r3  rA  rB  rÈ  r)  r@  r:   rÒ  rw  rj  r[  Ú_write_data)r;   rì  r>  r  r<  Úbucketr]  rj  r  r  r  s   &&&      @@r>   Ú
write_dataÚ_FileSystemWriter.write_data¬  sØ   ù€ ð
 (,×'8Ñ'8ˆØˆ
ö	ô #(§+¢+£-ˆ
Ø×$×$Ð$Ü1°$×2CÑ2CÀTÇZÁZÖP�Ù$›J�	Ø—w‘w×*Ñ*¨4¯9©9°iÓ@�Ø—‘ °Ð8Ö9ò Qð
 Ÿ
œ
�Ù$›J�	Ø—w‘w×*Ñ*¨4¯9©9°iÓ@�Ø—‘ °$°Ð8Ö9ñ #ð
 ×Ñ Ó4Ð4rM   c                ó`   <€ V ^8„  d   QhRS[ RS[P                  RS[S[S[,          ,          /# )rB   r>  r<  re   )r'   rA  rB  r/   r¼   r-   )rI   rJ   s   "€r>   rK   rÏ  È  s7   ø€ ÷ 0ñ 0áð0ñ —K‘Kð0ñ 
‘‘[Õ!Õ	"ñ	0rM   c                ó  € \         P                  ! 4       p. p\        ^V P                  4       F�  p\        P
                  ! \        V P                  P                  VVVV P                  V P                  V P                  V P                  V P                  3	R7      pVP                  4        VP                  V4       K‘  	  \        V P                  P                  VVVV P                  V P                  V P                  V P                  V P                  R7	       V F  pVP                  4        K  	  . p  WsP!                  4       ,          pK    \         P"                   d!    \%        4       pTP'                  T4       Tu # i ; i)rÈ   )ÚtargetrÍ  )	r;  r<  r=  r>  r+  r¤   r?  r@  r.  )rA  rB  r   r@  Ú	threadingÚThreadrf  rÒ  r;  r+  rÊ  rÉ  r.  Ústartr�   ÚjoinrH  r\  r/   Ú
set_result)	r;   r>  r<  r=  Úthreadsr�   ÚtÚresÚfuts	   &&&      r>   r  Ú_FileSystemWriter._write_dataÈ  sB  € ô
 %*§K¢K£MˆàˆÜ�q˜$×+Ñ+Ö,ˆAÜ× Ò Ü.à—G‘G×)Ñ)ØØ ØØ—O‘OØ×.Ñ.Ø—O‘OØ×%Ñ%Ø×-Ñ-ð
ôˆAð �G‰GŒIØ�N‰N˜1Öñ! -ô$ 	 ØŸ'™'×/Ñ/Ø!Ø%ØØ—‘Ø $× :Ñ :Ø—o‘oØ×*Ñ*Ø!%×!:Ñ!:õ
	
ó ˆAØ�F‰FŽHñ ð ˆð	ØØ×.Ñ.Ó0Õ0’øÜ�{‰{ô 	Ü-3«XˆCØ�N‰N˜3ÔØŠJð	ús   Ä7E Å2FÆFc                óJ   <€ V ^8„  d   QhRS[ RS[S[S[,          ,          RR/# )rB   rF  Úresultsre   N)r   r¼   r-   )rI   rJ   s   "€r>   rK   rÏ  ú  s,   ø€ ÷ $0ñ $0™xð $0±$±t¹KÕ7HÕ2Ið $0Èdñ $0rM   c                ó°  € \         Vn        / pV F8  pTP                  V Uu/ uF  qUP                  VP                  bK  	  up4       K:  	  W1n        V P                  4       Vn        V P                  '       g%   V P                  e   RV P                   \         R2M\         R2p\        \        V P                  P                  V P                  V4      4      pV P                  P                  VR4      ;_uu_ 4       p\        P                   ! W4       V P"                  '       d6   VP%                  4         \&        P(                  ! VP+                  4       4       R R R 4       V P                  '       g+   V P                  e   V P5                  V P                  4      p
MV P5                  4       p
V P                  P7                  V
4      '       d   V P                  P9                  V
4       V P                  P;                  Wz4       R # u upi   \,        \.        3 d$   p	\0        P2                  ! RT	 24        R p	?	LáR p	?	ii ; i  + '       g   i     Lñ; i)Nrð  z.tmprD  rG  )ÚCURRENT_DCP_VERSIONÚversionÚupdater1  r3  Ústorage_metarÕ  rÔ  Ú_metadata_fnr   r   rÒ  rw  rj  r;  ÚpickleÚdumprÉ  r  rU  rV  rW  rX  r   rY  rZ  ræ  r–  rš  r~  )r;   rF  r  Ú
storage_mdÚwr_listÚwrÚtmp_filenameÚtmp_pathÚmetadata_filere  rç  s   &&&        r>   ÚfinishÚ_FileSystemWriter.finishú  sÀ  € Ü.ˆÔàˆ
ÛˆGØ×ÑÁ7ÓKÁ7¸RŸx™x¨¯©Ò8Á7ÑKÖLñ à *Ôà $× 1Ñ 1Ó 3ˆÔð ×'×'Ð'¨D¯I©IÒ,Að �—‘�œL˜>¨Ñ.ä �> Ð&ð 	ô
 œ˜dŸg™g×1Ñ1°$·)±)¸\ÓJÓKˆØ�W‰W×"Ñ" 8¨T×2Ô2°mÜ�KŠK˜Ô0Ø��ˆà×#Ñ#Ô%ðÜ—H’H˜]×1Ñ1Ó3Ô4÷ 3ð ×#×#Ð#¨¯	©	Ò(=Ø ×3Ñ3°D·I±IÓ>‰Mà ×3Ñ3Ó5ˆMà�7‰7�>‰>˜-×(Ò(Ø�G‰G�O‰O˜MÔ*à�‰�‰�xÖ/ùò? Løô" 'Ô(<Ð=ô Ü—M’MØSÐTUÐSVÐW÷ñ ûðú÷ 3×2ús5   ¢H	
Ã>9IÄ8$HÈIÈH=È8IÈ=IÉIÉI	c                ó.   <€ V ^8„  d   QhRS[ R,          /# ry   )r!   )rI   rJ   s   "€r>   rK   rÏ     s   ø€ ÷ Sñ S™k¨DÕ0ñ SrM   c                óD   € \        V P                  V P                  R 7      # ))r�  rÓ  )r!   r�  rÓ  r|   s   &r>   r  Ú_FileSystemWriter.storage_meta   s   € Ü¨×);Ñ);ÀTÇ\Á\ÔRÐRrM   c                óH   <€ V ^8„  d   QhRS[ R,          RS[P                  /# ©rB   rÔ  Nre   ©rH   rU  rm  )rI   rJ   s   "€r>   rK   rÏ  #  ó'   ø€ ÷ Dñ D¡s¨T¥zð D¹R¿[¹[ñ DrM   c                ó–   € Vf   \          M
RV \          2p\        \        V P                  P	                  V P
                  V4      4      # ©Nrð  ©r  r   r   rÒ  rw  rj  ©r;   rÔ  Úfilenames   && r>   ræ  Ú$_FileSystemWriter._get_metadata_path#  ó<   € Ø(,ª”l‘^¸B¸t¸fÄ\ÀNÐ:SˆÜ”D˜$Ÿ'™'×-Ñ-¨d¯i©i¸ÓBÓCÐCrM   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# rd   rt  )rI   rJ   s   "€r>   rK   rÏ  (  ó   ø€ ÷ ñ ™s¡R§[¡[Õ0ñ rM   c                ó   € V P                   # )zD
return the checkpoint_id that will be used to save the checkpoint.
©rj  r|   s   &r>   r�  Ú_FileSystemWriter.checkpoint_id'  ó   € ð
 �y‰yÐrM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# rŒ  rŽ  )rI   rJ   s   "€r>   rK   rÏ  /  ó(   ø€ ÷ @ñ @±3¹¿¹Õ3Dð @Éñ @rM   c                ó,   € \         P                  V4      # r8   ©r2   r’  r�  s   &&r>   r’  Ú(_FileSystemWriter.validate_checkpoint_id.  ó   € ä×0Ñ0°Ó?Ð?rM   )rÒ  rË  rj  rÊ  rÔ  rÓ  r.  rÈ  rÉ  r@  r+  rÕ  r8   )rO   rP   rQ   rR   rS   r4   ra   rŒ   rÜ  râ  rè  rõ  rü  r  r  r'  r  ræ  rä   r�  rœ  r’  rU   rV   Ú__classcell__©rÖ  rJ   s   @@r>   rÅ  rÅ  B  sÎ   ù‡ € ñð  &*ØØØ%/ØØAEØ4G×4RÑ4R÷'*õ '*÷R(ò (÷
Cð C÷	-ð 	-÷ð ÷(ð ÷5ð 5÷80ð 0÷d$0ð $0÷LSð S÷Dò Dð ÷ó ðð ÷@ó ÷@ð @rM   rÅ  c                   óL   a € ] tR tRt o RtR	V 3R lR lltV 3R lR ltRtV tR# )
Ú_StorageReaderTransformsi3  rç   Nc                ó2   <€ V ^8„  d   QhRS[ R,          RR/# )rB   Úextension_registryNre   )r   )rI   rJ   s   "€r>   rK   Ú%_StorageReaderTransforms.__annotate__:  s!   ø€ ÷ 
ñ 
Ñ+<¸tÕ+Cð 
Ètñ 
rM   c                ó>   € Vf   \        4       V n        R # TV n        R # r8   )r   rH  )r;   rH  s   &&r>   rŒ   Ú!_StorageReaderTransforms.__init__:  s!   € à#5Ò#=ÔÓð 	ÖØCUð 	ÖrM   c          	      ób   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[,          RS[S[,          /# )rB   Ú	read_itemrF   rð   re   )r%   r	   rG   r   ró   )rI   rJ   s   "€r>   rK   rI  ?  s?   ø€ ÷ ñ áðñ  (©�}ðñ ‘u•Ið	ñ
 
‰E�ñrM   c                ó¤   € V P                   P                  V4      pTpV F,  p\        V\        4      '       g   K  VP	                  V4      pK.  	  V# r8   )rH  Úfrom_descriptor_listr5  r   Útransform_from)r;   rM  rF   rð   ré   rP  r  s   &&&&   r>   Útransform_load_streamÚ._StorageReaderTransforms.transform_load_stream?  sP   € ð ×,Ñ,×AÑAÐBWÓXˆ
Ø#ˆÛˆBÜ˜"Ô6×7Ô7Ø!#×!2Ñ!2°>Ó!B’ñ ð ÐrM   )rH  r8   )	rO   rP   rQ   rR   rS   rŒ   rQ  rU   rV   rW   s   @r>   rF  rF  3  s   ø‡ € ñ÷
ò 
÷
ö rM   rF  c                   ó  a a€ ] tR tRt oRV3R lV 3R llltV3R lR ltRV3R lR lltV3R lR	 ltRV3R
 lR lltV3R lR lt	V3R lR lt
V3R lR ltV3R lR lt]V3R lR l4       t]V3R lR l4       tRtVtV ;t# )r1   iM  c                ó\   <€ V ^8„  d   QhRS[ S[P                  ,          RS[R,          RR/# )rB   rj  Ú_extension_registryNre   )rG   rU  rm  r   )rI   rJ   s   "€r>   rK   ÚFileSystemReader.__annotate__N  s7   ø€ ÷ $ñ $á‘B—K‘KÕð$ñ /°Õ5ð$ð 
ñ	$rM   c                óê   <€ \         SV `  4        \        4       V n        V P                  P	                  V4      V n        / V n        \        4       V n        \        V4      V n
        R V n        RV n        R # )NT)rÑ  rŒ   r2   rÒ  r„  rj  r3  ri   Úload_idrF  r+  rÔ  rÕ  )r;   rj  rU  rÖ  s   &&&€r>   rŒ   ÚFileSystemReader.__init__N  s]   ø€ ô
 	‰ÑÔÜ“,ˆŒØ—G‘G×%Ñ% dÓ+ˆŒ	Ø,.ˆÔÜ%Ó'ˆŒÜ2Ð3FÓGˆŒØˆŒ	Ø#ˆÖrM   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )rB   Úsinfore   )r6   r   ró   )rI   rJ   s   "€r>   rK   rV  \  s#   ø€ ÷ Tñ T¡|ð T¹¹5½	ñ TrM   c                ót   € \        \        \        ,          \        WP                  VP
                  4      4      # r8   )r   r   ró   r.   rD   rE   )r;   Úfiler[  s   &&&r>   Ú_slice_fileÚFileSystemReader._slice_file\  s#   € Ü”B”u•IÔ0°·|±|ÀUÇ\Á\ÓRÓSÐSrM   c                óV   <€ V ^8„  d   QhRS[ S[P                  ,          R,          RR/# rÙ  rt  )rI   rJ   s   "€r>   rK   rV  _  s)   ø€ ÷ (ñ (¡3©¯©Õ#4°tÕ#;ð (Àtñ (rM   c                ó‚   € / V n         V'       d!   V P                  P                  V4      V n        \	        4       V n        R # r8   )r3  rÒ  r„  rj  ri   rX  rÛ  s   &&r>   rÜ  ÚFileSystemReader.reset_  s-   € ØˆÔßØŸ™×)Ñ)¨-Ó8ˆDŒIÜ%Ó'ˆŽrM   c                ó:   <€ V ^8„  d   QhRS[ RS[RS[R,          /# )rB   rì  r>  re   N)r#   r$   r/   )rI   rJ   s   "€r>   rK   rV  e  s&   ø€ ÷ :ñ :™hð :±ð :ÁÈÅñ :rM   c                ó  € / pVP                    FM  pV P                  VP                  ,          pVP                  pVP	                  V. 4      P                  V4       KO  	  VP                  4        EFa  w  rxV P                  P                  V P                  V4      p	V P                  P                  V	R 4      ;_uu_ 4       p
V EF  pV P                  VP                  ,          pV P                  W¥4      pV P                  P                  TVP                  ;'       g    RV4      pVP                  \        P                   8X  dJ   \"        P$                  ! VP'                  R	4      4      pVP)                  ^ 4       VP+                  W¾4       KË  VP-                  4       '       d   TpM6\"        P$                  ! VP'                  R	4      4      pVP)                  ^ 4       \/        \0        \2        P4                  ! VRRR7      4      p\7        VVP8                  VP:                  4      pVP=                  V4      P?                  4       pVPA                  4       VPA                  4       8w  d;   \C        RVP                   RVPA                  4        RVPA                  4        24      hVPE                  V4       VPG                  VV4       EK  	  RRR4       EKd  	  \I        4       pVPK                  R4       V#   + '       g   i     EK•  ; i)
Úrbr˜   T)Úmap_locationÚweights_onlyzreq z mismatch sizes z vs NrN   éÿÿÿÿ)&r:   r3  Ústorage_indexrC   Ú
setdefaultr�   rÒ  rw  rj  r;  r^  r+  rQ  rF   rË   r"   r  rñ   r/  ÚreadÚseekÚ
load_bytesÚseekabler   r   r‚   Úloadr   Ústorage_offsetsÚlengthsÚresolve_tensorr—   rn   rÒ   Úcopy_Úcommit_tensorr/   r  )r;   rì  r>  Úper_filerM  Úitem_mdrj  rC   Úreqsr{  r£   ÚreqÚ
file_slicerP  Ú
read_bytesrn  rž   Útarget_tensorr  s   &&&                r>   Ú	read_dataÚFileSystemReader.read_datae  s|  € à.0ˆØŸœˆIØ$(×$5Ñ$5°i×6MÑ6MÕ$NˆGØ×(Ñ(ˆDØ×Ñ  bÓ)×0Ñ0°Ö;ñ $ð
 $,§>¡>×#3ÑˆMØ—w‘w×*Ñ*¨4¯9©9°mÓDˆHØ—‘×&Ñ& x°×6Ô6¸&ä�CØ"×/Ñ/°×0AÑ0AÕB�GØ!%×!1Ñ!1°&Ó!B�JØ%)§_¡_×%JÑ%JØð  ×5Ñ5×;Ð;¸Ø"ó&�Nð —x‘x¤<×#7Ñ#7Ô7Ü%'§Z¢Z°×0CÑ0CÀBÓ0GÓ%H˜
Ø"Ÿ™¨Ô*Ø×*Ñ*¨3Ö;à)×2Ñ2×4Ò4Ø'5™Hô (*§z¢z°.×2EÑ2EÀbÓ2IÓ'J˜HØ$ŸM™M¨!Ô,ä!%Ü"Ü!ŸJšJØ (Ø-2Ø-1ôó"˜ô "8Ø" C×$7Ñ$7¸¿¹ó"˜ð )0×(>Ñ(>¸sÓ(C×(JÑ(JÓ(L˜à(×-Ñ-Ó/°6·;±;³=Ô@Ü"0Ø"& s×'8Ñ'8Ð&9Ð9IÈ-×J\ÑJ\ÓJ^ÐI_Ð_cÐdj×doÑdoÓdqÐcrÐ só#ð ð &×+Ñ+¨FÔ3Ø×-Ñ-¨c°=×AñU  ÷ 7Ò6ñ $4ô` “hˆØ�‰�tÔØˆ
÷a 7×6Ñ6ús   Ã AK3ÄBK3Æ$D%K3Ë3Lc                óH   <€ V ^8„  d   QhRS[ R,          RS[P                  /# r-  r.  )rI   rJ   s   "€r>   rK   rV  ¡  r/  rM   c                ó–   € Vf   \          M
RV \          2p\        \        V P                  P	                  V P
                  V4      4      # r1  r2  r3  s   && r>   ræ  Ú#FileSystemReader._get_metadata_path¡  r6  rM   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )rB   rÍ  rÎ  re   )r   r   )rI   rJ   s   "€r>   rK   rV  ¦  s"   ø€ ÷ 
ñ 
¡3ð 
±#ð 
¹(ñ 
rM   c                óh  € VP                  R 4      pV P                  V4      pV P                  P                  VR4      ;_uu_ 4       p\        P
                  ! V4      pRRR4       \        XRR4      f   \        4       Vn        V P                  VP                  n	        V#   + '       g   i     LK; i)rÔ  re  Nr  )
rá  ræ  rÒ  r;  r  ro  rK  r!   r  rX  )r;   rÍ  rÎ  rÔ  rj  r&  rF  s   &*,    r>   Úread_metadataÚFileSystemReader.read_metadata¦  s‡   € Ø�z‰z˜&Ó!ˆØ×&Ñ& tÓ,ˆØ�W‰W×"Ñ" 4¨×.Ô.°-Ü—{’{ =Ó1ˆH÷ /ô �8˜^¨TÓ2Ò:Ü$/£MˆHÔ!Ø(,¯©ˆ×ÑÔ%àˆ÷ /×.ús   ÁB!Â!B1	c          
      ó6   <€ V ^8„  d   QhRS[ RS[RS[RS[RR/# )rB   rF  rß  rÍ  rÎ  re   N)r   r¶   r   )rI   rJ   s   "€r>   rK   rV  ²  s<   ø€ ÷ Nñ NÙ ðNÙ26ðNÙ?BðNÙNQðNà	ñNrM   c                ó´   € VP                   V n         VP                  R 4      V n        VP                  RR4      V n        V P                   f   \	        R4      hR# )rÔ  rÕ  TNz)storage_data must not be None in metadata)r3  rá  rÔ  rÕ  rÒ   )r;   rF  rß  rÍ  rÎ  s   &&&*,r>   Úset_up_storage_readerÚ&FileSystemReader.set_up_storage_reader²  sS   € ð %×1Ñ1ˆÔØ—J‘J˜vÓ&ˆŒ	Ø%Ÿz™zÐ*;¸TÓBˆÔØ×ÑÒ$Ü Ð!LÓMÐMñ %rM   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# rë  )r#   )rI   rJ   s   "€r>   rK   rV  »  s   ø€ ÷ ñ ¡xð ±Hñ rM   c                ó   € V# r8   rN   rô  s   &&r>   rõ  Ú#FileSystemReader.prepare_local_plan»  s   € ØˆrM   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          /# rø  )r¼   r#   )rI   rJ   s   "€r>   rK   rV  ¾  s#   ø€ ÷ ñ ©©h­ð ¹DÁ½Nñ rM   c                ó   € V# r8   rN   )r;   rù  s   &&r>   rü  Ú$FileSystemReader.prepare_global_plan¾  s   € ØˆrM   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# rd   rt  )rI   rJ   s   "€r>   rK   rV  Â  r8  rM   c                ó   € V P                   # )zD
return the checkpoint_id that will be used to load the checkpoint.
r:  r|   s   &r>   r�  ÚFileSystemReader.checkpoint_idÁ  r<  rM   c                óJ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[/# rŒ  rŽ  )rI   rJ   s   "€r>   rK   rV  É  r>  rM   c                ó,   € \         P                  V4      # r8   r@  r�  s   &&r>   r’  Ú'FileSystemReader.validate_checkpoint_idÈ  rB  rM   )rÒ  rX  rj  rÔ  r3  r+  rÕ  r8   )rO   rP   rQ   rR   rŒ   r^  rÜ  r|  ræ  rƒ  r‡  rõ  rü  rä   r�  rœ  r’  rU   rV   rC  rD  s   @@r>   r1   r1   M  s–   ù‡ € ÷$õ $÷Tð T÷(ò (÷:ð :÷xDò D÷

ð 
÷Nð N÷ð ÷ð ð ÷ó ðð ÷@ó ÷@ð @rM   c                   ó|   a a€ ] tR tRt oRtRR^RRRR]P                  3V3R lR lltV3R	 lV 3R
 lltRt	Vt
V ;t# )r0   iÍ  aÔ  
Basic implementation of StorageWriter using file IO.

This implementation makes the following assumptions and simplifications:

* The checkpoint path is an empty or non-existing directory.
* File creation is atomic

The checkpoint consist of one file per write request plus
a global `.metadata` file with the serialized metadata if rank coordination is enabled.
a rank local `__{rank}.metadata` file with the serialized metadata if rank coordination is NOT enabled.

TrÆ  FNc                ó–   <€ V ^8„  d   QhRS[ S[P                  ,          RS[RS[RS[RS[RS[RS[RS[S[,          R	,          R
S[RR	/
# )rB   rj  rÈ  rÉ  r@  rÊ  Úcache_staged_state_dictrË  rÌ  Nr.  re   )rG   rU  rm  r¶   rH   r	   r   r4   )rI   rJ   s   "€r>   rK   ÚFileSystemWriter.__annotate__Ü  sƒ   ø€ ÷ +
ñ +
á‘B—K‘KÕð+
ñ #ð+
ñ ð	+
ñ
 ð+
ñ  #ð+
ñ "&ð+
ñ ð+
ñ Ñ6Õ7¸$Õ>ð+
ñ 2ð+
ð 
ñ+
rM   c
                ór   € \         P                  V VVVVVVVV	R7	       \        P                  ! V VR7       R# )a*  
Initialize the writer pointing to `path`.

Args:
    path: directory where the checkpoint will be written to.
    single_file_per_rank: Produce one file per rank instead of one file per tensor/blob. Default to True.
    sync_files : force files to be synced to permanent storage. Default to True.
    thread_count: Number of IO threads to use to write. Default to 1.
    per_thread_copy_ahead: How many bytes to copy from the GPU ahead of saving them. Default 10Mb.
    cache_staged_state_dict: Whether to cache the staged state_dict. This option decreases staging latency
        at the cost of increased memory usage. Additionally, if this parameter is set to True, it's the expectation
        that the stager is maintained and reused for multiple dcp.async_save calls. Default to False.
    overwrite: Whether to allow overwriting existing checkpoints. Defaults to True.
    _extensions: Extensions to apply to output streams (EXPERIMENTAL)

N. B. If sync_files is disabled, there's no guarantee that the checkpoint will be consistent in the case of a failure.
)rj  rÈ  rÉ  r@  rÊ  rË  rÌ  r.  )r—  N)rÅ  rŒ   r*   )
r;   rj  rÈ  rÉ  r@  rÊ  r—  rË  rÌ  r.  s
   &&&&&&&&&&r>   rŒ   ÚFileSystemWriter.__init__Ü  sH   € ô: 	×"Ñ"ØØØ!5Ø!Ø%Ø"7ØØ#Ø!5ð 	#ô 
	
ô 	×$Ò$ØØ$;÷	
rM   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )rB   Ú
state_dictre   )r    )rI   rJ   s   "€r>   rK   r˜  	  s   ø€ ÷ )ñ )¡ð )±Oñ )rM   c                ó0   <€ ^ V n         \        SV `	  V4      # )zOverride of AsyncStager.stage)rÊ  rÑ  Ústage)r;   rœ  rÖ  s   &&€r>   rž  ÚFileSystemWriter.stage	  s   ø€ ð &'ˆÔ"Ü‰w‰}˜ZÓ(Ð(rM   )rÊ  )rO   rP   rQ   rR   rS   r4   ra   rŒ   rž  rU   rV   rC  rD  s   @@r>   r0   r0   Í  sD   ù‡ € ñð" &*ØØØ%/Ø(-ØØAEØ4G×4RÑ4R÷+
ò +
÷Z)÷ )ó )rM   c                ó~   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d   \        \        ,          ;R&   # )rB   r  r  )Ú__conditional_annotations__rG   r   )rI   s   "r>   rK   rK      s4   € × Ñ ÷F  Ò ŒcÑ ñG ÷J *Ò )”Uœ3•ZÑ )òK rM   )r0   r1   r2   r3   r4   )br¡  r©   rò  rñ   rS  rÞ   rU  r  rA  r  rg   rY  Úabcr   r   Úcollections.abcr   r   r   r   r	   Ú
contextlibr
   r   Úenumr   r   Úpathlibr   Útypingr   r   r   r   Útyping_extensionsr   r‚   r   Útorch._utilsr   r   Útorch.distributed._shard._utilsr   Ú'torch.distributed.checkpoint._extensionr   r   Ú&torch.distributed.checkpoint._hf_utilsr   r   r   r   r   Ú%torch.distributed.checkpoint.metadatar   r    r!   Ú$torch.distributed.checkpoint.plannerr"   r#   r$   r%   r&   r'   r(   r)   Ú$torch.distributed.checkpoint.stagingr*   Ú$torch.distributed.checkpoint.storager+   r,   r-   Ú"torch.distributed.checkpoint.utilsr.   Útorch.futuresr/   Ú__all__r  r  r6   rY   r4   r  ri   rk   r‡   r¡   ræ   r  r)  r9  rf  r3   r2   rÅ  rF  r1   r0   rK   )r¡  s   @r>   Ú<module>r´     s£  øðç Ð Û Û 	Û Û Û 	Û Û Û Û Û ß #ß MÕ MÝ %Ý !Ý Ý #Ý ß 'Ó 'õ %ã Ý ß GÝ B÷÷õ ÷ YÑ X÷	÷ 	ó 	õ E÷ñ õ
 AÝ  ò€ð  €Ó à")Ð Ó )ð ÷	Ið 	Ió ð	Ið ÷ð ó ðô ˜$ô  ð
 €õô�Cô ô�}ô ô0X"˜Mô X"÷v0Yñ 0Yõf	4õõ04õnkô\<�Sô <ô@:0�ô :0ôzn@˜ô n@÷bñ ô4}@�}ô }@ô@A)Ð(Ð*=ö A)rM   