+
    –°³jT× ã                  ó"
  a € 0 t $ R t^ RIH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t^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIH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&t&^ RI't'^ RI(t'^ RI)H*u H+t, ^ RI-t'^ R	I'H.t. ^ R
I/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t: ^ RI;H<t< ^ RI=H>t>H?t?H@t@HAtAHBtB ^ RICHDtD ^ RIEHFtF ^ RIGHHtH ^ RIIHJtJHKtKHLtL ^ RIMHNtNHOtOHPtPHQtQHRtRHStSHTtT ^ RI(HUtUHtV ^ RIWHXtXHYtY ^ RIZH[t[H\t\H]t] ^ RI^H_t_ ^ RI`HataHbtbHctcHdtd ^ RIeHftfHgtg ^RIhHitiHjtjHktkHltlHmtmH*t* ^RInHotoHptp ^RIqHqtq ^RIrHstsHtttHutuHvtvHwtwHxtx ^RIyHztz ^RI{H|t| ^RI*H}t}H~t~HtH€t€ ]#'       d;   ^ RI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�HŽtŽH�t� ^R%IH�t�H‘t‘H’t’H“t“H”t” ]	EP*                  ! ]–4      t—]EP0                  ! 4       t™]*EP4                  ! 4       t›]EP8                  t� ! R& R']4      tž/ sŸR(] R)&   ]žEPB                  t¢R*s£]J'       d   ]3t¤MR+ R, lt¤]!RÀ,          t¥] ! R- R.4      4       t¦]¦! 4       s§]EPP                  ! 4       t©]EPT                  R/ R0 l4       t«R1 R2 lt¬R3 R4 lt­R5]­n®        Rs¯R6] R7&   R8 R9 lt°]EPT                  R: R; l4       t±R< R= lt²R> R? lt³R@ RA lt´RB RC ltµRD RE lt¶RF RG lt·RH RI lt¸]EPr                  ! ]U4      ]! ]! ]! ]º4      4      RJ4      0t»RK RL lt¼RM RN lt½RO RP lt¾ ! RQ RR]'EP~                  EP€                  4      tÁRS RT ltÂRU RV ltÃRW RX ltÄRÁRY RZ lltÅR[ R\ ltÆR] R^ ltÇR_ R` ltÈ]EPT                  Ra Rb l4       tÉ ! Rc Rd]EPP                  4      tÊ]Ê! 4       tËRe Rf ltÌRg Rh ltÍRi Rj ltÎRk Rl ltÏ]EP                   Rm Rn l4       tÑRo Rp ltÒ]Ó! 4       tÔ ! Rq Rr4      tÕ ! Rs Rt]Õ4      tÖ ! Ru Rv]Õ4      t× ! Rw Rx]Õ4      tØ]�R*RR*RRRRR*R3
Ry Rz lltÙR{ R| ltÚ ! R} R~]EP8                  4      tÛR R€ 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tâ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™ llltã]%! RšR54      R› Rœ l4       tä ! R� Rž]'EPÊ                  EPÌ                  4      tç ! RŸ R ]"4      tèR¡ R¢ ltéR£ R¤ ltêR¥ R¦ ltëR§R*R¨R*R©RRªR«R—RR¬R5R­R*R®R5R¯R*R°R*R±R5R²R/R³ R´ lltìRµ R¶ ltíR·]z! RRR4      R¸R*R¹RR“RR”RR•RR–R*R—R/Rº R» lltî ! R¼ R½4      tïR¾ R¿ ltðR# )Ãaš  
This module implements the core frame evaluation handler for TorchDynamo's compilation system.
The eval frame handler intercepts Python bytecode execution at runtime to enable dynamic
compilation and optimization of PyTorch code.

Key components defined here:
- Frame evaluation handlers that intercept and analyze Python execution frames
- Guards management for tracking dependencies and invalidating compiled code
- Optimization contexts and decorators (optimize, run_once, disable, etc.)
- Export functionality for saving optimized graphs
- Backend compiler integrations and callback management

Functions in this file are responsible for modifying the eval frame handler at RUNTIME.
Therefore, all functions in this file are hot and performance-critical. Functions that
only execute at compile time should be placed in torch._dynamo.convert_frame.

The eval frame handler is the core mechanism that enables TorchDynamo to dynamically
intercept, analyze and optimize PyTorch code during execution. It works by registering
a custom frame evaluation function that gets called for every Python frame, allowing
us to detect PyTorch operations and trigger compilation as needed.
)ÚannotationsN)Ú	GeneratorÚSized)Ú	dataclass)ÚEnum)ÚdirnameÚjoin)ÚAnyÚcastÚLiteralÚ
NamedTupleÚTYPE_CHECKING)Úpatch)Ú_guards)Ú$get_eval_frame_isolate_recompiles_idÚ
reset_codeÚset_code_exec_strategyÚset_eval_frameÚ$set_eval_frame_isolate_recompiles_idÚ"set_fullgraph_compiled_frame_countÚ%set_fullgraph_error_on_nested_compileÚset_guard_complete_hookÚset_guard_error_hookÚset_skip_guard_eval_unsafeÚunsupported)Úenable_python_dispatcher)ÚCompilerConfigÚCompilerConfigProviderÚConvertFrameReturnÚFrameActionÚFrameExecStrategy)Ú_compiling_state_context)Úis_custom_class)Úunset_fake_temporarily)ÚDISABLE_JUSTKNOBSÚjustknobs_checkÚlog_export_usage)Ú_combine_argsÚ_DimHintÚ_DimHintTypeÚ_IntWrapperÚ_process_dynamic_shapesÚ_RelaxedConstraintÚ
Constraint)ÚGraphModuleÚ	traceback)Úclone_and_convert_to_metaÚtrack_dynamism_across_examples)Ú_coerce_to_shapes_specÚ
ParamsSpecÚ
ShapesSpec)Úmake_fx)ÚConstraintViolationErrorÚ
DimDynamicÚShapeEnvÚStatelessSymbolicContext)Ú_PyTreeCodeGenÚ_PyTreeInfo)ÚconfigÚconvert_frameÚdistributedÚexternal_utilsÚtrace_rulesÚutils)Ú
CompilerFnÚlookup_backend)Úcode_context)ÚCondOpArgsMismatchErrorÚShortenTracebackÚUncapturedHigherOrderOpErrorÚUnsupportedÚ	UserErrorÚUserErrorType)ÚHooks©Úinstall_generation_tagging_init)Ú_get_error_on_graph_breakÚ_set_error_on_graph_breakÚcommon_constant_typesÚcompile_times)ÚCallableÚIterableÚSequence©ÚCompilePackage)ÚWrapBackendDebug)Úfake_tensor)Ú_DynamicShapesInput)ÚArgumentÚNodeÚTarget)Ú
CacheEntryÚDynamoCallbackÚDynamoFrameTypeÚ	GuardFailÚGuardFilterEntryc                  ó   € ] tR t^¡t^ tRtR# )ÚUnset© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚtokenÚ__static_attributes__rd   ó    ÚY/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/eval_frame.pyrc   rc   ¡   s   † Ø„Erk   rc   zdict[int, CompilerFn]Úcached_backendsFc               ó    € V ^8„  d   QhRRRR/# ©é   Úcallbackr^   Úreturnrd   )Úformats   "rl   Ú__annotate__rt   °   s   € ÷ 	,ñ 	,¨ð 	,¸>ñ 	,rk   c                ó�   € \        R 4      '       g,   \        P                  P                  P	                  R4       V # \        V 4      # )z/pytorch/compiler:enable_compiler_set_eval_framezTDynamo disabled by Justknob: enable_compiler_set_eval_frame, skipping set_eval_frame)r%   ÚtorchÚ_dynamorA   Ú	warn_oncer   ©rq   s   &rl   Ú_maybe_set_eval_framerz   °   s=   € ô ÐP×QÒQÜ�M‰M×Ñ×)Ñ)Øfôð ˆOä! (Ó+Ð+rk   c                  óB   € ] tR t^Ét$ RtR]R&   RtR]R&   RtR]R	&   R
tR# )ÚDynamoStanceÚdefaultÚ	StanceStrÚstanceFÚboolÚskip_guard_eval_unsafeNústr | Callable[..., Any] | NoneÚbackendrd   )	re   rf   rg   rh   r   Ú__annotations__r�   rƒ   rj   rd   rk   rl   r|   r|   É   s"   ‡ à!€FˆIÓ!Ø#(Ð˜DÓ(Ø/3€GÐ,×3rk   r|   c               ó   € V ^8„  d   QhRR/# ©rp   rr   úGenerator[None, None, None]rd   )rs   s   "rl   rt   rt   Õ   s   € ÷ 2ñ 2Ð&Añ 2rk   c               #  ó”   "  € \        \        R^ 4      p V ^,           \        n         Rx € V \        n        R#   T \        n        i ; i5i)zDRun torch.compile wrappers eagerly inside compiler-internal tracing.ÚdepthN)ÚgetattrÚ_force_eager_nested_compiler‰   )Úpriors    rl   Ú_use_eager_on_nested_compiler�   Ô   s=   é € ô Ô/°¸!Ó<€EØ(-°­	ÔÔ%ð2Ûà,1Ô#Ö)ø¨EÔ#Õ)üs   ‚$A§8 «A¸AÁAc               ó   € V ^8„  d   QhRR/# ©rp   rr   r€   rd   )rs   s   "rl   rt   rt   ß   s   € ÷ @ñ @ Tñ @rk   c                 ó*   € \        \        R ^ 4      ^ 8„  # )r‰   )rŠ   r‹   rd   rk   rl   Ú_is_eager_on_nested_compiler‘   ß   s   € ÜÔ.°¸Ó;¸aÑ?Ð?rk   c               ó    € V ^8„  d   QhRRRR/# )rp   r   r|   rr   rd   )rs   s   "rl   rt   rt   ã   s   € ÷ ñ ˜ð ¨ñ rk   c                óZ   € ^ RI Hp V! 4       pVRJd   Ve   \        R4      h\        pV sV# )é    )Úget_eval_frame_callbackFz1attempted to set_stance in a torch.compile region)Útorch._C._dynamo.eval_framer•   ÚRuntimeErrorÚ_stance)r   r•   rq   rŒ   s   &   rl   Ú_set_stancer™   ã   s8   € õ Dá&Ó(€Hà�uÓ Ò!5ÜÐNÓOÐOä€EØ€GØ€Lrk   Tzdict[str, list[Any]] | NoneÚ_EXAMPLE_INPUTSc               ó    € V ^8„  d   QhRRRR/# )rp   ÚkeyÚstrrr   ú	list[Any]rd   )rs   s   "rl   rt   rt   ÷   s   € ÷  ñ  ˜Cð   Iñ  rk   c                óX   € \         f   / s V \         9  d
   . \         V &   \         V ,          # ©N)rš   )rœ   s   &rl   Úget_example_inputsr¡   ÷   s*   € äÒØˆà
”/Ô!Ø!Œ˜Ñä˜3ÕÐrk   c               ó   € V ^8„  d   QhRR/# r†   rd   )rs   s   "rl   rt   rt     s   € ÷ 8ñ 8Ð"=ñ 8rk   c               #  ó:   "  € \         p R s  Rx € V s R#   T s i ; i5i)TN©Ú_in_optimized_module)Ú_old_in_optimized_modules    rl   Ú_set_in_optimized_moduler§     s,   é € ô 	ð ð  Ðð8Ûà7ÒøÐ7Ñüs   ‚	Œ �”˜c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   rt     s   € ÷  ñ   ñ  rk   c                 ó   € \         # r    r¤   rd   rk   rl   Ú_is_in_optimized_modulerª     s   € äÐrk   c               ó    € V ^8„  d   QhRRRR/# ro   rd   )rs   s   "rl   rt   rt     s"   € ÷ GHñ GH Nð GH°~ñ GHrk   c                ój  a € \         P                  R 8X  d>   \         P                  e*   S R9  d#   \        \	        \         P                  4      4      o S # \         P                  R8X  d$   S R9  d   \        S \         P                  4      # S # \         P                  R8X  d$   S R9  d   \        S \         P                  4      # S # \         P                  R8X  d   R# \         P                  R8X  d   R# \         P                  R8X  d   S R9   d   S # R V 3R	 llpS Vn        V# \        R
\          R24      h)r}   NFÚeager_then_compileÚaot_eager_then_compileÚforce_eagerÚeager_on_recompileÚfail_on_recompilec               ó(   € V ^8„  d   QhRRRRRRRR/# )rp   Úframer_   Úargsr	   Úkwargsrr   r   rd   )rs   s   "rl   rt   Ú+_callback_from_stance.<locals>.__annotate__0  s,   € ÷ '	(ñ '	(Ø"ð'	(Ø+.ð'	(Ø:=ð'	(àñ'	(rk   c                ón  <€ \         P                  ! V P                  4      '       d   \        4       # \        P
                  ! V 4      '       g   \        4       # ^ RIHpHp ^ RI	H
p RRV P                  P                   R2,           RV P                  P                   R2,           RV P                   2,           pV! V P                  4      pV'       dj   V! VV \        S4      RR	7      pV'       dM   \        P                   ! R
P#                  V4      R4      p	RV	 2p
VR
\        P                   ! V
R4       2,          pV! V P                  4      p\%        V4      ^ 8”  dN   VR,          pV F>  pVR
VP&                   VP&                  P)                  V P*                  4       2,          pK@  	  \-        V4      h)r”   )Ú_debug_get_cache_entry_listÚ_debug_get_precompile_entries)Ú'get_and_maybe_log_recompilation_reasonszEDetected recompile when torch.compile stance is 'fail_on_recompile'. zfilename: 'z', zfunction name: 'zline number: T)Úskip_loggingÚ
z- z-triggered by the following guard failure(s):
z    z-
Failed on the following precompiled guards: )r@   ÚcheckÚf_coder   r=   Úhas_tensor_in_framer–   r¸   r¹   Útorch._dynamo.guardsrº   Úco_filenameÚco_nameÚf_linenoÚinnermost_backendÚtextwrapÚindentr   ÚlenÚguard_managerÚcheck_verboseÚf_localsr—   )r³   r´   rµ   r¸   r¹   rº   ÚmessageÚcache_entriesÚreasonsÚfailuresÚguard_failure_detailsÚprecompile_entriesÚentryrq   s   &*,          €rl   Úfail_callbackÚ,_callback_from_stance.<locals>.fail_callback0  sŽ  ø€ ô × Ò  §¡×.Ò.Ü)Ó+Ð+Ü ×4Ò4°U×;Ò;Ü)Ó+Ð+÷õ Uð XØ §¡× 8Ñ 8Ð9¸Ð=õ>à$ U§\¡\×%9Ñ%9Ð$:¸#Ð>õ?ð " %§.¡.Ð!1Ð2õ3ð ñ 8¸¿¹ÓEˆMßÙAØ!ØÜ% hÓ/Ø!%ô	�÷ Ü'Ÿš¨t¯y©y¸Ó/AÀ4ÓH�HàHÈÈ
ÐSð *ð  ¤H§O¢OÐ4IÈ6Ó$RÐ#SÐTÕT�GÙ!>¸u¿|¹|Ó!LÐÜÐ%Ó&¨Ô*ØÐKÕK�Û/�EØ  E×$7Ñ$7Ð#8¸×9LÑ9L×9ZÑ9ZÐ[`×[iÑ[iÓ9jÐ8kÐlÕl’Gñ 0ä˜wÓ'Ð'rk   zinvalid torch.compile stance 'Ú')FN)r˜   r   rƒ   Ú_create_wrapped_callbackÚget_compiler_fnÚ _create_delayed_compile_callbackÚ_torchdynamo_orig_backendr—   )rq   rÒ   s   f rl   Ú_callback_from_stancerÙ     s÷   ø€ Ü‡~�~˜Ô"ä�?‰?Ò&¨8¸=Ô+HÜ/´ÄÇÁÓ0PÓQˆHàˆÜ	�‰Ð/Ô	/Ø˜=Ô(Ü3°H¼g¿n¹nÓMÐMØˆÜ	�‰Ð3Ô	3Ø˜=Ô(Ü3°H¼g¿n¹nÓMÐMØˆÜ	�‰˜=Ô	(áÜ	�‰Ð/Ô	/áÜ	�‰Ð.Ô	.Ø�}Ô$ØˆO÷'	(ð '	(ðT 3;ˆÔ/àÐäÐ;¼G¸9ÀAÐFÓGÐGrk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úcompiler_fnrB   rr   z convert_frame.CatchErrorsWrapperrd   )rs   s   "rl   rt   rt   a  s   € ÷ 
ñ 
Øð
à%ñ
rk   c                ón   € \        4       p\        P                  ! \        P                  ! V V4      V4      # r    )rK   r=   Úcatch_errors_wrapper)rÛ   Úhookss   & rl   rÕ   rÕ   a  s7   € ô ‹G€EÜ×-Ò-Ü×#Ò#ØØó	
ð 	óð rk   c               ó    € V ^8„  d   QhRRRR/# )rp   r³   r_   rr   rž   rd   )rs   s   "rl   rt   rt   n  s   € ÷ ñ  oð ¸)ñ rk   c                óø   € V P                   P                  \        V P                   P                  4      ,           p\	        V4      p\        V4      ^8  d%   VP                  \        V P                  4      4       V# )rp   )	r¾   rÁ   r�   Úco_firstlinenor¡   rÇ   Úappendr0   rÊ   )r³   rœ   Úexample_inputss   &  rl   Ú_get_or_add_example_inputsrä   n  sZ   € Ø
�,‰,×
"Ñ
"¤S¨¯©×)DÑ)DÓ%EÕ
E€CÜ'¨Ó,€Nä
ˆ>Ó˜QÔØ×ÑÔ7¸¿¹ÓGÔHàÐrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   rq   r^   r   r~   rr   úCallable[..., Any]rd   )rs   s   "rl   rt   rt   x  s$   € ÷ ñ ØðØ&/ðàñrk   c                ó,   a a€ R  V V3R llpS Vn         V# )c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r´   r	   rµ   rr   z convert_frame.ConvertFrameReturnrd   )rs   s   "rl   rt   Ú6_create_delayed_compile_callback.<locals>.__annotate__{  s'   € ÷ Fñ F˜3ð F¨#ð FÐ2Rñ Frk   c                 ó®  <€ V ^ ,          p\        V4      p\        V4      ^8X  d]   SR8X  d3   \        \        \        P
                  \        P
                  4      R7      # SR8X  d   \        R4      p\        V4      ! V / VB # \        V4      pV\        P                  ! VP                  4      R&   SP                  P                  p\        V4      ! V / VB # )r”   r­   )Úframe_exec_strategyr®   Ú	aot_eagerÚdynamism)rä   rÇ   r   r    r   ÚDEFAULTrÖ   rÕ   r1   rD   Úget_contextr¾   rØ   )	r´   rµ   r³   rã   Úaot_eager_fnrí   rÛ   rq   r   s	   *,     €€rl   Úcallback_fnÚ5_create_delayed_compile_callback.<locals>.callback_fn{  sÅ   ø€ Ø�Q•ˆÜ3°EÓ:ˆäˆ~Ó !Ô#ØÐ-Ô-Ü)Ü(9Ü#×+Ñ+¬[×-@Ñ-@ó)ôð ð
 Ð3Ô3Ü.¨{Ó;�Ü/°Ô=¸tÐNÀvÑNÐNä1°.ÓAˆØ=EŒ× Ò  §¡Ó.¨zÑ:Ø×8Ñ8×RÑRˆÜ'¨Ô4°dÐE¸fÑEÐErk   )rØ   )rq   r   rñ   s   ff rl   r×   r×   x  s   ù€ ÷Fñ Fð* -5€KÔ)àÐrk   c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   rt   •  s   € ÷ *ñ *¨4ñ *rk   c                 ó"   € \         P                  # r    )r˜   r�   rd   rk   rl   Ú!_is_skip_guard_eval_unsafe_stancerõ   •  s   € Ü×)Ñ)Ð)rk   c               ó   € V ^8„  d   QhRR/# ©rp   rr   ÚNonerd   )rs   s   "rl   rt   rt   ™  s   € ÷ ñ  dñ rk   c                 ó¬   € \         P                  4        F'  p \        V R 4      '       g   K  V P                  4        K)  	  \         P	                  4        R# )ÚresetN)rm   ÚvaluesÚhasattrrú   Úclear)rƒ   s    rl   Ú_reset_guarded_backend_cacherþ   ™  s9   € ä"×)Ñ)Ö+ˆÜ�7˜G×$Ô$Ø�M‰MŽOñ ,ô ×ÑÖrk   z+onnx/_internal/fx/dynamo_graph_extractor.pyc               ó    € V ^8„  d   QhRRRR/# )rp   Úcodeú#types.CodeType | Callable[..., Any]rr   úlist[CacheEntry]rd   )rs   s   "rl   rt   rt   ¨  s    € ÷ 	Iñ 	IØ
-ð	Iàñ	Irk   c                ó¢   € \        V 4      '       d   V P                  p \        P                  P                  P
                  P                  V 4      # )z\
Given a code object or a callable object, retrieve the cache entries
 stored in this code.
)ÚcallableÚ__code__rv   Ú_Crw   Ú
eval_framer¸   ©r   s   &rl   r¸   r¸   ¨  s7   € ô �‡~‚~Ø�}‰}ˆÜ�8‰8×Ñ×&Ñ&×BÑBÀ4ÓHÐHrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r   r  Úisolate_recompiles_idÚintrr   r  rd   )rs   s   "rl   rt   rt   ´  s&   € ÷ ñ Ø
-ðàðð ñrk   c                ó¢   € \        V 4      '       d   V P                  p \        P                  P                  P
                  P                  W4      # )u  
