ó
    Eñi>  ã                   ó  • S SK r S SKr S SKrS SKrS SKrS SKJrJr  S SKrS SK	J
r
  S SKJr  SSKJrJrJr  SSKJrJr  \" SS	S
9rSr\(       a   S SKJs  Jr  S SKrS	r\r\R<                  R?                  5       r SIS jr!S\"4S jr#S r$S r%S r&S r'S r(S r)S r*S r+S r,S r-\SJS j5       r.S r/S r0S r1SKS jr2S r3S r4S  r5S! r6SIS" jr7S# r8S$ r9S% r:S& r;S' r<S( r=S) r>S* r?S+ r@S, rAS- rBS. rCS/ rDS0 rES1 rFS2 rGS3 rHS4 rIS5 rJS6 rKS7 rLS8 rMSLS9 jrN\SKS: j5       rO\SKS; j5       rP\SKS< j5       rQ\SKS= j5       rR\SKS> j5       rSS? rT\SKS@ j5       rU\SKSA j5       rVSB rWSC rXSD rYSE rZSF r[SG r\SMSH jr]g! \ a     GN f = f)Né    N)Ú	lru_cacheÚwraps)Úversion)Úparseé   )Úparse_flag_from_envÚpatch_environmentÚstr_to_bool)Úcompare_versionsÚis_torch_versionÚUSE_TORCH_XLAT)ÚdefaultFc                 óè   • [         R                  R                  U 5      S LnU(       a&   [         R                  R                  Uc  U OU5      ngg ! [         R                  R                   a     gf = f)NTF)Ú	importlibÚutilÚ	find_specÚmetadataÚPackageNotFoundError)Úpkg_nameÚmetadata_nameÚpackage_existsÚ_s       ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/accelerate/utils/imports.pyÚ_is_package_availabler   2   si   € ä—^‘^×-Ñ-¨hÓ7¸tÐC€NÞð	ä×"Ñ"×+Ñ+¸Ñ8M©HÐS`ÓaˆAØð	 øô
 ×!Ñ!×6Ñ6ó 	Ùð	ús   ª$A ÁA1Á0A1Úreturnc                  ó   • [         $ ©N)Ú_torch_distributed_available© ó    r   Úis_torch_distributed_availabler!   >   s   € Ü'Ð'r    c                  óv   • [        SS5      (       a(  [        R                  R                  R	                  5       $ g)Nú>=z2.7.0F)r   ÚtorchÚdistributedÚdistributed_c10dÚis_xccl_availabler   r    r   r'   r'   B   s-   € Ü˜˜g×&Ñ&Ü× Ñ ×1Ñ1×CÑCÓEÐEØr    c                  ó   • [        S5      $ )NÚimport_timer©r   r   r    r   Úis_import_timer_availabler+   H   ó   € Ü  Ó0Ð0r    c                  ó>   • [        S5      =(       d    [        SS5      $ )NÚpynvmlznvidia-ml-pyr*   r   r    r   Úis_pynvml_availabler/   L   s   € Ü  Ó*×]Ô.CÀHÈnÓ.]Ð]r    c                  ó   • [        S5      $ )NÚpytestr*   r   r    r   Úis_pytest_availabler2   P   ó   € Ü  Ó*Ð*r    c                  ó   • [        SS5      $ )NÚmsampzms-ampr*   r   r    r   Úis_msamp_availabler6   T   s   € Ü  ¨(Ó3Ð3r    c                  ó   • [        S5      $ )NÚschedulefreer*   r   r    r   Úis_schedulefree_availabler9   X   r,   r    c                  óP   • [        5       (       a  [        SS5      $ [        SS5      $ )NÚintel_transformer_enginezintel-transformer-engineÚtransformer_engineútransformer-engine)Úis_hpu_availabler   r   r    r   Úis_transformer_engine_availabler?   \   s)   € Ü×ÑÜ$Ð%?ÐA[Ó\Ð\ä$Ð%9Ð;OÓPÐPr    c                  óF   • [        SS5      (       a  SSKJn   U " 5       S   $ g)Nr<   r=   r   ©Úcheck_mxfp8_supportF)r   Útransformer_engine.pytorch.fp8rB   rA   s    r   Ú%is_transformer_engine_mxfp8_availablerD   c   s%   € ÜÐ1Ð3G×HÑHÝFá"Ó$ QÑ'Ð'Ør    c                  ó   • [        S5      $ )NÚ
lomo_optimr*   r   r    r   Úis_lomo_availablerG   k   ó   € Ü  Ó.Ð.r    c                  óŠ   • [        SS9   [        R                  R                  5       n SSS5        U $ ! , (       d  f       W $ = f)zw
Checks if `cuda` is available via an `nvml-based` check which won't trigger the drivers and leave cuda
uninitialized.
Ú1)ÚPYTORCH_NVML_BASED_CUDA_CHECKN)r	   r$   ÚcudaÚis_available)Ú	availables    r   Úis_cuda_availablerO   o   s<   € ô
 
¸Ó	=Ü—J‘J×+Ñ+Ó-ˆ	÷ 
>ð Ð÷ 
>Ô	=ð Ðús	   Š3³
Ac                 óæ   • U (       a  U(       a   S5       e[         (       d  gU(       a!  [        R                  R                  5       S;   $ U (       a!  [        R                  R                  5       S:H  $ g)zŽ
Check if `torch_xla` is available. To train a native pytorch job in an environment with torch xla installed, set
the USE_TORCH_XLA to false.
z6The check_is_tpu and check_is_gpu cannot both be true.F)ÚGPUÚCUDAÚTPUT)Ú_torch_xla_availableÚ	torch_xlaÚruntimeÚdevice_type)Úcheck_is_tpuÚcheck_is_gpus     r   Úis_torch_xla_availablerZ   z   s[   € ö ¦ÐhÐ0hÓhÐ.çÒØÞ	Ü× Ñ ×,Ñ,Ó.°/ÑAÐAÞ	Ü× Ñ ×,Ñ,Ó.°%Ñ7Ð7àr    c                  ó¨   • [        S5      n U (       a@  [        R                  " [        R                  R                  S5      5      n[        USS5      $ g)NÚtorchaor#   z0.6.1F©r   r   r   r   r   r   )r   Útorchao_versions     r   Úis_torchao_availabler_   Œ   s@   € Ü*¨9Ó5€NÞÜ!Ÿ-š-¬	×(:Ñ(:×(BÑ(BÀ9Ó(MÓNˆÜ °°wÓ?Ð?Ør    c                  ó   • [        S5      $ )NÚ	deepspeedr*   r   r    r   Úis_deepspeed_availablerb   ”   ó   € Ü  Ó-Ð-r    c                  ó   • [        SS5      $ ©Nr#   z2.4.0©r   r   r    r   Úis_pippy_availablerg   ˜   s   € Ü˜D 'Ó*Ð*r    c                 ó®  • [        SS9(       a  U (       + $ [        5       (       a  [        R                  R	                  5       $ [        5       (       a  [        R                  R	                  5       $ [        5       (       a  [        R                  R	                  5       $ [        5       (       a*  [        R                  R                  R                  SS5      $ g)z8Checks if bf16 is supported, optionally ignoring the TPUT)rX   é   r   )rZ   rO   r$   rL   Úis_bf16_supportedÚis_mlu_availableÚmluÚis_xpu_availableÚxpuÚis_mps_availableÚbackendsÚmpsÚis_macos_or_newer)Ú
ignore_tpus    r   Úis_bf16_availablert   œ   s�   € ä¨4×0ØŒ~ÐÜ×ÑÜ�z‰z×+Ñ+Ó-Ð-Ü×ÑÜ�y‰y×*Ñ*Ó,Ð,Ü×ÑÜ�y‰y×*Ñ*Ó,Ð,Ü×ÑÜ�~‰~×!Ñ!×3Ñ3°B¸Ó:Ð:Ør    c                  ó$   • [        5       (       a  gg)zChecks if fp16 is supportedFT)Úis_habana_gaudi1r   r    r   Úis_fp16_availablerw   «   s   € ä×ÑØàr    c                  óZ   • [        5       =(       d    [        5       =(       d
    [        5       $ )zChecks if fp8 is supported)r6   r?   r_   r   r    r   Úis_fp8_availablery   ³   s   € äÓ×^Ô#BÓ#D×^ÔH\ÓH^Ð^r    c                  ó¨   • [        S5      n U (       a@  [        R                  " [        R                  R                  S5      5      n[        USS5      $ g)NÚbitsandbytesr#   z0.39.0Fr]   ©r   Úbnb_versions     r   Úis_4bit_bnb_availabler~   ¸   ó@   € Ü*¨>Ó:€NÞÜ—m’m¤I×$6Ñ$6×$>Ñ$>¸~Ó$NÓOˆÜ ¨T°8Ó<Ð<Ør    c                  ó¨   • [        S5      n U (       a@  [        R                  " [        R                  R                  S5      5      n[        USS5      $ g)Nr{   r#   z0.37.2Fr]   r|   s     r   Úis_8bit_bnb_availabler�   À   r   r    c                 ó°   • [        S5      nU(       aC  U b@  [        R                  " [        R                  R                  S5      5      n[        USU 5      $ U$ )Nr{   r#   r]   )Úmin_versionr   r}   s      r   Úis_bnb_availabler„   È   sH   € Ü*¨>Ó:€NÞ˜+Ñ1Ü—m’m¤I×$6Ñ$6×$>Ñ$>¸~Ó$NÓOˆÜ ¨T°;Ó?Ð?àÐr    c                  óZ   • [        5       (       d  gSS Kn S[        U S[        5       5      ;   $ )NFr   Úmulti_backendÚfeatures)r„   r{   ÚgetattrÚset)Úbnbs    r   Ú'is_bitsandbytes_multi_backend_availabler‹   Ñ   s'   € Ü×ÑØÛàœg c¨:´s³uÓ=Ñ=Ð=r    c                  ó   • [        S5      $ )NÚtorchvisionr*   r   r    r   Úis_torchvision_availablerŽ   Ù   s   € Ü  Ó/Ð/r    c                  ó¸  • [        [        R                  R                  SS5      5      S:X  a}  [        R
                  R                  S5      b\   [        [        R                  R                  S5      5      n [        U SS5      (       a   [        R
                  R                  SS5      $ g g g ! [         a#  n[        R                  " S	U 35         S nAg
S nAff = f)NÚACCELERATE_USE_MEGATRON_LMÚFalser   Úmegatronzmegatron-corer#   ú0.8.0z	.trainingz)Parse Megatron version failed. Exception:F)r
   ÚosÚenvironÚgetr   r   r   r   r   r   r   Ú	ExceptionÚwarningsÚwarn)Úmegatron_versionÚes     r   Úis_megatron_lm_availablerœ   Ý   s¶   € Ü”2—:‘:—>‘>Ð">ÀÓHÓIÈQÓNÜ�>‰>×#Ñ# JÓ/Ñ;ðÜ#(¬×);Ñ);×)CÑ)CÀOÓ)TÓ#UÐ Ü#Ð$4°d¸G×DÑDÜ$Ÿ>™>×3Ñ3°KÀÓLÐLð Eð <ð Oøô ó Ü—’Ð IÈ!ÈÐMÔNÜûðús   ÁAB, Â,
CÂ6CÃCc                  ó   • [        S5      $ )NÚtransformersr*   r   r    r   Úis_transformers_availablerŸ   é   r,   r    c                  ó   • [        S5      $ )NÚdatasetsr*   r   r    r   Úis_datasets_availabler¢   í   ó   € Ü  Ó,Ð,r    c                  ó   • [        S5      $ )NÚpeftr*   r   r    r   Úis_peft_availabler¦   ñ   ó   € Ü  Ó(Ð(r    c                  ó   • [        S5      $ )NÚtimmr*   r   r    r   Úis_timm_availablerª   õ   r§   r    c                  óN   • [        5       (       a  [        SS5      $ [        S5      $ )NÚtritonzpytorch-triton-xpu)rm   r   r   r    r   Úis_triton_availabler­   ù   s$   € Ü×ÑÜ$ XÐ/CÓDÐDÜ  Ó*Ð*r    c                  ó¨   • [        S5      n U (       a@  [        R                  " [        R                  R                  S5      5      n[        USS5      $ g)NÚaimÚ<z4.0.0Fr]   )r   Úaim_versions     r   Úis_aim_availabler²   ÿ   s@   € Ü*¨5Ó1€NÞÜ—m’m¤I×$6Ñ$6×$>Ñ$>¸uÓ$EÓFˆÜ ¨S°'Ó:Ð:Ør    c                  ó<   • [        S5      =(       d    [        S5      $ )NÚtensorboardÚtensorboardXr*   r   r    r   Úis_tensorboard_availabler¶     s   € Ü  Ó/×XÔ3HÈÓ3XÐXr    c                  ó   • [        S5      $ )NÚwandbr*   r   r    r   Úis_wandb_availabler¹     ó   € Ü  Ó)Ð)r    c                  ó   • [        S5      $ )NÚcomet_mlr*   r   r    r   Úis_comet_ml_availabler½     r£   r    c                  ó   • [        S5      $ )NÚswanlabr*   r   r    r   Úis_swanlab_availablerÀ     ó   € Ü  Ó+Ð+r    c                  óL   • [         R                  S:¬  =(       a    [        S5      $ )N)é   é
   Útrackio)ÚsysÚversion_infor   r   r    r   Úis_trackio_availablerÈ     s   € Ü×Ñ˜wÑ&×KÔ+@ÀÓ+KÐKr    c                  ó   • [        S5      $ )NÚboto3r*   r   r    r   Úis_boto3_availablerË     rº   r    c                  ó<   • [        S5      (       a  [        SS5      $ g)NÚrichÚACCELERATE_ENABLE_RICHF)r   r   r   r    r   Úis_rich_availablerÏ     s   € Ü˜V×$Ñ$Ü"Ð#;¸UÓCÐCØr    c                  ó   • [        S5      $ )NÚ	sagemakerr*   r   r    r   Úis_sagemaker_availablerÒ   %  rc   r    c                  ó   • [        S5      $ )NÚtqdmr*   r   r    r   Úis_tqdm_availablerÕ   )  r§   r    c                  ó   • [        S5      $ )NÚclearmlr*   r   r    r   Úis_clearml_availablerØ   -  rÁ   r    c                  ó   • [        S5      $ )NÚpandasr*   r   r    r   Úis_pandas_availablerÛ   1  r3   r    c                  ó   • [        S5      $ )NÚ
matplotlibr*   r   r    r   Úis_matplotlib_availablerÞ   5  rH   r    c                  óð   • [        S5      (       a  g[        R                  R                  S5      b!   [        R                  R	                  S5      n gg! [        R                  R
                   a     gf = f)NÚmlflowTzmlflow-skinnyF)r   r   r   r   r   r   )r   s    r   Úis_mlflow_availablerá   9  sh   € Ü˜X×&Ñ&Øä‡~�~×Ñ Ó)Ñ5ð	Ü×"Ñ"×+Ñ+¨OÓ<ˆAØð øô ×!Ñ!×6Ñ6ó 	Ùð	ús   ³A ÁA5Á4A5c                 óÖ   • [        SU 5      =(       aW    [        R                  R                  R	                  5       =(       a(    [        R                  R                  R                  5       $ )zHChecks if MPS device is available. The minimum version required is 1.12.r#   )r   r$   rp   rq   rM   Úis_built)rƒ   s    r   ro   ro   F  sD   € ô ˜D +Ó.×v´5·>±>×3EÑ3E×3RÑ3RÓ3T×vÔY^×YgÑYg×YkÑYk×YtÑYtÓYvÐvr    c                 óÔ   • [         R                  R                  S5      c  gSSKn[	        SS9   [
        R                  R                  5       nSSS5        U$ ! , (       d  f       W$ = f)zv
Checks if `mlu` is available via an `cndev-based` check which won't trigger the drivers and leave mlu
uninitialized.
Ú	torch_mluNFr   rJ   )ÚPYTORCH_CNDEV_BASED_MLU_CHECK)r   r   r   rå   r	   r$   rl   rM   )Úcheck_devicerå   rN   s      r   rk   rk   M  sW   € ô ‡~�~×Ñ Ó,Ñ4Øãä	¸Ó	=Ü—I‘I×*Ñ*Ó,ˆ	÷ 
>ð Ð÷ 
>Ô	=ð Ðús   ¯AÁ
A'c                 ó^  • [         R                  R                  S5      c  gSSKnU (       a=   [        R
                  R                  5       n[        R
                  R                  5       $ [        [        S5      =(       a    [        R
                  R                  5       $ ! [         a     gf = f)zSChecks if `torch_musa` is installed and potentially if a MUSA is in the environmentÚ
torch_musaNFr   Úmusa)
r   r   r   ré   r$   rê   Údevice_countrM   ÚRuntimeErrorÚhasattr)rç   ré   r   s      r   Úis_musa_availablerî   ^  ó�   € ô ‡~�~×Ñ Ó-Ñ5Øãæð	ä—
‘
×'Ñ'Ó)ˆAÜ—:‘:×*Ñ*Ó,Ð,ô ”5˜&Ó!×?¤e§j¡j×&=Ñ&=Ó&?Ð?øô ó 	Ùð	úó   ®;B Â
B,Â+B,c                 ó€  • [         R                  R                  S5      c  g SSKnU (       a=   [
        R                  R                  5       n[
        R                  R                  5       $ [        [
        S5      =(       a    [
        R                  R                  5       $ ! [         a     gf = f! [         a     gf = f)zQChecks if `torch_npu` is installed and potentially if a NPU is in the environmentÚ	torch_npuNFr   Únpu)r   r   r   rò   r—   r$   ró   rë   rM   rì   rí   )rç   rò   r   s      r   Úis_npu_availablerô   p  s›   € ô ‡~�~×Ñ Ó,Ñ4ØðÛö ð	ä—	‘	×&Ñ&Ó(ˆAÜ—9‘9×)Ñ)Ó+Ð+ô ”5˜%Ó ×=¤U§Y¡Y×%;Ñ%;Ó%=Ð=øô ó Ùðûô ó 	Ùð	ús"   £B  ¯;B0 Â 
B-Â,B-Â0
B=Â<B=c                 ó^  • [         R                  R                  S5      c  gSSKnU (       a=   [        R
                  R                  5       n[        R
                  R                  5       $ [        [        S5      =(       a    [        R
                  R                  5       $ ! [         a     gf = f)zSChecks if `torch_sdaa` is installed and potentially if a SDAA is in the environmentÚ
torch_sdaaNFr   Úsdaa)
r   r   r   rö   r$   r÷   rë   rM   rì   rí   )rç   rö   r   s      r   Úis_sdaa_availablerø   ‡  rï   rð   c                 ó  • [         R                  R                  S5      b   [         R                  R                  S5      c  gSSKnU (       a  SSKJs  Js  Jn  [        [
        S5      =(       a    [
        R                  R                  5       $ )zQChecks if `torch.hpu` is installed and potentially if a HPU is in the environmentÚhabana_frameworksNzhabana_frameworks.torchFr   Úhpu)r   r   r   Úhabana_frameworks.torchÚ(habana_frameworks.torch.distributed.hcclr$   r%   Úhcclrí   rû   rM   )Ú	init_hcclrú   rþ   s      r   r>   r>   ™  s^   € ô 	�‰× Ñ Ð!4Ó5Ñ=Ü�>‰>×#Ñ#Ð$=Ó>ÑFàã"æß?Ó?ä”5˜%Ó ×=¤U§Y¡Y×%;Ñ%;Ó%=Ð=r    c                  óŒ   • [        5       (       a5  SS KJs  Js  Jn   U R                  5       U R                  R                  :X  a  gg)Nr   TF)r>   Ú*habana_frameworks.torch.utils.experimentalr$   ÚutilsÚexperimentalÚ_get_device_typeÚsynDeviceTypeÚsynDeviceGaudi)Úhtexps    r   rv   rv   ª  s4   € Ü×ÑßBÓBà×!Ñ!Ó# u×':Ñ':×'IÑ'IÓIØàr    c                 ó8  • [        SS5      (       a  gU (       a=   [        R                  R                  5       n[        R                  R	                  5       $ [        [        S5      =(       a    [        R                  R	                  5       $ ! [
         a     gf = f)zr
Checks if XPU acceleration is available via stock PyTorch (>=2.7) and
potentially if a XPU is in the environment
z<=z2.6Frn   )r   r$   rn   rë   rM   rì   rí   )rç   r   s     r   rm   rm   ´  sv   € ô ˜˜e×$Ñ$Øæð	ä—	‘	×&Ñ&Ó(ˆAÜ—9‘9×)Ñ)Ó+Ð+ô ”5˜%Ó ×=¤U§Y¡Y×%;Ñ%;Ó%=Ð=øô ó 	Ùð	ús   ›;B Â
BÂBc                 ó^  • [         R                  R                  S5      c  gU (       aA   SS Kn[        R
                  R                  5       n[        R
                  R                  5       $ [        [        S5      =(       a    [        R
                  R                  5       $ ! [         a     gf = f)NÚtorch_neuronxFr   Úneuron)
r   r   r   r
  r$   r  rë   rM   rì   rí   )rç   r
  r   s      r   Úis_neuron_availabler  È  s�   € ä‡~�~×Ñ Ó0Ñ8Øæð	Û ô —‘×)Ñ)Ó+ˆAÜ—<‘<×,Ñ,Ó.Ð.ô ”5˜(Ó#×C¬¯©×(AÑ(AÓ(CÐCøô ó 	Ùð	ús   ª?B Â
B,Â+B,c                  ó   • [        S5      $ )NÚdvcliver*   r   r    r   Úis_dvclive_availabler  Ú  rÁ   r    c                  ó   • [        S5      $ )NÚ	torchdatar*   r   r    r   Úis_torchdata_availabler  Þ  rc   r    c                  ó¨   • [        S5      n U (       a@  [        R                  " [        R                  R                  S5      5      n[        USS5      $ g)Nr  r#   r“   Fr]   )r   Útorchdata_versions     r   Ú*is_torchdata_stateful_dataloader_availabler  ã  sB   € Ü*¨;Ó7€NÞÜ#ŸMšM¬)×*<Ñ*<×*DÑ*DÀ[Ó*QÓRÐÜÐ 1°4¸ÓAÐAØr    c                 ó0   ^ • [        T 5      U 4S j5       nU$ )z[
A decorator that ensures the decorated function is only called when torchao is available.
c                  óH   >• [        5       (       d  [        S5      eT" U 0 UD6$ )Nze`torchao` is not available, please install it before calling this function via `pip install torchao`.)r_   ÚImportError)ÚargsÚkwargsÚfuncs     €r   ÚwrapperÚ!torchao_required.<locals>.wrapperð  s.   ø€ ä#×%Ñ%ÜØwóð ñ �TÐ$˜VÑ$Ð$r    ©r   ©r  r  s   ` r   Útorchao_requiredr   ë  s"   ø€ ô
 ˆ4ƒ[ô%ó ð%ð €Nr    c                 ó0   ^ • [        T 5      U 4S j5       nU$ )z[
A decorator that ensures the decorated function is only called when deepspeed is enabled.
c                  ó    >• SSK Jn  SSKJn  UR                  0 :w  a*  U" 5       R
                  UR                  :w  a  [        S5      eT" U 0 UD6$ )Nr   )ÚAcceleratorState)ÚDistributedTypez|DeepSpeed is not enabled, please make sure that an `Accelerator` is configured for `deepspeed` before calling this function.)Úaccelerate.stater#  Úaccelerate.utils.dataclassesr$  Ú_shared_stateÚdistributed_typeÚ	DEEPSPEEDÚ
ValueError)r  r  r#  r$  r  s       €r   r  Ú#deepspeed_required.<locals>.wrapper  sS   ø€ å5Ý@à×)Ñ)¨RÓ/Ñ4DÓ4F×4WÑ4WÐ[j×[tÑ[tÓ4tÜð0óð ñ �TÐ$˜VÑ$Ð$r    r  r  s   ` r   Údeepspeed_requiredr,  ü  s"   ø€ ô
 ˆ4ƒ[ô	%ó ð	%ð €Nr    c                  ó   • [        SS5      $ re   rf   r   r    r   Úis_weights_only_availabler.    s   € ô ˜D 'Ó*Ð*r    c                 ól   • [        [        R                  R                  S5      5      n[	        USU 5      $ )NÚnumpyr#   )r   r   r   r   r   )rƒ   Únumpy_versions     r   Úis_numpy_availabler2    s,   € Üœ)×,Ñ,×4Ñ4°WÓ=Ó>€MÜ˜M¨4°Ó=Ð=r    r   )FF)F)z1.12)z1.25.0)^r   Úimportlib.metadatar”   rÆ   r˜   Ú	functoolsr   r   r$   Ú	packagingr   Úpackaging.versionr   Úenvironmentr   r	   r
   Úversionsr   r   r   rT   Útorch_xla.core.xla_modelÚcoreÚ	xla_modelÚxmÚtorch_xla.runtimerU   r  Ú_tpu_availabler%   rM   r   r   Úboolr!   r'   r+   r/   r2   r6   r9   r?   rD   rG   rO   rZ   r_   rb   rg   rt   rw   ry   r~   r�   r„   r‹   rŽ   rœ   rŸ   r¢   r¦   rª   r­   r²   r¶   r¹   r½   rÀ   rÈ   rË   rÏ   rÒ   rÕ   rØ   rÛ   rÞ   rá   ro   rk   rî   rô   rø   r>   rv   rm   r  r  r  r  r   r,  r.  r2  r   r    r   Ú<module>r@     s@  ðó Û Û 	Û 
Û ß &ã Ý Ý #ç LÑ Lß 8ñ $ O¸TÑB€àÐ Þðß-Ð-Û à#Ðð
 &€ð  %×0Ñ0×=Ñ=Ó?Ð ô	ð(¨ô (òò1ò^ò+ò4ò1òQòò/òð óó ðò"ò.ò+ôòò_ò
òôò>ò0ò	ò1ò-ò)ò)ò+òòYò*ò-ò,òLò*òò.ò)ò,ò+ò/ò
ôwð óó ðð  ó@ó ð@ð" ó>ó ð>ð, ó@ó ð@ð" ó>ó ð>ò ð ó>ó ð>ð& óDó ðDò",ò.ò
òò"ò(+õ>øð] ó Úðús   ÁE6 Å6F Å?F 