Return the cache entries for a specific isolate_recompiles region on
``code``, in LRU order (most-recently-used first).

Pass ``isolate_recompiles_id=-1`` to get the default (non-isolated)
bucket; pass a region's id (as exposed via
``opt._isolate_recompiles_id``) to get that region's bucket.

Returns only entries owned by the requested bucket. During an actual
lookup, isolated regions also fall back read-only to the default
bucket for BC-friendly reuse â€” this helper does not include those
fallback entries.
)r  r  rv   r  rw   r  Ú_get_cache_entries_for_region)r   r
  s   &&rl   r  r  ´  s<   € ô" �‡~‚~Ø�}‰}ˆÜ�8‰8×Ñ×&Ñ&×DÑDØóð rk   c               ó    € V ^8„  d   QhRRRR/# )rp   r   r  rr   r  rd   )rs   s   "rl   rt   rt   Ì  s    € ÷ Jñ JØ
-ðJàñJrk   c                ó¢   € \        V 4      '       d   V P                  p \        P                  P                  P
                  P                  V 4      # )zLTotal cache entries across all isolate_recompiles regions for a code object.)r  r  rv   r  rw   r  Ú_get_total_cache_entry_countr  s   &rl   r  r  Ì  s7   € ô �‡~‚~Ø�}‰}ˆÜ�8‰8×Ñ×&Ñ&×CÑCÀDÓIÐIrk   c                  ó€  a € ] tR tRt$ RtR]R&   R]R&   0 R.mt]R R l4       t]R	 R
 l4       t	R V 3R llt
R R ltR R ltR V 3R lltR R l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4       t]P,                  R! R" l4       tR# R$ ltR% V 3R& lltR' V 3R( lltR) R* ltR+ V 3R, lltR-tV ;t# )0ÚOptimizedModuleiÕ  zl
Wraps the original nn.Module object and later patches its
forward method to optimized self.forward method.
ræ   Ú_torchdynamo_orig_callablez#Callable[[], CompilerConfig | None]Úget_compiler_configc               ó    € V ^8„  d   QhRRRR/# )rp   Úmodútorch.nn.Modulerr   r€   rd   )rs   s   "rl   rt   ÚOptimizedModule.__annotate__ì  s   € ÷ 
ñ 
 Oð 
¸ñ 
rk   c                	óš   € \        V P                  \        P                  4      ;'       d!    \        P
                  ! V P                  4      # r    )Ú
isinstanceÚforwardÚtypesÚ
MethodTyper@   r½   )r  s   &rl   Ú_forward_has_skip_ruleÚ&OptimizedModule._forward_has_skip_ruleë  s9   € ä˜#Ÿ+™+¤u×'7Ñ'7Ó8÷ 
ð 
¼[×=NÒ=NØ�K‰Kó>
ð 	
rk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úfnr	   rr   r€   rd   )rs   s   "rl   rt   r  ò  s   € ÷ ;ñ ;¨#ð ;°$ñ ;rk   c                	óÆ   € \        V R R4      R8w  d   R# \        V RR4      p\        V\        P                  P                  4      '       g   R# \
        P                  V4      # )re   Ú Ú
_call_implFÚ__self__N)rŠ   r  rv   ÚnnÚModuler  r  )r!  r  s   & rl   Ú_should_wrap_module_call_implÚ-OptimizedModule._should_wrap_module_call_implñ  sM   € ä�2�z 2Ó&¨,Ô6Ùä�b˜* dÓ+ˆÜ˜#œuŸx™xŸ™×/Ò/ÙÜ×5Ñ5°cÓ:Ð:rk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r  r  Ú
dynamo_ctxÚ_TorchDynamoContextrr   rø   rd   )rs   s   "rl   rt   r  û  s#   € ÷ 0ñ 0˜Oð 0Ð9Lð 0ÐQUñ 0rk   c                	óÜ   <€ \         P                  V R V4       RV n        \        SV `  4        RV n        Wn        W n        V P                  4        V P
                  P                  V n        R# )Ú	_orig_modFTN)	ÚobjectÚ__setattr__Ú_super_module_initializedÚsuperÚ__init__r.  r+  Ú_initializeÚtraining)Úselfr  r+  Ú	__class__s   &&&€rl   r3  ÚOptimizedModule.__init__û  s[   ø€ ô 	×Ñ˜4 ¨cÔ2Ø).ˆÔ&Ü‰ÑÔØ)-ˆÔ&ð ŒØ$ŒØ×ÑÔØŸ™×/Ñ/ˆŽrk   c               ó   € V ^8„  d   QhRR/# )rp   rr   r  rd   )rs   s   "rl   rt   r    s   € ÷ Sñ S˜ñ Srk   c                	óÂ   € \        V P                  \        4      '       d   \        V P                  4      # \	        \        V P                  4      P                   R 24      h)z does not support len())r  r.  r   rÇ   Ú	TypeErrorÚtypere   ©r6  s   &rl   Ú__len__ÚOptimizedModule.__len__  sG   € ô �d—n‘n¤e×,Ò,Ü�t—~‘~Ó&Ð&äœ4 §¡Ó/×8Ñ8Ð9Ð9PÐQÓRÐRrk   c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   r    s   € ÷ 1ñ 1˜Tñ 1rk   c                	óX  € \        V P                  \        4      '       d,   V P                  V P                  P                  4      V n        M–\        P                  '       g"   V P                  V P                  4      '       d6   V P                  \        P                  ! V P                  4      4      V n        M*V P                  V P                  P                  4      V n        \        P                  ! V P                  R R4      e%   V P
                  V n        V P                  V n        R# R# )Ú_initialize_hookN)r  r+  ÚDisableContextr.  Ú__call__r  r<   Úwrap_top_framer  r?   Úwrap_inlineÚinspectÚgetattr_staticÚ_forwardÚ_call_lazy_checkr=  s   &rl   r4  ÚOptimizedModule._initialize  sÂ   € ä�d—o‘o¤~×6Ò6àŸ?™?¨4¯>©>×+BÑ+BÓCˆD�LÜ×"×"Ð" d×&AÑ&AÀ$Ç.Á.×&QÒ&Qð  Ÿ?™?¬>×+EÒ+EÀdÇnÁnÓ+UÓVˆD�Lð  Ÿ?™?¨4¯>©>×+BÑ+BÓCˆDŒLä×!Ò! $§.¡.Ð2DÀdÓKÒWØ ŸL™LˆDŒMØ×0Ñ0ˆDŽLñ Xrk   c               ó$   € V ^8„  d   QhRRRRRR/# ©rp   r´   r	   rµ   rr   rd   )rs   s   "rl   rt   r  '  s!   € ÷ 5ñ 5˜cð 5¨Sð 5°Sñ 5rk   c                	ó&  <€ \         P                  P                  P                  P	                  4       '       d   \
        P                  ! R ^R7       \        4       ;_uu_ 4        \        SV `$  ! V/ VB uuRRR4       #   + '       g   i     R# ; i)aK  Using `torch.compile(module)` when there are global hooks on modules (e.g., from `register_module_forward_hook`); this will cause the hooks to fire an extra time for the `OptimizedModule` created by `torch.compile(module)`. If this causes undesired behavior, please try using `module.compile()`, or use the per-module hooks instead©Ú
stacklevelN)
rv   r&  ÚmodulesÚmoduleÚ_has_any_global_hookÚwarningsÚwarnr§   r2  rD  )r6  r´   rµ   r7  s   &*,€rl   rD  ÚOptimizedModule.__call__'  sd   ø€ Ü�8‰8×Ñ×"Ñ"×7Ñ7×9Ò9Ü�MŠMð8ð õô &×'Õ'Ü‘7Ò# TÐ4¨VÑ4÷ (×'×'Ó'ús   Á$A?Á?B	c               ó    € V ^8„  d   QhRRRR/# )rp   Úinputsz*list[torch._dynamo.aot_compile.ModelInput]rr   rø   rd   )rs   s   "rl   rt   r  5  s    € ÷ Iñ IÐ#Mð IÐRVñ Irk   c                ó¾  € V P                   pV P                  P                  pVf   \        R4      h\        P
                  '       g   \        R4      hV P                  P                  '       g   \        R4      h\        V P                  P                  4      '       g   \        R4      h\        V P                  P                  4      p^ RIHp V! W!W44      V n        R# )zP
Experimental: AOT Compile a set of inputs and use that as the forward function
Nú*hooks must not be None for AOT compilationúSAOT Compile is not enabled, please set torch._dynamo.config.enable_aot_compile=TrueúZGraph breaks are not supported with aot compile. Please use torch.compile(fullgraph=True).ú0aot compile requires a callable dynamo callback.)Úaot_compile_module)r.  r+  Ú_hooksÚAssertionErrorr<   Úenable_aot_compiler—   Ú	fullgraphr  rq   rÄ   Útorch._dynamo.aot_compiler^  r  )r6  rX  ÚmodelrÞ   rƒ   r^  s   &&    rl   Ú_aot_compileÚOptimizedModule._aot_compile5  s³   € ð —‘ˆØ—‘×&Ñ&ˆØŠ=Ü Ð!MÓNÐNÜ×(×(Ð(ÜØeóð ð �‰×(×(Ð(ÜØlóð ô ˜Ÿ™×0Ñ0×1Ò1ÜÐQÓRÐRä# D§O¡O×$<Ñ$<Ó=ˆÝ@á)¨%¸ÓHˆŽrk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úpathú
str | Nonerr   Úbytesrd   )rs   s   "rl   rt   r  N  s   € ÷ ñ ¨jð ÀEñ rk   c                	ó’  € \         P                  '       g   \        R 4      h^ RIHp \        V P                  V4      '       g"   \        R\        V P                  4       24      hV P                  P                  4       pVe1   \        VR4      ;_uu_ 4       pVP                  V4       RRR4       V# V#   + '       g   i     T# ; i)r[  ©ÚAOTCompiledModelz2Expected self.forward to be AOTCompiledModel, got NÚwb)r<   ra  r—   rc  rm  r  r  r`  r<  Ú	serializeÚopenÚwrite)r6  rh  rm  ÚresultÚfs   &&   rl   Ú_save_aot_compiled_moduleÚ)OptimizedModule._save_aot_compiled_moduleN  s¦   € Ü×(×(Ð(ÜØeóð õ 	?ä˜$Ÿ,™,Ð(8×9Ò9Ü ØDÄTÈ$Ï,É,ÓEWÐDXÐYóð ð Ÿ™×.Ñ.Ó0ˆØÒÜ�d˜D×!Ô! QØ—‘˜”÷ "àˆˆvˆ÷ "Ö!àˆús   ÂB5Â5C	c               ó    € V ^8„  d   QhRRRR/# )rp   Údatarj  rr   rø   rd   )rs   s   "rl   rt   r  _  s   € ÷ (ñ (¨eð (¸ñ (rk   c                	óè   € \         P                  '       g   \        R 4      h^ RIHp VP                  V P                  V4      p\        W24      '       g   \        R\        V4       24      hW0n
        R# )r[  rl  z6Expected compiled_forward to be AOTCompiledModel, got N)r<   ra  r—   rc  rm  Údeserializer.  r  r`  r<  r  )r6  rw  rm  Úcompiled_forwards   &&  rl   Ú_load_aot_compiled_moduleÚ)OptimizedModule._load_aot_compiled_module_  sk   € Ü×(×(Ð(ÜØeóð õ 	?à+×7Ñ7¸¿¹ÈÓMÐÜÐ*×=Ò=Ü ØHÌÐN^ÓI_ÐH`Ðaóð ð (Žrk   c               ó   € V ^8„  d   QhRR/# )rp   rr   zItuple[type[OptimizedModule], tuple[torch.nn.Module, _TorchDynamoContext]]rd   )rs   s   "rl   rt   r  m  s   € ÷ Cñ Cà	RñCrk   c                	óJ   € V P                   V P                  V P                  33# r    )r7  r.  r+  r=  s   &rl   Ú
__reduce__ÚOptimizedModule.__reduce__m  s    € ð —‘ §¡°·±Ð AÐBÐBrk   c               ó   € V ^8„  d   QhRR/# )rp   rr   údict[str, Any]rd   )rs   s   "rl   rt   r  r  s   € ÷ ñ ˜nñ rk   c                	óx   € \        V P                  4      pVP                  R R4       VP                  RR4       V# )r  NrD  )ÚdictÚ__dict__Úpop©r6  Ústates   & rl   Ú__getstate__ÚOptimizedModule.__getstate__r  s1   € Ü�T—]‘]Ó#ˆØ�	‰	�)˜TÔ"Ø�	‰	�*˜dÔ#Øˆrk   c               ó    € V ^8„  d   QhRRRR/# )rp   rˆ  r‚  rr   rø   rd   )rs   s   "rl   rt   r  x  s   € ÷ ñ  .ð °Tñ rk   c                	ó2   € Wn         V P                  4        R # r    )r…  r4  r‡  s   &&rl   Ú__setstate__ÚOptimizedModule.__setstate__x  s   € ØŒØ×ÑÖrk   c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   r  ~  s   € ÷ 'ñ '˜$ñ 'rk   c                	ó.   € V P                   P                  # r    )r.  r5  r=  s   &rl   r5  ÚOptimizedModule.training|  s   € ð �~‰~×&Ñ&Ð&rk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úvaluer€   rr   rø   rd   )rs   s   "rl   rt   r  ‚  s   € ÷ ,ñ ,˜dð , tñ ,rk   c                	óN   € V P                   '       d   WP                  n        R # R # r    )r1  r.  r5  )r6  r“  s   &&rl   r5  r‘  �  s   € ð
 ×)×)Ð)Ø&+�N‰NÖ#ñ *rk   c               ó    € V ^8„  d   QhRRRR/# )rp   Únamer�   rr   r	   rd   )rs   s   "rl   rt   r  ‰  s   € ÷ -ñ - ð -¨ñ -rk   c                	ób   € VR 8X  d   V P                   R ,          # \        V P                  V4      # )r.  )Ú_modulesrŠ   r.  )r6  r–  s   &&rl   Ú__getattr__ÚOptimizedModule.__getattr__‰  s*   € Ø�;ÔØ—=‘= Õ-Ð-Ü�t—~‘~ tÓ,Ð,rk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r–  r�   r“  r	   rr   rø   rd   )rs   s   "rl   rt   r  Ž  s!   € ÷ 4ñ 4 ð 4¨Cð 4°Dñ 4rk   c                	óÌ   <€ \        \        V 4      V4      '       d   \        SV `  W4      # V\        P
                  9   d   \        SV `  W4      # \        V P                  W4      # r    )rü   r<  r2  r0  r  Ú_opt_mod_attributesÚsetattrr.  )r6  r–  r“  r7  s   &&&€rl   r0  ÚOptimizedModule.__setattr__Ž  sS   ø€ ä”4˜“:˜t×$Ò$Ü‘7Ñ& tÓ3Ð3à”?×6Ñ6Ô6Ü‘7Ñ& tÓ3Ð3Ü�t—~‘~ tÓ3Ð3rk   c               ó    € V ^8„  d   QhRRRR/# )rp   r–  r�   rr   rø   rd   )rs   s   "rl   rt   r  —  s   € ÷ -ñ - ð -¨ñ -rk   c                	óÌ   <€ \        \        V 4      V4      '       d   \        SV `  V4      # V\        P
                  9   d   \        SV `  V4      # \        V P                  V4      # r    )rü   r<  r2  Ú__delattr__r  r�  Údelattrr.  )r6  r–  r7  s   &&€rl   r¢  ÚOptimizedModule.__delattr__—  sS   ø€ ä”4˜“:˜t×$Ò$Ü‘7Ñ& tÓ,Ð,à”?×6Ñ6Ô6Ü‘7Ñ& tÓ,Ð,Ü�t—~‘~ tÓ,Ð,rk   c               ó$   € V ^8„  d   QhRRRRRR/# rM  rd   )rs   s   "rl   rt   r     s!   € ÷ .ñ . cð .°Sð .¸Sñ .rk   c                	óN  € \         P                  ! V P                  R R4      eq   \         P                  ! V P                  RR4       eL   \        V P                  P                  4      '       d'   V P                  P	                  V P                  W4       V P
                  ! V/ VB # )rB  NÚ_infer_parameters)rG  rH  r.  r  r§  rI  )r6  r´   rµ   s   &*,rl   rJ  Ú OptimizedModule._call_lazy_check   s~   € ä×"Ò" 4§>¡>Ð3EÀtÓLÒXÜ×&Ò& t§~¡~Ð7JÈDÓQØòä˜Ÿ™×9Ñ9×:Ò:ð �N‰N×,Ñ,¨T¯^©^¸TÔJØ�}Š}˜dÐ- fÑ-Ð-rk   c               ó   € V ^8„  d   QhRR/# ©rp   rr   ú	list[str]rd   )rs   s   "rl   rt   r  ®  s   € ÷ 
ñ 
˜ñ 
rk   c                	óœ   <€ V P                   P                  4       pT\        SV `  4        Uu. uF  q"V9  g   K  VNK  	  up,           # u upi r    )r.  Ú__dir__r2  )r6  Úorig_mod_attrsÚattrr7  s   &  €rl   r­  ÚOptimizedModule.__dir__®  sM   ø€ ØŸ™×/Ñ/Ó1ˆØÜ"™W™_Ô.ó!
Ù.�T¸nÑ2L�DˆDÑ.ñ!
õ 
ð 	
ùò !
s
   ­A	ºA	)r…  rI  r.  r1  r+  r  r5  >
   r  r…  rI  r.  r+  r  Únamed_children_walkÚ_torchdynamo_wrapper_idr1  r  r    )re   rf   rg   rh   Ú__doc__r„   r�  Ústaticmethodr  r(  r3  r>  r4  rD  re  rt  r{  r  r‰  r�  Úpropertyr5  Úsetterr™  r0  r¢  rJ  r­  rj   Ú__classcell__©r7  s   @rl   r  r  Õ  sÙ   ø‡ ñð
 !3Ó2Ø<Ó<òÐð ô
ó ð
ð
 ô;ó ð;÷0ð 0õ$Sõ1÷$5ð 5õI÷2õ"(õCõ
õð ô'ó ð'ð ‡_�_ô,ó ð,õ-÷
4ð 4÷-ð -õ.÷
ö 
rk   r  c               ó    € V ^8„  d   QhRRRR/# )rp   rs  r	   rr   rø   rd   )rs   s   "rl   rt   rt   µ  s   € ÷ >ñ >˜ð > ñ >rk   c                ót  € \        V \        P                  4      '       d   \        V 4       R# \	        V R4      '       d   \        V P
                  4       R# \	        \        V RR4      R4      '       d"   \        V P                  P
                  4       R# ^RIH	p V! 4        \        P                  RV 4       R# )z9
Make sure f.__code__ is not cached to force a recompile
r  r  N©rú   z#could not determine __code__ for %s)r  r  ÚCodeTyper   rü   r  rŠ   r  r#  rú   ÚlogÚwarning)rs  rú   s   & rl   Úremove_from_cacher¿  µ  st   € ô �!”U—^‘^×$Ò$Ü�1ŽÜ	��J×	Ò	Ü�1—:‘:ÖÜ	”˜˜I tÓ,¨j×	9Ò	9Ü�1—9‘9×%Ñ%Ö&åáŒÜ�‰Ð9¸1Ö=rk   c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   Æ  s   € ÷ 	ñ 	�ñ 	rk   c                 ó   € R # r    rd   rd   rk   rl   ÚnothingrÂ  Æ  s   € Ùrk   c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   rt   Ê  s   € ÷ ñ �dñ rk   c                 ó   € R # ©Frd   rd   rk   rl   Úalways_falserÆ  Ê  s   € Ùrk   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rp   Úobjr	   r–  r�   r}   rr   rd   )rs   s   "rl   rt   rt   Î  s(   € ÷ ñ ˜ð  Cð °#ð Àñ rk   c                óT   €  \         P                  W4      #   \         d    Tu # i ; ir    )r/  Ú__getattribute__ÚAttributeError)rÈ  r–  r}   s   &&&rl   Ú_static_getattrrÌ  Î  s,   € ðÜ×&Ñ& sÓ1Ð1øÜô ØŠðús   ‚ —'¦'c               ó    € V ^8„  d   QhRRRR/# ©rp   r!  ræ   rr   rd   )rs   s   "rl   rt   rt   ×  s   € ÷ ñ Ð'ð Ð,>ñ rk   c                óÈ   € T p\        VR4      eR   \        VR4      \        V4      8X  d8   VP                  p\        V4      '       d   KG  \	        R\        V4       R24      hV# )zÔ
In case of nesting of _TorchDynamoContext calls, find the innermost
function. TorchDynamo caches on fn.__code__ object, so its necessary to find
the innermost function to pass on the optimize, run, disable etc.
r  r²  ú%A callable function is expected, but ú is provided.)rÌ  Úidr  r  r`  r<  )r!  Úunaltered_fns   & rl   Úinnermost_fnrÔ  ×  sm   € ð €Lä˜Ð&BÓCÒOô ˜LÐ*CÓDÌÈ<ÓHXÔXð $×>Ñ>ˆÜ˜×%Ô%Ü Ø7¼¸\Ó8JÐ7KÈ=ÐYóð ð Ðrk   c               ó    € V ^8„  d   QhRRRR/# rÎ  rd   )rs   s   "rl   rt   rt   ô  s   € ÷ ñ Ð,ð Ð1Cñ rk   c                ó˜   € \        V R4      '       d8   V P                  p \        V 4      '       d   K1  \        R\	        V 4       R24      hV # )zd
Unwrap backend wrapper chain via _torchdynamo_orig_backend to find the
innermost backend function.
rØ   rÐ  rÑ  )rü   rØ   r  r`  r<  )r!  s   &rl   rÄ   rÄ   ô  sJ   € ô
 �"Ð1×
2Ò
2Ø×)Ñ)ˆÜ˜�|Œ|Ü Ø7¼¸R»°zÀÐOóð ð €Irk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úenabler€   rr   r	   rd   )rs   s   "rl   rt   rt     s   € ÷ 	
ñ 	
 Dð 	
¨Sñ 	
rk   c                óÊ   € \        V \        4      '       g   \        R \        V 4       24      hV '       d   \        P
                  ! RR7      # \        P
                  ! RRR7      # )z"Expected enable to be a bool, got F)Úassume_static_by_defaultT)Úautomatic_dynamic_shapesrÚ  )r  r€   r`  r<  r<   Ú_make_closure_patcher)rØ  s   &rl   Úmake_set_enable_dynamicrÝ    sR   € Ü�fœd×#Ò#ÜÐAÄ$ÀvÃ,ÀÐPÓQÐQßä×+Ò+ÀUÔKÐKä×+Ò+Ø%*ÀTô
ð 	
rk   c               ó    € V ^8„  d   QhRRRR/# )rp   rØ  r€   rr   r‡   rd   )rs   s   "rl   rt   rt     s   € ÷ ñ ˜tð Ð(Cñ rk   c              #  ó^   "  € \        V 4      ! 4       p R x € V! 4        R #   T! 4        i ; i5ir    )rÝ  )rØ  Úcleanups   & rl   Úset_enable_dynamicrá    s$   é € ä% fÔ-Ó/€GðÛáŽ	ø‰�	üs   ‚-”! ˜	-¡	*ª-c                  ó4   € ] tR tRt$ . tR]R&   RtR]R&   RtR# )Ú	DynamoTLSi  r«  Útraced_frame_infosNzlist[str] | NoneÚskip_reasonsrd   )re   rf   rg   rh   rä  r„   rå  rj   rd   rk   rl   rã  rã    s   ‡ ð %'Ð˜	Ó&ð
 &*€LÐ"×)rk   rã  c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   '  s   € ÷ !ñ !˜Dñ !rk   c                 ó   € . \         n        R # r    ©Ú
dynamo_tlsrå  rd   rk   rl   Úreset_skip_reasonsrê  '  s
   € Ø „JÖrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   Úreasonr�   r³   r_   rr   rø   rd   )rs   s   "rl   rt   rt   +  s!   € ÷ 
ñ 
˜Cð 
¨ð 
¸Dñ 
rk   c           	     óÖ   € \         P                  eW   VP                  p\         P                  P                  VP                   RVP
                   RVP                   RV  24       R # R # )Nz (Ú:z): )ré  rå  r¾   râ   rÂ   rÁ   rá   )rì  r³   r   s   && rl   Úadd_skip_reasonrï  +  s\   € Ü×ÑÒ*Ø�|‰|ˆÜ×Ñ×&Ñ&Ø�|‰|ˆn˜B˜t×/Ñ/Ð0°°$×2EÑ2EÐ1FÀcÈ&ÈÐRö	
ñ +rk   c               ó   € V ^8„  d   QhRR/# rª  rd   )rs   s   "rl   rt   rt   3  s   € ÷ )ñ )˜)ñ )rk   c                 ó6   € \         P                  ;'       g    . # r    rè  rd   rk   rl   Úget_skip_reasonsrò  3  s   € Ü×"Ñ"×(Ð( bÐ(rk   c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   7  s   € ÷ #ñ #˜$ñ #rk   c                 óX   € \         P                  P                  4        R \         n        R # r    )ré  rä  rý   rå  rd   rk   rl   Úclear_dynamo_tlsrõ  7  s   € Ü×!Ñ!×'Ñ'Ô)Ø"„JÖrk   c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   =  s   € ÷ ñ ˜Dñ rk   c                 ó¨   € RP                  \        P                  4      p \        P                  ! V R4      p RV  R2p \
        P                  V 4       R# )zƒ
At program exit, log all of the frames Dynamo has attempted to trace from,
excluding the continuation frames generated by Dynamo.
r¼   z  * z7TorchDynamo attempted to trace the following frames: [
z
]N)r   ré  rä  rÅ   rÆ   r½  Úinfo)Úmsgs    rl   Ú_log_traced_framesrú  <  sA   € ð �)‰)”J×1Ñ1Ó
2€CÜ
�/Š/˜#˜vÓ
&€CØDÀSÀEÈÐ
M€CÜ‡H�HˆS†Mrk   c               ó    € V ^8„  d   QhRRRR/# )rp   Úguard_eval_resultr€   rr   rd   )rs   s   "rl   rt   rt   H  s   € ÷ ñ ¨dð °tñ rk   c                ó„  € ^ RI Hp ^ RIHp \        P                  ! 4       ;p'       dƒ   V! RRRR7      ;_uu_ 4        \
        P                  RV 4       R.VP                  4       ,          pVP                  W@VR7       \        V4      p\
        P                  R	W4       VuuRRR4       # V #   + '       g   i     T # ; i)
r”   N)Údynamo_timedÚguard_collectiveFT)Úlog_pt2_compile_eventÚlog_waitcounterzguard_collective %s)Úgroupzguard_collective %s -> %s)
Útorch.distributedr>   Útorch._dynamo.utilsrþ  Úget_guard_pgr½  ÚdebugÚsizeÚall_gather_objectÚall)rü  Údistrþ  ÚpgÚall_resultsÚress   &     rl   Úguard_collectives_hookr  H  s­   € Ý$Ý0ô ×%Ò%Ó'Ð'€rÖ'ÙØ°eÈT÷
ö 
ô �I‰IÐ+Ð->Ô?à˜& 2§7¡7£9Õ,ˆKØ×"Ñ" ;ÈÐ"ÔLô �kÓ"ˆCÜ�I‰IÐ1Ð3DÔJØ÷
ò 
ð Ð÷
ö 
ð Ðús   ½A$B.Â.B?	c                  ó†   a € ] tR tRt]]]R3RRRRRRRRRRR	RR
RRRRR/	R V 3R lllltR R ltR R ltR R lt	Rt
V ;t# )r,  i`  Frb  Úerror_on_graph_breakNÚexportÚdynamicÚcompiler_configÚpackagerÞ   Úisolate_recompilesÚdynamic_shapesc               óT   € V ^8„  d   Qh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R	RRRR/# )rp   rq   r^   Úon_enterzCallable[[], Any]Úbackend_ctx_ctorú4Callable[[], contextlib.AbstractContextManager[Any]]Úpatch_fnÚ	first_ctxr€   rb  r  úbool | Noner  r  r  úCompilerConfig | Noner  úCompilePackage | NonerÞ   úHooks | Noner  r  ú/ShapesSpec | ParamsSpec | dict[str, Any] | Nonerr   rø   rd   )rs   s   "rl   rt   Ú _TorchDynamoContext.__annotate__a  s²   € ÷ P;ñ P;à ðP;ð $ðP;ð
ð	P;ð $ðP;ð ðP;ð ðP;ð *ðP;ð ðP;ð ðP;ð /ðP;ð 'ðP;ð  ð!P;ð" !ð#P;ð$ Hð%P;ð& 
ñ'P;rk   c       	        	ó¦  <aa€ \         SV `  4        \        V4      '       g"   VR J g   Ve   \        R\	        V4       24      h\        V4      pWn        SV n        \        V n	        WPn
        W`n        Wpn        W€n        W�n        Wàn        W n        . V n        . V n        W°n        WÀn        V'       d   \+        \,        4      MR	V n        V! 4        \1        V4      p\2        P5                  \7        V4      V4       V	e   Ve   \9        R4      hV	e%   V P$                  P;                  \=        V	4      4       Ve1   V P$                  P;                  \>        P@                  ! VR7      4       S\B        Jd%   R V3R llpV P$                  P;                  V4       S\D        PF                  Jd'   R V3R llpV P$                  P;                  V4       R# R# )
FNz/callback must be callable, False, or None, got z^`dynamic` and `dynamic_shapes` cannot both be set. `dynamic_shapes` controls dynamic behavior.)Ú_dynamic_shapes_specc               ó   € V ^8„  d   QhRR/# )rp   rr   zCallable[[], None]rd   )rs   s   "rl   rt   Ú2_TorchDynamoContext.__init__.<locals>.__annotate__¤  s   € ÷ ñ Ð#5ñ rk   c                 ó   <€ S ! 4        \         # r    )rÂ  )r  s   €rl   Úcall_on_enterÚ3_TorchDynamoContext.__init__.<locals>.call_on_enter¤  s   ø€ Ù”
Ü�rk   c               ó   € V ^8„  d   QhRR/# ©rp   rr   zfunctools.partial[bool | None]rd   )rs   s   "rl   rt   r&  ¬  s   € ÷ Iñ IÐ&Dñ Irk   c                 óx   <€ S! 4       p V P                  4        \        P                  ! V P                  R R R 4      # r    )Ú	__enter__Ú	functoolsÚpartialÚ__exit__)Úctxr  s    €rl   Úcall_backend_ctxÚ6_TorchDynamoContext.__init__.<locals>.call_backend_ctx¬  s/   ø€ Ù&Ó(�Ø—‘”Ü ×(Ò(¨¯©°t¸TÀ4ÓHÐHrk   éÿÿÿÿ)$r2  r3  r  r`  r<  r2   rq   Ú_backend_ctx_ctorÚunsetrŒ   r  rb  r  r  Ú_dynamicÚ_dynamic_shapesr  Úcleanup_fnsÚenter_exit_hooksÚ_packager_  ÚnextÚ_next_isolate_recompiles_idÚ_isolate_recompiles_idrÄ   rm   Ú
setdefaultrÒ  Ú
ValueErrorrâ   rÝ  r<   rÜ  rÂ  Ú
contextlibÚnullcontext)r6  rq   r  r  r  r  rb  r  r  r  r  r  rÞ   r  r  rƒ   r(  r2  r7  s   &&ff&&$$$$$$$$$   €rl   r3  Ú_TorchDynamoContext.__init__a  s¦  ú€ ô( 	‰ÑÔÜ˜×"Ò" h°%Ó&7¸8Ò;KÜ ØAÄ$ÀxÃ.ÐAQÐRóð ô
 0°Ó?ˆØ(0ŒØ!1ˆÔÜ-2ˆŒ
Ø"ŒØ"ŒØ$8Ô!ØŒØŒØ-ÔØ.ÔØ46ˆÔØ "ˆÔØŒØŒç1CŒDÔ,Ô-Èð 	Ô#ñ 	Œ
ô $ HÓ-ˆÜ×"Ñ"¤2 g£;°Ô8àÒ >Ò#=Üð>óð ð
 ÒØ×!Ñ!×(Ñ(Ô)@ÀÓ)IÔJàÒ%Ø×!Ñ!×(Ñ(Ü×,Ò,À.ÔQôð œ7Ó"÷ð ð ×!Ñ!×(Ñ(¨Ô7à¤:×#9Ñ#9Ó9÷Ið Ið
 ×!Ñ!×(Ñ(Ð)9Ö:ñ :rk   c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   r"  ³  s   € ÷ Dñ D˜4ñ Drk   c                	ó(  € \         P                  '       d   \        R 4      h\        R4      V n        V P
                   Uu. uF	  q! 4       NK  	  upV n        \        \        4       4      V n	        \        \        V P                  4      4       R# u upi )zÒtorch._dynamo.optimize(...) is used with a context manager. Please refer to https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html to use torch._dynamo.optimize(...) as an annotation/decorator. N)r<   Úraise_on_ctx_manager_usager—   r   rŒ   r:  r9  r   rõ   Úprior_skip_guard_eval_unsaferz   rÙ   rq   )r6  Úenters   & rl   r-  Ú_TorchDynamoContext.__enter__³  s}   € Ü×,×,Ð,ÜðRóð ô
 $ DÓ)ˆŒ
Ø15×1FÒ1FÓGÑ1F¨˜EžGÑ1FÑGˆÔÜ,FÜ-Ó/ó-
ˆÔ)ô 	Ô3°D·M±MÓBÖCùò	 Hs   Á Bc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rp   Úexc_typeztype[BaseException] | NoneÚexc_valzBaseException | NoneÚexc_tbztypes.TracebackType | Nonerr   r  rd   )rs   s   "rl   rt   r"  Á  s2   € ÷ ñ à,ðð &ðð +ð	ð
 
ñrk   c                	ó>  € V P                   \        J d   \        R 4      h\        R4       \	        V P
                  4       V P                   F
  pV! 4        K  	  V P                  P                  4        \        \        V P                   4      4       \        V n         R# )z*__exit__ called without matching __enter__N)
rŒ   r6  r`  r   r   rG  r9  rý   rz   rÙ   )r6  rK  rL  rM  rà  s   &&&& rl   r0  Ú_TorchDynamoContext.__exit__Á  su   € ð �:‰:œÓÜ Ð!MÓNÐNÜ�tÔÜ" 4×#DÑ#DÔEØ×'Ô'ˆGÙŽIñ (à×Ñ×ÑÔ ÜÔ3°D·J±JÓ?Ô@ÜˆŒ
Ùrk   c               ó    € V ^8„  d   QhRRRR/# ©rp   r!  r	   rr   rd   )rs   s   "rl   rt   r"  Ò  s   € ÷ \ñ \˜3ð \ 3ñ \rk   c                	ó  a aaaa€ \        S\        4      '       d   \        S ! SP                  4      4      # R  V 3R llp^RIHp \
        P                  '       dè   S P                  eÚ   S P                  P                  4       '       gº   \        S\        P                  P                  4      '       d   SP                  MSpVP                  V4      pVf    S P                  P                  VRRR7       MM S P                  P                  WEP                  RR7       S P                  P!                  VP"                  4       \+        S4      oR	 VV 3R
 llp\        S\,        4      '       dB   \.        P0                  ! S4      \2        P4                  ! SP                  P6                  4      R&   \        S\        P                  P                  4      '       d™   \9        S4      \        P:                  P<                  P>                  J d   \%        R4      hSp\A        VS 4      pVP                  Vn!        \E        V4      Vn#        \H        PJ                  ! VRR4      e   \M        R4      hW(n'        V# \H        PP                  ! S4      '       d]   Sp	S ! V	PR                  4      V	n)        \U        V	\        P                  P                  4      '       d   S ! V	PV                  4      V	n+        V	# \Y        S4      '       g   \M        R\9        S4       R24      h^RI-H.p
 \^        P`                  ! S4      p\        V\8        4      ;'       d    \U        Wº4      p\^        Pb                  ! S4      p \H        Pd                  ! S4      p\@        Pi                  S4      p\
        Pj                  '       dX   V\l        9  dM   \n        Pp                  ! S4      oSP6                  Ps                  SP6                  Pt                  R7      Sn        M�\
        Pv                  '       gr   Vf   \H        Px                  ! S4      '       d-   \^        Pz                  ! S4      '       g   V'       g	   V'       d<   \}        SRR4      R9  g	   V'       d"   V\l        9  d   \n        Pp                  ! S4      oR R lpVo\        S R4      '       d   S P€                  o\        P‚                  P„                  o\        P†                  Pˆ                  PŠ                  o\Œ        PŽ                  ! S4      R VVVVV 3R ll4       pS P�                  e(   \n        P’                  ! SS P�                  4      VnJ        MSVnJ        SVn!        \E        V4      Vn#        S P–                  VnK        \        VR4      '       d   \M        R4      hVVn'        \        P˜                  P
                  Pš                  '       d   VVnN        SR9  dE   \        SR4      '       g    \%        \ž        P                   ! R4      4      hR\¢        SP6                  &   V#   \$         d:    \&        P)                  RRR7       S P                  P                  TRRR7        EL-i ; i  \f         d    Rp ELi ; i)c               ó   € V ^8„  d   QhRR/# )rp   rr   r  rd   )rs   s   "rl   rt   Ú2_TorchDynamoContext.__call__.<locals>.__annotate__×  s   € ÷ 	(ñ 	(Ð%:ñ 	(rk   c                 ó   <€ S P                   # r    )r  r=  s   €rl   r  Ú9_TorchDynamoContext.__call__.<locals>.get_compiler_config×  s   ø€ Ø×'Ñ'Ð'rk   )ÚDynamoCacheNF)Úignore_inlined_sourcesz&Failed to load entry from dynamo cacheT)Úexc_infoc               ó    € V ^8„  d   QhRRRR/# )rp   rã   z&tuple[tuple[Any, ...], dict[str, Any]]rr   r	   rd   )rs   s   "rl   rt   rT  ô  s   € ÷ 	ñ 	Ð(Nð 	ÐSVñ 	rk   c                óš  <€ ^ RI Hp \        P                  P                  P
                  '       d   \        R4      hSP                  '       g   \        R4      h\        SP                  4      '       g   \        R4      hSP                  f   \        R4      hV! SV SP                  \        SP                  4      SP                  R7      # )r”   )Úaot_compile_fullgraphz]Cannot precompile with torch._inductor.config.force_disable_caches=True; caching is required.r\  r]  rZ  )rÞ   rƒ   r  )rc  r\  rv   Ú	_inductorr<   Úforce_disable_cachesr—   rb  r  rq   r_  r`  rÄ   r7  )rã   r\  r!  r6  s   & €€rl   Úaot_compileÚ1_TorchDynamoContext.__call__.<locals>.aot_compileô  s§   ø€ ÝGä�‰×%Ñ%×:×:Ð:Ü"Øsóð ð —>—>�>Ü"Øpóð ô ˜DŸM™M×*Ò*Ü"Ð#UÓVÐVà�{‰{Ò"Ü$Ð%QÓRÐRá(ØØØ—k‘kÜ)¨$¯-©-Ó8ØŸ™ôð rk   Úorig_graphmoduleaƒ  torch.compile does not support compiling torch.jit.script or torch.jit.freeze models directly.

Workaround: compile the original eager module instead:
  model = torch.nn.Linear(3, 3)
  compiled_model = torch.compile(model)  # compile the eager module

torch.jit.script and torch.jit.freeze are deprecated in favor of torch.compile. See https://pytorch.org/docs/main/jit.html for details.r  z3new_mod already has a get_compiler_config attributerÐ  rÑ  )ÚTorchInGraphFunctionVariable)Úco_varnamesre   r#  c               ó$   € V ^8„  d   QhRRRRRR/# )rp   Úargr	   rµ   rr   rø   rd   )rs   s   "rl   rt   rT  p  s!   € ÷ 	ñ 	˜Sð 	¨Cð 	°Dñ 	rk   c                 ó   € R # r    rd   )re  rµ   s   *,rl   Ú
do_nothingÚ0_TorchDynamoContext.__call__.<locals>.do_nothingp  s   € Ùrk   rq   c               ó$   € V ^8„  d   QhRRRRRR/# rM  rd   )rs   s   "rl   rt   rT  {  s&   € ÷ q	-ñ q	- 3ð q	-°#ð q	-¸#ñ q	-rk   c                 óÔ  <€ \        R 4      pR pRp\        4       '       d>   \        P                  '       g(   ^ RIHp V! 4       '       g    S! V / VB \        V4       # SP                  '       d`   \        \        P                  P                  P                  4      pSP                  '       g!   \        ^ 4      ^ 8  pV'       d   \        4         \        P                  P                   P#                  4       ;p'       d\   VP$                  eN   VP$                  P&                  '       d2   S! V / VB V'       d   \        R4       R \(        n        \        V4       # \        P,                  P/                  4       '       d…   \        P                  '       go   ^ RIHp V! 4       '       g\   \        P                  P                   P#                  4       e2   S! V / VB V'       d   \        R4       R \(        n        \        V4       # S! 4       '       di   \        P                  '       gS   \        P0                  '       d   \3        R4      hS! V / VB V'       d   \        R4       R \(        n        \        V4       # S! 4       '       d   \3        R4      hSP4                   Uu. uF	  qw! 4       NK  	  pp\7        \9        4       4      p	\;        SP<                  4      p
R pSP                  '       gA   SP>                  e3   \A        4       pVSP>                  8w  d   Tp\C        SP>                  4       \        PD                  PF                  PI                  4       p\        \K        S4      4       \        PD                  PM                  4         Rp S! V / VB pRp \        R 4       T'       d}   T'       du   \        R4      pT^ 8X  dc   \^        P`                  R8X  dN   \c        4       pRpT'       d&   RPe                  R	 T 4       4      pTR
T 2,          pM	TR,          p\3        T4      hTe   \C        T4       Te   \        T4       \        PD                  PF                  Pg                  T4       \7        T	4       \;        T
4       T F
  pT! 4        K  	   \        PD                  Pi                  4        TT'       d   \        R4       R \(        n        \        T4       #   \        T4       i ; iu upi   \N        \P        \R        3 dr   p\        PT                  '       d   h TpTPV                  e*   TPV                  PY                  R 4       TPV                  pK7  TPY                  R 4      TPV                  hR p?i\Z         d   pTP]                  4       R hR p?ii ; i  \        R 4       T'       d}   T'       du   \        R4      pT^ 8X  dc   \^        P`                  R8X  dN   \c        4       pRpT'       d&   RPe                  R	 T 4       4      pTR
T 2,          pM	TR,          p\3        T4      hTe   \C        T4       Te   \        T4       \        PD                  PF                  Pg                  T4       \7        T	4       \;        T
4       T F
  pT! 4        K  	  i ; i  \        PD                  Pi                  4        i ; i  T'       d   \        R4       R \(        n        \        T4       i ; i)NF)Ú_in_hop_compilezvDetected that you are using FX to symbolically trace a dynamo-optimized function. This is not supported at the moment.zsDetected that you are using FX to torch.jit.trace a dynamo-optimized function. This is not supported at the moment.Tr}   z;torch.compile with fullgraph=True found no compiled frames.r¼   c              3  ó,   "  € T F
  pR V 2x € K  	  R# 5i)z  - Nrd   )Ú.0Úrs   & rl   Ú	<genexpr>ÚH_TorchDynamoContext.__call__.<locals>.compile_wrapper.<locals>.<genexpr>  s   é € ð <&Ù<H°q¨$¨q¨c­
»Lùs   ‚z Skipped frames:
zE Compilation was not attempted and no cached compiled code was found.r4  )5r   r‘   r<   Úforce_compile_during_fx_traceÚtorch._higher_order_ops.utilsrk  rz   rb  r   rv   rw   Ú3error_on_dynamo_callback_in_fullgraph_compiled_coder  r   rê  r   ÚTracingContextÚtry_getÚ	fake_modeÚin_kernel_invocationré  rå  ÚcompilerÚis_exportingÚerror_on_nested_fx_tracer—   r:  r   rõ   r   r>  r  rN   rO   r  Ú
_functorchÚget_dynamic_layer_stack_depthrÙ   Ú#_dynamo_save_local_dispatch_key_setrH   rG   rI   ÚverboseÚ	__cause__Úwith_tracebackrF   Úremove_dynamo_framesr˜   r   rò  r   Ú)pop_dynamic_layer_stack_and_undo_to_depthÚ&_dynamo_restore_local_dispatch_key_set)r´   rµ   rŒ   Úprior_error_on_nested_compileÚfullgraph_count_enabledrk  Útracing_contextrH  ÚcleanupsrG  Úprior_isolate_recompiles_idÚprior_error_on_graph_breakÚcurrent_error_on_graph_breakÚsaved_dynamic_layer_stack_depthÚcall_succeededrr  ÚeÚcur_exnÚcountrå  rù  Úreasons_strrà  rq   r!  Úis_fx_symbolic_tracingÚis_jit_tracingr6  s   *,                     €€€€€rl   Úcompile_wrapperÚ5_TorchDynamoContext.__call__.<locals>.compile_wrapperz  sÖ  ø€ ô # 4Ó(ˆEØ9=Ð)Ø&+Ð#ô ,×-Ò-Ü×<×<Ð<åIá&×(Ò(ð5Ù! 4Ð2¨6Ñ2ä-¨eÕ4à�~�~ˆ~Ü0UÜ—M‘M×(Ñ(×\Ñ\ó1Ð-ð —{—{�{Ü.PÐQRÓ.SÐVWÑ.WÐ+ß.Ü*Ô,ðL-ä&+§m¡m×&BÑ&B×&JÑ&JÓ&LÐL�?ÖLà'×1Ñ1Ò=Ø+×5Ñ5×J×JÐJá! 4Ð2¨6Ñ2÷D +Ü6°rÔ:Ø.2”JÔ+Ü% eÕ,ôC —N‘N×/Ñ/×1Ò1Ü"×@×@Ð@åMá*×,Ò,Ü Ÿ=™=×7Ñ7×?Ñ?ÓAÒMÙ#% tÐ#6¨vÑ#6÷n +Ü6°rÔ:Ø.2”JÔ+Ü% eÕ,ño +×,Ò,Ü"×@×@Ð@ä×6×6Ð6Ü*ð`óð ñ
  " 4Ð2¨6Ñ2÷V +Ü6°rÔ:Ø.2”JÔ+Ü% eÕ,ñY "×#Ò#Ü&ð\óð ð
 26×1FÒ1FÓGÑ1F¨˜EžGÑ1F�ÐGÜ/IÜ5Ó7ó0Ð,ô /SØ×/Ñ/ó/Ð+ð .2Ð*Ø—~—~�~¨$×*CÑ*CÒ*OÜ3LÓ3NÐ0Ø3°t×7PÑ7PÔPØ5QÐ2Ü1°$×2KÑ2KÔLô —H‘H×'Ñ'×EÑEÓGð 0ô &Ô&;¸HÓ&EÔFô —‘×<Ñ<Ô>ð<FØ%*�Nð5&Ù!# TÐ!4¨VÑ!4˜Ø)-™ô& ' tÔ,ß2·~Ü$FÀrÓ$J˜EØ$¨œz¬g¯n©nÀ	Ô.IÜ/?Ó/A Ø&c ß#/Ø26·)±)ñ <&Ù<Hó<&ó 3& Kð %(Ð-?À¸}Ð+MÕ$M¡Cà$'ð);õ%& Cô '3°3Ó&7Ð 7Ø5ÒAÜ5Ð6PÔQØ8ÒDÜAØ =ôô Ÿ™×+Ñ+×UÑUØ;ôô 3Ð3OÔPÜ<Ø7ôó (0˜GÙ#žIò (0ô —H‘H×CÑCÔEØç*Ü6°rÔ:Ø.2”JÔ+Ü% eÕ,øôm .¨eÕ4üò` HøôR (Ô)EÄyÐQô +Ü!Ÿ>Ÿ>˜>Ø!à12˜Ø%×/Ñ/Ò;Ø#×-Ñ-×<Ñ<¸TÔBØ&-×&7Ñ&7šGà×.Ñ.Ø óà Ÿ{™{ð+ûô ,ô Að  ×4Ñ4Ó6¸DÐ@ûðAûô ' tÔ,ß2·~Ü$FÀrÓ$J˜EØ$¨œz¬g¯n©nÀ	Ô.IÜ/?Ó/A Ø&c ß#/Ø26·)±)ñ <&Ù<Hó<&ó 3& Kð %(Ð-?À¸}Ð+MÕ$M¡Cà$'ð);õ%& Cô '3°3Ó&7Ð 7Ø5ÒAÜ5Ð6PÔQØ8ÒDÜAØ =ôô Ÿ™×+Ñ+×UÑUØ;ôô 3Ð3OÔPÜ<Ø7ôó (0˜GÙ#žIò (0ûô —H‘H×CÑCÕEû÷ +Ü6°rÔ:Ø.2”JÔ+Ü% eÕ,úsÜ   ÁS Ã/Z< Ä )Z< Ä*Z< Å#Z< Å?Z< ÆZ< Æ(1Z< ÈZ< ÈZ< È&Z< È<Z< É8Z< ÊZ< ÊS*Ê-CZ< ÎZ Î	
S/ ÎZ Î/C!Z ÒZ< ÓS'Ó*Z< Ó/VÔA,U1Õ1VÕ>VÕ?VÖVÖV ÖZÖ4C"ZÚZ Ú Z9Ú9Z< Ú<+['z;compile_wrapper already has a get_compiler_config attributer  a×  

                        torch._dynamo.optimize is called on a non function object.
                        If this is a callable class, please wrap the relevant code into a function and optimize the
                        wrapper function.

                        >> class CallableClass:
                        >>     def __init__(self) -> None:
                        >>         super().__init__()
                        >>         self.relu = torch.nn.ReLU()
                        >>
                        >>     def __call__(self, x):
                        >>         return self.relu(torch.sin(x))
                        >>
                        >>     def print_hello(self):
                        >>         print("Hello world")
                        >>
                        >> mod = CallableClass()

                        If you want to optimize the __call__ function and other code, wrap that up in a function

                        >> def wrapper_fn(x):
                        >>     y = mod(x)
                        >>     return y.sum()

                        and then optimize the wrapper_fn

                        >> opt_wrapper_fn = torch._dynamo.optimize(wrapper_fn)
                        )r$  Ú_wrapped_call_implÚ_lazy_forward)NF)Rr  r´  Ú__func__r  rW  r<   Úcaching_precompiler;  Úis_initializedrv   r&  r'  r  ÚloadÚ
initializeÚdynamoÚinstallÚbackendsr—   r½  r¾  rÔ  r.   ÚweakrefÚrefrD   rï   r  r<  ÚjitÚ_scriptÚRecursiveScriptModuler  r  rÒ  r²  rG  rH  r`  r  ÚisclassrD  Ú
issubclassr$  r  Ú	variablesrb  r@   ÚlookupÚis_polyfilled_callableÚgetsourcefiler;  r(  Údebug_force_nested_callsÚDONT_WRAP_FILESr?   rF  Úreplacerc  rE  Ú
isfunctionr½   rŠ   rü   rq   r  Ú_is_tracingÚfxÚ_symbolic_tracer‘  r.  Úwrapsr  Ú%wrap_inline_with_error_on_graph_breakÚ_torchdynamo_inliner>  rw   ra  r_  rÅ   ÚdedentÚalways_optimize_code_objects)r6  r!  r  rW  Úfn_keyrr  r_  r  Únew_modÚcls_objrb  ÚruleÚtop_level_in_graphÚhas_polyfillÚfilenameÚshould_wrap_module_call_implrg  r“  rq   r‘  r’  s   ff                @@@rl   rD  Ú_TorchDynamoContext.__call__Ò  sC  ü€ Ü�bœ,×'Ò'Ü¡ R§[¡[Ó 1Ó2Ð2÷	(ð 	(õ 	)ô ×$×$Ð$Ø�}‰}Ò(°·±×1MÑ1M×1OÒ1OÜ'1°"´e·h±h·o±o×'FÒ'F˜ŸšÈB�Ø$×)Ñ)¨&Ó1�Ø’>à—M‘M×,Ñ,¨V°TÐRWÐ,ÕXðØŸ™×0Ñ0Ø"§M¡MÈ%ð 1ô ð Ÿ™×-Ñ-¨f¯o©oÔ>ô ˜"Óˆ÷	ñ 	ô8 �bœ+×&Ò&ô —’˜B“ô ×$Ò$ R§Z¡Z×%8Ñ%8Ó9Ð:LÑMô
 �bœ%Ÿ(™(Ÿ/™/×*Ò*Ü�B‹xœ5Ÿ9™9×,Ñ,×BÑBÓBÜ"ð]óð ð ˆCÜ% c¨4Ó0ˆGð 25·±ˆGÔ.Ü.0°«kˆGÔ+ô
 ×%Ò% cÐ+@À$ÓGÒSÜ$ØIóð ð +>Ô'àˆNä�?Š?˜2×Òð ˆGÙ# G×$4Ñ$4Ó5ˆGÔÜ˜'¤5§8¡8§?¡?×3Ò3á%)¨'×*<Ñ*<Ó%=�Ô"ØˆNä˜�|Š|Ü Ø7¼¸R»°zÀÐOóð õ 	<ä×!Ò! "Ó%ˆÜ'¨¬dÓ3÷ 
ð 
¼
Øó9
Ðô #×9Ò9¸"Ó=ˆð	Ü×,Ò,¨RÓ0ˆHô (7×'TÑ'TÐUWÓ'XÐ$Ü×*×*Ð*¨x¼Ô/NÜ×+Ò+¨BÓ/ˆBð Ÿ+™+×-Ñ-¸"¿+¹+×:QÑ:QÐ-ÓRˆB�KÜ×"×"Ð"ð
 Ò!¬'×*<Ò*<¸R×*@Ò*@Ü×$Ò$ R×(Ò(ß%ßô ˜˜J¨Ó+ØLôMç/à¤Ô/ô  ×+Ò+¨BÓ/ˆBõ	ð (2ˆÜ�4˜×$Ò$Ø—}‘}ˆHäŸ™×-Ñ-ˆÜ!&§¡×!9Ñ!9×!PÑ!PÐä	�Š˜Ó	÷q	-ó q	-ó 
ðq	-ðh ×$Ñ$Ò0ä×DÒDØ˜×1Ñ1óð Õ/ð 35ˆOÔ/ð 68ˆÔ2Ü24°_Ó2EˆÔ/Ø15×1LÑ1LˆÔ.ô �?Ð$9×:Ò:Ü ØMóð ð /BˆÔ+Ü�=‰=×Ñ×2×2Ð2Ø*5ˆOÔ'ð ˜=Ô(Ü˜2˜z×*Ò*Ü"Ü—O’Oðóó ð  ðB 9=Ô(¨¯©Ñ5àÐøôI (ô ÜŸ™ØDÈtð $ô ð Ÿ™×0Ñ0Ø" DÀð 1÷ ð	ûôR ô 	Ø‹Hð	ús&   Ã7AX- Í(Y4 Ø-A Y1Ù0Y1Ù4ZÚZ)r5  r7  r8  r_  r>  r;  rq   r9  r  r:  r  r  r  rb  rŒ   rG  )re   rf   rg   rh   rÂ  Únull_contextr3  r-  r0  rD  rj   r·  r¸  s   @rl   r,  r,  `  sœ   ø† ð '.ð Ø&-ØñP;ð  ðP;ð -1ðP;ð ðP;ð  $ðP;ð 26ðP;ð *.ðP;ð  #ð!P;ð" $)ð#P;ð$ KO÷%P;ó P;õdDõ÷"\ó \rk   r,  c                  ó|   a € ] tR tRtRRRRRRRRRRRR	RR
RRRRRRR/
R V 3R lllltR V 3R lltR R ltRtV ;t# )ÚOptimizeContextiq  Frb  r  Nr  r  r  Úrebuild_ctxr  rÞ   r  r  c               óP   € V ^8„  d   Qh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RRR/# )rp   rq   r^   r  r  r  r€   rb  r  r  r  r  r  r  rÂ  ú5Callable[[], OptimizeContext | _NullDecorator] | Noner  r  rÞ   r   r  r  r!  rr   rø   rd   )rs   s   "rl   rt   ÚOptimizeContext.__annotate__r  s©   € ÷ 9Añ 9Aà ð9Að Oð9Að ð	9Að ð9Að *ð9Að ð9Að ð9Að /ð9Að Kð9Að 'ð9Að ð9Að !ð9Að Hð9Að  
ñ!9Ark   c       
        	óZ  <a	a€ R  R lp\         SV `  VVV\        P                  VVVVVVV
VVVR7       \        P
                  '       da   V P                  oSf*   \        P                  P                  P                  '       * oR VV	3R llpV P                  P                  V4       R# R# )c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   Ú.OptimizeContext.__init__.<locals>.__annotate__ƒ  s   € ÷ 	.ñ 	.˜$ñ 	.rk   c                 ó   € \        4        R # r    rL   rd   rk   rl   r  Ú*OptimizeContext.__init__.<locals>.on_enterƒ  s   € Ü+Ö-rk   )rq   r  r  r  r  rb  r  r  r  r  r  rÞ   r  r  Nc               ó   € V ^8„  d   QhRR/# r+  rd   )rs   s   "rl   rt   rÈ  œ  s   € ÷ Iñ IÐ,Jñ Irk   c                 óî   <€ Sf   \        R4      hS! 4       p \        P                  P                  P	                  V SRR7      pVP                  4        \        P                  ! VP                  R R R 4      # )Nz2rebuild_ctx must not be None for compiled autogradF)r  Úignore_active_disable_ctx)	r`  rv   rw   Úcompiled_autogradÚ_enabler-  r.  r/  r0  )rÛ   r1  r7  rÂ  s     €€rl   Úcall_compiled_autogradÚ8OptimizeContext.__init__.<locals>.call_compiled_autogradœ  sp   ø€ ØÒ&Ü(ØLóð ñ *›m�Ü—m‘m×5Ñ5×=Ñ=Øà$Ø.3ð	 >ó �ð —‘”Ü ×(Ò(¨¯©°t¸TÀ4ÓHÐHrk   )r2  r3  ÚTorchPatcherr   r<   rÎ  r7  rv   rw   rÚ  r:  râ   )r6  rq   r  r  rb  r  r  r  r  rÂ  r  rÞ   r  r  r  rÐ  r7  r7  s   &&&&$$$$$d$$$$  @€rl   r3  ÚOptimizeContext.__init__r  s©   ú€ õ"	.ô 	‰ÑØØØ-Ü!×'Ñ'ØØØ!5ØØØ+ØØØ1Ø)ð 	ô 	
ô" ×#×#Ð#Ø—}‘}ˆHØÒÜ$Ÿ}™}×3Ñ3×LÑLÔL�÷Iñ Ið ×!Ñ!×(Ñ(Ð)?Ö@ñ) $rk   c               ó    € V ^8„  d   QhRRRR/# rQ  rd   )rs   s   "rl   rt   rÅ  ­  s   € ÷ ñ ˜3ð  3ñ rk   c                	ó4   <€ \         SV `  V4      pR Vn        V# )T)r2  rD  Ú_is_torch_compile)r6  r!  rr  r7  s   && €rl   rD  ÚOptimizeContext.__call__­  s   ø€ Ü‘Ñ! "Ó%ˆØ#'ˆÔ Øˆrk   c               ó   € V ^8„  d   QhRR/# )rp   rr   z=tuple[type[OptimizeContext], tuple[Any, ...], dict[str, Any]]rd   )rs   s   "rl   rt   rÅ  ²  s   € ÷ 
ñ 
à	Fñ
rk   c                	óª   € V P                   V P                  V P                  V P                  3R V P                  RV P
                  RV P                  /3# )r  r  r  )r7  rq   r5  r  r  r7  r  r=  s   &rl   r  ÚOptimizeContext.__reduce__²  sO   € ð �N‰NØ�]‰]˜D×2Ñ2°D·N±NÐCà˜$Ÿ+™+Ø˜4Ÿ=™=Ø! 4×#7Ñ#7ðð
ð 	
rk   rd   rÅ  ©	re   rf   rg   rh   r3  rD  r  rj   r·  r¸  s   @rl   rÁ  rÁ  q  s–   ø† ñ9Að  ð9Að -1ð9Að ð9Að  $ð9Að 26ð9Að NRð9Að *.ð9Að #ð9Að $)ð9Að KO÷9Aó 9A÷vð ÷

ó 
rk   rÁ  c                  ó:   a € ] tR tRtR V 3R lltR R ltRtV ;t# )ÚRunOnlyContextiÀ  c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   ÚRunOnlyContext.__annotate__Á  s   € ÷ <ñ <˜$ñ <rk   c                	ó6   <€ R  R lp\         SV `  RVR7       R# )c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   Ú-RunOnlyContext.__init__.<locals>.__annotate__Ã  s   € ÷ 	Kñ 	K˜$ñ 	Krk   c                 ó|   € \         P                  P                  P                  ;P                  ^,          un        R# )é   N)rv   rw   Úmutation_guardÚGenerationTrackerÚ
generationrd   rk   rl   r  Ú)RunOnlyContext.__init__.<locals>.on_enterÃ  s#   € Ü�M‰M×(Ñ(×:Ñ:×EÒEÈÕJ×Erk   F)rq   r  N)r2  r3  )r6  r  r7  s   & €rl   r3  ÚRunOnlyContext.__init__Á  s   ø€ õ	Kô 	‰Ñ %°(ÐÖ;rk   c               ó   € V ^8„  d   QhRR/# )rp   rr   z,tuple[type[RunOnlyContext], tuple[Any, ...]]rd   )rs   s   "rl   rt   rß  È  ó   € ÷ $ñ $ÐHñ $rk   c                	ó   € V P                   R3# ©Nrd   r¸  r=  s   &rl   r  ÚRunOnlyContext.__reduce__È  ó   € Ø—‘ Ð#Ð#rk   rd   )re   rf   rg   rh   r3  r  rj   r·  r¸  s   @rl   rÝ  rÝ  À  s   ø† ÷<ð <÷$ó $rk   rÝ  c                  óJ   a € ] tR tRtR	R V 3R llltR R ltR R ltRtV ;t# )
rC  iÌ  c               ó$   € V ^8„  d   QhRRRRRR/# )rp   rù  ri  Úwrappingr€   rr   rø   rd   )rs   s   "rl   rt   ÚDisableContext.__annotate__Í  s!   € ÷ !ñ !˜Jð !¸ð !Èñ !rk   c                	ó@   <€ \         SV `  R R7       Wn        W n        R # )Nry   )r2  r3  rù  rò  )r6  rù  rò  r7  s   &&&€rl   r3  ÚDisableContext.__init__Í  s   ø€ Ü‰Ñ $ÐÔ'ØŒØ Žrk   c               ó    € V ^8„  d   QhRRRR/# rÎ  rd   )rs   s   "rl   rt   ró  Ò  s    € ÷ Vñ VÐ-ð VÐ2Dñ Vrk   c                	ó  a a€ \        S4      o\        S\        P                  P                  4      '       d2   Sp\        VS 4      pVP                  Vn        \        V4      Vn	        V# \        S\        4      '       dt   SpS ! VP                  4      Vn        S ! VP                  4      Vn        \        V\        P                  P                  4      '       d   S ! VP                  4      Vn        V# \        S4      '       g   \!        R \        S4       R24      hR VV 3R llpS P"                  '       d   \$        P&                  ! S4      ! V4      pRVn        S P*                  Vn        SVn        \        V4      Vn	        RVn        V# )rÐ  rÑ  c               ó$   € V ^8„  d   QhRRRRRR/# rM  rd   )rs   s   "rl   rt   Ú-DisableContext.__call__.<locals>.__annotate__ó  s!   € ÷ !	1ñ !	1�sð !	1 cð !	1¨cñ !	1rk   c                 óp  <€ \        R 4      p \        SP                  4      pVe   \        V4        \        P
                  P                  4       '       d~   \        SR\        S4      P                  4      pVR8w  dW   \        P                  ! RRRRRV/4      ;_uu_ 4        S! V / VB uuR R R 4       Ve   \        R 4       Ve   \        V4       # # S! V / VB Ve   \        R 4       Ve   \        V4       # #   + '       g   i     L7; i  Te   \        R 4       i i ; i  Te   \        T4       i i ; i)Nre   Ú__torch_dispatch__Ú_torchdynamo_disableTÚ_torchdynamo_disable_recursiveÚ_torchdynamo_disable_method)r   rÙ   rq   rz   rv   rx  ry  rŠ   r<  re   Úfx_tracebackÚannotate)r´   rµ   rŒ   rq   Úfn_namer!  r6  s   *,   €€rl   Ú_fnÚ$DisableContext.__call__.<locals>._fnó  s7  ø€ ä" 4Ó(ˆEð1ô
 1°·±Ó?�ØÒ'Ü)¨(Ô3ð-ä—~‘~×2Ñ2×4Ò4Ü")¨"¨j¼$¸r»(×:KÑ:KÓ"L˜à"Ð&:Ô:Ü!-×!6Ò!6à$:¸DØ$DÀdØ$AÀ7ð!"÷"õ "ñ (*¨4Ð':°6Ñ':÷"ñ "ð  Ò+Ü& tÔ,ð Ò$Ü)¨%Õ0ð %ñ ˜tÐ. vÑ.àÒ+Ü& tÔ,ð Ò$Ü)¨%Õ0ð %÷"÷ "ûð  Ò+Ü& tÕ,ð ,ûð
 Ò$Ü)¨%Õ0ð %úsM   Ž$D# ³#D ÁAD Â"C;Â*
D Â4D# ÃD ÃD# Ã;D	ÄD ÄD Ä D# Ä#D5T)rÔ  r  rv   r&  r'  r  r  r  rÒ  r²  r<  r3  rD  r¥  r$  r  r`  rò  r.  r±  rü  rù  Ú_torchdynamo_disable_msgrý  )r6  r!  r  r·  r¸  r  s   ff    rl   rD  ÚDisableContext.__call__Ò  sA  ù€ ô
 ˜"Óˆä�bœ%Ÿ(™(Ÿ/™/×*Ò*ØˆCÜ% c¨4Ó0ˆGØ14·±ˆGÔ.Ü.0°«kˆGÔ+ØˆNä�bœ$×Òð ˆGñ  $ G×$4Ñ$4Ó5ˆGÔÙ# G×$4Ñ$4Ó5ˆGÔÜ˜'¤5§8¡8§?¡?×3Ò3á%)¨'×*<Ñ*<Ó%=�Ô"ØˆNä˜�|Š|Ü Ø7¼¸R»°zÀÐOóð ÷!	1ñ !	1ðP �=�=ˆ=Ü—/’/ "Ô% cÓ*ˆCà#'ˆÔ Ø'+§x¡xˆÔ$ð *,ˆÔ&Ü&(¨£gˆÔ#à-1ˆÔ*àˆ
rk   c               ó   € V ^8„  d   QhRR/# )rp   rr   z,tuple[type[DisableContext], tuple[Any, ...]]rd   )rs   s   "rl   rt   ró  *  rë  rk   c                	ó   € V P                   R3# rí  r¸  r=  s   &rl   r  ÚDisableContext.__reduce__*  rï  rk   )rù  rò  )NTrÛ  r¸  s   @rl   rC  rC  Ì  s   ø† ÷!ò !õ
V÷p$ó $rk   rC  c               óL   € V ^8„  d   Qh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R/# )rp   Ú
compile_fnz"convert_frame.ConvertFrameProtocolrÞ   rK   r  r  rb  r€   r  r  r  r  r  r  rÂ  rÄ  r  r  r  r  r!  rr   rÁ  rd   )rs   s   "rl   rt   rt   .  sŒ   € ÷ ñ Ø2ðàðððð ðð &ðð ðð ðð +ðð Gðð #ðð ðð Dðð ñrk   c                óZ   € \        \        P                  ! W4      VR VVVVVVV	VV
VR7      # )T)r  r  rb  r  r  r  r  rÂ  r  rÞ   r  r  )rÁ  r=   rÝ   )r
  rÞ   r  rb  r  r  r  r  rÂ  r  r  r  s   &&&&&&&&&&&&rl   Ú_optimize_catch_errorsr  .  sC   € ô  Ü×*Ò*¨:Ó=Ø)ØØØ1ØØØ'ØØØØ-Ø%ôð rk   c               ó    € V ^8„  d   QhRRRR/# )rp   rÛ   r‚   rr   rW   rd   )rs   s   "rl   rt   rt   O  s   € ÷ 9ñ 9Ø0ð9àñ9rk   c                ó  € ^RI Hp V f   RpMg\        V R4      '       d;   V P                  p\	        V\
        4      '       g   \        R\        V4       24      hM\	        V \
        4      '       d   T pMRp\        V 4      p V! W4      # )rä  )Úwrap_backend_debugNÚcompiler_namez(Expected compiler_name to be a str, got )	Úrepro.after_dynamor  rü   r  r  r�   r`  r<  rC   )rÛ   r  Úcompiler_strs   &  rl   rÖ   rÖ   O  s‡   € õ 7àÒà‰Ü	�˜o×	.Ò	.Ø"×0Ñ0ˆÜ˜,¬×,Ò,Ü Ø:¼4ÀÓ;MÐ:NÐOóð ð -ô 
�K¤×	%Ò	%Ø"‰àˆÜ  Ó-€KÙ˜kÓ8Ð8rk   c                  ó"   € ] tR tRtR R ltRtR# )Ú_NullDecoratorie  c               ó    € V ^8„  d   QhRRRR/# rÎ  rd   )rs   s   "rl   rt   Ú_NullDecorator.__annotate__f  s   € ÷ ñ Ð-ð Ð2Dñ rk   c                	óX   € \        V4      '       g   \        R \        V4       R24      hV# )rÐ  rÑ  )r  r`  r<  )r6  r!  s   &&rl   rD  Ú_NullDecorator.__call__f  s/   € Ü˜�|Š|Ü Ø7¼¸R»°zÀÐOóð ð ˆ	rk   rd   N)re   rf   rg   rh   rD  rj   rd   rk   rl   r  r  e  s   † ÷ñ rk   r  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rp   Úf_sigúinspect.Signaturer´   zlist[Any] | tuple[Any, ...]rµ   r‚  rr   r«  rd   )rs   s   "rl   rt   rt   o  s6   € ÷ Sñ SØðSà
%ðSð ðSð ñ	Srk   c                ó  € R  R lpV! V 4      pVP                   R\        V4       p\        V4      \        VP                   4      8”  dd   VP                  f   \        R4      hT\	        \        V4      \        V4      ,
          4       Uu. uF  qdP                   RV 2NK  	  up,          pMt\        V4      \        VP                   4      8  dR   VP                   \        V4      \        VP
                  ;'       g    . 4      )   F  pWr9  g   K  \        RV 24      h	  V\        VP                  4       4      ,          pVP                   F5  pVP                  ;'       g    / p	W‚9  g   K!  W‰9  g   K)  \        RV 24      h	  V# u upi )c               ó    € V ^8„  d   QhRRRR/# )rp   Úsigr  rr   zinspect.FullArgSpecrd   )rs   s   "rl   rt   Ú$argument_names.<locals>.__annotate__t  s   € ÷ )
ñ )
Ð&7ð )
Ð<Oñ )
rk   c           	     óÌ  € \        V P                  P                  4       4      pV Uu. uF9  q"P                  \        P
                  P                  8X  g   K-  VP                  NK;  	  ppV Uu. uF9  q"P                  \        P
                  P                  8X  g   K-  VP                  NK;  	  pp\        R  V 4       R4      p\        R V 4       R4      p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV Uu/ uFo  pVP                  \        P
                  P                  8X  g   K.  VP                  \        P
                  P                  Jg   KX  VP                  VP                  bKq  	  pp/ p	V P                  '       d   RV P                  /p	V F  p
V
P                  WšP                  &   K  	  \        P                  ! W5WgWHV	4      # u upi u upi u upi )c              3  óŽ   "  € T F;  qP                   \        P                  P                  8X  g   K-  VP                  x € K=  	  R # 5ir    )ÚkindrG  Ú	ParameterÚVAR_POSITIONALr–  ©rm  Úps   & rl   ro  ÚCargument_names.<locals>.signature_to_fullargspec.<locals>.<genexpr>  s+   é € ÐR™V˜§v¡v´×1BÑ1B×1QÑ1QÑ'QŒVˆQ�VŽV›Vùó
   ‚*A±ANc              3  óŽ   "  € T F;  qP                   \        P                  P                  8X  g   K-  VP                  x € K=  	  R # 5ir    )r"  rG  r#  ÚVAR_KEYWORDr–  r%  s   & rl   ro  r'  ƒ  s+   é € ÐO™V˜§v¡v´×1BÑ1B×1NÑ1NÑ'NŒVˆQ�VŽV›Vùr(  c              3  óä   "  € T Ff  pVP                   \        P                  P                  8X  g   K.  VP                  \        P                  P
                  Jg   KX  VP                  x € Kh  	  R # 5ir    )r"  rG  r#  ÚPOSITIONAL_OR_KEYWORDr}   Úemptyr%  s   & rl   ro  r'  ‡  sT   é € ð 
á�Ø�v‰vœ×*Ñ*×@Ñ@Ñ@ô ð —	‘	¤×!2Ñ!2×!8Ñ!8Ð8ô ˆA�IŽIÛùs   ‚+A0²%A0ÁA0rr   )ÚlistÚ
parametersrû   r"  rG  r#  r,  r–  ÚKEYWORD_ONLYr<  Útupler}   r-  Úreturn_annotationÚ
annotationÚFullArgSpec)r  Úparamsr&  r´   Ú
kwonlyargsÚvarargsÚvarkwÚdefaultsÚkwonlydefaultsr   Ú	parameters   &          rl   Úsignature_to_fullargspecÚ0argument_names.<locals>.signature_to_fullargspect  sº  € ä�c—n‘n×+Ñ+Ó-Ó.ˆñ #ó
Ù"�q§f¡f´×0AÑ0A×0WÑ0WÑ&WŒFˆA�FŒF™Fð 	ð 
ñ #ó
Ù"�q§f¡f´×0AÑ0A×0NÑ0NÑ&NŒFˆA�FŒF™Fð 	ð 
ô ÙR™VÓRØó
ˆô ÙO™VÓOØó
ˆ÷
 ”5ñ 
áó
—5‘5ñ 
áó
ó 
ˆñ ó
á�Ø�v‰vœ×*Ñ*×7Ñ7Ñ7ô ð —	‘	¤×!2Ñ!2×!8Ñ!8Ð8ô ˆA�F‰F�A—I‘IÒÙð 	ð 
ð ˆØ× × Ð Ø# S×%:Ñ%:Ð;ˆKÛˆIØ*3×*>Ñ*>ˆKŸ™Ó'ñ  ô ×"Ò"Ø˜5¨JÈó
ð 	
ùòG
ùò
ùò$
s)   ¨*GÁGÁ-*GÂGÄ+G!Ä4%G!ÅG!NzMore arguments than expectedÚ_zMissing argument zMissing keyword only argument )
r´   rÇ   r7  r`  Úranger9  r.  Úkeysr6  r:  )
r  r´   rµ   r<  ÚfullargspecÚ
input_strsÚiÚunprovided_argÚ
kwonly_argr:  s
   &&&       rl   Úargument_namesrF  o  ss  € õ
)
ñV +¨5Ó1€Kð ×!Ñ! +¤C¨£IÐ.€Jä
ˆ4ƒy”3�{×'Ñ'Ó(Ô(ð ×ÑÒ&Ü Ð!?Ó@Ð@ØÜ27¼¸D»	ÄCÈ
ÃOÕ8SÔ2Tó
Ù2T¨Q×"Ñ"Ð# 1 Q CÓ(Ñ2Tñ
õ 	
‰
ô 
ˆT‹”S˜×)Ñ)Ó*Ô	*ð *×.Ñ.Ü�‹Iœ˜[×1Ñ1×7Ð7°RÓ8Ð8ó
ˆNð Ö+Ü$Ð'8¸Ð8HÐ%IÓJÐJñ	
ð ”$�v—{‘{“}Ó%Õ%€Jð "×,Ô,ˆ
Ø$×3Ñ3×9Ð9°rˆØÖ#¨
Ö(HÜ Ð#AÀ*ÀÐ!NÓOÐOñ -ð
 Ðùò3
s   Â
Fc               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   Å  s   € ÷ 
ñ 
 4ñ 
rk   c                 óÀ   € \         P                  R8¼  d   \        R4      h\        P                  ! R4      ^8X  d#   \         P                  R8  d   \        R4      hR# R# )é   z0Python 3.15+ not yet supported for torch.compileÚPy_GIL_DISABLEDzetorch.compile is not supported on Python < 3.13.3 built with GIL disabled. Please use Python 3.13.3+.N)rI  é   )rI  é   rI  )ÚsysÚversion_infor—   Ú	sysconfigÚget_config_varrd   rk   rl   Úcheck_if_dynamo_supportedrQ  Å  s_   € Ü
×Ñ˜7Ô"ÜÐMÓNÐNÜ	×	!Ò	!Ð"3Ó	4¸Ô	9¼c×>NÑ>Nð Rô ?ô
 ð)ó
ð 	
ñ?Ñ	9rk   c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   rt   Ó  s   € ÷ ñ ˜Tñ rk   c                 ó@   €  \        4        R #   \         d     R# i ; i©TF)rQ  Ú	Exceptionrd   rk   rl   Úis_dynamo_supportedrV  Ó  s"   € ðÜ!Ô#ÙøÜô Úðúó   ‚
 Žœc               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   Û  s   € ÷  ñ   Tñ  rk   c                 ó   € \        4        R # r    )rQ  rd   rk   rl   Úcheck_if_inductor_supportedrZ  Û  s   € ÜÖrk   c               ó   € V ^8„  d   QhRR/# r�   rd   )rs   s   "rl   rt   rt   ß  s   € ÷ ñ ˜tñ rk   c                 ó@   €  \        4        R #   \         d     R# i ; irT  )rZ  rU  rd   rk   rl   Úis_inductor_supportedr]  ß  s"   € ðÜ#Ô%ÙøÜô ÚðúrW  c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   rt   ç  s   € ÷ 
ñ 
¨ñ 
rk   c                 óx   € \         P                  '       d$   \         P                  '       d   \        R 4      hR# R# )zfDynamo configs suppress_error and fail_on_recompile_limit_hit can not both be active at the same time.N)r<   Úsuppress_errorsÚfail_on_recompile_limit_hitr`  rd   rk   rl   Úcheck_for_incompatible_configsrb  ç  s2   € ä××Ð¤&×"D×"DÐ"DÜØtó
ð 	
ñ #EÑrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r´   r	   rµ   rr   ú OptimizeContext | _NullDecoratorrd   )rs   s   "rl   rt   rt   ï  s"   € ÷ 3ñ 3�Cð 3 3ð 3Ð+Kñ 3rk   c                 ó8   a a€ R  V V3R llp\        V.S O5/ SB # )c               ó   € V ^8„  d   QhRR/# )rp   rr   rd  rd   )rs   s   "rl   rt   Úoptimize.<locals>.__annotate__ð  s   € ÷ 
)ñ 
)Ð9ñ 
)rk   c                 óØ   <€ \         P                  p V '       dH   \        V P                  4       4      R 08w  d   \	        RV P                  4        24      hV R ,          SR&   \        S/ SB # )rb  z>Only `fullgraph` kwarg override is supported for now, but got Únopython)r<   Ú!compiled_autograd_kwargs_overrideÚsetr@  r`  Úoptimize)Úca_kwargs_overrider´   rµ   s    €€rl   rÂ  Úoptimize.<locals>.rebuild_ctxð  sp   ø€ Ü#×EÑEÐßô Ð%×*Ñ*Ó,Ó-°+°Ô>Ü$ØTÐUg×UlÑUlÓUnÐToÐpóð ð "4°KÕ!@ˆF�:ÑÜ˜Ð( Ñ(Ð(rk   )Ú	_optimize©r´   rµ   rÂ  s   jl rl   rl  rl  ï  s$   ù€ ÷
)ñ 
)ô �[Ð2 4Ò2¨6Ñ2Ð2rk   ri  r  Úguard_export_fnÚguard_fail_fnÚguard_filter_fnÚdisabler  r  Úrecompile_limitr  r  c               óP   € V ^8„  d   Qh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RRR/# )rp   rÂ  z.Callable[[], OptimizeContext | _NullDecorator]rƒ   zstr | Callable[..., Any]ri  r€   r  r  rq  z*Callable[[_guards.GuardsSet], None] | Nonerr  z"Callable[[GuardFail], None] | Noners  z=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | Nonert  r  r  r  ru  ú
int | Noner  r  r!  rr   rd  rd   )rs   s   "rl   rt   rt   ÿ  s¦   € ÷ zñ zØ?ðzà%ðzð ð	zð
 &ðzð @ðzð 6ðzððzð ðzð ðzð #ðzð  ðzð ðzð Dðzð  &ñ!zrk   c               óú  € \        4        \        4        \        VVVR7      p\        P                  P                  R4       V'       g7   \        P                  P                  RR4      R8X  g   \        R4      '       g   \        4       # V'       d*   \        P                  '       g   \        VVVV V	V
VVR7      # \        V4      p\        VR\         4      p\        P"                  '       d   V	f   ^R
IHp V! R	R	RR7      p	\)        \*        P*                  ! VVV	V
R7      TTRT;'       d    \        P                  '       * T\-        VR4      '       d   \/        \0        V4      P3                  4       MR	V V	VVR7      # )a  
The main entrypoint of TorchDynamo.  Do graph capture and call
backend() to optimize extracted graphs.

Args:
    backend: One of the two things:
        - Either, a function/callable taking a torch.fx.GraphModule and
        example_inputs and returning a python callable that runs the
        graph faster.
        One can also provide additional context for the backend, like
        torch.jit.fuser("fuser2"), by setting the backend_ctx_ctor attribute.
        See AOTAutogradMemoryEfficientFusionWithContext for the usage.
        - Or, a string backend name in `torch._dynamo.list_backends()`
    nopython: If True, graph breaks will be errors and there will
        be a single whole-program graph.
    error_on_graph_break: If not None, the current `error_on_graph_break` setting is set to the given value.
        See `torch._dynamo.error_on_graph_break()` for more details on what `error_on_graph_break` means.

        Unlike `nopython=True` (i.e. `fullgraph=True`), there is no guarantee of a single whole-program graph.
        If `nopython` is True, `error_on_graph_break` does nothing.
    disable: If True, turn this decorator into a no-op
    dynamic: If True, upfront compile as dynamic a kernel as possible.  If False,
        disable all dynamic shapes support (always specialize).  If None, automatically
        detect when sizes vary and generate dynamic kernels upon recompile.
    recompile_limit: Maximum number of recompilations for this region.
        If None, uses ``torch._dynamo.config.recompile_limit``.
    isolate_recompiles: If True, this compile call gets its own isolated
        cache so recompilations are tracked independently from other
        compile calls on the same function.

Example Usage::

    @torch._dynamo.optimize()
    def toy_example(a, b): ...
)rq  rr  rs  ztorch._dynamo.optimizeÚTORCHDYNAMO_DISABLEr#  Ú1zpytorch/compiler:enable_dynamo)r  rÞ   rÂ  r  ru  r  r  r  NrU   F©r!  rœ  rX  )r  ru  r  )rb  r  r  r  rÂ  r  r  r  )rQ  rb  rK   rv   r  Ú_log_api_usage_onceÚosÚenvironÚgetr%   r  r<   Ú&debug_force_graph_break_on_leaf_returnÚoptimize_assertrÖ   rŠ   r¿  r˜  r  rV   r  r=   rü   r
   r   r  )rÂ  rƒ   ri  r  rq  rr  rs  rt  r  r  ru  r  r  rÞ   r  rV   s   &&$$$$$$$$$$$   rl   ro  ro  ÿ  sb  € ôh ÔÜ"Ô$ô Ø'Ø#Ø'ô€Eô
 
‡H�H× Ñ Ð!9Ô:çÜ�:‰:�>‰>Ð/°Ó4¸Ô;ÜÐ @×AÒAäÓÐçœ×E×EÐEÜØØØØ#ØØ+Ø1Ø)ô	
ð 		
ô ˜gÓ&€Gô ˜wÐ(:¼LÓIÐô × × Ð  W¢_Ý+á  D°ÈeÔTˆä!Ü×#Ò#ØØØØ+ô		
ð 	ØØØ1÷ >ð >Ü×=Ñ=Ô=Øô �wÐ 5×6Ò6ô Ô'¨Ó1×EÑEÔGààØØ-Ø%ô+ð rk   z&torch._dynamo.symbolic_convert.explainc               ó(   € V ^8„  d   QhRRRRRRRR/# )rp   rs  ræ   Ú
extra_argsr	   Úextra_kwargsrr   rd   )rs   s   "rl   rt   rt   ~  s/   € ÷ Gñ GÐ!ð G°ð GÀSð GÈSñ Grk   c                ó”   a a€ ^RI Ho R VV 3R llpV'       g	   V'       d&   \        P                  ! R\        ^R7       V! V/ VB # V# )rä  )ÚExplainOutputc               ó$   € V ^8„  d   QhRRRRRR/# )rp   r´   r	   rµ   rr   r†  rd   )rs   s   "rl   rt   Úexplain.<locals>.__annotate__�  s!   € ÷ 8
ñ 8
�Sð 8
 Cð 8
¨Mñ 8
rk   c            
     ó
  <a	a
aaa€ ^RI Hp V! 4        . o
. o	^ o. o. oR V	V
VV3R llpR V3R llp\        VRVR7      ! S4      pV! V / VB  \        S
4      pV^,
          p\	        RR	7      pV! 4        S! S
VVS	SSSV4      # )
rä  r»  c               ó$   € V ^8„  d   QhRRRRRR/# )rp   Úgmútorch.fx.GraphModulerã   r	   rr   ræ   rd   )rs   s   "rl   rt   Ú,explain.<locals>.inner.<locals>.__annotate__�  s$   € ÷ 	ñ 	Ø$ð	Ø69ð	àñ	rk   c                óL   <€ ^RI Hp V! V SSSS4      w  p ooooV P                  # )rä  )Ú_explain_graph_detail)Úbackends.debuggingr�  r  )r‹  rã   r�  Úbreak_reasonsÚgraphsÚop_countÚops_per_graphs   && €€€€rl   Ú"dynamo_graph_accumulating_compilerÚBexplain.<locals>.inner.<locals>.dynamo_graph_accumulating_compiler�  s:   ø€ õ Bñ BWØ�F˜H m°]óBÑ>ˆB�˜ -°ð —:‘:Ðrk   c               ó    € V ^8„  d   QhRRRR/# )rp   ÚguardszIterable[_guards.Guard]rr   rø   rd   )rs   s   "rl   rt   r�  �  s   € ÷ 	&ñ 	&Ð'>ð 	&À4ñ 	&rk   c                ó*   <€ SP                  V 4       R # r    )Úextend©r˜  Ú
out_guardss   &€rl   Úguard_export_printÚ2explain.<locals>.inner.<locals>.guard_export_print�  s   ø€ à×Ñ˜fÖ%rk   F)ri  rq  r�   )Úrepr)r#  rú   rl  rÇ   rQ   )r´   rµ   rú   r•  r�  Úopt_fÚgraph_countÚgraph_break_countÚcompile_timer‘  r’  r“  r”  rœ  r†  rs  s   *,       @@@@@€€rl   ÚinnerÚexplain.<locals>.inner�  s¯   ý€ åáŒà-/ˆØ#%ˆØˆØ,.ˆØ*,ˆ
÷	ó 	÷ 	&ð 	&ô Ø.ØØ.õ
ð ó	ˆñ 	ˆtÐ�vÒä˜&“kˆØ'¨!�OÐÜ$¨%Ô0ˆñ 	ŒáØØØØØØØØó	
ð 		
rk   zäexplain(f, *args, **kwargs) is deprecated, use explain(f)(*args, **kwargs) instead.  If you don't migrate, we may break your explain call in the future if your user defined kwargs conflict with future kwargs added to explain(f).rO  )r�  r†  rT  rU  ÚFutureWarning)rs  rƒ  r„  r¤  r†  s   f*, @rl   Úexplainr§  }  sH   ù€ å1÷8
ñ 8
÷t —\Ü�Šð?ô Øõ	
ñ �jÐ1 LÑ1Ð1àˆrk   c                  ót   a € ] tR tRtRR V 3R llltR R ltR V 3R lltR V 3R	 lltR
 V 3R lltRt	V ;t
# )ÚFlattenInputOutputSignatureiÈ  c               ó<   € V ^8„  d   QhRRRRRRRRR	RR
RRRRRRR/	# )rp   ÚmrŒ  Ú	flat_argsrž   Ú matched_input_elements_positionsz	list[int]Úflat_resultszSequence[Any]Ú!matched_output_elements_positionsÚexample_fake_inputszlist[torch.Tensor]Úflat_args_dynamic_dimsúlist[set[int]]rv  ú!fake_tensor.FakeTensorMode | Nonerr   rø   rd   )rs   s   "rl   rt   Ú(FlattenInputOutputSignature.__annotate__É  sd   € ÷ 7)ñ 7)àð7)ð ð7)ð +4ð	7)ð
 $ð7)ð ,5ð7)ð 0ð7)ð !/ð7)ð 5ð7)ð 
ñ7)rk   c	                	óÆ  <a € \         SS `  V4       \        V4      \        V4      8w  d%   \        R \        V4       R\        V4       R24      h\	        V4       U	U
u/ uF  w  ršW¦V	,          bK  	  pp	p
. S n        \        \        V4      4       EF£  p\         SS `  RV 2R	/ 4      pWË9   d"   W¼,          VP                  P                  R&   EMIVeá   \        W,,          \        P                  4      '       d»   TP                  W,,          \        \        \        W,,          P                  4      4       Uu. uF0  pWçV,          9   d   \         P"                  M\         P$                  NK2  	  upR.\        W,,          P                  4      ,          R7      R7      VP                  P                  R&   Me\        W,,          \&        4      '       d+   W,,          P(                  VP                  P                  R&   MW,,          VP                  P                  R&   S P
                  P+                  V4       EK¦  	  V 3R lV 4       S n        VS n        VS n        R# u up
p	i u upi )
zflat_args_dynamic_dims length (z) must match flat_args length (Ú)re  ÚvalN)Údynamic_sizesÚconstraint_sizes)Úsymbolic_contextc              3  óJ   <"  € T F  pSP                   V,          x € K  	  R # 5ir    )Únew_args)rm  rC  r6  s   & €rl   ro  Ú7FlattenInputOutputSignature.__init__.<locals>.<genexpr>þ  s   øé € ÐXÑ7W°!˜TŸ]™]¨1×-Ò-Ó7Wùs   ƒ #rd   )r2  r3  rÇ   r`  Ú	enumerater¼  r?  ÚplaceholderÚnodeÚmetar  rv   ÚTensorÚfrom_tensorr9   Úshaper7   ÚDYNAMICÚSTATICr*   r·  râ   Úold_args_genr¯  r®  )r6  r«  r¬  r­  r®  r¯  r°  r±  rv  Úixr·  Úmatched_input_elements_to_fakerC  re  Údr7  s   f&&&&&&&&      €rl   r3  Ú$FlattenInputOutputSignature.__init__É  s  ù€ ô 	‰Ñ˜ÔäÐ%Ó&¬#¨i«.Ô8Ü Ø1´#Ð6LÓ2MÐ1Nð O0Ü03°I³Ð/?¸qðBóð ô %Ð%EÔFô*
áF‘�ð  RÕ(Ò(ÙFð 	'ñ *
ð
 ˆŒÜ”s˜9“~×&ˆAÜ‘'Ñ%¨¨A¨3 i°°RÓ8ˆCØÔ2Ø'EÕ'H�—‘—‘˜eÓ$ð Ò(¬Z¸	½ÄeÇlÁl×-SÒ-Sà+4×+@Ñ+@Ø!�Ü)Aô */¬s°9µ<×3EÑ3EÓ/FÔ)Gó+ñ *H Að ()À1Õ,EÔ'Eô %/×$6Ò$6ä)3×):Ñ):ò%;ñ *Hñ+ð /3¨V´c¸)½,×:LÑ:LÓ6MÕ-Mô
*ð ,Aó ,�C—H‘H—M‘M %Ò(ô   	¥¬k×:Ò:Ø+4­<×+;Ñ+;�C—H‘H—M‘M %Ò(à+4­<�C—H‘H—M‘M %Ñ(à�M‰M× Ñ  ×%ñ9 'ô: YÑ7WÓXˆÔØ1RˆÔ.Ø(ˆÖùóK*
ùò$+s   ÁIÄ56Ic               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rp   Útargetr\   r´   ztuple[Argument, ...]rµ   r‚  rr   r	   rd   )rs   s   "rl   rt   r´    s,   € ÷ ñ ØðØ$8ðØBPðà	ñrk   c                	ó¨  € \        V P                  4      pR V P                  P                  9   d5   V P                  P                  R ,          VP                  P                  R &   RV P                  P                  9   d5   V P                  P                  R,          VP                  P                  R&   RV P                  P                  9   d5   V P                  P                  R,          VP                  P                  R&   RV P                  P                  9   d5   V P                  P                  R,          VP                  P                  R&   V# )r·  Útensor_dictÚexample_valueÚunbacked_bindings)r<  rÇ  Úcurrent_noderÁ  rÀ  )r6  rÎ  r´   rµ   re  s   &&&& rl   r¿  Ú'FlattenInputOutputSignature.placeholder  sû   € ô �4×$Ñ$Ó%ˆØ�D×%Ñ%×*Ñ*Ô*Ø#'×#4Ñ#4×#9Ñ#9¸%Õ#@ˆC�H‰H�M‰M˜%Ñ Ø˜D×-Ñ-×2Ñ2Ô2Ø+/×+<Ñ+<×+AÑ+AÀ-Õ+PˆC�H‰H�M‰M˜-Ñ(Ø˜d×/Ñ/×4Ñ4Ô4à-1×->Ñ->×-CÑ-CÀOÕ-TˆC�H‰H�M‰M˜/Ñ*Ø $×"3Ñ"3×"8Ñ"8Ô8Ø15×1BÑ1B×1GÑ1GØ#õ2ˆC�H‰H�M‰MÐ-Ñ.ð ˆ
rk   c               ó(   € V ^8„  d   QhRRRRRRRR/# rÍ  rd   )rs   s   "rl   rt   r´    s,   € ÷ ?ñ ?Øð?Ø$8ð?ØBPð?à	ñ?rk   c                	óØ  <€ V^ ,          p. VOV P                   Op. p\        \        V P                  4      4       Fœ  pV P                  V,          e+   VP                  WPP                  V,          ,          4       KB  V P                  V,          p\        V\        \        4      4      '       g   \        R\        V4       24      hVP                  V4       Kž  	  \        S	V `1  W3/ 4      # )r”   z5Expected const_val to be a common constant type, got )r¼  r?  rÇ   r®  r¯  râ   r  r1  rP   r`  r<  r2  Úoutput)
r6  rÎ  r´   rµ   Údynamo_result_flatr§  Únew_results_flatrC  Ú	const_valr7  s
   &&&&     €rl   r×  Ú"FlattenInputOutputSignature.output  sÝ   ø€ ð " !�WÐØ6Ð%Ð6¨¯©Ð6ˆàÐÜ”s˜4×,Ñ,Ó-Ö.ˆAØ×5Ñ5°aÕ8ÒDØ ×'Ñ'Ø×AÑAÀ!ÕDÕEöð !×-Ñ-¨aÕ0�	Ü! )¬UÔ3HÓ-I×JÒJÜ(ØOÔPTÐU^ÓP_ÐO`Ðaóð ð !×'Ñ'¨	Ö2ñ /ô ‰w‰~˜fÐ&9¸2Ó>Ð>rk   c               ó    € V ^8„  d   QhRRRR/# )rp   Únr[   rr   r	   rd   )rs   s   "rl   rt   r´  (  s   € ÷ ñ ˜$ð  3ñ rk   c                	óÊ  <€ Wn         \        SV `	  V4      pR V P                   P                  9   d5   V P                   P                  R ,          VP                  P                  R &   RV P                   P                  9   d5   V P                   P                  R,          VP                  P                  R&   RV P                   P                  9   d5   V P                   P                  R,          VP                  P                  R&   V P                   P
                  R8w  dE   VP                  P                  \        V P                   RVP                  P                  4      4       V# )r·  rÑ  rÒ  r×  r–  )	rÓ  r2  Úrun_noderÁ  rÀ  ÚopÚ_renamerŠ   r–  )r6  rÝ  Úresult_proxyr7  s   && €rl   rß  Ú$FlattenInputOutputSignature.run_node(  s"  ø€ ØÔÜ‘wÑ'¨Ó*ˆØ�D×%Ñ%×*Ñ*Ô*Ø,0×,=Ñ,=×,BÑ,BÀ5Õ,IˆL×Ñ×"Ñ" 5Ñ)Ø˜d×/Ñ/×4Ñ4Ô4à6:×6GÑ6G×6LÑ6LØõ7ˆL×Ñ×"Ñ" ?Ñ3ð  $×"3Ñ"3×"8Ñ"8Ô8Ø:>×:KÑ:K×:PÑ:PØ#õ;ˆL×Ñ×"Ñ"Ð#6Ñ7ð ×Ñ×Ñ 8Ô+Ø×Ñ×%Ñ%Ü˜×)Ñ)¨6°<×3DÑ3D×3IÑ3IÓJôð Ðrk   c               ó   € V ^8„  d   QhRR/# )rp   rr   rŒ  rd   )rs   s   "rl   rt   r´  <  s   € ÷ ñ Ð/ñ rk   c                	ó8  <€ \         SV `  4       pR V P                  P                  9   d+   V P                  P                  R ,          VP                  R &   RV P                  P                  9   d+   V P                  P                  R,          VP                  R&   V# )Ú dynamo_flat_name_to_original_fqnÚdynamo_compile_id)r2  Ú	transformrR  rÁ  )r6  Ú	result_gmr7  s   & €rl   rè  Ú%FlattenInputOutputSignature.transform<  s}   ø€ Ü‘GÑ%Ó'ˆ	Ø-°·±×1AÑ1AÔAØAEÇÁ×AQÑAQØ2õBˆI�N‰NÐ=Ñ>ð  $§+¡+×"2Ñ"2Ô2Ø26·+±+×2BÑ2BÐCVÕ2WˆI�N‰NÐ.Ñ/ØÐrk   )rÓ  r®  r¯  r¼  rÇ  r    )re   rf   rg   rh   r3  r¿  r×  rß  rè  rj   r·  r¸  s   @rl   r©  r©  È  s1   ø† ÷7)ò 7)õr÷"?ð ?÷*ð ÷(ö rk   r©  c                  ó,   € ] tR tRt$ R]R&   R]R&   RtR# )ÚExportResultiG  rŒ  Úgraph_moduleú_guards.GuardsSetr˜  rd   N)re   rf   rg   rh   r„   rj   rd   rk   rl   rì  rì  G  s   ‡ Ø&Ó&Ø×rk   rì  c               ó    € V ^8„  d   QhRRRR/# )rp   ÚgraphrŒ  rr   rø   rd   )rs   s   "rl   rt   rt   O  s   € ÷ /
ñ /
Ð&:ð /
¸tñ /
rk   c                ó  € . pV P                   P                  R R7       EF*  p\        VR4      '       g   \        R4      h\        V R4      '       g   \        R4      hVP                  pV P
                  P                  V4      pVf   Kk  \        V4      ^ 8X  d   \        R4      hRpV F  p\        V4      ^ 8X  d   K  Tp M	  Vf   VP                   R2pM`R	P                  \        P                  ! V4      4      pR	p	\        V4      ^8”  d   R
\        V4      ^,
           R2p	VP                   RV V	 2pVP                  V4       EK-  	  V'       d1   \        \        P                  RRP                  V4      ,           4      hR# )r¿  ©rà  Ú_dynamo_sourcez(node is missing _dynamo_source attributeÚ_source_to_user_stacksz1graph is missing _source_to_user_stacks attributeNzuser_stacks must not be emptyz, a closed over free variabler#  z(elided z more accesses)z, accessed at:
a�  Cannot export model which references tensors that are neither buffers/parameters/constants nor are direct inputs.  For each tensor, if you'd like this tensor to be an explicit input, add it as a dummy argument to the top-level model definition you are exporting; if you would like its value to be embedded as an exported constant, wrap its access in a function marked with @assume_constant_result.

z

)rð  Ú
find_nodesrü   r`  ró  rô  r  rÇ   r–  r   r/   Úformat_listrâ   rI   rJ   ÚINVALID_INPUT)
rð  Úinput_errorsrÀ  ÚsourceÚuser_stacksÚstackÚsrù  ÚtbÚextras
   &         rl   Úcheck_signature_rewritablerÿ  O  s�  € à€LØ—‘×&Ñ&¨-Ð&×8ˆä�tÐ-×.Ò.Ü Ð!KÓLÐLÜ�uÐ6×7Ò7Ü Ð!TÓUÐUð ×$Ñ$ˆØ×2Ñ2×6Ñ6°vÓ>ˆØÒÙÜˆ{Ó˜qÔ Ü Ð!@ÓAÐAð ˆÛˆAÜ�1‹v˜Œ{ÙØˆEÙñ	 ð
 Š=Ø—[‘[�MÐ!>Ð?‰Cà—‘œ×.Ò.¨uÓ5Ó6ˆBØˆEÜ�;Ó !Ô#Ø"¤3 {Ó#3°aÕ#7Ð"8¸ÐH�Ø—[‘[�MÐ!1°"°°e°WÐ=ˆCà×Ñ˜C× ñA 9÷D ÜÜ×'Ñ'ðEð �k‰k˜,Ó'õ(ó	
ð 		
ñ rk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   Úflat_valuesrž   Ú
error_typerJ   rr   rø   rd   )rs   s   "rl   rt   rt   �  s"   € ÷ ñ ¨ð Àð ÐRVñ rk   c                óÔ  a€ \         P                  \         P                  \         P                  \         P                  \         P
                  P                  \        .\        \        4      ,           oR  V3R llpV\        P                  8X  d   RMRpV  FN  pV! V4      '       d   K  V\        P                  8X  d   Vf   K.  \        VRV R\        V4       RV RS R	2	4      h	  R# )
c               ó    € V ^8„  d   QhRRRR/# )rp   r·  r	   rr   r€   rd   )rs   s   "rl   rt   Ú-check_user_input_output.<locals>.__annotate__‹  s   € ÷ Uñ U˜sð U tñ Urk   c                óf   <€ \        V \        S4      4      ;'       g    \        \        V 4      4      # r    )r  r1  r"   r<  )r·  Úsupported_typess   &€rl   Úis_supported_typeÚ2check_user_input_output.<locals>.is_supported_type‹  s&   ø€ Ü˜#œu _Ó5Ó6×TÐT¼/Ì$ÈsË)Ó:TÐTrk   Úinputr×  NzIt looks like one of the zs with type `z;` is not supported or pytree-flattenable. 
Exported graphs z2s can only contain the following supported types: zµ. 
If you are using a custom class object, please register a pytree_flatten/unflatten function using `torch.utils._pytree.register_pytree_node` or `torch.export.register_dataclass`.)rv   rÂ  ÚSymIntÚSymFloatÚSymBoolr  ÚScriptObjectr*   r.  rP   rJ   r÷  rI   r<  )r  r  r  Ú
value_typeÚvr  s   &&   @rl   Úcheck_user_input_outputr  �  sÓ   ø€ ä�‰Ü�‰Ü�‰Ü�‰Ü�‰×ÑÜðô 	Ô"Ó#õ$€O÷Uð Uð '¬-×*EÑ*EÔE‘È8€JãˆÙ  ×#Ô#Øœ]×8Ñ8Ô8¸QºYÙäØØ+¨J¨<°}ÄTÈ!ÃWÀIð N#à#- ,ð /.Ø.=Ð->ð ?5ð5ó
ð 
ó rk   c               óD   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRR/# )rp   r  r  rð  rŒ  rv  r³  r¬  rž   Úin_speczpytree.TreeSpecr°  Úgraph_captured_inputúIterable[Any]Úgraph_captured_outputzIterable[Any] | NoneÚdynamo_traced_resultr	   r±  r²  rr   rd   )rs   s   "rl   rt   rt   ¢  sƒ   € ÷ [ñ [Øð[àð[ð 1ð[ð ð	[ð
 ð[ð #ð[ð (ð[ð 0ð[ð ð[ð +ð[ð ñ[rk   c
           
     ó  a a€ \         P                  ! W44      w  r«\        V\        P                  4       \         P
                  ! V4      w  rÍ\        V\        P                  4       R  R loR VV 3R llpV! RW64      pVf   \        R4      hV! R\        V4      V,           V4      p\        VVVVVVV	V4      P                  4       p\        \        \        S W«4      VV4      4      VP                  n        VP!                  4        V# )c               ó    € V ^8„  d   QhRRRR/# )rp   r  r  rr   rø   rd   )rs   s   "rl   rt   Ú'rewrite_signature.<locals>.__annotate__´  s   € ÷ ñ Ð.?ð ÀDñ rk   c           
     óR  € V P                   P                  4        Fˆ  w  rVP                  \        P                  P
                  Jg   K/  ^ RIHu Hp ^ RI	H
p \        P                  RVVP                  4       V! RRRV RVP                   R2. VP                  OR	7       KŠ  	  R# )
r”   N)Úunimplementedz3Parameter %s is optional with a default value of %sz7rewrite_signature: cannot trace optional function inputr#  z
Parameter z% is optional with a default value of z. This is not supported yet.)Úgb_typeÚcontextÚexplanationÚhints)r/  Úitemsr}   rG  r#  r-  Útorch._dynamo.graph_break_hintsrw   Úgraph_break_hintsÚtorch._dynamo.excr  r½  ÚerrorÚSUPPORTABLE)r  r–  Úparamr#  r  s   &    rl   Úcheck_optional_input_and_errorÚ9rewrite_signature.<locals>.check_optional_input_and_error´  s�   € à ×+Ñ+×1Ñ1Ö3‰KˆDØ�}‰}¤G×$5Ñ$5×$;Ñ$;Õ;ßKÐKÝ;ä—	‘	ØIØØ—M‘Môñ
 ØUØØ",¨T¨FÐ2WÐX]×XeÑXeÐWfð  gCð  !DðØ*×6Ñ6ð÷	ó 4rk   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rp   Ú
debug_typer�   Úsourcesr  Ú
candidatesrr   zlist[int | None]rd   )rs   s   "rl   rt   r  É  s,   € ÷ *ñ *Øð*Ø"/ð*Ø=Jð*à	ñ*rk   c                ó~  <€ . p/ p\        V4       F  w  rVWT\        V4      &   K  	  V F�  p\        V\        \        4      4      '       d   VP                  R 4       K5  \        V4      V9  d+   V R8X  d	   S! S4       \        R\        V4       RV  R24      hVP                  V\        V4      ,          4       K’  	  V# )NrX  zUnexpectedly found a z in the zO.
Please file an issue along with a paste of the logs from TORCH_LOGS="+export")r¾  rÒ  r  r1  rP   râ   r`  r<  )	r+  r,  r-  Úmatched_elements_positionsÚdict_of_source_valsrC  r·  r(  r  s	   &&&    €€rl   Úproduce_matchingÚ+rewrite_signature.<locals>.produce_matchingÉ  sÅ   ø€ ð 8:Ð"Ø ÐÜ Ö(‰FˆAØ+,¤ 3£Ó(ñ )ó ˆCÜ˜#œuÔ%:Ó;×<Ò<Ø*×1Ñ1°$Ö7Ü�C“Ð 3Ô3Ø Ô)Ù2°5Ô9Ü$Ø+¬D°«I¨;°h¸z¸lð Kdð dóð ð
 +×1Ñ1Ð2EÄbÈÃgÕ2NÖOñ ð *Ð)rk   rX  z&graph_captured_output must not be NoneÚoutputs)ÚpytreeÚtree_unflattenr  rJ   r÷  Útree_flattenÚINVALID_OUTPUTr`  r.  r©  rè  r:   r;   rF  rð  Ú_codegenÚ	recompile)r  rð  rv  r¬  r  r°  r  r  r  r±  Ú	orig_argsÚorig_kwargsÚflat_results_tracedÚout_spec_tracedr1  r­  r¯  Ú	new_graphr(  s   f&&&&&&&&&        @rl   Úrewrite_signaturer?  ¢  s  ù€ ô $×2Ò2°9ÓFÑ€Iä˜I¤}×'BÑ'BÔCÜ+1×+>Ò+>Ð?SÓ+TÑ(ÐÜÐ/´×1MÑ1MÔNõ÷**ñ *ñ. (8Ø�)ó(Ð$ð Ò$ÜÐEÓFÐFÙ(8Ø”4Ð-Ó.°Õ:Ð<Oó)Ð%ô ,ØØØ(ØØ)ØØØó	÷ �iƒkð ô  .ÜÜ˜5 )Ó9ØØó	
ó €I‡O�OÔð ×ÑÔØÐrk   Ú
aten_graphÚpre_dispatchÚdecomposition_tableÚtracing_modeÚsymbolicÚspecialize_floatrÚ  Úsame_signatureÚdisable_constraint_solverÚ+prefer_deferred_runtime_asserts_over_guardsÚ_log_export_usageÚconstraintsc                óX   € V ^8„  d   Qh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RRRRRRR/# )rp   rs  ræ   rƒ  r	   r@  r€   rA  rB  z6dict[torch._ops.OpOverload, Callable[..., Any]] | NonerC  r�   r  rY   rE  rÚ  rF  rG  rH  rI  rJ  zlist[Constraint] | Noner„  rr   zCallable[..., ExportResult]rd   )rs   s   "rl   rt   rt    	  s»   € ÷ ^ñ ^Øð^àð^ð ð^ð ð	^ð
 Pð^ð ð^ð (ð^ð ð^ð #ð^ð ð^ð  $ð^ð 26ð^ð ð^ð )ð^ð ð^ð  !ñ!^rk   c               óä  aaaaaaa	a
aaaaa€ \         P                  '       d   \        P                  ! R4      h^ RIHp Ro\        S\        \        34      '       d+   V'       d   \        R4      hS
'       d   \        V4      hSoRoV'       d   \        RR0R7       V oVoVoVoR VVVVVVV	VVVV
VV3R	 llpV'       g	   V'       d&   \        P                  ! R
\        ^R7       V! V/ VB # V# )ai  
Export an input function f to a format that can be executed outside of PyTorch using the FX graph.

Args:
    f (callable): A PyTorch function to be exported.

    aten_graph (bool): If True, exports a graph with ATen operators.
    If False, exports a graph with Python operators. Default is False.

    pre_dispatch (bool): If True, exports a graph with ATen operators,
    but before any logic in the PyTorch dispatcher has run.
    This can be useful if you want to apply further transformations on a graph before running it
    through autograd, autocast, or any other functionalities that are integrated into the dispatcher.
    This flag is only valid if aten_graph=True is set.
    Default is False.

    decomposition_table (dict): A dictionary that maps operators to their decomposition functions.
    Required if aten_graph or tracing_mode is specified. Default is None.

    tracing_mode (str): If "symbolic", turn on dynamic shapes support. Default is "symbolic".

    dynamic_shapes:
     An optional argument where the type should either be:
     1) a dict from argument names of ``f`` to their dynamic shape specifications,
     2) a tuple that specifies dynamic shape specifications for each input in original order.
     If you are specifying dynamism on keyword args, you will need to pass them in the order that
     is defined in the original function signature.

     The dynamic shape of a tensor argument can be specified as either
     (1) a dict from dynamic dimension indices to :func:`Dim` types, where it is
     not required to include static dimension indices in this dict, but when they are,
     they should be mapped to None; or (2) a tuple / list of :func:`Dim` types or None,
     where the :func:`Dim` types correspond to dynamic dimensions, and static dimensions
     are denoted by None. Arguments that are dicts or tuples / lists of tensors are
     recursively specified by using mappings or sequences of contained specifications.

     **ShapesSpec API.** ``dynamic_shapes`` may also be a
     :class:`torch.fx.experimental.dynamic_spec.ShapesSpec` (or its
     shorthand :class:`torch.fx.experimental.dynamic_spec.ParamsSpec`) --
     the same spec API exposed via ``dynamic_shapes=`` in
     :func:`torch.compile`. See :func:`torch.export.export` for usage
     and semantics, and :mod:`torch.fx.experimental.dynamic_spec` for
     full details.

    same_signature (bool): If True, rewrite the returned graph's signature to be the same as f.

    disable_constraint_solver (bool): Whether the dim constraint solver must be disabled.

Returns:
    A function that given args and kwargs, returns a tuple of (graph, guards)
    Graph: An FX graph representing the execution of the input PyTorch function with the provided arguments and options.
    Guards: The guards we accumulated during tracing f above

Raises:
    AssertionError: If decomposition_table is specified without setting aten_graph=True,
    or if graph breaks during tracing in export.

    AssertionError: If Dynamo input and output is not consistent with traced input/output.

Note - this headerdoc was authored by ChatGPT, with slight modifications by the author.
z"Cannot force graph break on export)Ú,_SHAPES_SPEC_VS_DEFERRED_RUNTIME_ASSERTS_MSGNzx`dynamic_shapes=ShapesSpec(...)` cannot be combined with `constraints`. ShapesSpec controls dynamic behavior on its own.zexport.private_apirw   )ÚeventÚflagsc               ó$   € V ^8„  d   QhRRRRRR/# )rp   r´   r	   rµ   rr   rì  rd   )rs   s   "rl   rt   Úexport.<locals>.__annotate__o	  s&   € ÷ c/ñ c/�Sð c/ Cð c/¨Lñ c/rk   c                 óÐ  <a"a#a$a%a&a'€ S)'       g   \        S*W4      p\        VS04      pMS)pS*pS+pS(p\        4        \        P                  P                  R 4       S-e   S,'       g   \        R4      hS1'       d   S,'       g   \        R4      h\        V4      p\        V\        P                  P                  4      '       d   VP                  MTp\        P                  ! V4      pRo$Ro'Ro%Ro&Ro#Rp	R V'3R llp
. o"R V"V#V$V%V&3R llp\        P                  ! W34      w  rÍ\!        V4       RpS4R8w  d   R	p\"        P$                  ! R	VVR
R	R	R	S2\"        P&                  R7	      ;_uu_ 4        \)        4       ;_uu_ 4        \+        V\-        V
RR7      R	VS/R7      ! V4      p V! V / VB p	RRR4       RRR4       \!        V4       S.'       Eg‡   \1        S#RR4      ;pEeu   VP2                  ;pEed   \        V\        P4                  P6                  \        P4                  P8                  34      '       Eg   \:        P<                  ! V4      '       Eg   VP?                  4        VPA                  4       pVPC                  VS0VV4      pV'       d"   VPD                  ^ ,          V,           3Vn"        M*V'       d   \/        V4      pM\F        PI                  RV4       VPJ                   Fj  p\        V\L        PN                  4      '       g   K%  \/        RPQ                  \R        PT                  ! VPV                  V,          4      4       RV R24      pKl  	  V'       d   VhS$Ef¾   S3'       g   \        R4      h. o"R&o%R&o&\        PX                  P[                  \]        4       R	R7      o#S'f   \^        P`                  ! 4       o'S'f   \        R4      h\c        VPd                  Pg                  4       4      p\        Ph                  Pk                  4       p\m        V4       FŒ  w  pp\        Pn                  ! VV,          4      '       g   K+  VPq                  V4      pS#Ps                  VV,          R	R7      VPt                  R&   S%VV,          3,           o%S"Pw                  VV,          4       KŽ  	  VPy                  S&4       \        P                  P                  4       p\        Ph                  P{                  VV4      o$\F        PI                  RS$P}                  R
R	R7      4       MXS'f   \        R4      hS#f   \        R4      h\F        PI                  RS$P}                  R
R	R7      4       S3'       d   \        S$4       S" Uu. uF6  p\        V\        P€                  4      '       d   S#Ps                  V4      MTNK8  	  ppS,'       Ed   R V$3R llp\ƒ        4       ;_uu_ 4        \…        4       ;_uu_ 4        S#;_uu_ 4         \‡        VS-RR	S1R
R 7      ! V!  o$ RRR4       RRR4       RRR4       S$f   \        R#4      hS$P’                  P•                  R$R%7       Fm  p\        \1        S$TP–                  4      \        P€                  4      '       g   K9  S#Ps                  \1        S$TP–                  4      R	R7      TPt                  R&   Ko  	  S3'       dÅ   V UU u. uF¢  pT;'       g    R& U u0 uFˆ  p V P˜                  \›        V4      8X  g   K  \        V \œ        4      '       d   K7  V Pž                  P                   P¢                  V Pž                  P                   P¤                  8w  g   K|  V P¦                  kKŠ  	  up NK¤  	  p!pp \©        VS$S#VVVS%S&V	V!4
      o$\«        S$S'4      #   \.         d   pTp Rp?EL	Rp?ii ; i  + '       g   i     EL; i  + '       g   i     EL&; iu upi   \ˆ         d+   p\‹        \Œ        PŽ                  \‘        T4      R!R"7      hRp?ii ; i  + '       g   i     EL; i  + '       g   i     EL!; i  + '       g   i     EL-; iu up i u up pi )'ztorch._dynamo.exportNzaSpecifying a decomposition_table table or tracing mode is illegal without setting aten_graph=Truez7pre_dispatch=True can only be used when aten_graph=Truec               ó    € V ^8„  d   QhRRRR/# )rp   r˜  rî  rr   rø   rd   )rs   s   "rl   rt   Ú+export.<locals>.inner.<locals>.__annotate__�	  s   € ÷ 	 ñ 	 Ð'8ð 	 ¸Tñ 	 rk   c                ó*   <€ Se   \        R4      hV oR # )Nz3whole graph export entails exactly one guard export)r`  r›  s   &€rl   r�  Ú1export.<locals>.inner.<locals>.guard_export_print�	  s    ø€ àÒ%Ü$ØIóð ð  ŠJrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r‹  rŒ  Úinner_example_inputsrž   rr   ræ   rd   )rs   s   "rl   rt   rT  ™	  s)   € ÷ k	,ñ k	,Ø$ðk	,Ø<Eðk	,àñk	,rk   c                óp   <€ Se   \        R4      hV o\        P                  ! 4       oVoR VVVV3R llpV# )Nz\Tried to emit a second graph during export. Tracing through 'f' must produce a single graph.c               ó    € V ^8„  d   QhRRRR/# )rp   Úgraph_inputsr	   rr   rd   )rs   s   "rl   rt   Ú\export.<locals>.inner.<locals>.dynamo_normalization_capturing_compiler.<locals>.__annotate__¬	  s   € ÷ V-ñ V-¸ð V-Àñ V-rk   c                 óh  <aa€ V oSf   \        R4      h\        SP                  RR7      4      p\        SP                  RR7      4      p\        P
                  ! V 4      e   \        P
                  ! V 4      MSo\        4       pSf   \        R4      hSP                  ;p'       d   VP                  4       pS;_uu_ 4        \        4       ;_uu_ 4        T;_uu_ 4        / VCVCp/ pVP                  4        F  w  rxSP                  VRR7      Wg&   K  	  ^ RIHoHp	 R VV3R	 llp
\        P                   ! W 4      p\"        P$                  P'                  SVV4      oR R R 4       R R R 4       R R R 4       S#   + '       g   i     L"; i  + '       g   i     L-; i  + '       g   i     S# ; i)
Nz2graph must not be None in result_capturing_wrapperF)Úremove_duplicatez"ambient_fake_mode must not be NoneT©Ústatic_shapes)Úkey_path_to_sourceÚKeyPathc               ó$   € V ^8„  d   QhRRRRRR/# )rp   rh  rb  Útz torch.Tensor | _IntWrapper | Anyrr   r	   rd   )rs   s   "rl   rt   Ú~export.<locals>.inner.<locals>.dynamo_normalization_capturing_compiler.<locals>.result_capturing_wrapper.<locals>.__annotate__ß	  s$   € ÷ %ñ %Ø%ð%Ø*Jð%àñ%rk   c                óþ  <€ \        V\        P                  4      '       d   SP                  VR R7      # \        V\        4      '       d³   VP
                  e™   \        VP
                  \        4      '       dy   VP
                  P                  \        P                  \        P                  39   d@   S! V 4      pSP                  P                  VP                  V\        P                  4      pV# VP                  # V# )Tr_  )r  rv   rÂ  rÃ  r*   rí   r(   r<  r)   rÅ  ÚAUTOÚ	shape_envÚ$create_unspecified_symint_and_symbolr·  r7   )rh  rd  rù  ÚsymintÚambient_fake_modera  s   &&  €€rl   Úfakify_with_ambientÚ…export.<locals>.inner.<locals>.dynamo_normalization_capturing_compiler.<locals>.result_capturing_wrapper.<locals>.fakify_with_ambientß	  sÄ   ø€ ô & a¬¯©×6Ò6à#4×#@Ñ#@ÀÐRVÐ#@Ó#WÐWÜ'¨¬;×7Ò7à !§
¡
Ò 6Ü$.¨q¯z©z¼8×$DÒ$DØ$%§J¡J§O¡Oä$0×$8Ñ$8Ü$0×$5Ñ$5ð$"ô%"ñ *<¸DÓ)A Ø):×)DÑ)D×)iÑ)iØ$%§E¡E¨6´:×3EÑ3Eó*" ð (. à'(§u¡u à#$˜Hrk   )r`  r„  Únamed_parametersÚnamed_buffersr   Údetect_fake_moder¿  rh  Úignore_fresh_unbacked_symbolsr   r!  rÃ  Útorch._export.non_strict_utilsra  rb  r4  Útree_map_with_pathrv   ÚfuncÚfunctional_call)r[  rn  ro  Úignore_fresh_unbackedrh  Úparams_and_buffersÚfake_params_buffersr–  r“  rb  rl  Úfake_graph_inputsrk  ra  rv  rð  r  Úgraph_captured_results   *           @@€€€€rl   Úresult_capturing_wrapperÚhexport.<locals>.inner.<locals>.dynamo_normalization_capturing_compiler.<locals>.result_capturing_wrapper¬	  sª  ú€ ð (4Ð$Ø’=Ü(ØLóð ô $(¨×(>Ñ(>ÐPUÐ(>Ó(VÓ#WÐ Ü $ U×%8Ñ%8È%Ð%8Ó%PÓ Q�ô ×/Ò/°Ó=ÒIô ×,Ò,¨\Ô:à"ð "ô )5«Ð%Ø$Ò,Ü(Ð)MÓNÐNØ 1× ;Ñ ;Ð;�9Ö;Ø,5×,SÑ,SÓ,UÐ)÷ &Ò%Ü,×.Õ.ß)Ò)ð*Ø*ð*à'ð*Ð&ð +-Ð'à'9×'?Ñ'?Ö'A™˜Ø4E×4QÑ4QØ!°ð 5Ró 5Ð+Ó1ñ (B÷
÷
%ñ %ô4 )/×(AÒ(AØ+ó)Ð%ô -2¯J©J×,FÑ,FØØ+Ø)ó-Ð)÷_ *÷ /÷ &ðn -Ð,÷k *×)ú÷ /×.ú÷ &Ö%ðn -Ð,ús=   ÃF ÃF	Ã B E:Å F	Å(F Å:F
ÆF	ÆFÆF Æ F1	)r`  r   rp  )r‹  rX  r{  rã   rv  rð  r  rz  s   && €€€€€rl   Ú'dynamo_normalization_capturing_compilerÚFexport.<locals>.inner.<locals>.dynamo_normalization_capturing_compiler™	  sL   ø€ ð Ò Ü$Øróð ð ˆEô  ×0Ò0Ó2ˆIØ1ˆN÷V-ó V-ðp ,Ð+rk   rD  TF)	Úspecialize_intrE  rÚ  rÛ  Ú capture_dynamic_output_shape_opsÚcapture_scalar_outputsÚ'constant_fold_autograd_profiler_enabledrH  Úinstall_free_tensors)rq  rr  )rÞ   r  Úexport_constraintsr  rh  z#Summary of dimension constraints:%sr#  zk
It appears that you're trying to set a constraint on a value which we evaluated to have a static value of z0. Set TORCH_LOGS="+export" for more information.zhFailed to produce a graph during tracing as no tensor operations were found and same_signature is False.)rh  r  zout_guards must not be Noner_  r·  zQFailed to capture a graph during tracing as no tensor operations were found.:

%s)Úprint_outputÚcoloredz'Failed to produce guards during tracingz(fake_mode must not be None after tracingzDynamo captured graph:

%sc               ó    € V ^8„  d   QhRRRR/# )rp   r´   r	   rr   rd   )rs   s   "rl   rt   rT  š
  s   € ÷ Bñ B¨cð B°cñ Brk   c                 óü   <€ \         P                  P                  P                  4       ;_uu_ 4        \         P                  P	                  S4      P
                  ! V !  uuR R R 4       #   + '       g   i     R # ; ir    )rv   r¯  r/   Úpreserve_node_metaÚInterpreterÚrun)r´   rð  s   *€rl   Úgraph_with_interpreterÚ5export.<locals>.inner.<locals>.graph_with_interpreterš
  sH   ø€ Ü—X‘X×'Ñ'×:Ñ:×<Õ<Ü Ÿ8™8×/Ñ/°Ó6×:Ò:¸DÑA÷ =×<×<Ó<ús   ²-A*Á*A;	Úreal)rB  rC  Ú_allow_non_fake_inputsrA  Ú_allow_fake_constantÚcond_operands)Ú	case_namez$graph must not be None after tracingÚget_attrrò  rd   )Vr'   r+   rQ  rv   r  r|  r`  rÔ  r  r&  r'  r  rG  Ú	signaturer4  r6  r¿  r<   r   Úinstall_free_tensors_for_exportr!   r�  rK   r6   rŠ   Údim_constraintsÚ_opsÚOpOverloadPacketÚ
OpOverloadr@   r½   ÚsolveÚforced_specializationsÚprettify_resultsr´   r½  rø  Úvar_to_rangeÚsympyÚIntegerr   r/   rö  Úvar_to_stackÚ_subclassesÚFakeTensorModer8   r   Ú	GuardsSetr.  r/  r@  r¯  ÚGraphr¾  Ú	is_tensorr¿  rÃ  rÁ  râ   r×  r.   Úprint_readablerÿ  rÂ  r#   r   r5   rE   rI   rJ   ÚDYNAMIC_CONTROL_FLOWr�   rð  rõ  rÎ  Út_idrÒ  r,   Úconstraint_rangeÚvrÚlowerÚupperÚdimr?  rì  )5r´   rµ   Úcombined_argsrJ  rs  rE  rÚ  Úcall_to_inspectÚoriginal_signatureÚresult_tracedr�  r}  r¬  r  Úconstraint_violation_errorr   r�  rh  r–  r›  rù  ÚkÚparameter_namesÚfx_graphrC  r–  rÀ  rR  rd  r°  rŒ  ÚxÚcr±  rã   rv  rð  r  rz  rœ  Ú_assume_static_by_defaultÚ_constraintsÚ_fÚ_specialize_floatr@  rB  rG  Údyn_specr  rA  rH  rF  rC  s5   *,                                @@@@@@€€€€€€€€€€€€€rl   r¤  Úexport.<locals>.innero	  sƒ  þ€ ßÜ)¨"¨dÓ;ˆMÜ1°-ÀÓP‰Kà&ˆKàˆØ,ÐØ#<Ð Ü!Ô#Ü�‰×$Ñ$Ð%;Ô<ØÒ*ßÜ$Øwóð ÷ ßÜ$ØMóð ô ˜‹OˆÜ'1°!´U·X±X·_±_×'EÒ'E˜!Ÿ)š)È1ˆÜ$×.Ò.¨Ó?ÐØˆØˆ
Ø#ÐØAEÐØˆ	Øˆ÷	 ð 	 ð %'ˆ÷k	,ô k	,ô^ $×0Ò0°$°Ó@Ñˆ	ä˜!ÔØ%)Ð"Ø˜:Ô%Ø'+Ð$ä�LŠLØ#Ø!1Ø)AØ).Ø15Ø'+Ø8<Ø<gô &,×%KÑ%K÷ö ô %×&Õ&ä#Ø7ÜØ$6Ø"&ôð Ø#.Ø'õ	ð ó	ˆEð/Ù % tÐ 6¨vÑ 6�÷ '÷ô> 	˜!Ô÷ *Ð)Ü% i°¸dÓCÐC�ÓPØ$-×$=Ñ$=Ð=�ÓJÜØ¤%§*¡*×"=Ñ"=¼u¿z¹z×?TÑ?TÐ!U÷ó ô  ×%Ò% o×6Ó6à×!Ñ!Ô#à%4×%KÑ%KÓ%MÐ"à!×2Ñ2Ø"ØØ*Ø&ó	ˆC÷ *à.×3Ñ3°AÕ6¸Õ<ð3Ð*Õ/÷ *Ü1IÈ#Ó1NÑ.ä—H‘HØ=Øôð ×+Ô+�Ü˜a¤§¡×/Ô/Ü1IØŸ7™7¤9×#8Ò#8¸×9OÑ9OÐPQÕ9RÓ#SÓTÐUð VNàNOÈSð QIðIó2Ò.ñ ,÷ &Ø,Ð,à‹=ß!Ü$Ø~óð ð  ˆNØ#%Ð Ø$&Ð!Ü×)Ñ)×8Ñ8Ü"›*¨Tð 9ó ˆIð Ò!Ü$×.Ò.Ó0�
ØÒ!Ü$Ð%BÓCÐCÜ"Ð#5×#@Ñ#@×#EÑ#EÓ#GÓHˆOÜ—x‘x—~‘~Ó'ˆHÜ$ _Ö5‘��4Ü—?’? 9¨Q¥<×0Ô0Ø#×/Ñ/°Ó5�DØ'0×'<Ñ'<Ø! !�°Dð (=ó (�D—I‘I˜eÑ$ð ,@À9ÈQÅ<À/Õ+QÐ(Ø"×)Ñ)¨)°A­,Ö7ñ 6ð �O‰OÐ1Ô2Ü—X‘X—_‘_Ó&ˆFÜ—H‘H×(Ñ(¨°Ó:ˆEÜ�H‰HØeØ×$Ñ$°%ÀÐ$ÓFõð
 Ò!Ü$Ð%NÓOÐOØÒ Ü$Ð%OÓPÐPä�H‰HØ.Ø×$Ñ$°%ÀÐ$ÓFô÷ Ü*¨5Ô1ñ
 $ó
á#�ô )3°1´e·l±l×(CÒ(CˆI×!Ñ! !Ô$ÈÒJÙ#ð 	ð 
÷
 ˆ:÷Bð Bô (×)Õ)Ô+C×+EÕ+EÇyÂyðÜ#Ø.Ø,?Ø%+Ø/3Ø%1Ø-2õð +ñ,‘E÷ HQ×+E×)ð$ Š}Ü$Ð%KÓLÐLØŸ™×.Ñ.°*Ð.Ö=�Üœg e¨T¯[©[Ó9¼5¿<¹<×HÔHØ'0×'<Ñ'<Ü  t§{¡{Ó3Ø&*ð (=ó (�D—I‘I˜eÓ$ñ >÷ ñ #ô&ñ #�Að *×/Ð/¨RÐ/óá/˜àŸ™¤" Q£%™ô ô !+¨1Ô.@× Aô	 ð
 ×.Ñ.×1Ñ1×7Ñ7¸1×;MÑ;M×;PÑ;P×;VÑ;VÑVô �A—E”EÙ/ôñ #ð #ñ &ô &Ø"ØØØØØ#Ø$Ø%ØØ&óˆEô ˜E :Ó.Ð.øôM ,ô /Ø-.Ö*ûð/ú÷ '×&Ð&ú÷÷ ð üòH
øô* /ô ä#Ü%×:Ñ:Ü˜A›Ø"1ôð ûðú÷ HQÇyÀyú×+E×+EÐ+Eú×)×)Ð)üò:ùó&sÙ   Å-_Æ "^<	Æ#^!Æ+_Õ=<_$×a	×2`5	×=`!×?_)Ø`5	Øa	Ûa"Û$a"Û)aÜ
aÜ"A aÝ'aÝ7a"Þ!^9Þ,^4Þ.^<	Þ4^9Þ9^<	Þ<_ß	_ß_!	ß)`ß4%`à`à`!à!`2à,	`5	à5aá 	a	á	a	áa"zàexport(f, *args, **kwargs) is deprecated, use export(f)(*args, **kwargs) instead.  If you don't migrate, we may break your export call in the future if your user defined kwargs conflict with future kwargs added to export(f).rO  )r<   r€  ÚunittestÚSkipTestÚ"torch.fx.experimental.dynamic_specrM  r  r4   r3   r@  r&   rT  rU  r¦  )rs  r@  rA  rB  rC  r  rE  rÚ  rF  rG  rH  rI  rJ  rƒ  r„  rM  r¤  r¸  r¹  rº  r»  r¼  s   &ddddd$$ddd$$*,  @@@@@rl   r  r   	  sæ   ÿü€ ô\ ×4×4Ð4Ü×ÒÐ DÓEÐEõð 04€HÜ�.¤:¬zÐ":×;Ò;ßÜðRóð ÷ 7ÜÐIÓJÐJà!ˆØˆçÜÐ3¸I¸;ÕGð 
€BØ(ÐØ 8ÐØ€L÷c/÷ c/ô c/÷J —\Ü�Šð>ô Øõ	
ñ �jÐ1 LÑ1Ð1àˆrk   c               ó$   € V ^8„  d   QhRRRRRR/# )rp   r´   r	   rµ   rr   rÁ  rd   )rs   s   "rl   rt   rt   á
  s!   € ÷ 
:ñ 
:˜3ð 
:¨#ð 
:°/ñ 
:rk   c                 óv   a a€ R S9   d   SR ,          e   SR ,          pSR  M
R V V3R llp\        V.S O5/ SB # )rÂ  c               ó   € V ^8„  d   QhRR/# )rp   rr   rÁ  rd   )rs   s   "rl   rt   Ú%optimize_assert.<locals>.__annotate__è
  s   € ÷ 	4ñ 	4˜_ñ 	4rk   c                 ó   <€ \        S / SB # r    )r�  )r´   rµ   s   €€rl   rÂ  Ú$optimize_assert.<locals>.rebuild_ctxè
  s   ø€ Ü" DÐ3¨FÑ3Ð3rk   )Ú_optimize_assertrp  s   jl rl   r�  r�  á
  sH   ù€ Ø˜Ô 6¨-Õ#8Ò#Dà˜]Õ+ˆØ�=Ñ!÷	4ñ 	4ô ˜KÐ9¨$Ò9°&Ñ9Ð9rk   rÞ   r  r„  c               óD   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRRRRRR/# )rp   rÂ  zCallable[[], OptimizeContext]rƒ   r‚   rÞ   rK   r  r€   r„  z
Any | Noner  r  r  r  ru  rw  r  r  r!  rr   rÁ  rd   )rs   s   "rl   rt   rt   î
  sw   € ÷ 5ñ 5Ø.ð5à,ð5ð ð	5ð
 ð5ð #ð5ð ð5ð #ð5ð  ð5ð ð5ð Dð5ð ñ5rk   c               óì   € \        V4      p\        VR\        4      p
\        P                  '       d   Vf   ^RIHp V! RRRR7      p\        \        P                  ! VVVVVR7      VV
RVVV VVV	R7
      # )	a+  
Guarantees single-graph capture.
The same as `torch._dynamo.optimize(backend)` but ignores
symbolic_convert.error_on_graph_break setting.

Used for fullgraph=True and export, since we must always error on graph breaks and ignore
symbolic_convert.error_on_graph_break. Can also be used for testing.
r  NrU   Fr{  )r  r„  r  ru  T)rb  r  r  rÂ  r  r  r  )
rÖ   rŠ   r¿  r<   r˜  r  rV   r  r=   Úconvert_frame_assert)rÂ  rƒ   rÞ   r  r„  r  r  ru  r  r  r  rV   s   &&$$$$$$$$  rl   rÇ  rÇ  î
  sŠ   € ô* ˜gÓ&€Gô ˜wÐ(:¼LÓIÐä× × Ð  W¢_õ 	,á  D°ÈeÔTˆä!Ü×*Ò*ØØØ1ØØ+ô	
ð 	ØØØØØØØ-Ø%ô!ð rk   c                  ó`   € ] tR tRt]]P                  R R l4       4       t]R R l4       tRt	R# )rÒ  i&  c               ó   € V ^8„  d   QhRR/# r÷   rd   )rs   s   "rl   rt   ÚTorchPatcher.__annotate__)  s   € ÷ Zñ Z�4ñ Zrk   c                 	ó¬  € ^RI Hp  V ! \        P                  P                  RR7      \        P                  n        V ! \        P                  P
                  RR7      \        P                  n        V ! \        P                  P                  RR7      \        P                  n        V ! \        P                  P                  P                  P                  RR7      \        P                  P                  P                  n        \        P                  P                  P                  R4       ^ RIHpHpHpHpHpHpHpHpHp	Hp
HpHpHp VVVVVVVVV	V
VVV0pV F]  pVP6                  P9                  R4      R,          pRV 2p\;        VV4      '       g   K>  \=        VVV ! \?        VV4      R	R7      4       K_  	  \        P@                  PB                  PE                  4        Uu. uFO  p\F        PH                  ! V4      '       g   K!  \K        V\        P@                  PL                  4      '       g   KM  VNKQ  	  pp\        P@                  PN                  \        P@                  PP                  0pV FX  pVV9   d   V ! VPR                  R
V R2R7      Vn)        \;        VR4      '       g   K;  V ! VPT                  R
V R2R7      Vn*        KZ  	  R# u upi )rä  )rt  z,tracing into TorchScript not fully supported)rì  z#tracing into FX not fully supportedF)ÚadadeltaÚadagradÚadamÚadamaxÚadamwÚasgdÚlbfgsÚnadamÚradamÚrmspropÚrpropÚsgdÚsparse_adamÚ.Ú_fused_z don't trace into fused optimizerz
optimizer z step not supportedÚ_init_groupz _init_group not supportedNr4  )+Ú
decoratorsrt  rv   r¡  ÚtraceÚtrace_moduleÚ_get_trace_graphr¯  r°  ÚTracerÚdistributionsÚDistributionÚset_default_validate_argsÚtorch.optimrÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÚ  rÛ  re   Úsplitrü   rž  rŠ   Úoptimr…  rû   rG  r¤  r¥  Ú	OptimizerÚ
SparseAdamÚLBFGSÚsteprÞ  )rt  rÏ  rÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÚ  rÛ  Úoptimizer_modulesÚopt_modÚopt_nameÚfused_fn_nameÚoptÚoptimizer_classesÚexcluded_optimizer_classess                        rl   r   ÚTorchPatcher.patch'  sQ  € õ 	(á!Ü�I‰I�O‰OÐ$Rô
Œ�	‰	Œñ ")Ü�I‰I×"Ñ"ØAô"
Œ�	‰	Ôñ &-Ü�I‰I×&Ñ&ØAô&
Œ�	‰	Ô"ñ 18Ü�H‰H×$Ñ$×+Ñ+×1Ñ1Ø8ô1
Œ�‰× Ñ ×'Ñ'Ô-ô 	×Ñ×(Ñ(×BÑBÀ5ÔI÷	
÷ 	
÷ 	
õ 	
ð" ØØØØØØØØØØØØð
Ðó  )ˆGØ×'Ñ'×-Ñ-¨cÓ2°2Õ6ˆHØ% h ZÐ0ˆMä�w ×.Ô.ÜØØ!ÙÜ ¨Ó7ØAôöñ )ô  —{‘{×+Ñ+×2Ñ2Ô4ó
á4�Ü�Š˜s×#ô ä(2°3¼¿¹×8MÑ8M×(N÷ ˆCÙ4ð 	ð 
ô �K‰K×"Ñ"Ü�K‰K×Ñð&
Ð"ó
 %ˆCØÐ0Ô0Ù"Ø—H‘H z°#°Ð6IÐ%Jô�”ô �s˜M×*Ô*Ù")Ø—O‘O¨j¸¸Ð=WÐ,Xô#�–ó %ùò
s   Ç&KÈ	'KÈ5Kc               ó    € V ^8„  d   QhRRRR/# rÎ  rd   )rs   s   "rl   rt   rÍ  †  s   € ÷ 	ñ 	Øð	à	ñ	rk   c                	ó   a € R  V 3R llpV# )c               ó$   € V ^8„  d   QhRRRRRR/# rM  rd   )rs   s   "rl   rt   ÚFTorchPatcher.suppress_torch_distributed_warnings.<locals>.__annotate__‰  s!   € ÷ 	+ñ 	+˜Cð 	+¨3ð 	+°3ñ 	+rk   c                 óä   <€ \         P                  P                  \         P                  P                  P                  4      ;_uu_ 4        S! V / VB uuR R R 4       #   + '       g   i     R # ; ir    )rv   Ú_loggingÚhide_warningsÚ	_internalÚuser_warning_filter)r´   rµ   r!  s   *,€rl   Úinner_fnÚBTorchPatcher.suppress_torch_distributed_warnings.<locals>.inner_fn‰  sQ   ø€ Ü—‘×-Ñ-Ü—‘×(Ñ(×<Ñ<÷õ ñ ˜4Ð* 6Ñ*÷÷ ÷ ó ús   ÁAÁA/	rd   )r!  rÿ  s   f rl   Ú#suppress_torch_distributed_warningsÚ0TorchPatcher.suppress_torch_distributed_warnings…  s   ø€ ÷	+ð 	+ð ˆrk   rd   N)
re   rf   rg   rh   r´  r.  Úcacher   r  rj   rd   rk   rl   rÒ  rÒ  &  s7   † ØØ‡_�_ôZó ó ðZðx ô	ó ô	rk   rÒ  c               ó    € V ^8„  d   QhRRRR/# )rp   r   ztypes.CodeTyperr   rø   rd   )rs   s   "rl   rt   rt   ’  s   € ÷ ñ �Nð  tñ rk   c                ój   € \        V \        \        P                  \        P                  4      4       R # r    )r   r    r   ÚSKIPrî   r  s   &rl   Ú	skip_coder  ’  s#   € ÜØÔ¤× 0Ñ 0´+×2EÑ2EÓFörk   )r}   r­   r®   r¯   r°   r±   r    )Úinductor)ñÚ__conditional_annotations__r³  Ú
__future__r   ÚatexitrA  r.  rG  Ú	itertoolsÚloggingr}  rM  rO  rÅ   Ú	threadingr/   r  r¾  rT  rŸ  Úcollections.abcr   r   Údataclassesr   Úenumr   Úos.pathr   r   Útypingr	   r
   r   r   r   Úunittest.mockr   rž  rv   Útorch.fxÚtorch.utils._pytreerA   Ú_pytreer4  Útorch.utils.checkpointr   r–   r   r   r   r   r   r   r   r   r   r   r   Útorch._dispatch.pythonr   Útorch._dynamo.typesr   r   r   r   r    Útorch._export.utilsr!   Útorch._library.opaque_objectr"   Útorch._subclasses.fake_tensorr#   Útorch._utils_internalr$   r%   r&   Útorch.export.dynamic_shapesr'   r(   r)   r*   r+   r,   r-   r.   rÿ  Útorch.fx.experimental._dynamismr0   r1   rÀ  r2   r3   r4   Ú"torch.fx.experimental.proxy_tensorr5   Ú%torch.fx.experimental.symbolic_shapesr6   r7   r8   r9   Útorch.fx.graphr:   r;   r#  r<   r=   r>   r?   r@   Úbackends.registryrB   rC   rD   ÚexcrE   rF   rG   rH   rI   rJ   rÞ   rK   rå  rM   rN   rO   rP   rQ   rR   rS   rT   Útorch._dynamo.packagerV   Ú torch._dynamo.repro.after_dynamorW   Útorch._subclassesrX   Útorch.export._tracerY   Útorch.fx.noderZ   r[   r\   r]   r^   r_   r`   ra   Ú	getLoggerre   r½  r�  r=  ÚExactWeakKeyDictionaryrµ  rB  r¿  rc   rm   r„   ri   r6  r¥   rz   r~   r|   r˜   Úlocalr‹   Úcontextmanagerr�   r‘   r™   Ú_dynamo_forbiddenrš   r¡   r§   rª   rÙ   rÕ   rä   r×   rõ   rþ   r©  Ú__file__r«  r¸   r  r  r&  r'  r  r¿  rÂ  rÆ  rÌ  rÔ  rÄ   rÝ  rá  rã  ré  rê  rï  rò  rõ  Úregisterrú  r  r/  Ú_not_setr,  rÁ  rÝ  rC  r  rÖ   r  rF  rQ  rV  rZ  r]  rb  rl  ro  r§  r¯  ÚTransformerr©  rì  rÿ  r  r?  r  r�  rÇ  rÒ  r  )r	  s   @rl   Ú<module>r4     s¼  øðôõ, #ã Û Û Û Û Û Û 	Û 
Û Û Û Û Û Û Û Û ß ,Ý !Ý ß !ß @Õ @Ý ã ã Û ß $Ð $Û Ý ÷÷ ÷ ñ õ <÷õ õ 9Ý 8Ý @ß VÑ V÷÷ ñ ÷ <÷÷ñ õ
 7÷ó ÷ 7ç T× Tß 9Ý &÷÷ õ Ý ;÷ó ÷ ß<Ñ<å4ÝAÝ-Ý7ß4Ñ4÷õ ð ×Ó˜Ó!€à'Ÿo›oÓ/Ð ð  %×;Ó;Ó=Ð Ø×%Ò%€ôˆDô ð *,€Ð&Ó +à�Š€àÐ ÷ Ø*Ñõ	,ð ðõ€	ð ÷4ð 4ó ð4ñ ‹.€Ø'Ÿo›oÓ/Ð ð ×Òô2ó ð2õ@õð !%€Ô à/3€Ð,Ó 3õ ð ×Òô8ó ð8õ õ
GHõT
õõõ:*õð ×Ó˜+Ó&Ù‰‘˜Ó"Ó	#Ð%RÓSð€õ	Iõõ0Jô]
�e—h’h—o’oô ]
õ@>õ"	õ÷õõ:õ	
ð ×Òôó ðô*�	—’ô *ñ ‹[€
õ!õ
õ)õ#ð
 ‡‚ôó ðõñ* ‹8€÷Nñ NôbL
Ð)ô L
ô^	$Ð(ô 	$ô_$Ð(ô _$ðN 	ØØ(,ØØØ-1ØIMØ%)Ø$ØFJ÷õB9ô,�Z×+Ò+ô õSõl
õõ õõ
õ3ñ zð ð	zð
 )-ðzð CGðzð 9=ðzð ðzð ðzð  ðzð &*ðzð #'ðzð  %ðzð GK÷zð zñ| Ð/°Ó6ôGó 7ðGôT| %§(¢(×"6Ò"6ô |ô~�:ô õ/
õdõB[ð|^ð ð^ð ð	^ð
 SWð^ð #ð^ð +/ð^ð "ð^ð &+ð^ð  ð^ð ',ð^ð 9>ð^ð #ð^ð ,0÷^õB
:ð5ñ ˜˜t TÓ*ð	5ð
 ð5ð &*ð5ð  ð5ð &*ð5ð #'ð5ð  %ð5ð GK÷5÷piñ i÷Xrk   