+
    –°³j×D ã                  óà1  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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$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.H/t/H0t0H1t1H2t2H3t3 ^ R	I4H5t5H6t6 ^ RI7t7^ RI8t7^ RI9t7^ RI:H;u H<t= ^ R
I7H>t> ^ RI?H@t@HAtAHBtBHCtC ^ RIDHEtE ^ RIFHGtGHHtH ^ RIIHJtJHKtKHLtL ^ RIMHNtN ^ RIOHPtPHQtQHRtRHStSHTtT ^ RIUHVtVHWtW ^ RIXHYtY ^ RIZH[t[ ^ RI\H]t] ^ RI^H_t_ ^ RI`HataHbtb ^ RIcHdtd ^RIeHftf ]PÎ                  '       d=   ^ RIhHitiHjtjHktkHltlHmtmHntnHotoHptpHqtqHrtr ^ RIsHttt ^ RIuHvtv ^ RIwHxtx ^ RIyHztz ^ RI{H|t| ^ RI}H~t~  ^ RIt€ ^ RI‚t7^ RIƒH„t… ^ R IIH†t† ^ R!I‚H‡t‡ ^R"IˆH‰t‰ ]€'       dz   ]€]€EP                  ]€EP                  ]€EP                  3t�R#]ŽR$&   ]€]…]€EP                  ]…EP                  ]€EP                  ]…EP                  ]€EP                  ]…EP                  /t�MER”t�/ t�^ R%I�H‘t‘ ]3! R&4      t“]3! R'4      t”]3! R(4      t•]3! R)4      t–]3! R*4      t—]3! R+4      t˜]3! R,4      t™]3! R-4      tš]3! R.4      t›]3! R/4      tœ]3! R04      t�]3! R14      tž]5! R24      tŸ]7EP@                  EPB                  EPD                  t£]7EP@                  EPB                  EPH                  t¥]7EP@                  EPB                  EPL                  t§]EPP                  ! ]PD                  4      t©R3]ŽR4&   / tªR5]ŽR6&   R7t«R8t¬R9]¬ R:2t­]EP\                  ! ]¯4      t°/ t±R;]ŽR<&   ]EPP                  ! ]²4      t³R=]ŽR>&   ]EPh                  ! 4       tµ ! R? R@]EPl                  4      t· ! RA RB4      t¸RC RD lt¹^ sºRE RF lt»RG RH lt¼Rs½RI]ŽRJ&   RK RL lt¾RM RN lt¿RO RP ltÀ^ sÁRQ RR ltÂRS RT ltÃRU RV ltÄ]EPŠ                  ! 4       tÆRW RX ltÇRY RZ ltÈ ! R[ R\]EPl                  4      tÉ ! R] R^4      tÊ]EPŠ                  ! 4       tË]%R_ R` l4       tÌ]%ER•Rb Rc ll4       tÍ]0ER–Rd Re ll4       tÎ]0ER–Rf Rg ll4       tÎER—Rh Ri lltÎ]EPž                  Rj Rk l4       tÐ]7EP¢                  ]7EP¤                  ]7EPd                  3]7EP¦                  ]7EP¨                  ]7EPª                  3]7EP¬                  ]7EP®                  ]7EP°                  3]7EP²                  ]7EP´                  3]7EP¶                  ]7EP¸                  3]7EPº                  ]7EP¼                  3]7EP¾                  ]7EPÀ                  ]7EPÂ                  3]7EPÄ                  ]7EPÆ                  ]7EPÈ                  3]7EPÊ                  ]7EPÌ                  ]7EPÎ                  3]7EPÐ                  ]7EPÒ                  3/
tê ! Rl Rm4      të]ë! 4       tìRn Ro ltíRp Rq ltî]EPÞ                  ! Rr]EPà                  4      tñ ! Rs Rt]EPä                  4      tóRu Rv ltôRw Rx ltõRy Rz ltöR{ R| lt÷R} R~ ltøR R€ ltùR� R‚ ltúRƒ R„ ltû ! R… R†4      tü]0R‡ Rˆ l4       tý]0R‰ RŠ l4       tý]0R‹ RŒ l4       tý]0R� RŽ l4       tý]0R� R� l4       tý]0R‘ R’ l4       tý]0R“ R” l4       tý]0R• R– l4       tý]0R— R˜ l4       tý]0R™ Rš l4       tý]0R› Rœ l4       týR� Rž ltý]þ! 4       tÿRŸ]ŽR &   ]EP                   ER˜8¼  dI   ]EP                  ]EP                  ]Pj                  ]Pf                  ]EP                  ]EP                  3tÿR¡ R¢ lEt]EP                   ER™8¼  d   ]ÿ]EP                  3,          tÿR£ R¤ lEtR¥ R¦ lEtR§ R¨ lEt	REs
R©]ŽRª&   R« R¬ lEtR­ R® lEtR¯ R° lEtR± R² lEt]0R³ R´ l4       Et]0Rµ R¶ l4       EtR· R¸ lEt]!EP                   ! 4       EtR¹]ŽRº&   R» R¼ lEtR½ R¾ lEt]EP(                  ]EP*                  ,          ]EP,                  ,          ]EP.                  ,          EtR¿]ŽRÀ&   RÁ RÂ lEtRÃ RÄ lEtRÅ]EP6                  RÆ]EP8                  RÇ]EP:                  RÈ]EP<                  RÉ]EP>                  RÊ]EP@                  /Et!RÅRËRÆRÌRÇRÍRÈRÎRÉRÏRÊRÐ/Et"RÑ RÒ lEt#RÓ RÔ lEt$RÕ RÖ lEt%R× RØ lEt&RÙ RÚ lEt'RÛ RÜ lEt(RÝ RÞ lEt)Rß Rà lEt*]PN                  ! Rá4      Râ Rã l4       Et+ERšRä Rå llEt,Ræ Rç lEt-Rè Ré lEt.Rê Rë lEt/^Et0]EPb                   ! Rì Rí4      4       Et2^@Et3]EPh                  ! E]3Rî7      Es5Rï]ŽRð&   Rñ Rò lEt6Ró Rô lEt7Rõ Rö lEt8R÷ Rø lEt9Rù Rú lEt:Rû Rü lEt;Rý Rþ lEt<Rÿ ER  lEt=ER ER lEt> ! ER ER4      Et?REs@ER]ŽER&   ER ER lEtAER	 ER
 lEtB]%ER›ER ER ll4       EtC/ EtDER]ŽER&   ]EPb                   ! ER ER4      4       EtE ! ER ER]ü4      EtFE]F! 4       E]FEnG        ER ER lEtHER ER lEtIER ER lEtJERR/ER ER llEtK]0ER ER l4       EtL]0ER ER l4       EtLER  ER! lEtLER" ER# lEtM]%ER$ ER% l4       EtNER& ER' lEtOER–ER( ER) llEtPER* ER+ lEtQER, ER- lEtRER. ER/ lEtS]PN                  ! ^4      ER0 ER1 l4       EtTER2 ER3 lEtUERœER4 ER5 llEtVER6 ER7 lEtW]'! ^ 4      ER8 ER9 l4       EtX]ä]²E]Y]éE]ZE][E]\! R4      E]]EP¼                  E]_EP¼                  ]PP                  ]7EPÀ                  ]7EPÂ                  ]7EPÄ                  ]7EPÆ                  ]7EPÈ                  ]7EPÊ                  ]7EP@                  EPÌ                  EPÎ                  ]7EPÐ                  EPÒ                  ]7Pv                  Px                  EPÔ                  ]7Pv                  Px                  EPÖ                  ]7Pv                  Px                  EPØ                  0EtmER:]ŽER;&   ]b! 4       '       d1   ^ REInEtnE]mEPß                  E]nEPà                  EPÂ                  4        ER< ER= lEtq]EPä                  ER> ER? l4       EtsER@ ERA lEttERB ERC lEtuERD ERE lEtvERF ERG lEtwERH ERI lEtxERJ ERK lEtyERL ERM lEtzERN ERO lEt{E]\! / EPù                  4       4      Et}ERP]ŽERQ&   E]\! / EPý                  4       4      EtERR]ŽERS&   E]\! / EP                  4       4      Et�ERT]ŽERU&   E]\! ]#! 4       EPý                  4       4      Et‚ERR]ŽERV&   E]\! E]ƒ! ER”4      4      Et„ERW]ŽERX&   E]\! E]ƒ! E]…! ^ 4      4      4      Et†ERW]ŽERY&   E]„EP                  EtˆE]\! E]ƒ! ]EPh                  ! 4       4      4      Et‰E]\! E]Š! ]EPh                  ! 4       4      4      Et‹E]ŒEP                  EtŽE]�EP                  Et�]EP"                  ! E]�EP$                  EPý                  4       ]#EP$                  EPý                  4       4       U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et”E]•EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et–E]—EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et˜E]™EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up EtšE]›EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Etœ]þEP                  Et�]þEP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up EtžE]ŸEP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et E]ŸEPB                  Et¢]EPh                  EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et£E]ZEP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et¤E]\! ]EPl                  4      EP$                  EPý                  4        U u0 uF  p E]“! V 4      '       g   K  V kK  	  up Et¥]3! ERZ4      Et¦]3! ER[4      Et§ER\ ER] lEt¨ER^ ER_ lEt©ER` ERa lEtªERb ERc lEt«ERd ERe lEt¬ERf ERg lEt­ERh ERi lEt®E]¯Et°ERj ERk lEt±ERl ERm lEt²ERn ERo lEt³E]�EPB                  Et´]7P|                  EPj                  ERp ERq l4       Et¶ERr ERs lEt·ERt ERu lEt¸ERv ERw lEt¹ERx ERy lEtºERz ER{ lEt»ER| ER} lEt¼ER�ER~ ER llEt½ER€ ER� lEt¾ER‚ ERƒ lEt¿ER„ ER… lEtÀER† ER‡ lEtÁERˆ ER‰ lEtÂERŠ ER‹ lEtÃERŒ ER� lEtÄERŽ ER� lEtÅER�EtÆ^ ER‘I}EHÇEtÇ ER’ ER“ lEtÈER” ER• lEtÉER–Ra/ER— ER˜ llEtÊER™ ERš lEtËER› ERœ lEtÌER� ERž lEtÍER–ERŸ ER  llEtÎRRaER¡RaER¢RaRa]°EPž                  RaRaRaER£3ER¤ ER¥ llEtÐER¦ ER§ lEtÑ]PJ                  ER¨ ER© l4       EtÒ]ü! 4       EtÓ]EPP                  ! E]Ÿ4      EtÔERª]ŽER«&   . EtÕER¬]ŽER­&   ]ü! 4       EtÖ]EPä                  ER® ER¯ l4       Et×ER° ER± lEtØERžER² ER³ llEtÙER´ ERµ lEtÚER¶ ER· lEtÛER¸ ER¹ lEtÜERº ER» lEtÝER¼ ER½ lEtÞER–ER¾ ER¿ llEtßER–ERÀ ERÁ llEtà]EPŠ                  ! 4       EtáERÂ ERÃ lEtâ]%ERÄ ERÅ l4       EtãERÆ ERÇ lEtäERÈ ERÉ lEtåERÊ ERË lEtæERÌ ERÍ lEtçERÎ ERÏ lEtèERÐ ERÑ lEtéERÒ ERÓ lEtêERÔ ERÕ lEtëERÖ ER× lEtìERØ ERÙ lEtíER–ERÚ ERÛ llEtî ! ERÜ ERÝ]EPl                  4      EtïERÞ ERß lEtðERà ERá lEtñERâ ERã lEtòERä ERå lEtó. ERŸOEtôERæERç.Etõ. ER OEtöE]ôE]õ,           E]ö,           Et÷ERè ERé lEtøER¡ERê ERë llEtùER¡ERì ERí llEtúERî ERï lEtûERð ERñ lEtü ! ERò ERó]-]Ÿ]ž3,          4      EtýERô ERõ lEtþ ! ERö ER÷4      Etÿ ! ERø ERù]-]Ÿ]ž3,          4      Et ]PN                  ! ^ERú7      ERû ERü l4       Et]PN                  ! ERýERú7      ERþ ERÿ l4       EtER  ER lEtER ER lEtER ER lEtER ER lEtER ER	 lEtER
 ER lEtER ER lEt	ER ER lEt
ER ER lEtER ER lEtER ER lEt]EPb                   ! ER ER4      4       EtER ER lEtER¢ERER/ER ER lllEtER ER lEt].ER£,          EtER  ER! lEtER" ER# lEtER$ ER% lEtER& ER' lEtER( ER) lEtER* ER+ lEtER, ER- lEtER. ER/ lEtER0 ER1 lEtER2 ER3 lEt]PJ                  ER¤ER4 ER5 ll4       EtER6 ER7 lEtER8 ER9 lEt ! ER: ER;]7EP@                  EPB                  4      Et ER< ER= lEt!ER> ER? lEt"ER@ ERA lEt# ! ERB ERC4      Et$E]•! 4       Et%ERD]ŽERE&   ERœERF ERG llEt&ERH ERI lEt']PJ                  ERJ ERK l4       Et(ERL ERM lEt)ERN ERO lEt*ERP ERQ lEt+ERR ERS lEt,ERT ERU lEt-ERV ERW lEt.ERX ERY lEt/ERZ ER[ lEt0ER\ ER] lEt1]7EPd                  ER^ ER_ l4       Et3]7EPd                  ER` ERa l4       Et4]7EPd                  ERb ERc l4       Et5ERd ERe lEt6ERf ERg lEt7ERh ERi lEt8 ! ERj ERk]EPl                  4      Et9 ! ERl ERm]EPl                  4      Et: ! ERn ERo4      Et; ! ERp ERq]ä4      Et<ERr ERs lEt=].ER¥,          Et>ER¥Et?ERt]ŽERu&   ERv ERw lEt@]%ERx ERy l4       EtA]%ERz ER{ l4       EtBER| ER} lEtCRaEsDER~ ER lEtEER€ ER� lEtF]PN                  ! ^4      ER‚ ERƒ l4       EtG]7EPd                  ER„ ER… l4       EtH]7EPd                  ER† ER‡ l4       EtIREsJERˆ]ŽER‰&   ERŠ ER‹ lEtKERŒ ER� lEtLERŽ ER� lEtMER� ER‘ lEtNER’ ER“ lEtOR#   ]� d    Rt€ EL	i ; i  ]’ d     ELni ; iu up i u up i u up i u up i u up i u up i u up i u up i u up i u up i (¦  aß  
Utility functions and classes used throughout the TorchDynamo system.

This module contains a collection of helper utilities used by various parts of Dynamo for:
- Performance metrics collection and reporting
- Compilation timing and debugging
- Graph manipulation and tensor operations
- Runtime guards and checks
- Common data structure operations
- Testing and development tools

This is an internal module that provides shared functionality used across the Dynamo codebase.
)ÚannotationsN)ÚCounterÚOrderedDict)ÚAbstractContextManagerÚcontextmanager)Úis_dataclass)Ú	lru_cache)ÚCodeTypeÚMethodWrapperType)
ÚAnyÚcastÚClassVarÚGenericÚLiteralÚNoReturnÚoverloadÚ	TypeAliasÚ	TypeGuardÚTypeVar)Ú	ParamSpecÚTypeIs)Úfx)Ú_instruction_counterÚ_len_torch_function_stackÚ_pop_torch_function_stackÚ_push_on_torch_function_stack)Úenable_python_dispatcher)ÚMetricsContextÚRuntimeMetricsContext)Ú	CompileIdÚSourceÚTracingContext)Úis_sparse_compressed)Újustknobs_checkÚlog_chromium_event_internalÚlog_compilation_eventÚrecord_chromium_event_internalÚsignpost_event)Ú_format_graph_codeÚlazy_format_graph_code)Ú_WaitCounter)ÚLazyModuleMixin)Ú
OrderedSet)Úis_traceable_wrapper_subclass)Ú
has_tritonÚhas_triton_package)ÚRemovableHandle)Ú_get_flat_args)
ÚCallableÚ	ContainerÚ	GeneratorÚ	ItemsViewÚIterableÚIteratorÚKeysViewÚMappingÚSequenceÚ
ValuesView)ÚInstruction)ÚExecutionRecord)ÚInstructionTranslatorBase©ÚVariableTracker)ÚDeviceLikeType)ÚFakeTensorMode)Údetect_fake_mode©Ú
LazyString©Úconfigztuple[types.ModuleType, ...]ÚNP_SUPPORTED_MODULES)Úis_fakeÚTÚT1ÚT2ÚT3ÚT4ÚT5ÚT6ÚT7ÚT8ÚT9ÚT10ÚRÚ_Pz*collections.defaultdict[str, Counter[str]]Úcountersúdict[str, Any]Úoptimus_scuba_logzihttps://docs.pytorch.org/docs/main/user_guide/torch_compiler/compile/programming_model.recompilation.htmlzZhttps://docs.pytorch.org/docs/main/user_guide/torch_compiler/torch.compiler_nn_module.htmlzSee z& for more information and limitations.zdict[str, list[float]]Úcompilation_time_metricsúdict[str, float]Úcumulative_time_spent_nsc                  ó"   € ] tR t^Æt^t^t^tRtR# )ÚReInplaceTrigger© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚAUTO_FUNC_V1ÚAUTO_FUNC_V2Ú
TRITON_OPSÚ__static_attributes__r_   ó    ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/utils.pyr^   r^   Æ   s   † Ø€LØ€LØ„Jrh   r^   c                  óÊ   € ] tR t^Ìt$ ]P
                  ! ]4      tR]R&   ]	R R l4       t
]	R R l4       t]	R R l4       t]	R	 R
 l4       t]	R R l4       t]	R R l4       tRtR# )ÚReinplaceCountersz!collections.defaultdict[str, int]Ú_valuesc               ó$   € V ^8„  d   QhRRRRRR/# )é   Útriggerr^   ÚbytesÚintÚreturnÚNoner_   )Úformats   "ri   Ú__annotate__ÚReinplaceCounters.__annotate__Ñ   s'   € ÷ Añ AÐ'7ð AÀð AÈñ Arh   c                	óp   € V^ 8w  d/   V P                   RVP                   2;;,          V,          uu&   R# R# )é    Úmissed_bytes_N©rl   Úname)Úclsro   rp   s   &&&ri   Úadd_missed_bytesÚ"ReinplaceCounters.add_missed_bytesÐ   s-   € à�AŒ:Ø�K‰K˜-¨¯© ~Ð6×7¸5Õ@Õ7ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ro   r^   Úcountrq   rr   rs   r_   )rt   s   "ri   ru   rv   ×   s(   € ÷ Cñ CÐ/?ð CÈð CÐPTñ Crh   c                	óp   € V^ 8w  d/   V P                   RVP                   2;;,          V,          uu&   R# R# )rx   Úmissed_tensors_Nrz   )r|   ro   r€   s   &&&ri   Úadd_missed_opportunitiesÚ*ReinplaceCounters.add_missed_opportunitiesÖ   s-   € à�AŒ:Ø�K‰K˜/¨'¯,©,¨Ð8×9¸UÕBÕ9ñ rh   c               ó   € V ^8„  d   QhRR/# ©rn   rr   rs   r_   )rt   s   "ri   ru   rv   Ü   s   € ÷ ñ �dñ rh   c                	ó:   € V P                   P                  4        R # ©N)rl   Úclear©r|   s   &ri   r‰   ÚReinplaceCounters.clearÛ   s   € à�‰×ÑÖrh   c               ó   € V ^8„  d   QhRR/# ©rn   rr   rq   r_   )rt   s   "ri   ru   rv   à   s   € ÷ ñ  ñ rh   c                	ó‚   € ^ p\          F2  pWP                  P                  RVP                   2^ 4      ,          pK4  	  V# )rx   r‚   ©r^   rl   Úgetr{   ©r|   Úsumro   s   &  ri   Úget_total_missedÚ"ReinplaceCounters.get_total_missedß   s8   € àˆß'ˆGØ—;‘;—?‘? _°W·\±\°NÐ#CÀQÓGÕGŠCñ (àˆ
rh   c               ó   € V ^8„  d   QhRR/# r�   r_   )rt   s   "ri   ru   rv   ç   s   € ÷ ñ  sñ rh   c                	ó‚   € ^ p\          F2  pWP                  P                  RVP                   2^ 4      ,          pK4  	  V# )rx   ry   r�   r‘   s   &  ri   Úget_total_missed_bytesÚ(ReinplaceCounters.get_total_missed_bytesæ   s8   € àˆß'ˆGØ—;‘;—?‘? ]°7·<±<°.Ð#AÀ1ÓEÕEŠCñ (àˆ
rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   rv   î   s   € ÷ Jñ J�Dñ Jrh   c                	ó\   € V P                   '       d   \        R RV P                   4       R# R# )ÚinductorÚreinplace_countersN)rl   r'   rŠ   s   &ri   ÚlogÚReinplaceCounters.logí   s#   € ð �;�;ˆ;Ü˜:Ð';¸S¿[¹[ÖIñ rh   r_   N)r`   ra   rb   rc   ÚcollectionsÚdefaultdictrq   rl   Ú__annotations__Úclassmethodr}   rƒ   r‰   r“   r—   r�   rg   r_   rh   ri   rk   rk   Ì   s–   ‡ Ø1<×1HÒ1HÈÓ1M€GÐ.ÓMð ôAó ðAð
 ôCó ðCð ôó ðð ôó ðð ôó ðð ôJó ôJrh   rk   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úrowsz'list[tuple[str, Any]] | list[list[Any]]Úheadersztuple[str, ...] | list[str]rr   Ústrr_   )rt   s   "ri   ru   ru   ô   s&   € ÷ 
ñ 
Ø
1ð
à(ð
ð 	ñ
rh   c                ó®   €  ^ RI pVP                  WR7      #   \         d2    RP                  R \        P                  ! T.T 4       4       4      u # i ; i)rx   N©r¥   Ú
c              3  ó`   "  € T F$  pR P                  \        \        V4      4      x € K&  	  R# 5i)ú, N)ÚjoinÚmapr¦   )Ú.0Úrows   & ri   Ú	<genexpr>Útabulate.<locals>.<genexpr>ý   s&   é € ð 
Ù0P¨ˆD�I‰I”cœ#˜s“m×$Ð$Ó0Pùs   ‚,.)ÚtabulateÚImportErrorr¬   Ú	itertoolsÚchain)r¤   r¥   r²   s   && ri   r²   r²   ô   sX   € ð
Ûà× Ñ  Ð Ó7Ð7øÜô 
Ø�y‰yñ 
Ü09·²ÀÀ	È4Ô0Pó
ó 
ò 	
ð
ús   ‚ ˜9AÁAc               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru     s   € ÷  ñ  ˜ñ  rh   c                 ó    € \         ^,           s R# ©é   N)Ú
curr_framer_   rh   ri   Úincrement_framer»     s   € ä˜a•‚Jrh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru     s   € ÷ ñ ˜4ñ rh   c                 óZ   € \         P                  4        \        P                  4        ^ sR# ©rx   N)r\   r‰   rZ   rº   r_   rh   ri   Úreset_frame_countr¿     s   € ä×"Ñ"Ô$Ü×"Ñ"Ô$Ø‚Jrh   úlist[Callable[[], str]] | NoneÚ_recompile_user_contextsc               ó    € V ^8„  d   QhRRRR/# )rn   ÚhookzCallable[[], str]rr   rs   r_   )rt   s   "ri   ru   ru     s   € ÷ *ñ *Ð3Dð *Èñ *rh   c                óD   € \         f   . s \         P                  V 4       R# )aR  
Register a hook to be called when a recompile is triggered. The hook
should return a string describing user contexts that are not available
to the compiler, such as the current training epoch. This is useful for
debugging and data analysis for recompile. For data retention purposes,
the user context string is capped at 256 characters.
N)rÁ   Úappend)rÃ   s   &ri   Ú(register_hook_for_recompile_user_contextrÆ     s   € ô  Ò'Ø#%Ð Ü×#Ñ# DÖ)rh   c               ó   € V ^8„  d   QhRR/# )rn   rr   rÀ   r_   )rt   s   "ri   ru   ru   $  s   € ÷ $ñ $Ð-Kñ $rh   c                 ó   € \         # rˆ   ©rÁ   r_   rh   ri   Ú#get_hook_for_recompile_user_contextrÊ   $  s   € Ü#Ð#rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru   (  s   € ÷ $ñ $ tñ $rh   c                 ó
   € Rs R# )z@Clear any registered recompile user-context hooks (test helper).NrÉ   r_   rh   ri   Úreset_recompile_user_contextsrÍ   (  s
   € ð  $Òrh   c               ó    € V ^8„  d   QhRRRR/# )rn   Úcntrq   rr   rs   r_   )rt   s   "ri   ru   ru   1  s   € ÷ ñ ˜Cð  Dñ rh   c                ó    € \         V ,          s R # rˆ   )Úop_count)rÏ   s   &ri   Úincrement_op_countrÒ   1  s   € ä�…O‚Hrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   r[   r_   )rt   s   "ri   ru   ru   8  s   € ÷ ñ Ð.ñ rh   c                 ó²   € / p \         P                  4        F  w  rVR ,          W&   K  	  V P                  R^ 4      V P                  R^ 4      ,           V R&   V # )ç    eÍÍAÚentire_frame_compileÚentire_backward_compileÚtotal_wall_time)r\   Úitemsr�   )Útotal_by_keyÚphaseÚtimings      ri   Úcalculate_time_spentrÝ   8  sc   € Ø€LÜ1×7Ñ7Ö9‰ˆØ$ s�lˆÓñ :ð '3×&6Ñ&6Ø ó'à×ÑÐ2°AÓ6õ'7€LÐ"Ñ#ð Ðrh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru   H  s   € ÷ ñ ˜4ñ rh   c            	     óŽ   € \        4       p R pV P                  4        F  w  r#V RV R\        V^4       2pK  	  \        V4       R# )zTIMING:Ú Ú:N)rÝ   rÙ   ÚroundÚprint)rÚ   ÚoutÚkeyÚvalues       ri   Úprint_time_reportrç   H  sJ   € Ü'Ó)€Là
€CØ"×(Ñ(Ö*‰
ˆØ��Q�s�e˜1œU 5¨!›_Ð-Ð.Šñ +ô 
ˆ#†Jrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   r   r_   )rt   s   "ri   ru   ru   j  s   € ÷ 0ñ 0˜^ñ 0rh   c                 ó€   € \        \        R 4      '       g   \        \        R7      \        n        \        P                  # )Úmetrics_context©Úon_exit)ÚhasattrÚ_metrics_context_tlsr   Úrecord_compilation_metricsrê   r_   rh   ri   Úget_metrics_contextrð   j  s0   € ÜÔ'Ð):×;Ò;Ü/=Ü.ô0
ÔÔ,ô  ×/Ñ/Ð/rh   c               ó   € V ^8„  d   QhRR/# )rn   rr   r   r_   )rt   s   "ri   ru   ru   r  s   € ÷ 8ñ 8Ð%:ñ 8rh   c                 ó€   € \        \        R 4      '       g   \        \        R7      \        n        \        P                  # )Úruntime_metrics_contextrë   )rí   rî   r   rï   ró   r_   rh   ri   Úget_runtime_metrics_contextrô   r  s0   € ÜÔ'Ð)B×CÒCÜ7LÜ.ô8
ÔÔ4ô  ×7Ñ7Ð7rh   c                  ó&   € ] tR tRtRt^t^t^tRtR# )ÚCompileEventLogLeveliz  zë
Enum that loosely corresponds with a "log level" of a given event.

CHROMIUM_EVENT: Logs only to tlparse.
COMPILE_EVENT: Logs to tlparse + PT2 Compile Events
COMPILATION_METRIC: Logs to tlparse, PT2 Compile Events, and dynamo_compile
r_   N)	r`   ra   rb   rc   Ú__doc__ÚCHROMIUMÚPT2_COMPILEÚCOMPILATION_METRICrg   r_   rh   ri   rö   rö   z  s   † ñð €HØ€KØÔrh   rö   c                  ó°  € ] tR tRtRt]R]P                  3R R ll4       t]R!R R ll4       t	]R!R R	 ll4       t
]R
 R l4       t]^]P                  3R R ll4       t]R R l4       t]]P                  3R R ll4       t]R R l4       t]R R l4       t]R R l4       t]R!R R ll4       t]R"R R ll4       t]R R l4       t]R R l4       tR tR# )#ÚCompileEventLoggeriˆ  a–  
Helper class for representing adding metadata(i.e. columns) to various compile events.
Use CompileEventLogger to add event data to:
- Chromium events
- PT2 Compile Events
- CompilationMetrics

This should be used in conjunction with dynamo_timed() and metrics contexts, which create
timed spans and events. CompileEventLogger uses three log levels (described in CompileEventLogLevel),
where each log level logs to all sources below it in the hierarchy.

Example usages:
- I want to log to an existing chromium event within dynamo timed:
with dynamo_timed("my_event"):
    CompileEventLogger.chromium("my_event", foo=bar)

- I want to log my event to both chromium + pt2_compile_events:
with dynamo_timed("my_event", log_pt2_compile_event=True):
    CompileEventLogger.pt2_compile("my_event", foo=bar)

- I want to add information to dynamo events and dynamo_compile
    CompileEventLogger.compilation_metric(foo=bar)
Nc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rn   Ú
event_namer¦   ÚmetadatarX   Útime_nsú
int | NoneÚ	log_levelrö   rr   rs   r_   )rt   s   "ri   ru   ÚCompileEventLogger.__annotate__¢  s:   € ÷ 
ñ 
Øð
à ð
ð ð
ð (ð	
ð
 
ñ
rh   c                	óæ   € Vf   \         P                  ! 4       p\        4       pV\        P                  8X  d   RpM#V\        P
                  8X  d   RpM\        R4      hVP                  WW4       R # )NFTzjCannot log instant event at COMPILATION_METRIC level. Please choose one of CHROMIUM_EVENT or COMPILE_EVENT)Útimer   Úget_chromium_event_loggerrö   rø   rù   ÚRuntimeErrorÚlog_instant_event)rþ   rÿ   r   r  Úchromium_logÚlog_pt2_compile_events   &&&&  ri   r  Ú$CompileEventLogger.log_instant_event¡  sk   € ð Š?Ü—l’l“nˆGÜ0Ó2ˆØÔ,×5Ñ5Ô5Ø$)Ñ!ØÔ.×:Ñ:Ô:Ø$(Ñ!äØ|óð ð 	×&Ñ&Ø ö	
rh   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rn   rþ   r¦   r  rö   Ú	overwriteÚboolrÿ   Úobjectrr   rs   r_   )rt   s   "ri   ru   r  ¸  sA   € ÷ .@ñ .@Øð.@à'ð.@ð ð.@ð ð	.@ð
 
ñ.@rh   c                óL  € \        4       pVP                  4       pV\        P                  8X  d   VP                  ! V 3/ VB  R# V\        P
                  8X  d8   VP                  4       pW9  d   \        RV 4      hVP                  ! V 3/ VB  R# V\        P                  8w  d   \        RV 24      hVP                  4       pW8w  d   \        R4      h\        4       pVP                  4       '       g   \        R4      hVP                  W24       VP                  ! V 3/ VB  R# )zˆ
Centralized API for adding data to various events
Log an event to a toplevel "dynamo" event or metrics context
depending on log level.
zµError: specified log level PT2_COMPILE, but the event %s is not logged to pt2_compile_events. Make sure the event is active and you passed log_pt2_compile_event=True to dynamo_timedú1Expected log_level to be COMPILATION_METRIC, got zµLog level is COMPILATION_METRIC, but event_name isn't the toplevel event. CompilationMetrics must be logged to the toplevel event. Consider using `log_toplevel_event_data` directly.z[No metrics context is in progress. Please only call this function within a metrics context.N)r  Úget_pt2_compile_substackrö   rø   Úadd_event_datarù   r  rú   ÚAssertionErrorÚget_outermost_eventrð   Úin_progressÚupdate)rþ   r  r  rÿ   r	  Úpt2_compile_substackÚ	top_eventrê   s   &&&,    ri   Úadd_dataÚCompileEventLogger.add_data·  s)  € ô 1Ó2ˆØ+×DÑDÓFÐàÔ,×5Ñ5Ô5Ø×'Ò'¨
Ñ?°hÔ?ØÔ.×:Ñ:Ô:Ø#/×#HÑ#HÓ#JÐ ØÔ5Ü"ðAð ó	ð ð ×'Ò'¨
Ñ?°hÔ?àÔ0×CÑCÔCÜ$ØGÈ	À{ÐSóð ð %×8Ñ8Ó:ˆIàÔ&Ü"ðBóð ô 2Ó3ˆOØ"×.Ñ.×0Ò0Ü"Øqóð ð
 ×"Ñ" 8Ô7Ø×'Ò'¨
Ñ?°hÔ?rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   r  rö   r  r  rÿ   r  rr   rs   r_   )rt   s   "ri   ru   r  é  s2   € ÷ Qñ QØ'ðQØ48ðQØNTðQà	ñQrh   c                ó„   € \        4       P                  4       pVf   \        R4      h\        P                  ! W0V3/ VB  R# )z3
Syntactic sugar for logging to the toplevel event
NzWNo toplevel event active. Please only call this function within a dynamo_timed context.)r  r  r  rü   r  )r  r  rÿ   r  s   &&, ri   Úadd_toplevelÚCompileEventLogger.add_toplevelè  sB   € ô .Ó/×CÑCÓEˆ	ØÒÜØióð ô 	×#Ò# I¸)ÑPÀxÔPrh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rn   rþ   r¦   r  rö   rå   ræ   rq   rr   rs   r_   )rt   s   "ri   ru   r  ÷  s4   € ÷ ;ñ ;Øð;Ø$8ð;Ø?Bð;ØKNð;à	ñ;rh   c                óº  € \        4       pV\        P                  8X  g   V\        P                  8X  d   VP	                  WV4       R# V\        P
                  8w  d   \        RV 24      hVP                  4       pW8w  d   \        R4      h\        4       pVP                  4       '       g   \        R4      hVP	                  W#4       VP	                  WV4       R# )z*
Increments an existing field, or adds it
r  z°Log level is COMPILATION_METRIC, but event_name isn't the toplevel event. CompilationMetrics must be logged to the toplevel event. Consider using `increment_toplevel` directly.úhNo metrics context is in progress. Please only call this function within a metrics context/dynamo_timed.N)r  rö   rø   rù   Ú	incrementrú   r  r  r  rð   r  ©rþ   r  rå   ræ   r	  r  rê   s   &&&&   ri   r#  ÚCompileEventLogger.incrementö  sÒ   € ô 1Ó2ˆàÔ-×6Ñ6Ô6ØÔ0×<Ñ<Ô<à×"Ñ" :°EÖ:àÔ0×CÑCÔCÜ$ØGÈ	À{ÐSóð ð %×8Ñ8Ó:ˆIØÔ&Ü"ð}óð ô
 2Ó3ˆOØ"×.Ñ.×0Ò0Ü"Ø~óð ð ×%Ñ% cÔ1Ø×"Ñ" :°EÖ:rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rå   r¦   ræ   rq   r  rö   rr   rs   r_   )rt   s   "ri   ru   r    s6   € ÷ Gñ GØðGàðGð (ðGð 
ñ	Grh   c                ó„   € \        4       pVP                  4       pVf   \        R4      h\        P	                  WBW4       R# )zH
Increments a value on the toplevel metric. By default, logs to metric.
Nú_No toplevel event active. Please only call this function within a metrics context/dynamo_timed.)r  r  r  rü   r#  ©rå   ræ   r  r	  r  s   &&&  ri   Úincrement_toplevelÚ%CompileEventLogger.increment_toplevel  sB   € ô 1Ó2ˆØ ×4Ñ4Ó6ˆ	ØÒÜØqóð ô 	×$Ñ$ Y¸3ÖFrh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rn   rþ   r¦   r  rö   rå   ræ   r   rr   rs   r_   )rt   s   "ri   ru   r  *  s4   € ÷ <ñ <Øð<Ø$8ð<Ø?Bð<ØKNð<à	ñ<rh   c                óº  € \        4       pV\        P                  8X  g   V\        P                  8X  d   VP	                  WV4       R# V\        P
                  8w  d   \        RV 24      hVP                  4       pW8w  d   \        R4      h\        4       pVP                  4       '       g   \        R4      hVP	                  W#4       VP	                  WV4       R# )z\
Add metadata <value> to a set of values with key <key>. Creates a set if it doesn't exist.
r  z¯Log level is COMPILATION_METRIC, but event_name isn't the toplevel event. CompilationMetrics must be logged to the toplevel event. Consider using `add_to_set_metric` directly.r"  N)r  rö   rø   rù   Ú
add_to_setrú   r  r  r  rð   r  r$  s   &&&&   ri   r.  ÚCompileEventLogger.add_to_set)  sÒ   € ô 1Ó2ˆàÔ-×6Ñ6Ô6ØÔ0×<Ñ<Ô<à×#Ñ# J°UÖ;àÔ0×CÑCÔCÜ$ØGÈ	À{ÐSóð ð %×8Ñ8Ó:ˆIØÔ&Ü"ð|óð ô
 2Ó3ˆOØ"×.Ñ.×0Ò0Ü"Ø~óð ð ×&Ñ& sÔ2Ø×#Ñ# J°UÖ;rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rå   r¦   ræ   r   r  rö   rr   rs   r_   )rt   s   "ri   ru   r  L  s6   € ÷ Hñ HØðHàðHð (ðHð 
ñ	Hrh   c                ó„   € \        4       pVP                  4       pVf   \        R4      h\        P	                  WBW4       R# )z™
Same as add to set, just does it automatically to the toplevel event instead of having to explicitly name it.
Defaults to COMPILATION_METRIC log level.
Nr(  )r  r  r  rü   r.  r)  s   &&&  ri   Úadd_to_set_toplevelÚ&CompileEventLogger.add_to_set_toplevelK  sB   € ô 1Ó2ˆØ ×4Ñ4Ó6ˆ	ØÒÜØqóð ô 	×%Ñ% i¸CÖGrh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   rþ   r¦   rÿ   r  rr   rs   r_   )rt   s   "ri   ru   r  `  s!   € ÷ 
ñ 
˜Sð 
¨fð 
¸ñ 
rh   c                óV   € \         P                  ! V \        P                  3RR/VB  R# )z»
Add <metadata> to <event_name> in chromium. Each key/value of metadata will appear in the chromium trace.
<event_name> should be the name of a timed event span passed to `dynamo_timed`.
r  FN)rü   r  rö   rø   ©rþ   rÿ   s   &,ri   ÚchromiumÚCompileEventLogger.chromium_  s.   € ô 	×#Ò#ØÔ,×5Ñ5ñ	
ØAFð	
ØJRô	
rh   c               ó$   € V ^8„  d   QhRRRRRR/# r5  r_   )rt   s   "ri   ru   r  j  s!   € ÷ 

ñ 

 ð 

°ð 

¸Dñ 

rh   c                óV   € \         P                  ! V \        P                  3RR/VB  R# )aS  
Add <metadata> to <event_name> in chromium and PT2 Compile Events.
Each key/value of metadata will appear in the chromium trace. Each kwarg name becomes
a column in PT2 Compile Events, with the corresponding kwarg value.
<event_name> should be the name of a timed event span passed to `dynamo_timed`,
with log_to_pt2_compile_events=True.
r  FN)rü   r  rö   rù   r7  s   &,ri   Úpt2_compileÚCompileEventLogger.pt2_compilei  s.   € ô 	×#Ò#ØÔ,×8Ñ8ñ	
ØDIð	
ØMUô	
rh   c               ó$   € V ^8„  d   QhRRRRRR/# r5  r_   )rt   s   "ri   ru   r  w  s!   € ÷ ñ ¨Sð ¸fð Èñ rh   c                óf  € \         P                  P                  P                  '       ds   V'       di   RP	                  R VP                  4        4       4      p\         P                  P                  P                  V  RV 24      ;_uu_ 4         RRR4       R# R# R#   + '       g   i     R# ; i)a  
Add record function data to the profiler event.

This emits profiler event data so compilation events show up in stack profilers
like the PyTorch profiler.

Args:
    event_name: Name of the event to record
    **metadata: Additional metadata to attach to the record function
r«   c              3  ó4   "  € T F  w  rV R V 2x € K  	  R# 5i)Ú=Nr_   )r®   ÚkÚvs   &  ri   r°   Ú>CompileEventLogger.add_record_function_data.<locals>.<genexpr>ƒ  s   é € Ð$MÑ<L±D°A¨ s¨!¨A¨3¥ZÓ<Lùó   ‚z_data: N)ÚtorchÚautogradÚprofilerÚ_is_profiler_enabledr¬   rÙ   Úrecord_function)rþ   rÿ   Úmetadata_strs   &, ri   Úadd_record_function_dataÚ+CompileEventLogger.add_record_function_datav  sŠ   € ô �>‰>×"Ñ"×7×7Ð7¿HØŸ9™9Ñ$M¸H¿N¹NÔ<LÓ$MÓMˆLÜ—‘×(Ñ(×8Ñ8Ø�,˜g l ^Ð4÷õ ð ÷ñ ñ =EÑ7÷÷ ð ús   ÂBÂB0	c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r  r  rÿ   r  rr   rs   r_   )rt   s   "ri   ru   r  Š  s!   € ÷ 	
ñ 	
 dð 	
Àð 	
È4ñ 	
rh   c                óR   € \         P                  ! \        P                  V 3/ VB  R# )a  
Add <metadata> to the CompilationMetrics context. Also logs to PT2 Compile Events
and chromium.
Each key/value of metadata will appear in the chromium trace. Each kwarg name becomes
a column in PT2 Compile Events and Dynamo Compile, with the corresponding kwarg value.
N)rü   r  rö   rú   )r  rÿ   s   &,ri   Úcompilation_metricÚ%CompileEventLogger.compilation_metric‰  s%   € ô 	×'Ò'Ü ×3Ñ3°Yñ	
ØBJô	
rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rþ   r¦   rÿ   rX   r   r  rr   rs   r_   )rt   s   "ri   ru   r  –  s,   € ÷ 	
ñ 	
Øð	
Ø#1ð	
Ø<Fð	
à	ñ	
rh   c                óP   € \         P                  WV\        P                  4       R# )zÀ
Log an instant event to chromium logs with name <event_name> at time <time_ns>. The `args` field in
Perfetto will point to metadata. <time_ns> should be a value obtained from time.time_ns().
N)rü   r  rö   rø   )rþ   rÿ   r   s   &&&ri   ÚinstantÚCompileEventLogger.instant•  s    € ô 	×,Ñ,Ø 'Ô+?×+HÑ+Hö	
rh   c               ó$   € V ^8„  d   QhRRRRRR/# r5  r_   )rt   s   "ri   ru   r  ¢  s&   € ÷ 	@ñ 	@¨ð 	@¸ð 	@ÀDñ 	@rh   c                ód   € \        4       '       g   R# \        4       pVP                  ! V 3/ VB  R# )zÔ
Adds to an existing pt2_compile event, but silently returns if the event doesn't exist
or ChromiumEventLogger is not initialized.
This function is syntactic sugar for chromium_event_logger().try_add_event_data.
N)Úchromium_event_log_activer  Útry_add_event_data)rþ   rÿ   r	  s   &, ri   Útry_add_pt2_compileÚ&CompileEventLogger.try_add_pt2_compile¡  s+   € ô )×*Ò*ÙÜ0Ó2ˆØ×'Ò'¨
Ñ?°hÔ?rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   Ú	method_fnzCallable[_P, Any]Úargsú_P.argsÚkwargsú	_P.kwargsrr   rs   r_   )rt   s   "ri   ru   r  ®  s*   € ÷ 	#ñ 	#Ð)ð 	#°'ð 	#ÀYð 	#ÐSWñ 	#rh   c                ó~   € \        4       '       g   R# \        4       pVP                  4       '       g   R# V ! V/ VB  R# )zz
Special function that quietly runs a given method, returning if CHROMIUM_EVENT_LOG is None or metrics context is not set
N)rX  rð   r  )r]  r^  r`  rê   s   &*, ri   Útry_ÚCompileEventLogger.try_­  s7   € ô
 )×*Ò*ÙÜ-Ó/ˆØ×*Ñ*×,Ò,ÙÙ�4Ð"˜6Ô"rh   r_   ©Frˆ   )r`   ra   rb   rc   r÷   Ústaticmethodrö   rø   r  r  r  r#  rú   r*  r.  r2  r8  r<  rL  rP  rT  rZ  rc  rg   r_   rh   ri   rü   rü   ˆ  sS  † ñð0 ð #Ø*>×*GÑ*Gö	
ó ð
ð* ö.@ó ð.@ð` öQó ðQð ô;ó ð;ðB ð Ø*>×*QÑ*QöGó ðGð  ô<ó ð<ðB ð +?×*QÑ*QöHó ðHð& ô
ó ð
ð ô

ó ð

ð ôó ðð$ ö	
ó ð	
ð ö	
ó ð	
ð ô	@ó ð	@ð ô	#ó ô	#rh   rü   c               ó    € V ^8„  d   QhRRRR/# )rn   r{   r¦   rr   úGenerator[Any, None, None]r_   )rt   s   "ri   ru   ru   ¾  s   € ÷ ñ  sð Ð/Iñ rh   c              #  ó@  "  € \         P                  P                  P                  '       dT   \         P                  P
                  P                  V 4      pVP                  4         Rx € VP                  RRR4       R# Rx € R#   TP                  RRR4       i ; i5i)a³  
A context manager for compile-time profiling that uses _RecordFunctionFast
for lower overhead than torch.profiler.record_function.

This is intended for use during compilation (dynamo, inductor, etc.) where
we want profiling support but with minimal overhead. Moreover, we do not
want the record_function call inside torch.compile to be dispatched.

Args:
    name: The name of the record function event that will appear in profiles.
N)	rF  rG  rH  rI  Ú_CÚ	_profilerÚ_RecordFunctionFastÚ	__enter__Ú__exit__)r{   Úrfs   & ri   Úcompile_time_record_functionrp  ½  sn   é € ô ‡~�~×Ñ×3×3Ð3Ü�X‰X×Ñ×3Ñ3°DÓ9ˆØ
�‰Œð	*Ûà�K‰K˜˜d DÖ)åøð �K‰K˜˜d DÕ)üs   ‚A$BÁ'B Á+BÂBÂBFc               ó@   € 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/
# )rn   rå   r¦   Ú
phase_nameú
str | Noner
  r  rÿ   zdict[str, object] | NoneÚdynamo_compile_column_usÚ
compile_idúCompileId | NoneÚis_backwardúbool | NoneÚlog_waitcounterÚwaitcounter_name_overriderr   rh  r_   )rt   s   "ri   ru   ru   Ö  s†   € ÷ PQñ PQØ	ðPQð ðPQð  ð	PQð
 'ðPQð )ðPQð !ðPQð ðPQð ðPQð  *ðPQð  ñPQrh   c	           
   #  óä	  "  € V'       d   Tp	T p
MT p	Rp
V \         9  d
   . \         V &   \         V ,          p/ pV'       d   VP                  V4       V
'       d   VP                  RV
/4       Ve   VP                  RV/4       \        4       p\        P                  ! 4       pVP                  WžWÂV4       \        V  R24      .pV'       d8   T;'       g    T pVP                  \        RV 24      P                  4       4       \        P                  P                  P                  4       RJpV'       dÔ   VP                  R4      '       g   \        RV: 24      h\!        \"        R4      '       g   ^ \"        n        \"        ;P$                  ^,          un        \"        P$                  ^8X  d[   VP                  \        R	4      P                  4       4       V'       g+   R
pVP                  \        V4      P                  4       4        \&        P(                  ! 4       ;_uu_ 4       pV F  pVP+                  V4       K  	  Rx € RRR4       \        P                  ! 4       pVV,
          pVP                  VR,          4       VP-                  V	V/ WâV4       V'       dõ   \.        V	;;,          V,          uu&   \"        ;P$                  ^,          un        \"        P$                  ^ 8H  pVR,          pV'       dS   \1        4       pVP3                  4       '       d1   VP5                  VV4       V'       d   VP5                  RV4       R# R# R# \7        4       pVP5                  VV4       V'       d#   RVRRRV'       * /pVP5                  RVV4       R# R# R#   + '       g   i     ELZ; i  \        P                  ! 4       pTT,
          pTP                  TR,          4       TP-                  T	T/ YâT4       T'       dð   \.        T	;;,          T,          uu&   \"        ;P$                  ^,          un        \"        P$                  ^ 8H  pTR,          pT'       dP   \1        4       pTP3                  4       '       d/   TP5                  TT4       T'       d   TP5                  RT4       i i i \7        4       pTP5                  TT4       T'       d"   RTRRRT'       * /pTP5                  RTT4       i i i ; i5i)a8  
dynamo_timed is a context manager
By wrapping a function in dynamo_timed, we can get a few things:

1) Optionally log timings to pt2_compile_events.
2) Optionally log timings to CompilationMetrics (dynamo_compile).
3) Optionally log chromium events.
4) Optionally increment a WaitCounter.
5) Store a record in compilation_time_metrics
   For example:

    def _foo(...):
        with dynamo_timed("_foo"):
            ...

    Would show up as an entry in our timing dict:
    OrderedDict([('_foo', [0.083690, 0.23949, 3.1425e-05])])
    This is extremely useful for granular debugging.

Although it is tempting to use dynamo_timed as a decorator, please do not.
In its decorator form it makes cProfile traces less useful as dynamo_timed
suddenly becomes a bottleneck for lots of function calls (as only one parent
pointer is recorded).

Params:
- key: key into compile_time_metrics. If phase_name is not provided, this is
  also the event name used for pt2_compile_events logs and chromium events.
- phase_name: Optional override for the event name.
- log_pt2_compile_event: Whether to log a pt2 compile event internally.
- metadata: Extra metadata to put in pt2_compile_events.
- dynamo_compile_column_us: If provided, updates the specified CompilationMetrics
  field to be logged to dyname_compile column. We expect all columns to be _us;
  therefore, the field name must end with "_us".
- compile_id: In the typical case, this parameter should not be needed. Use to
  supply the compile_id for those cases where we want to log a compile_id where
  it's not naturally available, e.g., for runtime autotuning.
- is_backward: Specify forward/backward directly when not available in a
  CompileContext, e.g., during runtime autotuning.
  that support it.
- log_waitcounter: If set, we'll log a waitcounter of the form "pytorch.dynamo_timed.{key}"
NÚfn_namerw  z (dynamo_timed)zpytorch.wait_counter.Ú_usz2dynamo_compile_column_us must end with '_us', got Údepthz#pytorch.wait_counter.dynamo_compilez.pytorch.wait_counter.compile_runtime_overheadsrÕ   éè  Úduration_usru  Ú
is_runtimeTÚ
is_forward)rZ   r  r  r  r   Úlog_event_startrp  rÅ   r*   ÚguardrF  Ú_guardsÚCompileContextÚcurrent_compile_idÚendswithr  rí   Ú_dynamo_timed_tlsr~  Ú
contextlibÚ	ExitStackÚenter_contextÚlog_event_endr\   rð   r  r#  rô   )rå   rr  r
  rÿ   rt  ru  rw  ry  rz  rþ   r|  ÚmetricsÚevent_metadatar	  Ústart_nsÚcx_mgrsÚwc_nameÚis_compile_timeÚ
runtime_wcÚstackÚcxÚend_nsÚtime_spent_nsÚis_outer_eventr€  rê   Úruntime_contextÚextras   &&&&&&&&&                   ri   Údynamo_timedrœ  Õ  s8  é € ÷l Øˆ
Ø‰àˆ
Øˆà
Ô*Ô*Ø(*Ô  Ñ%ä& sÕ+€GØ€NßØ×Ñ˜hÔ'ßØ×Ñ˜y¨'Ð2Ô3ØÒØ×Ñ˜}¨kÐ:Ô;ä(AÓ(C€LÜ�|Š|‹~€HØ× Ñ Ø˜nÀZôô ">ÀÀÀ_Ð>UÓ!VÐ W€GßØ+×2Ð2¨sˆØ�‰”|Ð&;¸G¸9Ð$EÓF×LÑLÓNÔOä—m‘m×2Ñ2×EÑEÓGÈtÐS€Oßà'×0Ñ0°×7Ò7Ü ØDÐE]ÑD`Ðaóð ô Ô(¨'×2Ò2Ø&'ÔÔ#Ü×Ò 1Õ$Õô ×"Ñ" aÔ'Ø�N‰Nœ<Ð(MÓN×TÑTÓVÔWß"ØM�
Ø—‘œ|¨JÓ7×=Ñ=Ó?Ô@ð(QÜ×!Ò!×#Ô# uÛ�Ø×#Ñ# BÖ'ñ ã÷ $ô
 —’“ˆØ Õ)ˆØ�‰�} sÕ*Ô+Ø×"Ñ"Ø˜  HÀZô	
÷ $ô % Z×0°MÕAÓ0ô ×#Ò# qÕ(Õ#Ü.×4Ñ4¸Ñ9ˆNà'¨4Õ/ˆKßÜ"5Ó"7�Ø"×.Ñ.×0Ò0Ø#×-Ñ-Ð.FÈÔTß%Ø'×1Ñ1°-ÀÖMñ &ñ 1ô
 #>Ó"?�Ø×)Ñ)Ð*BÀKÔPß!à$ jØ$ dØ$¨+¤oð�Eð
 $×-Ñ-¨m¸[È%ÖPñ "ñ- $÷ $×#Ð#ûô
 —’“ˆØ Õ)ˆØ�‰�} sÕ*Ô+Ø×"Ñ"Ø˜  HÀZô	
÷ $ô % Z×0°MÕAÓ0ô ×#Ò# qÕ(Õ#Ü.×4Ñ4¸Ñ9ˆNà'¨4Õ/ˆKßÜ"5Ó"7�Ø"×.Ñ.×0Ò0Ø#×-Ñ-Ð.FÈÔTß%Ø'×1Ñ1°-ÀÕMð &ð 1ô
 #>Ó"?�Ø×)Ñ)Ð*BÀKÔPß!à$ jØ$ dØ$¨+¤oð�Eð
 $×-Ñ-¨m¸[È%ÕPð "ð- $üsq   ‚<S0¿S0ÁA;S0ÃAS0Ä4S0ÅB<S0ÈN) È%NÉN) ÉB,S0Ë99S0Ì3A"S0ÎN&	Î 	N) Î)B-S-Ñ9S-ÒAS-Ó-S0c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ÚreprzLiteral['str']Ú	aggregater  rr   r¦   r_   )rt   s   "ri   ru   ru   j  s   € × LÑ L˜Ð L°4Ð LÀCÑ Lrh   c                ó   € R # rˆ   r_   ©rž  rŸ  s   &&ri   Úcompile_timesr¢  i  s   € ÙILrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rž  zLiteral['csv']rŸ  r  rr   ztuple[list[str], list[object]]r_   )rt   s   "ri   ru   ru   o  s$   € ÷ )ñ )Ø
ð)Ø%)ð)à#ñ)rh   c                ó   € R # rˆ   r_   r¡  s   &&ri   r¢  r¢  m  s   € ñ &)rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rž  r¦   rŸ  r  rr   z(str | None | tuple[list[str], list[str]]r_   )rt   s   "ri   ru   ru   t  s$   € ÷ $ñ $Ø
ð$Ø"&ð$à-ñ$rh   c           	     ót  a€ \         3R V3R lllpV R8X  dC   \         Uu. uF  pW2! \        V,          R R7      3NK  	  ppRpV\        VRR7      ,          pV# V R8X  dM   \        P                  4        Uu. uF  pV! VR	 R7      NK  	  pp\	        \        P                  4       4      pW‡3# R
# u upi u upi )aŸ  
Get metrics about torchdynamo frontend/backend compilation times.

Accumulates information from functions tagged with `dynamo_timed`.

repr='str' returns a printable string for user interaction, and 'csv'
returns headers, rows which can be logged for output

aggregate causes values from multiple compilations (e.g. split graphs)
to be accumulated into one value.  If false, expect more than one value
per metric.
c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úvalueszlist[float]Úitem_fnzCallable[[float], str]rr   r¦   r_   )rt   s   "ri   ru   Ú#compile_times.<locals>.__annotate__„  s"   € ÷ /ñ /�{ð /Ð-Cð /Ècñ /rh   c                ój   <€ S'       d   V! \        V 4      4      # R P                  \        W4      4      # )r«   )r’   r¬   r­   )r¨  r©  rŸ  s   &&€ri   Úfmt_fnÚcompile_times.<locals>.fmt_fn„  s)   ø€ ßÙœ3˜v›;Ó'Ð'Ø�y‰yœ˜WÓ-Ó.Ð.rh   r¦   c                ó
   € V R  # )z.4fr_   ©Úxs   &ri   Ú<lambda>Úcompile_times.<locals>.<lambda>‹  s
   € ÈÈ3ÈÀjrh   )r©  z!TorchDynamo compilation metrics:
r¨   Úcsvc                ó
   € V R  # )z.6fr_   r¯  s   &ri   r±  r²  “  s
   € ¨1¨S¨'¨
rh   N)ÚFunctionzRuntimes (s))r¦   rZ   r²   r¨  ÚlistÚkeys)	rž  rŸ  r¬  rB  r¤   rä   rC  r¨  r¥   s	   &f       ri   r¢  r¢  t  sÕ   ø€ ô  GJ÷ /ò /ð
 ˆu„}õ .ó
á-�ð �Ô/°Õ2Ñ<PÔQÓRÙ-ð 	ð 
ð 3ˆØŒx˜Ð&BÔCÕCˆØˆ
Ø	�Œô .×4Ñ4Ô6ó
á6�ñ �1Ñ2×3Ù6ð 	ð 
ô Ô/×4Ñ4Ó6Ó7ˆØˆÐÙùò
ùò
s   ¡ B0Á8B5c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru   œ  s   € ÷ 8ñ 8˜Dñ 8rh   c                 óF   € \         P                  \        R RR7      4       R# )r¦   Tr¡  N)r�   Úinfor¢  r_   rh   ri   Údump_compile_timesr»  ›  s   € ä‡H�HŒ] °Ô6Ö7rh   c                  ó>   € ] tR tRtR
R R lltR R ltR R ltRtR	# )ÚDuplicateWarningCheckeri®  c               ó    € V ^8„  d   QhRRRR/# )rn   Úmaxsizerq   rr   rs   r_   )rt   s   "ri   ru   Ú$DuplicateWarningChecker.__annotate__¯  s   € ÷ ñ  ð ¨tñ rh   c                	ó2   € Wn         V P                  4        R # rˆ   )r¿  Úreset)Úselfr¿  s   &&ri   Ú__init__Ú DuplicateWarningChecker.__init__¯  s   € ØŒØ�
‰
Žrh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   rÀ  ³  s   € ÷ 8ñ 8�tñ 8rh   c                	ó$   € \        4       V n        R # rˆ   )r   Úset©rÃ  s   &ri   rÂ  ÚDuplicateWarningChecker.reset³  s   € Ü*5«-ˆŽrh   c               ó    € V ^8„  d   QhRRRR/# )rn   rå   zstr | tuple[object, object]rr   r  r_   )rt   s   "ri   ru   rÀ  ¶  s   € ÷ 	ñ 	Ð2ð 	°tñ 	rh   c                	ó8  € WP                   9   d9   V P                   P                  VR R7       \        P                  '       g   R#  R # RV P                   V&   \	        V P                   4      V P
                  8”  d   V P                   P                  RR7       KB  R # )T)ÚlastFN)rÈ  Úmove_to_endrG   ÚverboseÚlenr¿  Úpopitem©rÃ  rå   s   &&ri   ÚaddÚDuplicateWarningChecker.add¶  ss   € Ø—(‘(Œ?Ø�H‰H× Ñ  ¨4Ð Ô0Ü—>—>�>Ùð "ñ ð !ˆD�H‰H�S‰MÜ�d—h‘h“- $§,¡,Ô.Ø—‘× Ñ  eÐ Ö,Ùrh   )r¿  rÈ  N)é   )r`   ra   rb   rc   rÄ  rÂ  rÓ  rg   r_   rh   ri   r½  r½  ®  s   † ÷õ8÷	ñ 	rh   r½  c               ó   € V ^8„  d   QhRR/# ©rn   rr   zcontextlib.ExitStackr_   )rt   s   "ri   ru   ru   Å  s   € ÷ "ñ "Ð1ñ "rh   c                 ó–   € \         P                  P                  R R4      R8H  p V '       d   \        4       # \        P
                  ! 4       # )ÚTORCH_COMPILE_DEBUGÚ0Ú1)ÚosÚenvironr�   Úadd_file_handlerrŠ  r‹  )Úcompile_debugs    ri   Úsetup_compile_debugrà  Å  s7   € Ü—J‘J—N‘NÐ#8¸#Ó>À#ÑE€MçÜÓ!Ð!ä×ÒÓ!Ð!rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru   Î  s   € ÷ ,ñ , tñ ,rh   c                 ó.   € \         P                  4        R # rˆ   )Úgraph_break_dup_warning_checkerrÂ  r_   rh   ri   Úreset_graph_break_dup_checkerrä  Î  s   € Ü#×)Ñ)Ö+rh   z§
    \x1B            # ESC
    \[              # [
    [0-?]*          # Parameter bytes
    [ -/]*          # Intermediate bytes
    [@-~]           # Final byte
    c                  ó2   a € ] tR tRtRtR V 3R lltRtV ;t# )ÚStripAnsiFormatteriß  z0Logging formatter that strips ANSI escape codes.c               ó    € V ^8„  d   QhRRRR/# )rn   Úrecordzlogging.LogRecordrr   r¦   r_   )rt   s   "ri   ru   ÚStripAnsiFormatter.__annotate__â  s   € ÷ 0ñ 0Ð.ð 0°3ñ 0rh   c                	óN   <€ \         SV `  V4      p\        P                  R V4      # )Ú )Úsuperrt   ÚANSI_ESCAPE_PATTERNÚsub)rÃ  rè  ÚmsgÚ	__class__s   && €ri   rt   ÚStripAnsiFormatter.formatâ  s$   ø€ Ü‰g‰n˜VÓ$ˆÜ"×&Ñ& r¨3Ó/Ð/rh   r_   )r`   ra   rb   rc   r÷   rt   rg   Ú__classcell__©rð  s   @ri   ræ  ræ  ß  s   ø† Ù:÷0ö 0rh   ræ  c               ó   € V ^8„  d   QhRR/# r×  r_   )rt   s   "ri   ru   ru   ç  s   € ÷ ñ Ð.ñ rh   c                 óÊ  aa€ \         P                  P                  \        4       R 4      p \         P                  ! V RR7       \
        P                  ! \         P                  P                  V R4      4      oSP                  \        R4      4       \
        P                  ! R4      oSP                  S4       \        P                  ! 4       pVP                  VV3R l4       V# )ÚtorchdynamoT©Úexist_okz	debug.logz%(message)sztorch._dynamoc                 ó&   <€ SP                  S 4      # rˆ   ©ÚremoveHandler©Úlog_file_handlerÚloggers   €€ri   r±  Ú"add_file_handler.<locals>.<lambda>ñ  s   ø€ ˜v×3Ñ3Ð4DÔErh   )rÜ  Úpathr¬   Úget_debug_dirÚmakedirsÚloggingÚFileHandlerÚsetFormatterræ  Ú	getLoggerÚ
addHandlerrŠ  r‹  Úcallback)Úlog_pathÚ	exitstackrý  rþ  s     @@ri   rÞ  rÞ  ç  s�   ù€ Ü�w‰w�|‰|œM›O¨]Ó;€HÜ‡K‚K� 4Õ(ä×*Ò*¬2¯7©7¯<©<¸À+Ó+NÓOÐØ×!Ñ!Ô"4°]Ó"CÔDÜ×Ò˜Ó/€FØ
×ÑÐ&Ô'ä×$Ò$Ó&€IØ×ÑÕEÔFØÐrh   c               ó   € V ^8„  d   QhRR/# r×  r_   )rt   s   "ri   ru   ru   õ  s   € ÷ 	ñ 	Ð,ñ 	rh   c                 óP  aa€ \         P                  ! 4       p \        P                  e}   \        P
                  ! \        P                  4      o\        P                  P                  P                  4        F*  oSP                  S4       V P                  VV3R l4       K,  	  V # V # )Nc                 ó&   <€ SP                  S 4      # rˆ   rú  rü  s   €€ri   r±  Ú setup_log_file.<locals>.<lambda>û  s   ø€  v×';Ñ';Ð<LÔ'Mrh   )rŠ  r‹  rG   Úlog_file_namer  r  rF  Ú_loggingÚ	_internalÚget_loggersr  r  )r
  rý  rþ  s    @@ri   Úsetup_log_filer  õ  s}   ù€ Ü×$Ò$Ó&€IÜ×ÑÒ'Ü"×.Ò.¬v×/CÑ/CÓDÐÜ—n‘n×.Ñ.×:Ñ:Ö<ˆFØ×ÑÐ.Ô/Ø×ÑÕMÖNñ =ð ÐàÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ÚexcÚ	ExceptionÚcoder	   rr   r¦   r_   )rt   s   "ri   ru   ru     s!   € ÷ ?ñ ?˜ið ?¨xð ?¸Cñ ?rh   c                ó|   € \        4        R VP                   R\        V 4      P                   RVP                   R2# )z/error_recordings/Ú_z.rec)r  Úco_nameÚtyper`   Úco_firstlineno)r  r  s   &&ri   Úgen_record_file_namer    sB   € Ü‹oÐð Ø‡�€ˆa”�S“	×"Ñ"Ð# 1 T×%8Ñ%8Ð$9¸ð?ð ?rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úfilenamer¦   Úexec_recordr=   rr   rs   r_   )rt   s   "ri   ru   ru     s&   € ÷ Gñ G 3ð G°_ð GÈñ Grh   c                óÀ  €  \         P                  P                  V 4      '       d   \        P	                  R V 4       R# \         P
                  ! \         P                  P                  V 4      RR7       \        V R4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i  \         d    \        P                  RT 4        R# i ; i)z9Unable to write execution record %s; file already exists.Tr÷  ÚwbNz#Unable to write execution record %s)rÜ  r   Úexistsr�   Úwarningr  ÚdirnameÚopenÚdumpr  Ú	exception)r  r   Úfs   && ri   Úwrite_record_to_filer*    s”   € ð
GÜ�7‰7�>‰>˜(×#Ò#Ü�K‰KØKÈXöô �KŠKœŸ™Ÿ™¨Ó1¸DÕAÜ�h ×%Ô%¨Ø× Ñ  Ô#÷ &×%×%Ò%ûäô GÜ�‰Ð;¸X×FðGús:   ‚$B8 §B8 ¿A	B8 ÂB$ÂB8 Â$B5	Â/B8 Â5B8 Â8!CÃCc               ó    € V ^8„  d   QhRRRR/# )rn   Úgzfx.Graphrr   rq   r_   )rt   s   "ri   ru   ru     s   € ÷ ñ �8ð  ñ rh   c                óh   € ^ pV P                    F  pRVP                  9   g   K  V^,          pK!  	  V# )rx   Úcall)ÚnodesÚop)r,  ÚcÚns   &  ri   Úcount_callsr3    s0   € Ø	€AØ�WŒWˆØ�Q—T‘TŽ>Ø��FŠAñ ð €Hrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r°  rJ   rr   r_   )rt   s   "ri   ru   ru     s   € ÷ ñ �ð �añ rh   c                ó   € V # rˆ   r_   r¯  s   &ri   Úidentityr6    s   € Ø€Hrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r°  r  rr   r  r_   )rt   s   "ri   ru   ru      s   € ÷ ñ �ð ˜4ñ rh   c                ó\   €  \        V 4       R #   \         d     R# \         d     R# i ; i©TF)ÚhashÚ	TypeErrorÚ
ValueErrorr¯  s   &ri   Úhashabler=     s.   € ðÜˆQŒÙøÜô Úäô Úðús   ‚ �+�+¦+ª+c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  r   r`  rr   rs   r_   )rt   s   "ri   ru   ru   +  s!   € ÷ 	ñ 	�3ð 	 #ð 	¨$ñ 	rh   c                 ó   € R # rˆ   r_   ©r^  r`  s   *,ri   ÚnothingrA  +  s   € Ùrh   c                  ór   € ] tR tRtRtR R 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tR# )ÚExactWeakKeyDictionaryi/  z\Similar to weakref.WeakKeyDictionary, but use `is`/`id` rather than `==` to compare equalityc               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   Ú#ExactWeakKeyDictionary.__annotate__2  s   € ÷ >ñ >˜$ñ >rh   c                	ó"   € / V n         / V n        R # rˆ   ©r¨  ÚrefsrÉ  s   &ri   rÄ  ÚExactWeakKeyDictionary.__init__2  s   € Ø&(ˆŒØ;=ˆŽ	rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rå   r   rr   r_   )rt   s   "ri   ru   rE  6  s   € ÷ $ñ $˜sð $ sñ $rh   c                	ó:   € V P                   \        V4      ,          # rˆ   )r¨  ÚidrÒ  s   &&ri   Ú__getitem__Ú"ExactWeakKeyDictionary.__getitem__6  s   € Ø�{‰{œ2˜c›7Õ#Ð#rh   Nc               ó$   € V ^8„  d   QhRRRRRR/# )rn   rå   r   Údefaultrr   r_   )rt   s   "ri   ru   rE  9  s!   € ÷ 1ñ 1�sð 1 Sð 1°Cñ 1rh   c                	óL   € V P                   P                  \        V4      V4      # rˆ   )r¨  r�   rL  )rÃ  rå   rP  s   &&&ri   r�   ÚExactWeakKeyDictionary.get9  s   € Ø�{‰{�‰œr #›w¨Ó0Ð0rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rå   r   rr   r  r_   )rt   s   "ri   ru   rE  <  s   € ÷ &ñ & ð &¨ñ &rh   c                	ó2   € \        V4      V P                  9   # rˆ   )rL  r¨  rÒ  s   &&ri   Ú__contains__Ú#ExactWeakKeyDictionary.__contains__<  s   € Ü�#‹w˜$Ÿ+™+Ñ%Ð%rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rå   r   ræ   rr   rs   r_   )rt   s   "ri   ru   rE  ?  s!   € ÷ !ñ !˜sð !¨3ð !°4ñ !rh   c                	ó²   a a€ \        V4      oSS P                  9  d*   \        P                  ! VVV 3R  l4      S P                  S&   VS P                  S&   R# )c                ó&   <€ SP                  S4      # rˆ   )Ú
_remove_id)ÚrefÚidxrÃ  s   &€€ri   r±  Ú4ExactWeakKeyDictionary.__setitem__.<locals>.<lambda>B  s   ø€ ¸$¿/¹/È#Ô:Nrh   N)rL  rH  Úweakrefr[  r¨  )rÃ  rå   ræ   r\  s   f&&@ri   Ú__setitem__Ú"ExactWeakKeyDictionary.__setitem__?  s?   ù€ Ü�‹gˆØ�d—i‘iÔÜ$Ÿ[š[¨Õ.NÓOˆD�I‰I�c‰NØ ˆ�‰�CÓrh   c               ó    € V ^8„  d   QhRRRR/# ©rn   r\  rq   rr   rs   r_   )rt   s   "ri   ru   rE  E  s   € ÷ ñ ˜cð  dñ rh   c                	ó~   € WP                   9   d   V P                   V WP                  9   d   V P                  V R # R # rˆ   rG  )rÃ  r\  s   &&ri   rZ  Ú!ExactWeakKeyDictionary._remove_idE  s2   € Ø—+‘+ÔØ—‘˜CÐ Ø—)‘)ÔØ—	‘	˜#’ñ rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   rE  K  s   € ÷ ñ �tñ rh   c                	ón   € V P                   P                  4        V P                  P                  4        R # rˆ   )rH  r‰   r¨  rÉ  s   &ri   r‰   ÚExactWeakKeyDictionary.clearK  s    € Ø�	‰	�‰ÔØ�‰×ÑÖrh   )rH  r¨  rˆ   )r`   ra   rb   rc   r÷   rÄ  rM  r�   rU  r_  rZ  r‰   rg   r_   rh   ri   rC  rC  /  s-   † Ùfõ>õ$÷1õ&õ!õ÷ñ rh   rC  c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úobjr  Úallowed_typesztype[T]rr   z	TypeIs[T]r_   )rt   s   "ri   ru   ru   Q  s   € × AÑ A�Ð A wÐ A°9Ñ Arh   c                ó   € R # rˆ   r_   ©ri  rj  s   &&ri   Úistyperm  P  s   € Ù>Arh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  ztuple[type[T1], type[T2]]rr   zTypeIs[T1 | T2]r_   )rt   s   "ri   ru   ru   V  s$   € ÷ ñ Ø	ðØ 9ðàñrh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  U  s   € ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  z#tuple[type[T1], type[T2], type[T3]]rr   zTypeIs[T1 | T2 | T3]r_   )rt   s   "ri   ru   ru   \  s$   € ÷ ñ Ø	ðØ Cðàñrh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  [  s   € ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  z-tuple[type[T1], type[T2], type[T3], type[T4]]rr   zTypeIs[T1 | T2 | T3 | T4]r_   )rt   s   "ri   ru   ru   b  s$   € ÷ $ñ $Ø	ð$Ø Mð$àñ$rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  a  s   € ñ !$rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  z7tuple[type[T1], type[T2], type[T3], type[T4], type[T5]]rr   zTypeIs[T1 | T2 | T3 | T4 | T5]r_   )rt   s   "ri   ru   ru   h  s$   € ÷ )ñ )Ø	ð)Ø Wð)à#ñ)rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  g  s   € ñ &)rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  zAtuple[type[T1], type[T2], type[T3], type[T4], type[T5], type[T6]]rr   z#TypeIs[T1 | T2 | T3 | T4 | T5 | T6]r_   )rt   s   "ri   ru   ru   n  s&   € ÷ .ñ .Ø	ð.àTð.ð )ñ.rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  m  s   € ñ +.rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  zKtuple[type[T1], type[T2], type[T3], type[T4], type[T5], type[T6], type[T7]]rr   z(TypeIs[T1 | T2 | T3 | T4 | T5 | T6 | T7]r_   )rt   s   "ri   ru   ru   u  s(   € ÷ 3ñ 3Ø	ð3ðð3ð
 .ñ3rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  t  s   € ñ 03rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  zUtuple[type[T1], type[T2], type[T3], type[T4], type[T5], type[T6], type[T7], type[T8]]rr   z-TypeIs[T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8]r_   )rt   s   "ri   ru   ru   ~  s(   € ÷ 8ñ 8Ø	ð8ðð8ð
 3ñ8rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  }  s   € ñ 58rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  z_tuple[type[T1], type[T2], type[T3], type[T4], type[T5], type[T6], type[T7], type[T8], type[T9]]rr   z2TypeIs[T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9]r_   )rt   s   "ri   ru   ru   ‡  s(   € ÷ =ñ =Ø	ð=ð
ð=ð 8ñ=rh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  †  s   € ñ :=rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  zjtuple[type[T1], type[T2], type[T3], type[T4], type[T5], type[T6], type[T7], type[T8], type[T9], type[T10]]rr   z8TypeIs[T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10]r_   )rt   s   "ri   ru   ru   ˜  s-   € ÷ Cñ CØ	ðCððCð >ñCrh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  —  s	   € ñ @Crh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  z)tuple[type, ...] | list[type] | set[type]rr   r  r_   )rt   s   "ri   ru   ru   ª  s$   € ÷ ñ Ø	ðØ Iðà	ñrh   c                ó   € R # rˆ   r_   rl  s   &&ri   rm  rm  ©  s   € ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r  rj  r   rr   r  r_   )rt   s   "ri   ru   ru   ¯  s!   € ÷ &ñ &�ð & sð &¨tñ &rh   c                óz   € \        V\        \        \        34      '       d   \	        V 4      V9   # \	        V 4      VJ # )zisinstance() without subclasses)Ú
isinstanceÚtupler¶  rÈ  r  rl  s   &&ri   rm  rm  ¯  s4   € ä�-¤%¬¬sÐ!3×4Ò4Ü�C‹y˜MÑ)Ð)Ü�‹9˜Ð%Ð%rh   ztuple[Any, ...]Ú_builtin_final_typing_classesc               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úinputsz collections.abc.Sequence[object]Úmodelútorch.fx.GraphModulerr   zlist[torch.device | None]r_   )rt   s   "ri   ru   ru   Æ  s&   € ÷ ñ Ø,ðàðð ñrh   c                ó,  € \         P                  ! V 4      ^ ,          \        VP                  P                  4       Uu. uF)  pRVP
                  9   g   K  VP
                  R,          NK+  	  up,           p\        \        V Uu. uF#  p\        VR4      '       g   K  VP                  NK%  	  up4      4      pV Uu. uF:  p\        V\        P                  4      '       g   K%  VP                  R8w  g   K8  VNK<  	  upR.,           # u upi u upi u upi )rx   ÚvalÚdeviceÚmetaN)ÚpytreeÚtree_flattenr¶  Úgraphr/  rŽ  r,   rí   r�  r„  rF  r  )rˆ  r‰  ÚnodeÚ
all_inputsÚiÚdevicess   &&    ri   Úget_inputs_devicesr–  Æ  så   € ô ×$Ò$ VÓ,¨QÕ/Ü%)¨%¯+©+×*;Ñ*;Ô%<ó3Ù%<˜TÀÈÏÉÑ@RÔˆ�	‰	�%×ÐÑ%<ñ3õ €Jô *.Ü¡jÓI¡j ´G¸A¸x×4H”H�A—H”H¡jÑIÓJó*€Gñ óÙˆaœz¨!¬U¯\©\×:Œ¸q¿v¹vÈÑ?O�ˆ‘7ñà	ˆõð ùò3ùò Jùòs)   ¾DÁDÂDÂDÂ<"DÃ#DÃ6Dc               ó    € V ^8„  d   QhRRRR/# ©rn   ræ   r  rr   r  r_   )rt   s   "ri   ru   ru   Ù  s   € ÷ ñ �Vð  ñ rh   c                ó  € \         P                  R8¼  d   \        V \        4      '       d   R# \        V \        P
                  \        P                  34      ;'       g-    V \        P                  J ;'       g    V \        P                  J # )é   T©rš  é   )
ÚsysÚversion_infor„  r†  ÚtypesÚ	UnionTypeÚtypingÚ_Finalr   ÚUnion©ræ   s   &ri   Ú	is_typingr¥  Ù  sj   € ô ×Ñ˜7Ô"¤z°%Ô9V×'WÒ'WÙä�5œ5Ÿ?™?¬F¯M©MÐ:Ó;÷ 	!ð 	!Ø”F—N‘NÐ"÷	!ð 	!à”F—L‘LÐ ðrh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   ë  s   € ÷ ñ ˜Vð ¨ñ rh   c                ó&  € \         '       g   R # \        V \         P                  \         P                  \         P                  \         P
                  \         P                  \         P                  \         P                  \         P                  34      # re  )
Únprm  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64r¤  s   &ri   Úis_numpy_int_typer±  ë  sW   € ß‹2ÙäØä�G‰GÜ�H‰HÜ�H‰HÜ�H‰HÜ�H‰HÜ�I‰IÜ�I‰IÜ�I‰Ið		
óð rh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   þ  ó   € ÷ ñ ˜vð ¨$ñ rh   c                ó�   € \         '       g   R # \        V \         P                  \         P                  \         P                  34      # re  )r¨  rm  Úfloat16Úfloat32Úfloat64r¤  s   &ri   Úis_numpy_float_typer¸  þ  s4   € ß‹2ÙäØä�J‰JÜ�J‰JÜ�J‰Jð	
óð rh   ztuple[type, ...] | NoneÚ_unpack_fast_types_cachec               ó   € V ^8„  d   QhRR/# )rn   rr   ztuple[type, ...]r_   )rt   s   "ri   ru   ru     s   € ÷ $ñ $Ð,ñ $rh   c            
     ó
  € \         fw   ^RIHp  V P                  V P                  V P
                  V P                  V P                  V P                  V P                  V P                  V P                  V P                  3
s \         # )N©Ú	variables)r¹  rë  r½  ÚConstDictVariableÚDictViewVariableÚMappingProxyVariableÚDequeVariableÚListVariableÚListIteratorVariableÚRangeVariableÚSetVariableÚTensorVariableÚTupleVariabler¼  s    ri   Ú_unpack_fast_typesrÈ    sy   € ô  Ò'Ýð ×'Ñ'Ø×&Ñ&Ø×*Ñ*Ø×#Ñ#Ø×"Ñ"Ø×*Ñ*Ø×#Ñ#Ø×!Ñ!Ø×$Ñ$Ø×#Ñ#ð$
Ð ô $Ð#rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Útxr>   Úiterabler@   rr   úlist[VariableTracker]r_   )rt   s   "ri   ru   ru   '  s$   € ÷ -ñ -Ø!ð-Ø-<ð-àñ-rh   c                ó€   € \        V\        4       4      '       d   VP                  V 4      # \        \	        W4      4      # rˆ   )r„  rÈ  Úunpack_var_sequencer¶  Úlazily_unpack)rÊ  rË  s   &&ri   Úunpack_iterablerÐ  '  s8   € ô �(Ô.Ó0×1Ò1ð ×+Ñ+¨BÓ/Ð/Ü”˜bÓ+Ó,Ð,rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÊ  r>   rË  r@   rr   rs   r_   )rt   s   "ri   ru   ru   1  s&   € ÷ ñ Ø!ðàðð 
ñ	rh   c                ó:   € \        W4       F  pV! V4       K  	  R # rˆ   )rÏ  )rÊ  rË  Úapply_fnÚitems   &&& ri   Úunpack_and_apply_fnrÕ  1  s   € ô
 ˜bÖ+ˆÙ�Žó ,rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rÊ  r>   rË  r@   r_   )rt   s   "ri   ru   ru   :  s   € ÷ ñ Ø!ðàñrh   c              #  óð   "  € ^RI HpHp ^RIHpHp \        V\        4       4      '       d   VP                  V 4       Rj  x€L
  R# V! W4      p  V! W4      x € K   L  T d    T! T 4        R# i ; i5i)r¹   )Úhandle_observed_exceptionÚObservedUserStopIteration)Úgeneric_getiterÚpyiter_nextN)	r  rØ  rÙ  Úvariables.object_protocolrÚ  rÛ  r„  rÈ  rÎ  )rÊ  rË  rØ  rÙ  rÚ  rÛ  Úiterators   &&     ri   rÏ  rÏ  :  ss   é € ÷ JßGä�(Ô.Ó0×1Ò1Ø×/Ñ/°Ó3×3Ð3Ùá˜rÓ,€HØ
ð	Ù˜bÓ+Ô+ñ 	4øð )ô 	Ù% bÔ)Úð	üs5   ‚?A6ÁAÁA6Á
A  ÁA6Á A3Á/A6Á2A3Á3A6c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   zCallable[..., T]rr   z*TypeGuard[functools._lru_cache_wrapper[T]]r_   )rt   s   "ri   ru   ru   O  s   € ÷ 5ñ 5Øð5à/ñ5rh   c                ó   € R # rˆ   r_   r¤  s   &ri   Úis_lru_cache_wrapped_functionrà  N  s   € ñ 25rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   z,TypeGuard[functools._lru_cache_wrapper[Any]]r_   )rt   s   "ri   ru   ru   U  s   € ÷ 7ñ 7Øð7à1ñ7rh   c                ó   € R # rˆ   r_   r¤  s   &ri   rà  rà  T  s   € ñ 47rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   r  r_   )rt   s   "ri   ru   ru   Z  s   € ÷ ñ Øðà	ñrh   c                ó†   € \        V \        P                  4      ;'       d!    \        \        P
                  ! V R 4      4      # )Ú__wrapped__)r„  Ú	functoolsÚ_lru_cache_wrapperÚis_functionÚinspectÚgetattr_staticr¤  s   &ri   rà  rà  Z  s;   € ô �eœY×9Ñ9Ó:÷ ð ¼{Ü×Ò˜u mÓ4ó@ð rh   z2weakref.WeakSet[functools._lru_cache_wrapper[Any]]Ú4_lru_cache_wrappers_allowed_to_trace_without_warningc               ó    € V ^8„  d   QhRRRR/# )rn   ræ   z!functools._lru_cache_wrapper[Any]rr   rs   r_   )rt   s   "ri   ru   ru   g  s    € ÷ Dñ DØ,ðDà	ñDrh   c                ó0   € \         P                  V 4       R # rˆ   )rë  rÓ  r¤  s   &ri   Ú-allow_lru_cache_wrapper_trace_without_warningrî  g  s   € ô 9×<Ñ<¸UÖCrh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   m  s   € ÷ Iñ I¸fð IÈñ Irh   c                ó   € V \         9   # rˆ   )rë  r¤  s   &ri   Ú2is_lru_cache_wrapper_trace_without_warning_allowedrñ  m  s   € ØÔHÑHÐHrh   r   Ú
_FuncTypesc               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   zHTypeIs[_FuncTypes | torch._ops.OpOverloadPacket | torch._ops.OpOverload]r_   )rt   s   "ri   ru   ru   y  s   € ÷ ñ ØðàMñrh   c                ó¤   € \        V 4      ;'       g?    \        V \        P                  P                  \        P                  P
                  34      # rˆ   )rè  r„  rF  Ú_opsÚOpOverloadPacketÚ
OpOverloadr¤  s   &ri   Úis_function_or_wrapperrø  y  s@   € ô �uÓ÷ ð ¤Ø”—
‘
×+Ñ+¬U¯Z©Z×-BÑ-BÐCó"ð rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   zTypeIs[_FuncTypes]r_   )rt   s   "ri   ru   ru   �  s   € ÷ ñ Øðàñrh   c                ó’   € \        V \        P                  \        P                  \        P                  \        P
                  34      # rˆ   )r„  rŸ  ÚFunctionTypeÚBuiltinFunctionTypeÚMethodDescriptorTypeÚWrapperDescriptorTyper¤  s   &ri   rè  rè  �  s=   € ô Øä×ÑÜ×%Ñ%Ü×&Ñ&Ü×'Ñ'ð		
óð rh   Ú__eq__Ú__ne__Ú__lt__Ú__le__Ú__gt__Ú__ge__z==z!=Ú<z<=Ú>z>=c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   z”TypeIs[types.GetSetDescriptorType | types.MethodDescriptorType | types.WrapperDescriptorType | types.MemberDescriptorType | types.MethodWrapperType]r_   )rt   s   "ri   ru   ru   £  s   € ÷ ñ Øððñrh   c                ó°   € \        V \        P                  \        P                  \        P                  \        P
                  \        P                  34      # rˆ   )r„  rŸ  ÚGetSetDescriptorTyperý  rþ  ÚMemberDescriptorTyper
   r¤  s   &ri   Úis_wrapper_or_member_descriptorr  £  sH   € ô Øô ×&Ñ&ä×&Ñ&ä×'Ñ'ä×&Ñ&ä×#Ñ#ð	
óð rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÊ  r>   Úvtr@   rr   r¦   r_   )rt   s   "ri   ru   ru   ½  s"   € ÷ 5ñ 5Ð.ð 5°Oð 5Èñ 5rh   c                ó:   € ^RI Hp V! W4      P                  4       # )r¹   )Úgeneric_repr)rÜ  r  Úas_python_constant)rÊ  r  r  s   && ri   Útracked_reprr  ½  s   € Ý7á˜Ó×2Ñ2Ó4Ð4rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  r@   rr   r¦   r_   )rt   s   "ri   ru   ru   Ã  s   € ÷ ñ ˜ð ¨Sñ rh   c                ó€   € V P                  4       '       d   \        V P                  4       4      # V P                  4       # rˆ   )Úis_python_constantrž  r  Ú
debug_repr)r  s   &ri   Ú_item_debug_reprr  Ã  s1   € Ø	×Ñ×ÒÜ�B×)Ñ)Ó+Ó,Ð,Ø�=‰=‹?Ðrh   c               ó    € V ^8„  d   QhRRRR/# )rn   Úfnr   rr   r_   )rt   s   "ri   ru   ru   É  s   € ÷ 3ñ 3˜#ð 3 #ñ 3rh   c                ó&   € \        V 4      ^ ,          # ©rx   )Ú unwrap_with_attr_name_if_wrapper)r  s   &ri   Úunwrap_if_wrapperr  É  s   € Ü+¨BÓ/°Õ2Ð2rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  r   rr   ztuple[Any, str | None]r_   )rt   s   "ri   ru   ru   Í  s   € ÷ ñ ¨ð Ð1Gñ rh   c                ó¤   € \        V 4      '       d<   \        P                  ! V R R4      '       d   \        P                  ! V R V 4      p R pW3# RpW3# )Ú_torchdynamo_inlineFN)rè  ré  rê  )r  Ú	attr_names   & ri   r  r  Í  sU   € ô �2‡‚œ7×1Ò1°"Ð6KÈU×SÒSÜ×#Ò# BÐ(=¸rÓBˆØ)ˆ	ð ˆ=Ðð ˆ	Øˆ=Ðrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   zTypeGuard[np.ndarray]r_   )rt   s   "ri   ru   ru   Ø  s   € ÷ %ñ %˜Cð %Ð$9ñ %rh   c                óR   € \         '       g   R # \        V \         P                  4      # re  )r¨  rm  Úndarrayr¤  s   &ri   Úis_numpy_ndarrayr$  Ø  s   € ß‹2Ùä�%œŸ™Ó$Ð$rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r   rr   r  r_   )rt   s   "ri   ru   ru   ß  s   € ÷ $ñ $�#ð $˜$ñ $rh   c                óÒ   € \         P                  \         P                  P                  .\        P
                  O5pV\         P                  P                  3,           p\        W4      # )zCheck of obj is a tensor)	rF  ÚTensorÚnnÚ	ParameterrG   Útraceable_tensor_subclassesÚ_subclassesÚ
FakeTensorrm  )ri  Útensor_lists   & ri   Úistensorr.  ß  sU   € ô 	�‰Ü�‰×Ñð%ô 
×	+Ñ	+ñ%€Kð
 ¤×!2Ñ!2×!=Ñ!=Ð ?Õ?€KÜ�#Ó#Ð#rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Úmodr   rr   r  r_   )rt   s   "ri   ru   ru   ê  s   € ÷ ,ñ ,˜ð , ñ ,rh   c                ó"   € \        V \        4      # rˆ   )r„  r+   )r0  s   &ri   Úis_lazy_moduler2  ê  s   € Ü�cœ?Ó+Ð+rh   rÕ  c               ó    € V ^8„  d   QhRRRR/# ©rn   r^  r   rr   rs   r_   )rt   s   "ri   ru   ru   ï  s   € ÷ ñ �cð ˜dñ rh   c                 ó   € \        V !   R # rˆ   )rã   ©r^  s   *ri   Ú
print_oncer7  î  s	   € ä	ˆ4„Lrh   c               ó    € V ^8„  d   QhRRRR/# )rn   rŒ  r   rr   ztypes.CellTyper_   )rt   s   "ri   ru   ru   ó  s   € ÷ ñ �3ð  .ñ rh   c                óè   a€ V oR V3R llpVP                   f   \        R4      h\        VP                   4      ^8w  d"   \        R\        VP                   4       24      hVP                   ^ ,          # )zNSome black magic to create a cell object that usually only exists in a closurec               ó   € V ^8„  d   QhRR/# )rn   rr   r   r_   )rt   s   "ri   ru   Úmake_cell.<locals>.__annotate__÷  s   € ÷ ñ ˆsñ rh   c                 ó   <€ S # rˆ   r_   r¯  s   €ri   r)  Úmake_cell.<locals>.f÷  s   ø€ Øˆrh   z7Expected f to have a closure, but f.__closure__ is Nonez6Expected f.__closure__ to have exactly 1 element, got )Ú__closure__r  rÐ  )rŒ  r)  r°  s   & @ri   Ú	make_cellr?  ó  sm   ø€ à€A÷ð ð 	‡}�}ÒÜÐVÓWÐWÜ
ˆ1�=‰=Ó˜QÔÜØDÄSÈÏÉÓEWÐDXÐYó
ð 	
ð �=‰=˜ÕÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  r   r`  rr   z&tuple[tuple[Any, ...], dict[str, Any]]r_   )rt   s   "ri   ru   ru     s"   € ÷ 
ñ 
˜Cð 
¨ð 
Ð1Wñ 
rh   c                ó~  €  \         ;QJ d    . R  V  4       F  NK  	  5M! R  V  4       4      pVP                  4        UUu/ uF  w  r4W4P                  4       bK  	  pppW%3# u uppi   \         dJ   p^RIHp ^RIHp T! RRT! T !   RT! \        TP                  4       4      !   2R. TR7        Rp?R# Rp?ii ; i)	c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irˆ   )Úas_proxy©r®   Úargs   & ri   r°   Ú$proxy_args_kwargs.<locals>.<genexpr>  s   é € Ð:±T¨cŸ<™<Ÿ>˜>³Tùó   ‚©Úunimplemented)Útypestrz&Failed to convert args/kwargs to proxyzcall_function args: rà   z7Missing `as_proxy()` implementation for some arg/kwarg.©Úgb_typeÚcontextÚexplanationÚhintsÚfrom_excN)
r…  rÙ   rC  ÚNotImplementedErrorr  rI  Úvariables.baserJ  r¶  r¨  )	r^  r`  Ú
proxy_argsrå   rE  Úproxy_kwargsÚerI  rJ  s	   &&       ri   Úproxy_args_kwargsrV    s®   € ð
ß”UÑ:±TÓ:—U‘UÑ:±TÓ:Ó:ˆ
Ø<B¿L¹L¼NÔK¹N±°˜Ÿ\™\›^Ò+¹NˆÑKØÐ'Ð'ùó Løäô 

Ý&Ý+áØ<Ø*©7°D©>Ð*:¸!¹GÄTÈ&Ï-É-Ë/ÓEZÑ<[Ð;\Ð]ØQØØ÷	
ó 	
ûð	

ús.   ‚
A( �4A( ÁA"ÁA( Á"A( Á(B<Á3>B7Â7B<c               ó    € V ^8„  d   QhRRRR/# ©rn   rC  úfloat | Nonerr   r  r_   )rt   s   "ri   ru   ru     s   € ÷ 0ñ 0�ð 0 *ñ 0rh   c                ó2   € V f   R # \        V R,          4      # ©Nr  ©rq   ©rC  s   &ri   Ú	to_int_msr^    s   € Ø’9ˆ4Ð/¤# a¨$¥h£-Ð/rh   c               ó    € V ^8„  d   QhRRRR/# rX  r_   )rt   s   "ri   ru   ru     s   € ÷ 5ñ 5�ð 5 *ñ 5rh   c                ó2   € V f   R # \        V R,          4      # )Ni@B r\  r]  s   &ri   Ú	to_int_usra    s   € Ø’9ˆ4Ð4¤# a¨)¥mÓ"4Ð4rh   c                  ó˜  € ] tR tRt$ RtR]R&   RtR]R&   RtR]R&   RtR]R&   Rt	R]R	&   Rt
R]R
&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR]R&   RtR ]R!&   RtR ]R"&   Rt R]R#&   Rt!R$]R%&   Rt"R]R&&   Rt#R]R'&   Rt$R$]R(&   Rt%R$]R)&   Rt&R$]R*&   Rt'R]R+&   Rt(R]R,&   Rt)R$]R-&   Rt*R]R.&   Rt+R]R/&   Rt,R]R0&   Rt-R]R1&   Rt.R]R2&   Rt/R]R3&   Rt0R]R4&   Rt1R]R5&   Rt2R]R6&   Rt3R]R7&   Rt4R]R8&   Rt5R]R9&   Rt6R]R:&   Rt7R]R;&   Rt8R]R<&   Rt9R]R=&   Rt:R]R>&   Rt;R]R?&   Rt<R]R@&   Rt=R]RA&   Rt>R]RB&   Rt?R]RC&   ]@tARD]RE&   RtBR]RF&   RtCR]RG&   ^ tDR]RH&   ^ tER]RI&   RtFR]RJ&   RtGR]RK&   RtHR]RL&   ^ tIR]RM&   ^ tJR]RN&   ^ tKR]RO&   ^ tLR]RP&   ^ tMR]RQ&   ^ tNR]RR&   RtOR]RS&   RtPR]RT&   RtQRU]RV&   RtRR]RW&   RXtSR$]RY&   RtTR]RZ&   RtUR$]R[&   RtVR$]R\&   RtWR]R]&   RtXR]R^&   RtYR]R_&   RtZR]R`&   Rt[R]Ra&   Rt\R]Rb&   Rt]R]Rc&   Rt^R]Rd&   Rt_R]Re&   Rt`R]Rf&   RtaR]Rg&   RtbR]Rh&   RtcR]Ri&   RtdR]Rj&   RXteR$]Rk&   RtfR]Rl&   RtgR]Rm&   RthR]Rn&   ]iRo Rp l4       tjRqtkR# )rÚCompilationMetricsi$  Nrs  ru  Ú	frame_keyr  Úco_filenamer  r  Ú
cache_sizeÚaccumulated_cache_sizeÚguard_countÚshape_env_guard_countÚgraph_op_countÚgraph_node_countÚgraph_input_countrY  Ú
start_timeÚentire_frame_compile_time_sÚbackend_compile_time_sÚinductor_compile_time_sÚcode_gen_time_sÚ	fail_typeÚfail_reasonÚfail_user_frame_filenameÚfail_user_frame_linenozset[str] | NoneÚnon_compliant_opsÚcompliant_custom_opsÚrestart_reasonsÚdynamo_time_before_restart_szlist[str] | NoneÚstack_traceÚexception_stack_traceÚgraph_node_shapesrx  Úhas_guarded_codeÚremote_cache_time_saved_sÚstructured_logging_overhead_sÚconfig_suppress_errorsÚ config_inline_inbuilt_nn_modulesÚspecialize_floatÚdynamo_configÚcompiler_configr‚  Únum_triton_bundlesÚ!remote_fx_graph_cache_get_time_msÚ!remote_fx_graph_cache_put_time_msÚstart_time_usr€  Ú!dynamo_cumulative_compile_time_usÚ'aot_autograd_cumulative_compile_time_usÚ#inductor_cumulative_compile_time_usÚ,inductor_code_gen_cumulative_compile_time_usÚtriton_compile_time_usÚruntime_cudagraphify_time_usÚruntime_triton_autotune_time_usÚ%dynamo_compile_time_before_restart_usÚ distributed_ephemeral_timeout_usÚstructured_logging_overhead_usÚ!remote_fx_graph_cache_get_time_usÚ!remote_fx_graph_cache_put_time_usÚ#backward_cumulative_compile_time_usÚend_time_usÚpre_grad_pass_time_usÚpost_grad_pass_time_usÚjoint_graph_pass_time_usrq   Úlog_format_versionÚinductor_configÚremote_cache_versionÚ"inductor_fx_remote_cache_hit_countÚ#inductor_fx_remote_cache_miss_countÚ%inductor_fx_remote_cache_backend_typeÚ!inductor_fx_remote_cache_hit_keysÚ"inductor_fx_remote_cache_miss_keysÚ!inductor_fx_local_cache_hit_countÚ"inductor_fx_local_cache_miss_countÚ"aotautograd_remote_cache_hit_countÚ#aotautograd_remote_cache_miss_countÚ!aotautograd_local_cache_hit_countÚ"aotautograd_local_cache_miss_countÚcuda_versionÚtriton_versionzdict[str, bool] | NoneÚfeature_usageÚcompile_time_autotune_time_usFr�  Ú
gc_time_usÚtensorify_float_attemptÚtensorify_float_successÚtensorify_float_failureÚguard_latency_usÚrecompile_reasonÚnum_graph_breaksÚtriton_kernel_compile_times_usÚir_countÚcudagraph_skip_reasonÚpython_versionÚ!pgo_put_remote_code_state_time_usÚ!pgo_get_remote_code_state_time_usÚparam_numelÚparam_bytesÚparam_countÚrecompile_user_contextsÚ#inline_inbuilt_nn_modules_candidateÚpytorch_versionÚinductor_provenanceÚfunctorch_configc               ó    € V ^8„  d   QhRRRR/# )rn   rŽ  rX   rr   rc  r_   )rt   s   "ri   ru   ÚCompilationMetrics.__annotate__”  s   € ÷ R"ñ R"˜^ð R"Ð0Bñ R"rh   c                óÞ  € R R lpR R lpR R lpR R lpR	V! VP                  R
4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      RV! VP                  R4      4      /	p/ VCVCpV! VP                  R4      4      VR&   V! VP                  R4      4      VR&   V! VP                  R4      4      VR&   VP                  R4      pV'       d   \        V4      MRVR&   V ! R / VB # )!zÓ
Factory method to create a CompilationMetrics from a dict of fields.
Includes the logic to add legacy fields and any pre-processing, e.g.,
we transform some fields to comma-separated strings for scuba logging.
c               ó    € V ^8„  d   QhRRRR/# )rn   Úmetricr  rr   rY  r_   )rt   s   "ri   ru   Ú/CompilationMetrics.create.<locals>.__annotate__›  s   € ÷ 	@ñ 	@˜Jð 	@¨<ñ 	@rh   c                ó    € V e
   V R,          # R # )Ng    €„.Ar_   ©rÅ  s   &ri   Úus_to_sÚ*CompilationMetrics.create.<locals>.us_to_s›  s   € Ø#)Ò#5�6˜C•<Ð?¸4Ð?rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rÅ  r  rr   r_   )rt   s   "ri   ru   rÆ  ž  s   € ÷ 	Bñ 	B˜Zð 	B¨Jñ 	Brh   c                ó    € V e
   V R,          # R # r[  r_   rÈ  s   &ri   Úus_to_msÚ+CompilationMetrics.create.<locals>.us_to_msž  s   € Ø%+Ò%7�6˜T•>ÐA¸TÐArh   c               ó    € V ^8„  d   QhRRRR/# ©rn   rÅ  ú
Any | Nonerr   rs  r_   )rt   s   "ri   ru   rÆ  ¡  s   € ÷ 	Gñ 	G jð 	G°Zñ 	Grh   c                ó    a€ R  R loV f   R# \        V \        \        34      '       g   R# RP                  V3R l\	        V 4       4       4      # )c               ó    € V ^8„  d   QhRRRR/# )rn   rÔ  r   rr   r¦   r_   )rt   s   "ri   ru   ÚJCompilationMetrics.create.<locals>.collection_to_str.<locals>.__annotate__¢  s   € ÷ 'ñ '˜sð ' sñ 'rh   c                ó>   €  \        V 4      #   \         d     R # i ; i)ú	<unknown>)r¦   r  )rÔ  s   &ri   Úsafe_strÚFCompilationMetrics.create.<locals>.collection_to_str.<locals>.safe_str¢  s#   € ð'Ü˜t›9Ð$øÜ ô 'Ú&ð'ús   ‚
 �›NrÖ  Ú,c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5irˆ   r_   )r®   rÔ  r×  s   & €ri   r°   ÚGCompilationMetrics.create.<locals>.collection_to_str.<locals>.<genexpr>®  s   øé € ÐF±~¨t™H TŸN˜N³~ùó   ƒ)r„  rÈ  r¶  r¬   Úsorted)rÅ  r×  s   &@ri   Úcollection_to_strÚ4CompilationMetrics.create.<locals>.collection_to_str¡  s?   ø€ õ'ð Š~Ùä˜f¤s¬D k×2Ò2Ù"à—8‘8ÔF´v¸f´~ÓFÓFÐFrh   c               ó    € V ^8„  d   QhRRRR/# rÐ  r_   )rt   s   "ri   ru   rÆ  °  s   € ÷ 	#ñ 	#¨:ð 	#¸*ñ 	#rh   c                ór   € V f   R #  \         P                  ! \        V 4      4      #   \         d     R# i ; i)NrÖ  )ÚjsonÚdumpsr¶  r  rÈ  s   &ri   Úcollection_to_json_strÚ9CompilationMetrics.create.<locals>.collection_to_json_str°  s4   € ØŠ~Ùð#Ü—z’z¤$ v£,Ó/Ð/øÜô #Ú"ð#ús   ˆ' §6µ6rm  rˆ  rn  r‰  ro  rŠ  rp  r‹  rq  rŒ  r~  r‘  r†  r“  r‡  r”  r  r’  r   r¡  r³  ru  Nr_   )r�   r¦   )	r|   rŽ  rÉ  rÍ  rÞ  rä  Úlegacy_metricsÚall_metricsru  s	   &&       ri   ÚcreateÚCompilationMetrics.create“  sž  € õ	@õ	Bõ	Gõ	#ð ™' '§+¡+¨oÓ">Ó?Ø)©7Ø—‘Ð?Ó@ó,ð %¡gØ—‘ÐEÓFó'ð &¡wØ—‘ÐAÓBó(ð ™wØ—‘ÐJÓKó ð (©Ø—‘Ð>Ó?ó*ð 0±Ø—‘Ð?Ó@ó2ð 0±Ø—‘Ð?Ó@ó2ð ,©WØ—‘Ð<Ó=ó.ð/
ˆð8 4˜Ð3¨7Ð3ˆñ <MØ�O‰OÐ?Ó@ó<
ˆÐ7Ñ8ñ =NØ�O‰OÐ@ÓAó=
ˆÐ8Ñ9ñ 9OØ�O‰OÐ<Ó=ó9
ˆÐ4Ñ5ð !—_‘_ \Ó2ˆ
ß7A¤C¨
¤OÀtˆ�LÑ!ñ Ñ!�[Ñ!Ð!rh   r_   )lr`   ra   rb   rc   ru  r¡   rd  r  re  r  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  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˜  r™  ÚLOG_FORMAT_VERSIONrš  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¹  rº  r»  r¼  r½  r¾  r¿  rÀ  r¢   rè  rg   r_   rh   ri   rc  rc  $  sB  ‡ à!€J�
Ó!Ø €IˆzÓ Ø€GˆZÓØ"€K�Ó"Ø!%€N�JÓ%Ø!€J�
Ó!Ø)-Ð˜JÓ-Ø"€K�Ó"Ø(,Ð˜:Ó,Ø!%€N�JÓ%Ø#'Ð�jÓ'Ø$(Ð�zÓ(Ø#€J�Ó#Ø04Ð Ó4Ø+/Ð˜LÓ/Ø,0Ð˜\Ó0Ø$(€O�\Ó(Ø €IˆzÓ Ø"€K�Ó"Ø+/Ð˜jÓ/Ø)-Ð˜JÓ-Ø)-Ð�Ó-Ø,0Ð˜/Ó0Ø'+€O�_Ó+Ø15Ð  ,Ó5Ø$(€KÐ!Ó(Ø.2ÐÐ+Ó2Ø$(Ð�zÓ(ð %)Ð�kÓ(Ø.2Ð˜|Ó2Ø26Ð! <Ó6Ø*.Ð˜KÓ.Ø48Ð$ kÓ8Ø$(Ð�kÓ(Ø $€M�:Ó$Ø"&€O�ZÓ&Ø"€J�Ó"Ø%)Ð˜
Ó)Ø48Ð% zÓ8Ø48Ð% zÓ8Ø $€M�:Ó$Ø"€K�Ó"Ø48Ð% zÓ8Ø:>Ð+¨ZÓ>Ø6:Ð'¨Ó:Ø?CÐ0°*ÓCØ)-Ð˜JÓ-Ø/3Ð  *Ó3Ø26Ð# ZÓ6Ø8<Ð)¨:Ó<Ø37Ð$ jÓ7Ø15Ð" JÓ5Ø48Ð% zÓ8Ø48Ð% zÓ8Ø6:Ð'¨Ó:Ø"€K�Ó"Ø(,Ð˜:Ó,Ø)-Ð˜JÓ-Ø+/Ð˜jÓ/Ø0Ð˜Ó0Ø"&€O�ZÓ&Ø'+Ð˜*Ó+Ø56Ð&¨
Ó6Ø67Ð'¨Ó7Ø8<Ð)¨:Ó<Ø48Ð% zÓ8Ø59Ð&¨
Ó9Ø45Ð% zÓ5Ø56Ð&¨
Ó6Ø56Ð&¨
Ó6Ø67Ð'¨Ó7Ø45Ð% zÓ5Ø56Ð&¨
Ó6Ø#€L�*Ó#Ø!%€N�JÓ%Ø,0€MÐ)Ó0Ø04Ð! :Ó4Ø#€J�Ó#Ø!€J�
Ó!Ø+/Ð˜[Ó/Ø+/Ð˜[Ó/Ø/3Ð˜_Ó3Ø%)Ð�lÓ)Ø#'Ð�jÓ'Ø#'Ð�jÓ'Ø15Ð" JÓ5Ø€HˆjÓØ(,Ð˜:Ó,Ø!%€N�JÓ%Ø48Ð% zÓ8Ø48Ð% zÓ8ð #€K�Ó"ð #€K�Ó"ð #€K�Ó"Ø/3Ð˜_Ó3Ø7<Ð'¨Ó<Ø"&€O�ZÓ&Ø+/Ð˜Ó/Ø#'Ð�jÓ'àôR"ó ôR"rh   rc  ©Úmaxlenz%collections.deque[CompilationMetrics]Ú_compilation_metricsc               ó    € V ^8„  d   QhRRRR/# )rn   r1  rc  rr   rs   r_   )rt   s   "ri   ru   ru   ñ  s   € ÷ -ñ -Ð+=ð -À$ñ -rh   c                óÖ  € \        4       pVP                  4       pV'       g   R# TP                  TV P                  V P                  V P
                  V P                  V P                  V P                  V P                  V P                  V P                  V P                  V P                  V P                  V P                  V P                   V P"                  V P$                  e   \'        V P$                  4      MRV P(                  e   \'        V P(                  4      MRV P*                  e   \'        V P*                  4      MRV P,                  V P.                  V P0                  R7       R# )aî  
These are the common fields in CompilationMetrics that existed before
metrics_context, and aren't set by MetricsContext.set(). We add the subset
of them that make sense in `dynamo`/toplevel events in PT2 Compile Events
directly.

If you're tempted to add to this list, consider using CompileEventLogger.compilation_metric()
instead, which will automatically also add it to tlparse and PT2 Compile Events.
TODO: Get rid of this function and replace it with CompileEventLogger directly instead.
N)rþ   rd  r  re  r  rf  rg  rh  ri  rj  rk  rl  rr  rs  rt  ru  rv  rw  rx  ry  r}  rƒ  )r  r  r  rd  r  re  r  rf  rg  rh  ri  rj  rk  rl  rr  rs  rt  ru  rv  r¶  rw  rx  ry  r}  rƒ  )r1  Úevent_loggerrþ   s   &  ri   Ú#add_compilation_metrics_to_chromiumrñ  ñ  s   € ô -Ó.€LØ×1Ñ1Ó3€JßÙØ×ÑØØ—+‘+Ø—	‘	Ø—M‘MØ×'Ñ'Ø—<‘<Ø ×7Ñ7Ø—M‘MØ×5Ñ5Ø×'Ñ'Ø×+Ñ+Ø×-Ñ-Ø—+‘+Ø—M‘MØ!"×!;Ñ!;Ø ×7Ñ7ð *+×)<Ñ)<Ò)HŒD�×$Ñ$Ô%Èdð -.×,BÑ,BÒ,NŒD�×'Ñ'Ô(ÐTXð ()×'8Ñ'8Ò'DŒD�×"Ñ"Ô#È$à%&×%CÑ%CØ×+Ñ+Ø—o‘oð;  ö rh   c               ó   € V ^8„  d   QhRR/# ©rn   rr   rs  r_   )rt   s   "ri   ru   ru   !  s   € ÷ '3ñ '3¨
ñ '3rh   c                 ót   € R  R lp V ! \         P                  ! 4       4      p\        P                  ! VRR7      # )c               ó    € V ^8„  d   QhRRRR/# ©rn   ÚdrX   rr   r_   )rt   s   "ri   ru   Ú4_get_dynamo_config_for_logging.<locals>.__annotate__"  s   € ÷ #
ñ #
˜.ð #
¨^ñ #
rh   c           	     óö   € 0 RmpV P                  4        UUu/ uFS  w  r#W!9  g   K  T\        V\        4      '       d   \        V4      M#\	        VR4      '       d   VP                  4       MTbKU  	  upp# u uppi )ÚTYPE_CHECKINGÚto_jsonable>   rÏ  Úbase_dirÚrepro_afterÚrepro_levelrú  r  Údebug_dir_rootÚrepro_toleranceÚrepro_forward_onlyÚ_custom_ops_profileÚ_save_config_ignoreÚrepro_ignore_non_fpÚignore_logger_methodsÚlog_compilation_metricsÚignore_logging_functionsÚsame_two_models_use_fp64r*  Úreorderable_logging_functionsÚnontraceable_tensor_subclassesÚ)_autograd_backward_strict_mode_banned_opsÚ+inject_BUILD_SET_unimplemented_TESTING_ONLY)rÙ   r„  rÈ  rÝ  rí   rû  ©r÷  Ú	blocklistrå   ræ   s   &   ri   Úclean_for_jsonÚ6_get_dynamo_config_for_logging.<locals>.clean_for_json"  s€   € ò
ˆ	ð@  Ÿg™gœiô

ñ (‘
�ØÑ#ôˆCä˜e¤S×)Ò)ô �u”ô ˜5 -×0Ò0ð ×&Ñ&Ô(àòñ (ò

ð 
	
ùó 

s   ˜
A5§A
A5T©Ú	sort_keys)rG   Úget_config_copyrâ  rã  )r  Úconfig_dicts     ri   Ú_get_dynamo_config_for_loggingr  !  s.   € õ#
ñJ !¤×!7Ò!7Ó!9Ó:€KÜ�:Š:�k¨TÔ2Ð2rh   c               ó   € V ^8„  d   QhRR/# ró  r_   )rt   s   "ri   ru   ru   K  s   € ÷ 3ñ 3 jñ 3rh   c                 ó  € R  R lp \         P                  P                  '       g   R#  \         P                  P                  P                  4       pT ! T4      p\        P                  ! TRR7      #   \        \
        3 d     R# i ; i)c               ó    € V ^8„  d   QhRRRR/# rö  r_   )rt   s   "ri   ru   Ú2_compiler_config_for_logging.<locals>.__annotate__L  s   € ÷ 	
ñ 	
˜.ð 	
¨^ñ 	
rh   c           	     ó°   € R 0pV P                  4        UUu/ uF1  w  r#W!9  g   K  T\        V\        4      '       d   \        V4      MTbK3  	  upp# u uppi )rú  )rÙ   r„  rÈ  rÝ  r  s   &   ri   r  Ú4_compiler_config_for_logging.<locals>.clean_for_jsonL  s[   € àð
ˆ	ð  Ÿg™gœiô
á'‘
�ØÑ#ô DˆC¤*¨U´C×"8Ò"8”˜”¸eÒCÙ'ò
ð 	
ùó 
s
   —
A¦(ANz!Compiler Config cannot be pickledTr  )rF  ÚcompilerrG   r  r;  ÚAttributeErrorrâ  rã  )r  Úcompiler_config_copyr  s      ri   Ú_compiler_config_for_loggingr  K  sq   € õ	
ô �>‰>× × Ð Ùð3Ü$Ÿ~™~×4Ñ4×DÑDÓFÐñ !Ð!5Ó6€KÜ�:Š:�k¨TÔ2Ð2øô	 ”~Ð&ô 3Ú2ð3ús   ª(A2 Á2BÂBc               ó   € V ^8„  d   QhRR/# ró  r_   )rt   s   "ri   ru   ru   c  s   € ÷ -ñ -¨zñ -rh   c                 óv  €  ! R R\         P                  4      p \        4       pRpRp\        P                  P
                  '       d*    \        P                  P
                  P                  4       pVeŽ    VP                  4        FQ  w  rE\        V\        4      '       g   VP                  V4       \        V\        4      '       g   KD  \        V4      W4&   KS  	  V F  pW4 K  	  \         P                   ! VV RRR7      pV# V#   \        \        \        \        3 d    Rp L²i ; i  \"         d    Rp T# i ; i)zF
Method to parse and scrub uninteresting configs from inductor config
c                  ó.   a € ] tR tRtR V 3R lltRtV ;t# )ÚA_scrubbed_inductor_config_for_logging.<locals>.TypeSafeSerializerij  c               ó    € V ^8„  d   QhRRRR/# )rn   Úor   rr   r_   )rt   s   "ri   ru   ÚN_scrubbed_inductor_config_for_logging.<locals>.TypeSafeSerializer.__annotate__k  s   € ÷ 	8ñ 	8˜Sð 	8 Sñ 	8rh   c                	óH   <€  \         SV `  V4      #   \         d     R # i ; i)zValue is not JSON serializable)rì  rP  r  )rÃ  r%  rð  s   &&€ri   rP  ÚI_scrubbed_inductor_config_for_logging.<locals>.TypeSafeSerializer.defaultk  s)   ø€ ð8Ü‘w‘ qÓ)Ð)øÜô 8Ú7ð8ús   ƒ ’! !r_   )r`   ra   rb   rc   rP  rg   rò  ró  s   @ri   ÚTypeSafeSerializerr#  j  s   ø† ÷	8ö 	8rh   r)  Nz!Inductor Config cannot be pickledT)r|   Úskipkeysr  z(Inductor Config is not JSON serializable)râ  ÚJSONEncoderrÈ  rF  Ú	_inductorrG   r  r;  r  r  r  rÙ   r„  r¦   rÓ  r¶  rã  r  )r)  Úkeys_to_scrubÚinductor_conf_strÚinductor_config_copyrå   rŒ  s         ri   Ú%_scrubbed_inductor_config_for_loggingr0  c  s-  € ô8œT×-Ñ-ô 8ô "›e€MØÐØÐä‡�××Ðð	DÜ#(§?¡?×#9Ñ#9×#IÑ#IÓ#KÐ ð Ò'ð	KØ0×6Ñ6Ö8‘�Ü! #¤s×+Ò+Ø!×%Ñ% cÔ*ä˜c¤3×'Ô'Ü04°S³	Ð(Ó-ñ 9ó %�Ø(Ò-ñ %ô !%§
¢
Ø$Ø&ØØô	!Ðð ÐÐÐøô1 œ>¬<¼ÐHô 	DØ CÒð	Dûô* ô 	Kà JÑØÐð	Kús+   Á	(D Á6AD' Ã
6D' ÄD$Ä#D$Ä'D8Ä7D8c               ó   € V ^8„  d   QhRR/# ró  r_   )rt   s   "ri   ru   ru   “  s   € ÷ ;ñ ; zñ ;rh   c            	     óü  € \        R4      '       g   R#  \        P                  P                  P	                  4       p  RR0pT P                  4        UUu/ uFI  w  r#Y!9  g   K  \        T\        4      '       g   K%  T\        T\        4      '       d   \        T4      MTbKK  	  ppp\        P                  ! TR\        R7      #   \
        \        \        \        3 d     R# i ; iu uppi   \          d     R# i ; i)zESerialize functorch config (AOT autograd settings) for Scuba logging.z#pytorch/dynamo:log_functorch_configNrú  r  T)r  rP  z)Functorch Config is not JSON serializable)r#   rF  Ú
_functorchrG   r  r;  r  r  r  rÙ   r„  r¦   rÈ  r¶  râ  rã  r  )Úfunctorch_config_copyr  rB  rC  Úcleans        ri   Ú_functorch_config_for_loggingr6  “  sè   € äÐ@×AÒAÙðÜ %× 0Ñ 0× 7Ñ 7× GÑ GÓ IÐð;àØ!ð
ˆ	ð .×3Ñ3Ô5ô
á5‘�ØÑ!ô 5ä&0°´C×&8ô 5ˆAœ: a¬×-Ò-”�Q”°1Ò4Ù5ð 	ñ 
ô
 �zŠz˜%¨4¼Ô=Ð=øô ”~¤|´^ÐDô Úðüó
øô ô ;Ú:ð;ús@   •(C ¾C, Á
C&Á$C&Á<(C&Â$C, ÃC#Ã"C#Ã&C, Ã,C;Ã:C;c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )rn   Ústart_time_nsrq   Úend_time_nsrŽ  rX   Úexc_typeztype[BaseException] | NoneÚ	exc_valuezBaseException | Nonerr   rs   r_   )rt   s   "ri   ru   ru   ¬  sL   € ÷ P3ñ P3ØðP3àðP3ð ðP3ð )ð	P3ð
 $ðP3ð 
ñP3rh   c                óÊ  a€ \         P                  P                  P                  4       '       d    ^ RIHp TpRpMRpRpVP                  R4      pV'       g)   \         P                  P                  P                  4       p/ RVbRV R,          bRVR,          bRV'       d   VP                  MRbR	V'       d   \        V4      MRbR
\        \         P                  P                  4       4      bR\!        4       bR\"        P$                  bRRbR\'        4       bR\)        4       bR\         P*                  P,                  bR\/        4       '       d   \0        P2                  MRbRVbRVbR\4        P*                  bR\         P2                  bR\7        4       /Cp	\8        P;                  / V	CVC4      o\<        P?                  S4       Rp
SP@                  RJ d
   RV
,           p
SPB                  RJ d
   V
R,           p
\         P                  PE                  V
V3R lRVR7       \G        S4       \"        PH                  '       d   \K        S4       R# R#   \         d	    RpRp EL!i ; i)rx   )ÚREMOTE_CACHE_VERSIONÚ_ManifoldCacheNru  rˆ  r  r–  rr  rs  r’  rƒ  r€  r�  Tr›  r„  r¨  r©  rë  rœ  rŸ  r¶  r¾  rÀ  Úcompilation_metricsFÚbwd_Ú_runtimec            	     óÄ   <€ \         P                  ! S4      P                  4        U Uu/ uF)  w  rT \        V\        4      '       d   \        V4      MTbK+  	  upp # u upp i rˆ   )ÚdataclassesÚasdictrÙ   r„  rÈ  r¶  )rB  rC  r?  s     €ri   r±  Ú,record_compilation_metrics.<locals>.<lambda>è  sQ   ø€ ä#×*Ò*Ð+>Ó?×EÑEÔGô
áG‘�ð œ* Q¬×,Ò,Œt�AŒw°!Ò3ÙGó
ùó 
s   ©/A)Úrecord_logging_overheadru  )&rF  r,  ÚutilsÚ should_use_remote_fx_graph_cacheÚtorch._inductor.fb.remote_cacher=  ÚModuleNotFoundErrorr�   r…  r†  r‡  rb   r¦   ra  r  Úget_structured_logging_overheadr  rG   Úsuppress_errorsr0  r  ÚversionÚcudar.   ÚtritonÚ__version__r�  r6  rc  rè  rí  rÅ   r‚  r�  Útrace_structuredrñ  r  r%   )r8  r9  rŽ  r:  r;  r=  rœ  rŸ  ru  Úcommon_metricsr{   r?  s   &&&&&      @ri   rï   rï   ¬  s€  ø€ ô ‡�×Ñ×=Ñ=×?Ò?ð	9ÝLà#7Ð Ø4DÑ1ð
 15Ð-Ø#Ðð —‘˜\Ó*€JßÜ—]‘]×1Ñ1×DÑDÓFˆ
ðØ�jðà˜¨$Õ.ðð 	�{ dÕ*ðð 	¯h�X×*Ò*¸Dð	ð
 	¯”s˜9”~¸ðð 	)¬)Ü�N‰N×:Ñ:Ó<ó+
ðð 	Ô7Ó9ðð 	!¤&×"8Ñ"8ðð 	+¨Dðð 	Ô@ÓBðð 	Ô7Ó9ðð 	œŸ™×*Ñ*ðð 	´
·²œ&×,Ò,À"ðð  	Ð 4ð!ð" 	0Ð1Vð#ð$ 	œ#Ÿ+™+ð%ð& 	œ5×,Ñ,ð'ð( 	Ô9Ó;ñ)€Nô. -×3Ñ3Ð4Q°~Ð4QÈÐ4QÓRÐÜ×ÑÐ 3Ô4à €DØ×%Ñ%¨Ó.Ø˜�}ˆØ×%Ñ%¨Ó-Ø�jÕ ˆä	‡N�N×#Ñ#Øô	
ð !&ð ð $ô ô$ (Ð(;Ô<ô ×%×%Ð%ÜÐ1Ö2ñ &øôE #ô 	9Ø#'Ð Ø48Ó1ð	9ús   ±
I ÉI"É!I"c               ó    € V ^8„  d   QhRRRR/# )rn   Únew_sizerq   rr   rs   r_   )rt   s   "ri   ru   ru   ÿ  s   € ÷ %ñ %¨Cð %°Dñ %rh   c                ó–   € \        \        4      V 8”  d   \        P                  4        K*  \        P                  ! \        V R 7      pVsR# )rë  N)rÐ  rí  ÚpopleftrŸ   Údeque)rT  Ú	new_deques   & ri   Úset_compilation_metrics_limitrY  ÿ  s5   € ä
Ô"Ó
# hÔ
.Ü×$Ñ$Ö&Ü×!Ò!Ô"6¸xÔH€IØ$Òrh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru     s   € ÷ !ñ ! 4ñ !rh   c                 ó.   € \         P                  4        R # rˆ   )rí  r‰   r_   rh   ri   Úclear_compilation_metricsr\    s   € ä×ÑÖ rh   c               ó   € V ^8„  d   QhRR/# )rn   rr   zlist[CompilationMetrics]r_   )rt   s   "ri   ru   ru     s   € ÷ &ñ &Ð!9ñ &rh   c                 ó    € \        \        4      # rˆ   )r¶  rí  r_   rh   ri   Úget_compilation_metricsr_    s   € ÜÔ$Ó%Ð%rh   c                  óê   € ] tR tRtR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 ltR R ltR R ltR%R R lltR R ltR R ltR&R R lltR&R  R! lltR'R" R# lltR$tR# )(ÚChromiumEventLoggeri  aL  Logs chromium events to structured logs. tlparse will concatenate these into a perfetto UI link.

Also emits RecordFunction calls to torch.profiler when enabled.

See https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.yr4qxyxotyw for
a specification of the Chromium Event JSON format.
c               ó   € V ^8„  d   QhRR/# ©rn   rr   ú	list[str]r_   )rt   s   "ri   ru   Ú ChromiumEventLogger.__annotate__  s   € ÷ 	"ñ 	"˜9ñ 	"rh   c                ó´   € \        V P                  R4      '       d   V P                  P                  # . V P                  n        V P                  P                  # )zE
The main event stack, with every chromium event.
Logged to tlparse.
r•  )rí   Útlsr•  rÉ  s   &ri   Ú	get_stackÚChromiumEventLogger.get_stack  s<   € ô
 �4—8‘8˜W×%Ò%Ø—8‘8—>‘>Ð!àˆD�H‰HŒNØ—8‘8—>‘>Ð!rh   c               ó   € V ^8„  d   QhRR/# ró  r_   )rt   s   "ri   ru   re  $  s   € ÷ +ñ + Zñ +rh   c                óH   € V P                  4       pV'       d
   V^ ,          # R# )z^
Get the outermost event name (i.e. the longest running event)
or None if the stack is empty.
N)rh  )rÃ  r•  s   & ri   r  Ú'ChromiumEventLogger.get_outermost_event$  s!   € ð
 —‘Ó ˆß ˆu�Q�xÐ* dÐ*rh   c               ó   € V ^8„  d   QhRR/# rc  r_   )rt   s   "ri   ru   re  ,  s   € ÷ 	1ñ 	1¨)ñ 	1rh   c                ó´   € \        V P                  R4      '       d   V P                  P                  # . V P                  n        V P                  P                  # )zY
A smaller subset of the main stack that gets used to log
PT2 Compile Events internally.
r  )rí   rg  r  rÉ  s   &ri   r  Ú,ChromiumEventLogger.get_pt2_compile_substack,  sB   € ô
 �4—8‘8Ð3×4Ò4Ø—8‘8×0Ñ0Ð0à,.ˆD�H‰HÔ)Ø—8‘8×0Ñ0Ð0rh   c               ó   € V ^8„  d   QhRR/# )rn   rr   rX   r_   )rt   s   "ri   ru   re  7  s   € ÷ #ñ # ñ #rh   c                	óˆ   € \        V P                  R 4      '       g   / V P                  n        V P                  P                  # )Ú
event_data)rí   rg  rr  rÉ  s   &ri   Úget_event_dataÚ"ChromiumEventLogger.get_event_data7  s/   € Ü�t—x‘x ×.Ò.Ø"$ˆD�H‰HÔØ�x‰x×"Ñ"Ð"rh   c               ó   € V ^8„  d   QhRR/# )rn   rr   z'dict[str, AbstractContextManager[None]]r_   )rt   s   "ri   ru   re  <  s   € ÷ )ñ )Ð&Mñ )rh   c                	óˆ   € \        V P                  R 4      '       g   / V P                  n        V P                  P                  # )Úrecord_functions)rí   rg  rw  rÉ  s   &ri   Úget_record_functionsÚ(ChromiumEventLogger.get_record_functions<  s0   € Ü�t—x‘xÐ!3×4Ò4Ø(*ˆD�H‰HÔ%Ø�x‰x×(Ñ(Ð(rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   re  A  s   € ÷ Iñ I˜$ñ Irh   c                	óD  € \         P                  ! 4       V n        ^RIHp VP
                  '       d+   VP
                   R\        P                  ! 4        2V n        M#\        \        P                  ! 4       4      V n        \        P                  RV P                  4       R# )r¹   rF   Ú-z*ChromiumEventLogger initialized with id %sN)Ú	threadingÚlocalrg  rë  rG   Úpt2_compile_id_prefixÚuuidÚuuid4Úid_r¦   r�   rº  )rÃ  rG   s   & ri   rÄ  ÚChromiumEventLogger.__init__A  sg   € Ü—?’?Ó$ˆŒåð ×'×'Ð'Ø ×6Ñ6Ð7°q¼¿º»¸ÐGˆD�Häœ4Ÿ:š:›<Ó(ˆDŒHô 	�‰Ð=¸t¿x¹xÖHrh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   rþ   r¦   r`  r   rr   rs   r_   )rt   s   "ri   ru   re  P  s!   € ÷ 2ñ 2¨Sð 2¸Cð 2ÀDñ 2rh   c                óX   € WP                  4       9  d   R# V P                  ! V3/ VB  R# )zT
Same as add_event_data, but will silently not log if the event isn't in the stack.
N)rh  r  )rÃ  rþ   r`  s   &&,ri   rY  Ú&ChromiumEventLogger.try_add_event_dataP  s'   € ð Ÿ^™^Ó-Ô-ÙØ×Ò˜JÑ1¨&Ô1rh   c               ó$   € V ^8„  d   QhRRRRRR/# r…  r_   )rt   s   "ri   ru   re  X  s(   € ÷ .ñ .àð.ð ð.ð 
ñ	.rh   c                óâ   € WP                  4       9  d*   \        R\        V4       RV P                  4        R24      hV P                  4       pW9  d   / W1&   W1,          P	                  V4       R# )zb
Adds additional metadata info to an in-progress event
This metadata is recorded in the END event
úEvent ú not in úq. Cannot add metadata to events that aren't in progress. Please make sure the event has started and hasn't ended.N)rh  r  rž  rs  r  )rÃ  rþ   r`  rr  s   &&, ri   r  Ú"ChromiumEventLogger.add_event_dataX  su   € ð Ÿ^™^Ó-Ô-ÜØœ˜jÓ)Ð*¨(°4·>±>Ó3CÐ2Dð EKð Kóð ð
 ×(Ñ(Ó*ˆ
ØÔ'Ø%'ˆJÑ"ØÕ×%Ñ% fÖ-rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rþ   r¦   rå   ræ   rq   rr   rs   r_   )rt   s   "ri   ru   re  l  s(   € ÷ -ñ - Cð -¨cð -¸#ð -À$ñ -rh   c                ó  € WP                  4       9  d*   \        R\        V4       RV P                  4        R24      hV P                  4       pW9  d   / WA&   W$V,          9  d   ^ WA,          V&   WA,          V;;,          V,          uu&   R# )z;
Increment an integer event data field by the given amount
rŠ  r‹  rŒ  N)rh  r  rž  rs  ©rÃ  rþ   rå   ræ   rr  s   &&&& ri   r#  ÚChromiumEventLogger.incrementl  s�   € ð Ÿ^™^Ó-Ô-ÜØœ˜jÓ)Ð*¨(°4·>±>Ó3CÐ2Dð EKð Kóð ð ×(Ñ(Ó*ˆ
ØÔ'Ø%'ˆJÑ"Ø Õ,Ô,Ø*+ˆJÕ" 3Ñ'ØÕ˜s×# uÕ,Õ#rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rþ   r¦   rå   ræ   r   rr   rs   r_   )rt   s   "ri   ru   re  ~  s2   € ÷ /ñ /àð/ð ð/ð ð	/ð
 
ñ/rh   c                ó0  € WP                  4       9  d*   \        R\        V4       RV P                  4        R24      hV P                  4       pW9  d   / WA&   W$V,          9  d   \	        4       WA,          V&   WA,          V,          P                  V4       R# )zB
Add a value to a set within a event_name's metadata if it exists
rŠ  r‹  rŒ  N)rh  r  rž  rs  rÈ  rÓ  r�  s   &&&& ri   r.  ÚChromiumEventLogger.add_to_set~  s”   € ð Ÿ^™^Ó-Ô-ÜØœ˜jÓ)Ð*¨(°4·>±>Ó3CÐ2Dð EKð Kóð ð
 ×(Ñ(Ó*ˆ
ØÔ'Ø%'ˆJÑ"Ø Õ,Ô,Ü*-«%ˆJÕ" 3Ñ'ØÕ˜sÕ#×'Ñ'¨Ö.rh   Nc               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )rn   rþ   r¦   r   rq   rÿ   rX   r
  r  ru  rv  rr   rs   r_   )rt   s   "ri   ru   re  ”  sN   € ÷ &Tñ &Tàð&Tð ð&Tð !ð	&Tð
  $ð&Tð %ð&Tð 
ñ&Trh   c                ó�  € T;'       g)    \         P                  P                  P                  4       p\	        V4      VR&   V P                  VVRV4       V P                  4       P                  V4       V P                  ! V3/ VB  V'       d    V P                  4       P                  V4       \         P                  P                  P                  '       do   \         P                  P                  P                  V4      pVP!                  4        W`P#                  4       V&   V'       d   \$        P&                  ! V3/ VB  R# R# R# )aQ  
Logs the start of a single event.
:param str event_name Name of event to appear in trace
:param time_ns Timestamp in nanoseconds
:param metadata: Any extra metadata associated with this event
:param log_pt2_compile_event: If True, log to pt2_compile_events
:param compile_id: Explicit compile_id (rather than using the current context)
ru  ÚBN)rF  r…  r†  r‡  r¦   Ú_log_timed_eventrh  rÅ   r  r  rG  rH  rI  rj  rk  rl  rm  rx  rü   rL  )rÃ  rþ   r   rÿ   r
  ru  ro  s   &&&&&& ri   rƒ  Ú#ChromiumEventLogger.log_event_start”  sþ   € ð   ×TÐT¤5§=¡=×#?Ñ#?×#RÑ#RÓ#Tˆ
Ü!$ Z£ˆ�ÑØ×ÑØØØØô		
ð 	�‰Ó×Ñ 
Ô+à×Ò˜JÑ3¨(Ò3ß Ø×)Ñ)Ó+×2Ñ2°:Ô>ô �>‰>×"Ñ"×7×7Ð7Ü—‘×#Ñ#×7Ñ7¸
ÓCˆBØ�L‰LŒNØ68×%Ñ%Ó'¨
Ñ3÷ Ü"×;Ò;¸JÑSÈ(ÔSñ ñ 8rh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rn   Ústack_depthrq   Úpt2_compile_substack_depthÚevent_data_keysúset[str]Úrecord_function_keysrr   rs   r_   )rt   s   "ri   ru   re  ¼  s<   € ÷ 1ñ 1àð1ð %(ð1ð "ð	1ð
 'ð1ð 
ñ1rh   c                	óL  € V P                  4       pWQR 1 V P                  4       pWbR 1 V P                  4       p\        V4       F  pWƒ9  g   K  Wx K  	  V P	                  4       p	\        V	P                  4       4       F"  w  rŠW„9  g   K  V
P                  R R R 4       W˜ K$  	  R # rˆ   )rh  r  rs  r¶  rx  rÙ   rn  )rÃ  r›  rœ  r�  rŸ  r•  Úsubstackrr  rþ   rw  ro  s   &&&&&      ri   Ú_reset_to_stateÚ#ChromiumEventLogger._reset_to_state¼  s    € ð —‘Ó ˆØ‘,ÐØ×0Ñ0Ó2ˆØÑ0Ð1Ø×(Ñ(Ó*ˆ
Ü˜zÖ*ˆJØÖ0ØÒ*ñ +ð  ×4Ñ4Ó6ÐÜ"Ð#3×#9Ñ#9Ó#;Ö<‰NˆJØÖ5Ø—‘˜D $¨Ô-Ø$Ò0ó =rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   re  Ò  s   € ÷ 1ñ 1�tñ 1rh   c                	óN   € V P                  ^ ^ \        4       \        4       4       R# r¾   )r¢  rÈ  rÉ  s   &ri   rÂ  ÚChromiumEventLogger.resetÒ  s   € ð 	×Ñ˜Q ¤3£5¬#«%Ö0rh   c               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )rn   rþ   r¦   r   rq   rÿ   rX   r8  r
  r  ru  rv  rr   rs   r_   )rt   s   "ri   ru   re  ×  sY   € ÷ N*ñ N*àðN*ð ðN*ð !ð	N*ð
 ðN*ð  $ðN*ð %ðN*ð 
ñN*rh   c                óÄ  a€ T;'       g)    \         P                  P                  P                  4       p\	        V4      VR&   V P                  4       pSV9   d   VS,          pVS M/ pVP                  V4       V P                  SVRV4      p	R V3R llp
V P                  4       pSV9  d   \        P                  R4       R# V
! V4       V'       d@   V P                  4       pV
! V4       \        WœV P                  V4       VP                  4        VP                  4        V P                  4       pSV9   d'   VP                  S4      pVP!                  RRR4       R# R# )aÞ  
Logs the end of a single event. This function should only be
called after log_event_start with the same event_name.
:param event_name: Name of event to appear in trace
:param time_ns: Timestamp in nanoseconds
:param metadata: Any extra metadata associated with this event
:param start_time_ns: The start time timestamp in nanoseconds
:param log_pt_compile_event: If True, log to pt2_compile_events
:param compile_id: Explicit compile_id (rather than using the current context)
ru  ÚEc               ó    € V ^8„  d   QhRRRR/# )rn   r•  rd  rr   rs   r_   )rt   s   "ri   ru   Ú7ChromiumEventLogger.log_event_end.<locals>.__annotate__ÿ  s   € ÷ 	ñ 	˜Yð 	¨4ñ 	rh   c                ór   <€ SV R,          8w  d(   \         P                  R4       V P                  4        K5  R# )r¹   z>ChromiumEventLogger: Detected overlapping events, fixing stackNéÿÿÿÿ)r�   r$  Úpop)r•  rþ   s   &€ri   Ú	pop_stackÚ4ChromiumEventLogger.log_event_end.<locals>.pop_stackÿ  s0   ø€ Ø  b¥	Ô)ô —‘ØTôð —	‘	–ñ *rh   z7ChromiumEventLogger: Start event not in stack, ignoringN)rF  r…  r†  r‡  r¦   rs  r  r˜  rh  r�   r$  r  r$   r‚  r®  rx  rn  )rÃ  rþ   r   rÿ   r8  r
  ru  Úall_event_datar�  Úeventr¯  Úevent_stackr  rw  ro  s   &f&&&&&        ri   r�  Ú!ChromiumEventLogger.log_event_end×  sQ  ø€ ð&  ×TÐT¤5§=¡=×#?Ñ#?×#RÑ#RÓ#Tˆ
Ü!$ Z£ˆ�Ñð ×,Ñ,Ó.ˆØ˜Ô'Ø+¨JÕ7ˆNØ˜zÑ*ð  ˆNà×Ñ˜hÔ'à×%Ñ%ØØØØó	
ˆ÷	ð 	ð —n‘nÓ&ˆð ˜[Ô(ô �K‰KÐQÔRÙá�+Ôç Ø#'×#@Ñ#@Ó#BÐ ÙÐ*Ô+Ü'Ø¨T¯X©X°}ôð !×$Ñ$Ô&ð 	�‰Ôð  ×4Ñ4Ó6ÐØÐ)Ô)Ø!×%Ñ% jÓ1ˆBØ�K‰K˜˜d DÖ)ñ *rh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rn   rþ   r¦   r   rq   rÛ   rÿ   údict[str, Any] | Nonerr   rX   r_   )rt   s   "ri   ru   re  '	  s<   € ÷ ñ àðð ðð ð	ð
 (ðð 
ñrh   c                óš   a€ RVRVR,          RVRVRRR^ R	^ /o\         P                  P                  R
V3R lRRR7       \        S4       S# )zQ
Logs a timed event in chromium format. See log_event_start, log_event_end, etc.
r{   Útsr  r^  ÚphÚcatrœ  ÚtidÚpidÚchromium_eventc                 ó   <€ S # rˆ   r_   ©r²  s   €ri   r±  Ú6ChromiumEventLogger._log_timed_event.<locals>.<lambda>=	  ó   ø€ ™urh   F©Ú
payload_fnÚsuppress_contextÚexpect_trace_id)rF  r  rQ  r&   )rÃ  rþ   r   rÛ   rÿ   r²  s   &&&&&@ri   r˜  Ú$ChromiumEventLogger._log_timed_event'	  sg   ø€ ð �JØ�'˜D•.Ø�HØ�%à�>Ø�1Ø�1ð	
ˆô 	�‰×'Ñ'ØÜ$Ø"Ø!ð	 	(ô 	
ô 	' uÔ-Øˆrh   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rn   rþ   r¦   r   rq   rÿ   r¶  r
  r  rr   rs   r_   )rt   s   "ri   ru   re  D	  s<   € ÷ (ñ (àð(ð ð(ð (ð	(ð  $ð(ð 
ñ(rh   c                ó^  a€ Vf   / p\        \        P                  P                  P	                  4       4      pWSR&   RVRVR,          RVRRR	R
R^ R^ RR/o\        P
                  P                  RV3R lRRR7       V'       d)   \        SV P                  4       V P                  V4       R# R# )a*  
Log an instant event with no associated duration.
:param str event_name: Name of event to appear in trace
:param int time_ns Timestamp in nanoseconds
:param Optional[Dict[str, Any]] metadata: Any extra metadata associated with this event
:param str cname optional color for the arrow in the trace
Nru  r{   r¸  r  r^  r¹  r”  rº  rœ  r»  r¼  ÚsÚpr½  c                 ó   <€ S # rˆ   r_   r¿  s   €ri   r±  Ú7ChromiumEventLogger.log_instant_event.<locals>.<lambda>d	  rÁ  rh   FTrÂ  )
r¦   rF  r…  r†  r‡  r  rQ  r$   r  r‚  )rÃ  rþ   r   rÿ   r
  ru  r²  s   &&&&& @ri   r  Ú%ChromiumEventLogger.log_instant_eventD	  sµ   ø€ ð ÒØˆHÜœŸ™×5Ñ5×HÑHÓJÓKˆ
Ø!+�Ñà�JØ�'˜D•.Ø�HØ�#à�>Ø�1Ø�1Ø�ð

ˆô 	�‰×'Ñ'ØÜ$Ø"Ø ð	 	(ô 	
÷ !ä'Ø�t×4Ñ4Ó6¸¿¹À'öñ !rh   )r‚  rg  ©FNrˆ   )NF)r`   ra   rb   rc   r÷   rh  r  r  rs  rx  rÄ  rY  r  r#  r.  rƒ  r¢  rÂ  r�  r˜  r  rg   r_   rh   ri   ra  ra    sa   † ñõ	"õ+õ	1õ#õ
)õ
Iõ2õ.õ(-õ$/÷,&TõP1õ,1÷
N*÷`÷:(ó (rh   ra  zChromiumEventLogger | NoneÚCHROMIUM_EVENT_LOGc               ó   € V ^8„  d   QhRR/# )rn   rr   ra  r_   )rt   s   "ri   ru   ru   r	  s   € ÷ ñ Ð#6ñ rh   c                 ó2   € \         f   \        4       s \         # rˆ   )rÏ  ra  r_   rh   ri   r  r  r	  s   € äÒ!Ü0Ó2ÐÜÐrh   c               ó   € V ^8„  d   QhRR/# ©rn   rr   r  r_   )rt   s   "ri   ru   ru   y	  s   € ÷ *ñ * 4ñ *rh   c                 ó   € \         R J# rˆ   )rÏ  r_   rh   ri   rX  rX  y	  s   € ä TÐ)Ð)rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rþ   r¦   Úreset_event_log_on_exitr  r
  rr   rh  r_   )rt   s   "ri   ru   ru   	  s0   € ÷ %=ñ %=Øð%=à!ð%=ð  ð%=ð  ñ	%=rh   c           	   #  óV  "  € \        4       pRpV'       dc   \        VP                  4       4      \        VP                  4       4      \	        VP                  4       4      \	        VP                  4       4      3p\        P                  ! 4       pVP                  V V/ V4        Rx € VP                  V \        P                  ! 4       / VV4       Ve   VP                  ! V!   R# R#   TP                  T \        P                  ! 4       / TT4       Te   TP                  ! T!   i i ; i5i)zá
Context manager that creates a chromium start and end event. Chromium event
logging is integrated with dynamo_timed, so you probably want to use that
instead. Use this context manager only if you want to avoid dynamo_timed.
N)r  rÐ  rh  r  rÈ  rs  rx  r  r   rƒ  r�  r¢  )rþ   rÖ  r
  Úchromium_event_logÚreset_stateÚchromium_start_times   &&&   ri   Úchromium_event_timedrÛ  ~	  s  é € ô 3Ó4ÐØ>B€KßäÐ"×,Ñ,Ó.Ó/ÜÐ"×;Ñ;Ó=Ó>ÜÐ"×1Ñ1Ó3Ó4ÜÐ"×7Ñ7Ó9Ó:ð	
ˆô Ÿ,š,›.ÐØ×&Ñ&ØØØ
Øô	ð=Ûà×(Ñ(ØÜ�LŠL‹NØØØ!ô	
ð Ò"Ø×.Ò.°Ô<ñ #øð 	×(Ñ(ØÜ�LŠL‹NØØØ!ô	
ð Ò"Ø×.Ò.°Ó<ð #üs   ‚B D)Â#C' Â'A D)Ã'?D&Ä&D)zdict[tuple[int, str], object]Ú_cleanup_ownersc                  óš   € ] tR tRt$ RtR]R&   R]R&   ]P                  ! RRR7      tR	]R
&   R R lt	]
R R l4       t]
R R l4       tRtR# )ÚCleanupHooki¯	  z,Remove a global variable when hook is calledrX   Úscoper¦   r{   F)Úcomparerž  r  Útokenc               ó    € V ^8„  d   QhRRRR/# r4  r_   )rt   s   "ri   ru   ÚCleanupHook.__annotate__·	  s   € ÷ (ñ (˜cð ( dñ (rh   c                	ó*  € \         e   \         ;P                  ^,          un        \        V P                  4      V P                  3p\
        P                  VR 4      V P                  Jd   R # V P                  P                  V P                  R 4       R # rˆ   )ÚCleanupManagerr€   rL  rß  r{   rÜ  r®  rá  )rÃ  r^  rå   s   &* ri   Ú__call__ÚCleanupHook.__call__·	  se   € äÒ%Ü× Ò  AÕ%Õ ô
 �$—*‘*‹~˜tŸy™yÐ)ˆÜ×Ñ˜s DÓ)°·±Ó;Ùð 	�
‰
�‰�t—y‘y $Ö'rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rß  rX   r{   r¦   rŒ  r   rr   rÞ  r_   )rt   s   "ri   ru   rã  È	  s(   € ÷ /ñ /�nð /¨Cð /°cð /¸kñ /rh   c                	óÄ   € W9   d   \        R V: R24      h\        ;P                  ^,          un        W V&   \        4       pV\        \        V 4      V3&   \        WV4      # )zName z already exists in scope)r  rå  r€   r  rÜ  rL  rÞ  )rß  r{   rŒ  rá  s   &&& ri   rè  ÚCleanupHook.createÇ	  s[   € àŒ=Ü  5¨©Ð0HÐ!IÓJÐJÜ×Ò Õ!ÕØˆd‰Ü“ˆØ-2Œœ˜E› DÐ)Ñ*Ü˜5¨Ó.Ð.rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rß  rX   r{   r¦   rr   rs   r_   )rt   s   "ri   ru   rã  Ò	  s!   € ÷ 5ñ 5�nð 5¨Cð 5°Dñ 5rh   c                óH   € \         P                  \        V 4      V3R4       R# )zÁInvalidate whichever hook currently owns (scope, name), so that if
its code object outlives this call, firing later is a no-op instead of
deleting a binding something else has since taken over.N)rÜ  r®  rL  )rß  r{   s   &&ri   ÚdisownÚCleanupHook.disownÑ	  s   € ô
 	×ÑœR ›Y¨Ð-¨tÖ4rh   r_   N)r`   ra   rb   rc   r÷   r¡   rC  Úfieldrá  ræ  rf  rè  rí  rg   r_   rh   ri   rÞ  rÞ  ¯	  sT   ‡ á6àÓØ
ƒIØ×%Ò%¨e¸%Ô@€Eˆ6Ó@õ(ð  ô/ó ð/ð ô5ó ô5rh   rÞ  c                  ó>   a € ] tR tRt$ ^ tR]R&   R V 3R lltRtV ;t# )rå  iÙ	  zClassVar[CleanupManager]Úinstancec               ó    € V ^8„  d   QhRRRR/# rb  r_   )rt   s   "ri   ru   ÚCleanupManager.__annotate__Ý	  s   € ÷  ñ  ˜cð   dñ  rh   c                	óh   <€ V P                   V,           F
  pV! 4        K  	  \        SV `	  V4       R # rˆ   )r¨  rì  rZ  )rÃ  r\  rÃ   rð  s   && €ri   rZ  ÚCleanupManager._remove_idÝ	  s+   ø€ Ø—K‘K ×$Ð$ˆDÙŽFñ %ä‰Ñ˜3Örh   r_   )	r`   ra   rb   rc   r€   r¡   rZ  rg   rò  ró  s   @ri   rå  rå  Ù	  s   ø‡ Ø€EØ&Ó&÷ ö  rh   rå  c               ó    € V ^8„  d   QhRRRR/# ©rn   r°  útorch.Tensorrr   r_   )rt   s   "ri   ru   ru   æ	  s   € ÷ ñ �Lð  \ñ rh   c                óÖ   € V P                  4       P                  V P                  4      pV P                  '       d.   V P                  e    V P                  P                  4       Vn        V# )z!Clone the tensor and its gradient)ÚcloneÚrequires_grad_Úrequires_gradÚis_leafÚgrad)r°  Úys   & ri   Úclone_tensorr   æ	  sD   € à	�‰‹	× Ñ  §¡Ó1€AØ‡y‡y€y�Q—V‘VÒ'Ø—‘—‘“ˆŒØ€Hrh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   Úsrcrø  ÚdstÚattrr¦   rr   rs   r_   )rt   s   "ri   ru   ru   î	  s(   € ÷ 	ñ 	˜<ð 	¨lð 	À#ð 	È$ñ 	rh   c                óÚ   € \        W4      '       d<   \        W4      p\        Y\        VR4      '       d   VP                  4       MT4       R# \        W4      '       d   \	        W4       R# R# )a  Copy a single dynamo attribute from src to dst, or remove it from dst
if src doesn't have it. Uses .copy() for container types (set, dict) to
avoid shared references between src and dst, and assigns directly for
primitive types like bool (e.g., _has_dynamo_dim_marking).ÚcopyN)rí   ÚgetattrÚsetattrr  Údelattr)r  r  r  rŒ  s   &&& ri   Ú_copy_dynamo_attrr
  î	  sO   € ô
 ˆs×ÒÜ�cÓ ˆÜ�¬°°f×)=Ò)=˜3Ÿ8™8œ:À3ÖGÜ	�×	Ò	Ü�Öñ 
rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r  rø  r  rr   rs   r_   )rt   s   "ri   ru   ru   ú	  s!   € ÷ ;ñ ; |ð ;¸,ð ;È4ñ ;rh   c                óÆ   € \        WR4       \        WR4       \        WR4       \        WR4       \        WR4       \        WR4       \        WR4       \        WR4       R	# )
zö
Copy dynamo-specific tensor attributes from src to dst.
These attributes are used for dynamic shape marking and must be preserved
when cloning or casting tensors. If src doesn't have an attribute but dst does,
the attribute is removed from dst.
Ú_dynamo_dynamic_indicesÚ_dynamo_unbacked_indicesÚ_dynamo_hint_overridesÚ_dynamo_shape_idsÚ_dynamo_strict_unbacked_indicesÚ_dynamo_weak_dynamic_indicesÚ"_dynamo_propagated_dynamic_indicesÚ_has_dynamo_dim_markingN)r
  )r  r  s   &&ri   Úcopy_dynamo_tensor_attributesr  ú	  s\   € ô �cÐ 9Ô:Ü�cÐ :Ô;Ü�cÐ 8Ô9Ü�cÐ 3Ô4Ü�cÐ AÔBÜ�cÐ >Ô?Ü�cÐ DÔEÜ�cÐ 9Ö:rh   Údtypec               ó$   € V ^8„  d   QhRRRRRR/# )rn   r°  rø  r  ztorch.dtype | Nonerr   r_   )rt   s   "ri   ru   ru   
  s'   € ÷ Uñ U�<ð UÐ+=ð UÈñ Urh   c          
     óÌ  aa€ \        V 4      '       d   V # R R loR VV3R llp\        P                  ! 4       ;_uu_ 4        V P                  P                  R8X  d   V! V 4      uuRRR4       # V P
                  \        P                  J de   \        P                  ! V! V P                  4       4      V! V P                  4       4      V P                  V P                  4       R7      uuRRR4       # \        V 4      '       dÊ   V P
                  \        P                  \        P                  09   d"   V P                  4       pV P!                  4       pM V P#                  4       pV P%                  4       p\        P&                  ! V! V4      V! V4      V! V P)                  4       4      V P                  V P
                  R7      uuRRR4       # \+        V 4      '       d   V! V 4      uuRRR4       # \-        R	 \/        V P1                  4       V P3                  4       4       4       4      pV P4                  '       d!   \        P6                  ! V^ ,           3V 4      pME\        P8                  ! V^ ,           S;'       g    V P:                  V P                  S! V 4      R
7      pV P=                  4       VP=                  4       ,
          ^ ,          V P?                  4       ,          pVPA                  V P1                  4       V P3                  4       V4        VPC                  V PE                  4       4       V PF                  '       d   VPI                  V PJ                  4       V PF                  '       d+   V PL                  e   \O        V PL                  SR7      Vn&        \S        Y4       TuuRRR4       #   \P         d    T! T 4      u uuRRR4       # i ; i  + '       g   i     R# ; i)zcopy while preserving stridesc               ó    € V ^8„  d   QhRRRR/# )rn   r°  rø  rr   r  r_   )rt   s   "ri   ru   Ú!clone_input.<locals>.__annotate__
  s   € ÷ 
ñ 
 ð 
°ñ 
rh   c                ó”   € V P                   P                  R 8H  ;'       d)    \        V 4      '       * ;'       d    V P                  4       # )Úcpu)r�  r  r-   Ú	is_pinnedr¯  s   &ri   Úis_pinned_cpu_tensorÚ)clone_input.<locals>.is_pinned_cpu_tensor
  s?   € à�H‰H�M‰M˜UÑ"÷ ð Ü1°!Ó4Ô4÷ð à—‘“ð	
rh   c               ó    € V ^8„  d   QhRRRR/# r÷  r_   )rt   s   "ri   ru   r  
  s   € ÷ 	ñ 	�|ð 	¨ñ 	rh   c                óX  <€ \         P                  ! V 4      pS! V 4      '       d   VP                  4       pV P                  '       d   VP	                  V P
                  4       V P                  '       d+   V P                  e   \        V P                  SR7      Vn        \        W4       V# )N©r  )	rF  rú  Ú
pin_memoryrý  rû  rü  rþ  Úclone_inputr  )r°  rÿ  r  r  s   & €€ri   Útorch_cloneÚ clone_input.<locals>.torch_clone
  sr   ø€ Ü�KŠK˜‹NˆÙ ×"Ò"Ø—‘“ˆAØ�9�9ˆ9Ø×Ñ˜QŸ_™_Ô-Ø�9�9ˆ9˜Ÿ™Ò+Ü  §¡¨uÔ5ˆAŒFÜ% aÔ+Øˆrh   ÚxlaN)Úis_coalesced)Úlayoutc              3  óF   "  € T F  w  rV^,
          V,          x € K  	  R# 5ir¸   r_   )r®   ÚshapeÚstrides   &  ri   r°   Úclone_input.<locals>.<genexpr>D
  s"   é € ð 
Ù6O¡] UˆU�Q�Y˜&× Ò Ó6Oùs   ‚!)r  r�  r#  r"  )*rI   rF  Úno_gradr�  r  r)  Ú
sparse_cooÚsparse_coo_tensorÚ_indicesrl   r+  r(  r"   Ú
sparse_csrÚ
sparse_bsrÚcrow_indicesÚcol_indicesÚccol_indicesÚrow_indicesÚsparse_compressed_tensorr¨  r-   r’   ÚzipÚsizer,  Úis_quantizedÚempty_quantizedÚemptyr  Údata_ptrÚelement_sizeÚas_strided_Úcopy_rú  rý  rû  rü  rþ  r$  r  r  )	r°  r  r%  Úcompressed_indicesÚplain_indicesÚneeded_sizeÚresultÚcache_line_offsetr  s	   &d      @ri   r$  r$  
  sÎ  ù€ ô ˆq‡z‚zàˆõ
÷	ñ 	ô 
�Š��Ø�8‰8�=‰=˜EÔ!á˜q“>÷ 
Šð �8‰8”u×'Ñ'Ó'Ü×*Ò*Ù˜AŸJ™J›LÓ)Ù˜AŸI™I›KÓ(Ø—‘ØŸ^™^Ó-ô	÷ 
Šô " !×$Ò$Ø�x‰xœE×,Ñ,¬e×.>Ñ.>Ð?Ô?Ø%&§^¡^Ó%5Ð"Ø !§¡£‘à%&§^¡^Ó%5Ð"Ø !§¡£�Ü×1Ò1ÙÐ.Ó/Ù˜MÓ*Ù˜AŸH™H›JÓ'Ø—‘Ø—x‘xô÷) 
Šô6 +¨1×-Ò-ñ ˜q“>÷= 
Šô@ ñ 
Ü69¸!¿&¹&»(ÀAÇHÁHÃJÔ6Oó
ó 
ˆð �>�>ˆ>Ü×*Ò*¨K¸"Õ,<Ð+>ÀÓB‰Fä—[’[Ø˜bÕ Ø×&Ð&˜qŸw™wØ—x‘xÙ/°Ó2ô	ˆFð �Z‰Z‹\˜FŸO™OÓ-Õ-°Õ3Ø�^‰^ÓõÐð 	×Ñ˜1Ÿ6™6›8 Q§X¡X£ZÐ1BÔCð
	"Ø�L‰L˜Ÿ™›Ô#Ø�y�yˆyØ×%Ñ% a§o¡oÔ6Ø�y�yˆy˜QŸV™VÒ/Ü)¨!¯&©&¸Ô>�”ô 	& aÔ0Ø÷y 
Šøôl ô 	"ñ ˜q“>Ñ!÷u 
Šðl	"ú÷m 
�ˆús^   Á#OÁ1A7OÃ3COÇOÇ0B
OÉ;BOÌ0N/Í,N/Í.*N/ÎOÎ/OÏOÏOÏOÏO#	c               ó    € V ^8„  d   QhRRRR/# )rn   Úexample_inputszdict[str, T | tuple[T, ...]]rr   zdict[str, list[T]]r_   )rt   s   "ri   ru   ru   d
  s   € ÷ ñ Ø0ðàñrh   c                ó   € R # rˆ   r_   ©rH  s   &ri   Úclone_inputsrK  c
  s   € ñ rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rH  zSequence[T]rr   zlist[T]r_   )rt   s   "ri   ru   ru   j
  s   € × =Ñ = Ð =°Ñ =rh   c                ó   € R # rˆ   r_   rJ  s   &ri   rK  rK  i
  s   € Ù:=rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rH  r   rr   r_   )rt   s   "ri   ru   ru   m
  s   € ÷ ñ  ð ¨ñ rh   c                ó  € \        V 4      \        J d�   \        V 4      pVP                  4        Fn  w  r#\        V\        4      '       d   \        V4      W&   K*  \        V\        P                  4      '       g   \        R \        V4       24      h\        V4      W&   Kp  	  V# \        V 4      p\        \        V4      4       F>  p\        W,          \        P                  4      '       g   K+  \        W,          4      W&   K@  	  V# )z)Expected value to be a torch.Tensor, got )r  ÚdictrÙ   r„  r…  rK  rF  r'  r  r$  r¶  ÚrangerÐ  )rH  Úresrå   ræ   r”  s   &    ri   rK  rK  m
  sÉ   € äˆNÓœtÓ#Ü�>Ó"ˆØŸ)™)ž+‰JˆCÜ˜%¤×'Ò'Ü'¨Ó.�“ä! %¬¯©×6Ò6Ü(ØCÄDÈÃKÀ=ÐQóð ô ' uÓ-�“ñ &ð ˆ
ä
ˆ~Ó
€CÜ”3�s“8Ž_ˆÜ�c•fœeŸl™l×+Ô+Ü  ¥Ó(ˆC‹Fñ ð €Jrh   c               ó    € V ^8„  d   QhRRRR/# )rn   rŒ  rø  rr   rs   r_   )rt   s   "ri   ru   ru   ƒ
  s   € ÷ 
ñ 
¨ð 
¸$ñ 
rh   c           
     óÌ   €  V P                  4        R	#   \         dE   p^RIHp \        P
                  ! RR\        T 4      4      pT! RRRT R2. TRR7        R	p?R	# R	p?ii ; i)
r¹   rH  z\(.*rë  z(skip frame due to being in functorh modez(torch.compile cannot be run in context: z. Skipping frame.T)rL  rM  rN  rO  rP  Ú
skip_frameN)r>  r  r  rI  Úrerî  rž  )rŒ  rU  rI  Úfunctorch_subclass_names   &   ri   Úskip_frame_if_in_functorch_moderX  ƒ
  sg   € ð
Ø�‰ŽøÜô 
Ý&ô #%§&¢&¨°"´d¸3³iÓ"@ÐáØ>ØØBÐCZÐB[Ð[lÐmØØØ÷	
ó 	
ûð
ús   ‚ ”A#Ÿ9AÁA#c               ó   € V ^8„  d   QhRR/# ©rn   rr   úGenerator[None, None, None]r_   )rt   s   "ri   ru   ru   —
  s   € ÷ 7ñ 7Ð7ñ 7rh   c            	   #  óä  "  € \         P                  P                  p \         P                  P                  P
                  pV! 4       ;_uu_ 4        V ! 4       ;_uu_ 4        \         P                  ! \         P                  P                  4       4      p\        V4       \         P                  P                  4       '       d3   \         P                  ! \         P                  P                  4       4      p\         P                  P                  4       '       d3   \         P                  ! \         P                  P                  4       4      pR R R 4       R R R 4        R x € \         P                  P                  P                  4       ;_uu_ 4        \         P                  P                  X4       \         P                  P                  4       '       d    \         P                  P                  X4       \         P                  P                  4       '       d    \         P                  P                  X4       R R R 4       R #   + '       g   i     Lý; i  + '       g   i     EL	; i  + '       g   i     R # ; i  \         P                  P                  P                  4       ;_uu_ 4        \         P                  P                  X4       \         P                  P                  4       '       d    \         P                  P                  X4       \         P                  P                  4       '       d    \         P                  P                  X4       R R R 4       i   + '       g   i     i ; i; i5irˆ   )rF  rj  Ú_DisableFuncTorchrG  Ú_python_dispatchÚ_disable_current_modesrú  ÚrandomÚget_rng_staterX  rN  Úis_availableÚxpuÚset_rng_state)Údisable_functorchÚdisable_current_modesÚ	rng_stateÚcuda_rng_stateÚxpu_rng_states        ri   Úpreserve_rng_staterj  –
  sí  é € äŸ™×2Ñ2ÐÜ!ŸK™K×8Ñ8×OÑOÐÙ	×	 Õ	 Ñ"3×"5Õ"5Ü—K’K¤§¡× :Ñ :Ó <Ó=ˆ	Ü'¨	Ô2Ü�:‰:×"Ñ"×$Ò$Ü"Ÿ[š[¬¯©×)AÑ)AÓ)CÓDˆNÜ�9‰9×!Ñ!×#Ò#Ü!ŸKšK¬¯	©	×(?Ñ(?Ó(AÓBˆM÷ #6×	 ð7Ûä�[‰[×)Ñ)×@Ñ@×BÕBÜ�L‰L×&Ñ& yÔ1Ü�z‰z×&Ñ&×(Ò(Ü—
‘
×(Ñ(¨Ô8Ü�y‰y×%Ñ%×'Ò'Ü—	‘	×'Ñ'¨Ô6÷ CÑB÷ #6×"5ú×	 ×	 Ð	 ú÷ C×BÐBûŒU�[‰[×)Ñ)×@Ñ@×BÕBÜ�L‰L×&Ñ& yÔ1Ü�z‰z×&Ñ&×(Ò(Ü—
‘
×(Ñ(¨Ô8Ü�y‰y×%Ñ%×'Ò'Ü—	‘	×'Ñ'¨Ô6÷ C×B×BÐBÿs“   ‚AM0ÁIÁ B7H?	Ä2H?	Å
IÅM0ÅI: Å0M0ÆBI&ÈI&È5
M0È?IÉ
IÉI#	É	M0É&I7	É1	M0É:1M-Ê+BM	Ì2M	Í	M-ÍM*Í%M-Í-M0c               ó    € V ^8„  d   QhRRRR/# )rn   Úmodel0r   rr   z•TypeIs[torch.jit._trace.TopLevelTracedModule | torch.jit._script.RecursiveScriptModule | torch.jit.ScriptFunction[Any, Any] | torch.jit.ScriptModule]r_   )rt   s   "ri   ru   ru   ¬
  s   € ÷ ñ Øððñrh   c                ó
  € \        V \        P                  P                  P                  \        P                  P
                  P                  \        P                  P                  \        P                  P                  34      # rˆ   )	r„  rF  ÚjitÚ_traceÚTopLevelTracedModuleÚ_scriptÚRecursiveScriptModuleÚScriptFunctionÚScriptModule)rl  s   &ri   Úis_jit_modelru  ¬
  sY   € ô Øä�I‰I×Ñ×1Ñ1Ü�I‰I×Ñ×3Ñ3Ü�I‰I×$Ñ$Ü�I‰I×"Ñ"ð		
óð rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   r‰  r   rH  rÏ  r  rr   r_   )rt   s   "ri   ru   ru   ¿
  s(   € ÷ ñ �sð ¨Cð ¸$ð È3ñ rh   c                ó^  € \        V 4      '       d   V #  \        P                  P                  W4      #   \         dn     \        P                  P                  T 4      u #   \         d:    T'       d   \        P                  R 4        M\        P                  R4         R# i ; i R# i ; i)z	jit errorz0Both torch.jit.trace and torch.jit.script failedN)	ru  rF  rn  Útracer  Úscriptr�   r(  Úerror)r‰  rH  rÏ  s   &&&ri   Útorchscriptr{  ¿
  s�   € Ü�E×Òàˆð	NÜ�y‰y�‰˜uÓ5Ð5øÜô Nð	NÜ—9‘9×#Ñ# EÓ*Ò*øÜô 	NßÜ—‘˜kÖ*ä—	‘	ÐLÖMÙð	Núà*ñ ðNúsE   •4 ´B,Á A!ÁB,Á!B%Á4B%Â	B,ÂB%Â B,Â$B%Â%B,Â+B,c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r  rr   rs  r_   )rt   s   "ri   ru   ru   Ñ
  s   € ÷ ñ �ð ˜Jñ rh   c                ó`   €  \         P                  ! V 4      #   \        \        3 d     R # i ; irˆ   )ré  Úgetfiler;  ÚOSError©ri  s   &ri   r~  r~  Ñ
  s/   € ðô �Š˜sÓ#Ð#øÜ”wÐô Úðús   ‚ ˜-¬-c               ó    € V ^8„  d   QhRRRR/# ©rn   ri  r  rr   r  r_   )rt   s   "ri   ru   ru   Û
  s   € ÷ (ñ (�vð ( $ñ (rh   c                ó*   € \        \        V 4      4      # )zLTest if an object is a namedtuple or a torch.return_types.* quasi-namedtuple)Úis_namedtuple_clsr  r€  s   &ri   Úis_namedtupler…  Û
  s   € äœT #›YÓ'Ð'rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r|   r  rr   r  r_   )rt   s   "ri   ru   ru   à
  s   € ÷ ñ ˜6ð  dñ rh   c                ó`  a € \        S \        4      '       g   R#  \        S \        4      '       dì   \	        S RR4      pVR	9   d   R# \        \	        S RR4      \        4      '       dµ   \        \	        S RR4      4      '       d™   \        ;QJ d    . R S P                   4       F  NK  	  5M! R S P                   4       4      pV\        38X  d   R# V'       dC   \        ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       d   R# R#   \         d     R# i ; i)
zhTest if an object is a namedtuple or a (torch.return_types|torch.autograd.forward_ad).* quasi-namedtupleFra   NTÚ_fieldsÚ_makec              3  ó<   "  € T F  q\         Jg   K  Vx € K  	  R # 5irˆ   )r   )r®   Úts   & ri   r°   Ú$is_namedtuple_cls.<locals>.<genexpr>í
  s   é € ÐK© AÄ7Ð:JŸaša«ùs   ‚’
c              3  óz   <"  € T F0  p\        V4      ;'       d    SP                  VP                  J x € K2  	  R # 5irˆ   )r„  Ú__new__)r®   r‹  r|   s   & €ri   r°   rŒ  ñ
  s@   øé € ð !ñ #˜ô	 *¨!Ó,÷ 5ð 5àŸK™K¨1¯9©9Ð4ô5ó #ùs   ƒ;š!;)útorch.return_typesztorch.autograd.forward_ad)	r„  r  Ú
issubclassr…  r  ÚcallableÚ	__bases__Úanyr;  )r|   ÚmoduleÚbasess   f  ri   r„  r„  à
  sú   ø€ ä�cœ4× Ò ÙðÜ�cœ5×!Ò!Ü˜S ,°Ó5ˆFØÐLÔLÙÜœ' # y°$Ó7¼×?Ò?ÄHÜ˜˜W dÓ+÷Eò E÷ œÑK¨¯ªÓKŸ™ÑK¨¯ªÓKÓK�ØœU˜HÔ$áßŸS›Sô !ñ #ó!ŸSŸSšSô !ñ #ó!÷ ò ñ  ñ øô ô ØÙðús7   ›*D ÁAD ÂAD ÃD Ã
D Ã%D Ã<D ÄD-Ä,D-c               ó    € V ^8„  d   QhRRRR/# )rn   r|   r  rr   ztuple[str, ...]r_   )rt   s   "ri   ru   ru     s   € ÷ 1ñ 1˜4ð 1 Oñ 1rh   c                óà  € V \         J d   R# \        V \        4      '       g   \        RV  24      h\	        V R4      '       d   V P
                  # \        P                   ! R R4      4       pV P                  R8w  d   \        RV P                  : 24      hV ! \        V\        V P                  4      4      4      p/ p\        V4       FG  pV^ ,          R8w  g   K  \        \        W$4      V4      '       g   K0  \        W$4      P                  W4&   KI  	  \!        V4      V P                  8w  d%   \        RV P                   R	\!        V4       24      h\        \#        W3P$                  R
7      4      # )zIGet the fields of a namedtuple or a torch.return_types.* quasi-namedtuplez,Expected cls to be a subclass of tuple, got rˆ  c                  ó"   € ] tR tRt$ R]R&   RtR# )Ú!namedtuple_fields.<locals>.Markeri  rq   Úindexr_   N©r`   ra   rb   rc   r¡   rg   r_   rh   ri   ÚMarkerr™    s   ‡ à�
rh   rœ  r�  z8Expected cls.__module__ to be 'torch.return_types', got r  z	Expected z fields, got )rå   )ÚstartÚstopÚstep)Úslicer�  r…  r  rí   rˆ  rC  Ú	dataclassra   r­   rQ  Ún_fieldsÚdirr„  r  rš  rÐ  rÝ  r�   )r|   rœ  ri  Úfieldsr{   s   &    ri   Únamedtuple_fieldsr¥     s:  € ð Œeƒ|Ø(Ð(ä�cœ5×!Ò!ÜÐKÈCÈ5ÐQÓRÐRÜˆs�I×Òà�{‰{Ðä×Ñ÷ð ó ðð ‡~�~Ð-Ô-ÜØFÀsÇ~Á~ÑFXÐYó
ð 	
ñ Œc�&œ% §¡Ó-Ó.Ó
/€CØ€FÜ�C–ˆØ��7�cŽ>œj¬°Ó);¸V×DÔDÜ" 3Ó-×3Ñ3ˆF‹Lñ ô ˆ6ƒ{�c—l‘lÔ"ÜØ˜Ÿ™�~ ]´3°v³;°-Ð@ó
ð 	
ô ”˜§J¡JÔ/Ó0Ð0rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ÚgmrŠ  rr   zCallable[[], None]r_   )rt   s   "ri   ru   ru   !  s   € ÷ ñ Ð.ð Ð3Eñ rh   c           
     ót  aaa€ \         P                  ! 4       ;_uu_ 4        \         P                  ! \         P                  P	                  4       4      o\         P
                  P                  4       '       d3   \         P                  ! \         P
                  P	                  4       4      o\        P                  ! V P                  4       V P                  4       4       Uu. uF%  pWP                  \         P                  ! V4      3NK'  	  upoR R R 4       R VVV3R llpV# u upi   + '       g   i     L"; i)Nc               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   Ú'checkpoint_params.<locals>.__annotate__,  s   € ÷ 0ñ 0�Tñ 0rh   c                 ó   <€ \         P                  ! 4       ;_uu_ 4        \         P                  P                  S4       \         P                  P                  4       '       d    \         P                  P                  S4       S F*  w  rpV P                  V8w  g   K  V P                  V4       K,  	  R R R 4       R #   + '       g   i     R # ; irˆ   )rF  r.  r`  rd  rN  rb  Ú_versionrA  )ÚparamrM  Úoriginal_valuerh  rg  Úsaved_states      €€€ri   ÚrestoreÚ"checkpoint_params.<locals>.restore,  sx   ø€ Ü�]Š]�_�_Ü�L‰L×&Ñ& yÔ1Ü�z‰z×&Ñ&×(Ò(Ü—
‘
×(Ñ(¨Ô8Û2=Ñ.� Ø—>‘> WÖ,Ø—K‘K Ö/ñ 3>÷	 �_�_Š_ús   ŸA9B<ÂB<Â<C	)rF  r.  rú  r`  ra  rN  rb  r´   rµ   Ú
parametersÚbuffersr¬  )r§  r­  r°  rh  rg  r¯  s   &  @@@ri   Úcheckpoint_paramsr´  !  sÅ   ú€ Ü	�Š��Ü—K’K¤§¡× :Ñ :Ó <Ó=ˆ	Ü�:‰:×"Ñ"×$Ò$Ü"Ÿ[š[¬¯©×)AÑ)AÓ)CÓDˆNô #Ÿš¨¯©«¸"¿*¹*»,ÔGó
ñ H�ð —N‘N¤E§K¢K°Ó$6Ó7áGñ
ˆ÷	 
÷0ò 0ð €Nùò
÷	 
�ús   ¡B>D'Ã+D"Ä
D'Ä"D'Ä'D7	c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   r‰  r   rH  úIterable[Any]Útimesrq   rr   ztuple[Any, float]r_   )rt   s   "ri   ru   ru   8  s,   € ÷ ñ ØðØ -ðØ69ðàñrh   c                ó–  € \         P                  P                  4       '       d   \         P                  P                  pM\        pV! 4        \
        P                  ! 4        \         P                  ! R 4       \        P                  ! 4       p\        V4       F  pV ! V!  pV! 4        K  	  \        P                  ! 4       pXWt,
          3# )i9  )rF  Úacceleratorrb  ÚsynchronizerA  ÚgcÚcollectÚmanual_seedr  Úperf_counterrQ  )r‰  rH  r·  rº  Út0r  rE  Út1s   &&&     ri   ÚtimedrÁ  8  s’   € ô ×Ñ×%Ñ%×'Ò'Ü×'Ñ'×3Ñ3‰äˆá„MÜ‡J‚J„LÜ	×Ò�dÔÜ	×	Ò	Ó	€BÜ�5Ž\ˆÙ˜Ñ'ˆÙŽñ ô 
×	Ò	Ó	€BØ�2•7ˆ?Ðrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r§  rŠ  rH  r¶  rr   r  r_   )rt   s   "ri   ru   ru   K  s'   € ÷ Xñ XÐ*ð X¸Mð XÈdñ Xrh   c           	     óö   € \         ;QJ d?    R  \        P                  ! WP                  R4      4       4       F  '       d   K   R# 	  R# ! R  \        P                  ! WP                  R4      4       4       4      # )c              3  ó8   "  € T F  qP                   x € K  	  R # 5irˆ   )Úis_cuda©r®   r°  s   & ri   r°   Ú check_is_cuda.<locals>.<genexpr>L  s   é € ÐWÑ"V˜Q�yŽyÓ"Vùó   ‚TF)Úallr´   rµ   r²  )r§  rH  s   &&ri   Úcheck_is_cudarÊ  K  sQ   € ß‹3ÑW¤)§/¢/°.Ç-Á-ÐPTÓBUÔ"VÓW�3Œ3ÐWŠ3ÐWˆ3ÑW¤)§/¢/°.Ç-Á-ÐPTÓBUÔ"VÓWÓWÐWrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r2  rq   rr   úCallable[..., Any]r_   )rt   s   "ri   ru   ru   P  s   € ÷ ñ �Cð Ð.ñ rh   c                ó  € V ^8:  d   \        RV  24      h\        V 4       Uu. uF  pRV 2NK
  	  pp\        VR
R VRR
 ,           4      p\        RRP	                  V4       RRP	                  V4       R24      pRV  R	2Vn        V# u upi )r¹   zExpected n > 1, got rC  Nzlambda rÙ  z: (Ú)Úrot_Ú_helperr­  )r  rQ  ÚreversedÚevalr¬   r`   )r2  r”  ÚvarsÚrotatedr  s   &    ri   Úrot_n_helperrÕ  O  s›   € àˆA„vÜÐ3°A°3Ð7Ó8Ð8Ü" 1œXÓ&™X˜ˆa�ˆs‹G™X€DÐ&Ü�t˜B˜C�y 4¨¨ 9Õ,Ó-€GÜ	�˜Ÿ™ ›Ð' s¨3¯8©8°GÓ+<Ð*=¸QÐ?Ó	@€BØ˜˜˜7Ð#€B„KØ€Iùò	 's   £Bz	set[type]Úcommon_constant_typesc               ó    € V ^8„  d   QhRRRR/# )rn   rC  r  rr   r  r_   )rt   s   "ri   ru   ru   �  s   € ÷ ñ ˜ð  4ñ rh   c                óN  € \        V \        \        34      '       d   \        \	        \
        V 4      4      # \        V \        P                  \        \        P                  \        P                  \        P                  34      ;'       g    \        V \         \"        0,          4      # rˆ   )rm  r…  Ú	frozensetrÉ  r­   Úis_safe_constantr„  ÚenumÚEnumr  rF  ÚSizer¡  Ú_GenericAliasrŸ  ÚGenericAliasrÖ  r   r]  s   &ri   rÚ  rÚ  �  s€   € Üˆa”%œÐ#×$Ò$Ü”3Ô'¨Ó+Ó,Ð,ÜØ	ä�I‰IÜÜ�J‰JÜ× Ñ Ü×Ñð	
ó	÷ ð ô 
Ø	Ü¤ Õ'ó
ðrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   zset[int]r_   )rt   s   "ri   ru   ru   ”  s   € ÷ ñ ˜(ñ rh   c                 ó
   € ^ ^0# r  r_   r_   rh   ri   Úcommon_constantsrâ  “  s   € ð
 	
Ø	ð	ð rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r  rr   z'TypeGuard[torch.SymBool | torch.SymInt]r_   )rt   s   "ri   ru   ru   �  s   € ÷ ñ ˜ð Ð#Jñ rh   c                óô   € \        V \        P                  \        P                  34      ;'       dH    \        V P                  \        P
                  P                  P                  P                  4      '       * # rˆ   )	r„  rF  ÚSymBoolÚSymIntr’  Únestedr  Ú
nested_intÚNestedIntNoder¤  s   &ri   Úis_torch_symrê  �  sU   € Ü�eœeŸm™m¬U¯\©\Ð:Ó;÷ ð ÄJØ�
‰
”E—L‘L×*Ñ*×5Ñ5×CÑCóEô Að rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ræ   r   Úsourcerr   r  r_   )rt   s   "ri   ru   ru   £  s!   € ÷ ñ  cð °3ð ¸4ñ rh   c                óš  € ^RI Hp \        P                  ! 4       P                  '       * ;'       Ed    VP
                  P                  4       '       * ;'       gó    VP
                  P                  4       ;'       d    \        P                  '       * ;'       g´    VP
                  P                  4       ;'       d    \        P                  '       * ;'       gu    VP
                  P                  4       ;'       d    \        P                  '       * ;'       g6    V! V4      ;'       g&    \        R4      '       * ;'       d    V \        4       9   # )r¹   )Úis_from_defaultsz5pytorch/dynamo:enable_unspecialize_zero_one_plain_int)rì  rî  r!   r�   Ú#force_unspec_int_unbacked_size_likeÚguard_sourceÚis_localÚis_specialized_nn_modulerG   Úallow_unspec_int_on_nn_moduleÚ"is_unspecialized_builtin_nn_moduleÚis_unspecialized_nn_moduler#   râ  )ræ   rì  rî  s   && ri   Úis_int_specialization_caserö  £  s  € Ý(ä×!Ò!Ó#×GÑGÔG÷ ñ à×Ñ×(Ñ(Ó*Ô*÷ 	
ð 	
ð
 ×Ñ×8Ñ8Ó:÷ 9ð 9Ü×8Ñ8Ô8÷	
ð 	
ð ×Ñ×BÑBÓD÷ 9ð 9Ü×8Ñ8Ô8÷	
ð 	
ð ×Ñ×:Ñ:Ó<÷ 9ð 9Ü×8Ñ8Ô8÷	
ð 	
ñ  ˜FÓ#÷!	
ð 	
ô(  Ð WÓXÔX÷ ,ð ,ØÔ)Ó+Ñ+ð/rh   c               ó    € V ^8„  d   QhRRRR/# ©rn   rE  r   rr   r_   )rt   s   "ri   ru   ru   Â  s   € ÷ ñ ˜Cð  Cñ rh   c                ó  € ^RI HpHpHp ^RIHp \        W4      '       d»   V P                  4       '       g•   \        W4      '       g„   V P                  4       pV P                  4       p\        V4      ;'       gG    \        P                  '       * ;'       d*    \        V4      \        J ;'       d    \        We4      '       * pV'       g   V # V P!                  4       p \        W4      '       d    VP#                  V P%                  4       4      # V # )r¹   )ÚConstantVariableÚLazyVariableTrackerÚSymNodeVariable)ÚComputedLazyConstantVariable)r½  rú  rû  rü  Úvariables.lazyrý  r„  Úis_realizedÚoriginal_sourcer®  rê  rG   Úspecialize_intr  rq   rö  Úrealizerè  Úevaluate_expr)rE  rú  rû  rü  rý  rì  ræ   Úis_symnode_vts   &       ri   Úspecialize_symnoder  Â  sà   € ßQÑQÝ<ô �#×+Ò+Ø�‰× Ò ¬°C×)VÒ)Vð ×(Ñ(Ó*ˆFØ×&Ñ&Ó(ˆEä(¨Ó/÷ ð Ü×)Ñ)Ô)÷ Bð BÜ˜“K¤3Ð&÷Bð Bä2°5ÓAÔAð ÷ !Ø�
ð �k‰k‹mˆä�#×'Ò'Ø×&Ñ& s×'8Ñ'8Ó':Ó;Ð;Ø€Jrh   c               ó    € V ^8„  d   QhRRRR/# rø  r_   )rt   s   "ri   ru   ru   à  s   € ÷ ñ �cð ˜cñ rh   c                ó–   € ^RI Hp \        V 4      p \        W4      '       d'   V P	                  4       '       d   V P                  4       # V # )r¹   r?   )r½  r@   r  r„  r  r  )rE  r@   s   & ri   Úguard_if_dynr  à  s<   € Ý*ä
˜SÓ
!€Cä�#×'Ò'¨C×,BÑ,B×,DÒ,DØ×%Ñ%Ó'Ð'à€Jrh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   r^  r¶  r`  zMapping[Any, Any]rr   r  r_   )rt   s   "ri   ru   ru   ë  s'   € ÷ Wñ W˜mð WÐ5Fð WÈ4ñ Wrh   c                óò   € \         ;QJ d>    R  \        P                  ! WP                  4       4       4       F  '       d   K   R# 	  R# ! R  \        P                  ! WP                  4       4       4       4      # )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irˆ   ©r  rÆ  s   & ri   r°   Ú&check_constant_args.<locals>.<genexpr>ì  s   é € ÐVÑ/U¨!×#Ñ#×%Ð%Ó/UùrG  FT)rÉ  r´   rµ   r¨  r@  s   &&ri   Úcheck_constant_argsr  ë  sI   € ß‹3ÑV¬y¯ª¸tÇ]Á]Ã_Ô/UÓV�3Œ3ÐVŠ3ÐVˆ3ÑV¬y¯ª¸tÇ]Á]Ã_Ô/UÓVÓVÐVrh   c               ó$   € V ^8„  d   QhRRRRRR/# r
  r_   )rt   s   "ri   ru   ru   ï  s#   € ÷ 
ñ 
 =ð 
Ð:Kð 
ÐPTñ 
rh   c                ó
  € ^RI Hp ^RIHp ^ p\        P
                  ! WP                  4       4       FI  p\        WS4      '       d   V^,          pK  \        WR4      '       d   VP                  4       '       d   KH   R# 	  V^ 8„  # )r¹   r?   ©ÚUnspecializedPythonVariableF)	r½  r@   Úvariables.tensorr  r´   rµ   r¨  r„  r  )r^  r`  r@   r  Úunspec_countr°  s   &&    ri   Úcheck_unspec_python_argsr  ï  sd   € Ý*Ý=à€LÜ�_Š_˜T§=¡=£?Ö3ˆÜ�a×5Ò5Ø˜AÕŠLÜ˜Q×0Ò0°Q×5IÑ5I×5KÔ5KÚñ	 4ð
 ˜!ÑÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# r
  r_   )rt   s   "ri   ru   ru   ü  s$   € ÷ 
ñ 
Ø
ð
Ø!2ð
à	ñ
rh   c                óÀ   € ^RI Hp \        P                  ! WP	                  4       4       F/  pVP                  4       '       d   K  \        W24      '       d   K.   R# 	  R# )r¹   r  FT)r  r  r´   rµ   r¨  r  r„  )r^  r`  r  r°  s   &&  ri   Úcheck_unspec_or_constant_argsr  ü  sA   € õ
 >ä�_Š_˜T§=¡=£?Ö3ˆØ×$Ñ$×&Ô&¬*°Q×*TÔ*TÚñ 4ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# r
  r_   )rt   s   "ri   ru   ru   	  s#   € ÷ ñ  =ð Ð:Kð ÐPTñ rh   c                ó  a€ ^RI Ho \        ;QJ dA    V3R l\        P                  ! WP                  4       4       4       F  '       g   K   R# 	  R# ! V3R l\        P                  ! WP                  4       4       4       4      # )r¹   )ÚNumpyNdarrayVariablec              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5irˆ   )r„  )r®   r°  r  s   & €ri   r°   Ú+check_numpy_ndarray_args.<locals>.<genexpr>  s#   øé € ð á7ˆAô 	�1Ð*×+Ð+Û7ùs   ƒTF)r  r  r“  r´   rµ   r¨  )r^  r`  r  s   &&@ri   Úcheck_numpy_ndarray_argsr  	  s_   ø€ Ý6ç‹3ô ä—’ §}¡}£Ô7ó�3Œ3ð Š3ð ˆ3ô ä—’ §}¡}£Ô7óó ð rh   ztype[KeysView[Any]]Ú	dict_keysztype[ValuesView[Any]]Údict_valuesztype[ItemsView[Any, Any]]Ú
dict_itemsÚodict_valuesztype[Iterator[Any]]Útuple_iteratorÚrange_iteratorÚKÚVc               ó    € V ^8„  d   QhRRRR/# )rn   r÷  ú
dict[K, V]rr   zKeysView[K]r_   )rt   s   "ri   ru   ru   D  s   € ÷ ñ ˜ð ¨ñ rh   c                ó†   € \        V \        4      '       g   \        R \        V 4       24      h\        P	                  V 4      # )zExpected d to be a dict, got )r„  rP  r  r  r·  )r÷  s   &ri   Úbuiltin_dict_keysr+  D  s4   € ä�aœ×ÒÜÐ<¼TÀ!»W¸IÐFÓGÐGÜ�9‰9�Q‹<Ðrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r)  rr   zIterable[tuple[K, V | Any]]r_   )rt   s   "ri   ru   ru   K  s   € ÷ 	Gñ 	G˜Zð 	GÐ,Gñ 	Grh   c                óÜ  € \        V \        4      '       g   \        R \        V 4       24      h\	        V \        \
        34      '       d   V P                  4       # \        V \
        4      '       d<   \
        P                  ! V 4       Uu. uF  q\
        P                  ! W4      3NK  	  up# \        P                  V 4       Uu. uF  q\        P                  W4      3NK  	  up# u upi u upi )zExpected obj to be a dict, got )	r„  rP  r  r  rm  r   rÙ   r·  rM  )ri  rB  s   & ri   Úget_items_from_dictr.  K  sµ   € ä�cœ4× Ò ÜÐ>¼tÀC»y¸kÐJÓKÐKÜˆc”Dœ+Ð&×'Ò'Ø�y‰y‹{ÐÜ	�Cœ×	%Ò	%Ü>I×>NÒ>NÈsÔ>SÓTÑ>S¸”K×+Ò+¨CÓ3Ó4Ñ>SÑTÐTä7;·y±yÀ´~ÓF±~°!”D×$Ñ$ SÓ,Ó-±~ÑFÐFùò UùâFs   Â C$ÃC)c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r)  rr   z Iterable[tuple[int, K, V | Any]]r_   )rt   s   "ri   ru   ru   W  s   € ÷ 9ñ 9Ø	ð9à%ñ9rh   c                óò   a€ \        V 4      p\        V \        4      '       d?   \        \        P                  V 4      4       UUu/ uF  w  r#W2bK	  	  uppoV3R lV 4       # R \        V4       4       # u uppi )a„  Enumerate dict items yielding (dict_keys_position, key, value).

For OrderedDicts where move_to_end/prepend has been used, the OrderedDict
iteration order can differ from dict.keys() order.  We iterate in
OrderedDict order (correct execution semantics) but return each key's
dict.keys() position so that ConstDictKeySource indices stay consistent
with PyDict_Next / C++ DictGuardManager.
c              3  ó>   <"  € T F  w  rSV,          W3x € K  	  R # 5irˆ   r_   )r®   rB  rC  Ú
key_to_poss   &  €ri   r°   Ú5enumerate_items_with_dict_position.<locals>.<genexpr>e  s   øé € Ð8±%©$¨!�˜A• Õ%³%ùó   ƒc              3  ó4   "  € T F  w  pw  r#WV3x € K  	  R # 5irˆ   r_   )r®   r”  rB  rC  s   &   ri   r°   r3  f  s   é € Ð8Ñ'7™)˜!™V˜aˆQ�1�IÓ'7ùrE  )r.  r„  r   Ú	enumeraterP  r·  )ri  rÙ   r”  rB  r2  s   &   @ri   Ú"enumerate_items_with_dict_positionr7  W  sd   ø€ ô   Ó$€EÜ�#”{×#Ò#Ü'0´·±¸3³Ô'@ÔAÑ'@™t˜q�a’dÑ'@ÒAˆ
Ü8±%Ó8Ð8Ù8¤y°Ô'7Ó8Ð8ùó Bs   ÁA3c               ó    € V ^8„  d   QhRRRR/# ©rn   r|   r   rr   r_   )rt   s   "ri   ru   ru   i  s   € ÷ ñ �sð ˜sñ rh   c                ón   € \        V 4      p\        P                  P                  P	                  V4       V# rˆ   )Ú
object_newrF  r(  ÚModulerÄ  )r|   ri  s   & ri   Únn_module_newr=  i  s&   € Ü
�S‹/€CÜ	‡H�H‡O�O×Ñ˜SÔ!Ø€Jrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ÚitúIterable[T]rr   rq   r_   )rt   s   "ri   ru   ru   o  s   € ÷ 1ñ 1�ð 1 ñ 1rh   c                óN   € \         P                  ! \        P                  V ^4      # ©r¹   )ræ  ÚreduceÚoperatorÚmul)r?  s   &ri   ÚproductrF  o  s   € Ü×ÒœHŸL™L¨"¨aÓ0Ð0rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r?  r   rš  rq   rr   r_   )rt   s   "ri   ru   ru   s  s!   € ÷ ñ ˜sð ¨3ð °3ñ rh   c                óJ   € V P                  4       w  pw  r4W4V,           ,          # rˆ   )Ú
__reduce__)r?  rš  r  ri  r�  s   &&   ri   Útuple_iterator_getitemrJ  s  s!   € Ø—}‘}“Ñ€A�vˆØ�u�}ÕÐrh   c               ó    € V ^8„  d   QhRRRR/# r9  r_   )rt   s   "ri   ru   ru   x  s   € ÷ :ñ :˜#ð : #ñ :rh   c                óh   € \         P                  P                  \        P                  4      ! V 4      # rˆ   )rF  Ú_dynamoÚdisablerC  r¤  rŠ   s   &ri   Údataclass_fieldsrO  x  s"   € Ü�=‰=× Ñ ¤×!3Ñ!3Ô4°SÓ9Ð9rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Ú
count_iterzIterator[Any]rr   ztuple[Any, Any]r_   )rt   s   "ri   ru   ru     s   € ÷ ñ  ]ð °ñ rh   c                ó6  €  V P                  4       w  r\        T4      ^8X  d   T^ ,          ^3# T^ ,          T^,          3#   \         dÍ    ^ RIp\        T 4      pTP	                  R4      '       d   TP                  R4      '       g   \        \        3u #  TP                  RT^R  R24      pM%  \        \        3 d    \        \        3u u # i ; i\        T\        4      '       d   ^\        T4      u;8:  d   ^8:  g   M \        \        3u #  ELi ; i)rx   Nzcount(rÎ  Ú(ú,)r­  )rI  r;  Úastrž  Ú
startswithrˆ  ÚNotImplementedÚliteral_evalÚSyntaxErrorr<  r„  r…  rÐ  )rQ  r  r^  rU  Ú
count_reprs   &    ri   Únormalize_count_iterr[    s  € ð4Ø×'Ñ'Ó)‰ˆô  ˆ4ƒy�A„~Ø�Q•˜ˆ|ÐØ��G�T˜!•WÐÐøô# ô 4ó 	ä˜*Ó%ˆ
Ø×$Ñ$ X×.Ò.°j×6IÑ6IÈ#×6NÒ6NÜ"¤NÐ3Ò3ð	4Ø×#Ñ# a¨
°1°RÐ(8Ð'9¸Ð$<Ó=‰DøÜœZÐ(ô 	4Ü"¤NÐ3Ô3ð	4úä˜$¤×&Ò&¨a´3°t³9Ö.AÀÖ.AÜ"¤NÐ3Ò3ò /Bð4ús<   ‚A ÁADÂ	DÂB1Â0DÂ1CÃDÃCÃ?DÄDc               ó    € V ^8„  d   QhRRRR/# )rn   Ú
range_iterr   rr   ztuple[int, int, int]r_   )rt   s   "ri   ru   ru   –  s   € ÷ ñ  Sð Ð-Añ rh   c                óÀ   € V P                  4       w  pw  r#VP                  T;'       g    ^ VP                  ,          ,           pVP                  pVP                  pWEV3# r  )rI  r�  rŸ  rž  )r]  r  Ú	range_objÚ	maybe_idxr�  rž  rŸ  s   &      ri   Únormalize_range_iterra  –  sS   € Ø!+×!6Ñ!6Ó!8Ñ€A�|ˆ	ð �O‰O˜yŸ~˜~¨A°·±Õ?Õ?€EØ�>‰>€DØ�>‰>€DØ˜ÐÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r‹  r   r|   r  rr   r_   )rt   s   "ri   ru   ru   ¤  s!   € ÷ ñ �3ð ˜Tð  cñ rh   c                ó$   € V P                  V4      # rˆ   )Úas_subclass)r‹  r|   s   &&ri   Úto_subclassre  ¤  s   € Ø�=‰=˜ÓÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r÷  údict[Any, Any]r2  rq   rr   r   r_   )rt   s   "ri   ru   ru   ¬  s!   € ÷ :ñ :˜ð :¨Cð :°Cñ :rh   c                óv   € \        \        P                  ! \        P	                  V 4      W^,           4      4      # rB  )Únextr´   ÚislicerP  r·  )r÷  r2  s   &&ri   Údict_keys_getitemrk  «  s(   € ô
 ”	× Ò ¤§¡¨1£¨q°aµ%Ó8Ó9Ð9rh   c               ó    € V ^8„  d   QhRRRR/# )rn   rÉ  r@  rr   zIterator[T]r_   )rt   s   "ri   ru   ru   ³  s   € ÷ ñ �[ð  [ñ rh   c                óÄ   € \        V \        4      '       d   \        P                  V 4      # \        V \        4      '       d   \        P                  V 4      # \	        V 4      # rˆ   )r„  rÈ  Ú__iter__rÙ  Úiter©rÉ  s   &ri   Úset_base_iterrq  ³  sD   € Ü�!”S×ÒÜ�|‰|˜A‹ÐÜ�!”Y×ÒÜ×!Ñ! !Ó$Ð$Ü�‹7€Nrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÉ  zset[T]r2  rq   rr   rJ   r_   )rt   s   "ri   ru   ru   »  s!   € ÷ =ñ =�6ð =˜cð = añ =rh   c                óš   €  \        \        P                  ! \        V 4      W^,           4      4      #   \         d    \        R4      Rhi ; i)r¹   zset index out of rangeN)ri  r´   rj  rq  ÚStopIterationÚ
IndexError)rÉ  r2  s   &&ri   Úset_getitemrv  »  sE   € ð=Ü”I×$Ò$¤]°1Ó%5°q¸a½%Ó@ÓAÐAøÜô =ÜÐ1Ó2¸Ð<ð=ús	   ‚/2 ²A
c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ræ   r   r~  r  rr   r¦   r_   )rt   s   "ri   ru   ru   Ä  s!   € ÷ ñ �Sð  ð ¨#ñ rh   c                óv   € V P                   P                  pV P                  pV'       d   R MRpV RV RV 2pV# )ÚLÚGz["z"].)rð  r`   r{   )ræ   r~  r{   rŒ  rß  Ú
local_names   &&    ri   Ú	enum_reprr|  Ä  sA   € ð �?‰?×#Ñ#€DØ
�*‰*€Cß‰C˜c€EØ�7˜"˜T˜F # c UÐ+€JØÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r’  útorch.fx.NodeÚexample_valuer   rr   rs   r_   )rt   s   "ri   ru   ru   Î  s!   € ÷ 8ñ 8˜Mð 8¸#ð 8À$ñ 8rh   c                ó,  € WP                   R &   \        P                  ! 4       P                  pVf   \	        R4      hVP
                  p\        P                  P                  P                  P                  W14      ;p'       d   W@P                   R&   R# R# )r  Núfake_mode must not be NoneÚunbacked_bindings)rŽ  r!   r�   Ú	fake_moder  Ú	shape_envrF  r   ÚexperimentalÚsymbolic_shapesÚcompute_unbacked_bindings)r’  r  rƒ  r„  Úsymbol_to_paths   &&   ri   Úset_example_valuer‰  Î  s„   € ð "/‡I�IˆoÑÜ×"Ò"Ó$×.Ñ.€IØÒÜÐ9Ó:Ð:Ø×#Ñ#€Iô �8‰8× Ñ ×0Ñ0×JÑJØó
ð	
ˆö 	
ð
 *8�	‰	Ð%Ó&ñ	
rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  r@   rr   r   r_   )rt   s   "ri   ru   ru   ã  s   € ÷ ñ ˜ð ¨Sñ rh   c                óè   € V P                  4       P                  P                  P                  R 4      p\	        V4      '       g.   ^RIHp ^RIHp V! R\        V4      R. VP                  OR7       V# )r  ©Úgraph_break_hintsrH  z:Cannot check Tensor object identity without its fake valuez/TensorVariable is missing a fake example_value.©rL  rM  rN  rO  )rC  r’  rŽ  r�   rI   rë  r�  r  rI  r¦   Ú
DYNAMO_BUG)r  Úfake_tensorr�  rI  s   &   ri   Ú_get_fake_tensorr‘  ã  sb   € Ø—+‘+“-×$Ñ$×)Ñ)×-Ñ-¨oÓ>€KÜ�;×ÒÝ'Ý&áØPÜ˜Ó$ØIØ1Ð%×0Ñ0Ð1õ		
ð Ðrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÉ  r   Úseq_lenrq   rr   r_   )rt   s   "ri   ru   ru   ò  s&   € ÷ Mñ M�Eð M Cð M¨Cñ Mrh   c                óˆ   € V P                  V4      w  r#p\        ^ W2,
          YD^ 8”  d   ^MR,
          ,           V,          4      # )rx   r­  )ÚindicesÚmax)rÉ  r“  r�  rž  rŸ  s   &&   ri   Úslice_lengthr—  ò  s9   € ØŸ	™	 'Ó*Ñ€E�Üˆq�4•< 4°q´©1¸bÕ#AÕBÀtÕKÓLÐLrh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rn   rÊ  r>   r{   r¦   ÚexpectÚactualrr   r   r_   )rt   s   "ri   ru   ru   ÷  s:   € ÷ ñ Ø!ðà
ðð ðð ð	ð
 ñrh   c                óH   € ^ RI Hp RV RV RV 2pV! \        V V.R7       R# )rx   )Úraise_observed_exceptionz3wrong number of arguments or keyword arguments for z() call.
  Expect: z
  Actual: r6  N)Útorch._dynamo.excrœ  r;  )rÊ  r{   r™  rš  rœ  Úmsg_strs   &&&&  ri   Úraise_args_mismatchrŸ  ÷  sD   € õ ;ð >¸d¸Vð DØ�Hð Ø�Hð	ð ñ ÜØ
ØˆY÷rh   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )rn   rÊ  r>   Úfuncnamer¦   Únargsrq   Úmin_argsÚmax_argsrr   rs   r_   )rt   s   "ri   ru   ru     sD   € ÷ 
ñ 
Ø!ð
àð
ð ð
ð ð	
ð
 ð
ð 
ñ
rh   c                óÖ   € ^ RI Hp W#8  d+   W48X  d   RMRpV^8X  d   RMRpV! W RV V RV RV 24       W$8”  d-   W48X  d   RMRpV^8X  d   RMRpV! W RV V RV RV 24       R	# R	# )
rx   ©Úraise_type_errorrë  z	at least rÉ  z
 expected z	 argumentz, got zat most N©r�  r§  )rÊ  r¡  r¢  r£  r¤  r§  ÚrelrÉ  s   &&&&&   ri   Úcheck_positionalrª    s˜   € õ 3àÔØÔ(‰b¨kˆØ˜a”-‰B SˆÙØ�*˜J s e¨H¨:°Y¸q¸cÀÈÀwÐOô	
ð ÔØÔ(‰b¨jˆØ˜a”-‰B SˆÙØ�*˜J s e¨H¨:°Y¸q¸cÀÈÀwÐOö	
ñ rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rÊ  r>   r¡  r¦   r^  rÌ  rr   rs   r_   )rt   s   "ri   ru   ru   '  s2   € ÷ Lñ LØ!ðLØ-0ðLØ8MðLà	ñLrh   c                ó<   € ^ RI Hp V'       d   V! W R24       R# R# )rx   r¦  z () takes no positional argumentsNr¨  )rÊ  r¡  r^  r§  s   &&& ri   Úno_positionalr­  '  s   € õ 3çÙ˜˜zÐ)IÐJÖKñ rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   rÊ  r>   r¡  r¦   r`  zdict[str, VariableTracker]rr   rs   r_   )rt   s   "ri   ru   ru   1  s2   € ÷ 	Iñ 	IØ!ð	IØ-0ð	IØ:Tð	Ià	ñ	Irh   c                ó<   € ^ RI Hp V'       d   V! W R24       R# R# )rx   r¦  z() takes no keyword argumentsNr¨  )rÊ  r¡  r`  r§  s   &&& ri   Úno_keywordsr°  1  s   € õ 3çÙ˜˜zÐ)FÐGÖHñ rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rÙ   zIterable[VariableTracker]Úsearchr@   rÊ  r>   rr   r_   )rt   s   "ri   ru   ru   =  s0   € ÷ &ñ &Ø$ð&àð&ð 	"ð&ð ñ	&rh   c                óÈ  a
€ ^RI Hp ^RIHp \	        V 4      p VP                  4       '       d–   \        ;QJ d    R V  4       F  '       d   K   RM	  RM! R V  4       4      '       d\   VP                  4       o
\        ;QJ d    V
3R lV  4       F  '       g   K   RM	  RM! V
3R lV  4       4      pVP                  V4      # RpV  F�  pV! W'VR4      pVP                  R4      '       d   Vu # VP                  R4      '       d   KA  Vf   TpKI  ^ R	IHp	 V	P                  V\        P                  4      P                  W(V./ 4      pKƒ  	  Vf   VP                  R4      pV# )
r¹   )rú  )Úgeneric_richcompare_boolc              3  ó@   "  € T F  qP                  4       x € K  	  R # 5irˆ   r  rÆ  s   & ri   r°   Ú iter_contains.<locals>.<genexpr>K  s   é € Ð*QÉ5Àa×+?Ñ+?×+AÐ+AË5ùrG  FTc              3  ó~   <"  € T F2  pVP                  4       SJ ;'       g    VP                  4       S8H  x € K4  	  R # 5irˆ   )r  )r®   r°  Ú
search_vals   & €ri   r°   r¶  M  s?   øé € ð 
á�ð × Ñ Ó" jÐ0×XÐX°A×4HÑ4HÓ4JÈjÑ4XÔXÛùs   ƒ=¡=Nrÿ  )ÚSourcelessBuilder)r½  rú  rÜ  r´  r¶  r  rÉ  r  r“  rè  Úis_constant_matchÚtorch._dynamo.variables.builderr¹  rD  Úor_Úcall_function)rÙ   r²  rÊ  rú  r´  Úfound_constÚfoundr°  Úcheckr¹  r¸  s   &&&       @ri   Úiter_containsrÁ  =  s,  ø€ õ
 ,ÝCä�‹K€Eð × Ñ ×"Ò"§s£sÑ*QÉ5Ó*Q§s§s¢sÑ*QÉ5Ó*Q×'QÒ'QØ×.Ñ.Ó0ˆ
ß“cô 
áó
—c—c’cô 
áó
ó 
ˆð  ×&Ñ& {Ó3Ð3Ø$(€EÛˆÙ(¨°¸ÓAˆØ×"Ñ" 4×(Ò(ØŠLØ×"Ñ" 5×)Ò)ÙØŠ=ØŠEåIà%×,Ñ,¨R´·±Ó>×LÑLØ˜E�N BóŠEñ ð ‚}Ø ×'Ñ'¨Ó.ˆØ€Lrh   c               ó    € V ^8„  d   QhRRRR/# )rn   rB  r   rr   z:TypeIs[torch.Tensor | torch.nn.Module | MethodWrapperType]r_   )rt   s   "ri   ru   ru   f  s    € ÷ Mñ MØ
ðMà?ñMrh   c                ót   € \        V \        P                  \        P                  P                  \
        34      # )z4Returns whether it indexes dictionaries using its id)r„  rF  r'  r(  r<  r
   )rB  s   &ri   Ú	key_is_idrÄ  f  s%   € ô �aœ%Ÿ,™,¬¯©¯©Ô9JÐKÓLÐLrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   ú	list[Any]r_   )rt   s   "ri   ru   ru   m  s   € ÷ 9ñ 9�Sð 9˜Yñ 9rh   c                óh   € V  Uu. uF!  p\        V4      '       d   \        V4      MTNK#  	  up# u upi rˆ   )rÄ  rL  )ræ   rB  s   & ri   Ú	key_to_idrÈ  m  s+   € Ù27Ó8±%¨Q”Y˜q—\’\ŒBˆqŒE qÒ(±%Ñ8Ð8ùÒ8s   …'/c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r°  r   r~  rr   r¦   r_   )rt   s   "ri   ru   ru   q  s!   € ÷ ñ �#ð  ð ¨ñ rh   c               óF  a€ ^RI Hp \        V \        \        34      '       d�   RP                  V3R lV  4       4      p\        V \        4      '       d   RV R2# \        V \        4      '       g   \        R\        V 4       24      h\        V 4      ^8X  d   RV R2# RV R	2# \        V \        P                  4      '       d   \        V SR
7      P                  RR4      # V! V 4      '       d   V P                  # \        V \        4      '       d   R R lpV! V 4      # V : # )r¹   )Úis_builtin_callablerÙ  c              3  ó>   <"  € T F  p\        VSR 7      x € K  	  R# 5i©©r~  N©Ú
const_repr©r®   rÉ  r~  s   & €ri   r°   Úconst_repr.<locals>.<genexpr>u  s   øé € ÐDÁ!¸Qœj¨°%×8Ñ8Ã!ùr4  Ú[Ú]zExpected x to be a tuple, got rS  rT  rÎ  rÎ  Ú'rë  c               ó    € V ^8„  d   QhRRRR/# )rn   r%  r   rr   r¦   r_   )rt   s   "ri   ru   Ú const_repr.<locals>.__annotate__‡  s   € ÷ 	5ñ 	5˜ð 	5 ñ 	5rh   c                óŒ   € V P                   pVP                  pVR 8X  d   VP                  # VR,           VP                  ,           # )ÚbuiltinsÚ.)rð  ra   rb   )r%  Úklassr”  s   &  ri   ÚfullnameÚconst_repr.<locals>.fullname‡  s?   € Ø—K‘KˆEØ×%Ñ%ˆFØ˜Ô#Ø×)Ñ)Ð)Ø˜C•< %×"4Ñ"4Õ4Ð4rh   )Útrace_rulesrË  r„  r¶  r…  r¬   r  r  rÐ  rÛ  rÜ  r|  Úreplacer`   )r°  r~  rË  Ú
elems_reprrÜ  s   &d   ri   rÐ  rÐ  q  sû   ø€ Ý0ä�!”dœE�]×#Ò#Ø—X‘XÔDÁ!ÓDÓDˆ
Ü�aœ×ÒØ�z�l !Ð$Ð$ä˜a¤×'Ò'Ü$Ð'EÄdÈ1ÃgÀYÐ%OÓPÐPÜ�1‹v˜Œ{Ø˜:˜, bÐ)Ð)à˜:˜, aÐ(Ð(Ü	�A”t—y‘y×	!Ò	!ô ˜ %Ô(×0Ñ0°°bÓ9Ð9Ù	˜Q×	Ò	Ø�z‰zÐÜ	�A”t×	Ò	õ	5ñ ˜‹{Ðà‘ˆrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Ú
const_keysr   r~  rr   r¦   r_   )rt   s   "ri   ru   ru   “  s!   € ÷  ñ  ˜sð  ¨cð  °cñ  rh   c               óZ   a€ R P                  V3R lV  4       4      pRV,           R,           # )rÙ  c              3  ó>   <"  € T F  p\        VSR 7      x € K  	  R# 5irÍ  rÏ  rÑ  s   & €ri   r°   Ú!dict_keys_repr.<locals>.<genexpr>”  s   øé € ÐG¹J°qœ
 1¨E×2Ñ2»Jùr4  rÓ  rÔ  )r¬   )râ  r~  Úkeys_strs   &d ri   Údict_keys_reprrç  “  s&   ø€ Ø�x‰xÔG¹JÓGÓG€HØ��>˜CÕÐrh   Ú
__dict_key)ÚUnsupportedFakeTensorExceptionc               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rÊ  r>   Úrootr¦   ri  r   rr   r_   )rt   s   "ri   ru   ru   ž  s*   € ÷ 7ñ 7Ð6ð 7¸cð 7Èð 7ÐPSñ 7rh   c                óP   € V R \        V4       RV P                  P                   2# )r  Ú_c)rL  Úoutputru  )rÊ  rë  ri  s   &&&ri   Úget_safe_global_namerï  ž  s*   € ð ˆV�1”R˜“W�I˜R §	¡	× 4Ñ 4Ð5Ð6Ð6rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÔ  rJ   Ú
containerszContainer[T]rr   r  r_   )rt   s   "ri   ru   ru   ¨  s!   € ÷ ñ �ð  ð °ñ rh   c                ó*   € V F  pW9   g   K   R # 	  R# r9  r_   )rÔ  rñ  Ú	containers   &* ri   Úis_inrô  ¨  s   € Ûˆ	ØÖÚñ  ñ rh   Úrequires_suffixc               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   Úprefixr¦   rñ  r   rõ  r  rr   r_   )rt   s   "ri   ru   ru   ¯  s,   € ÷ (ñ (Øð(Ø!ð(Ø48ð(àñ(rh   c               óÆ   € V'       g   \        V .VO5!  '       g   V # \        P                  ! 4        F!  pV  RV 2p\        V.VO5!  '       d   K  Vu # 	  \        R4      h)za
Return a name that starts with `prefix` and is not in any of the
`containers` (e.g., map, set).
r  Úunreachable)rô  r´   r€   r  )r÷  rõ  rñ  r”  Ú	candidates   &$*  ri   Úget_unique_name_wrtrû  ¯  s^   € ÷ ¤5¨Ð#=°*×#=Ò#=Øˆä�_Š_ÖˆØ�h˜a ˜s�Oˆ	Ü�YÐ, ×,Ô,ØÒñ ô
 ˜Ó
'Ð'rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  zCallable[[], Any]rr   r   r_   )rt   s   "ri   ru   ru   Á  s   € ÷ 
ñ 
Ð-ð 
°#ñ 
rh   c           	     óÚ   €  V ! 4       #   \          dW   p^RIHp RTP                   R2p\        P                  T4       T! R\        TP                  4      T. TR7        Rp?R# Rp?ii ; i)r¹   rH  zEncountered exception (z!) during fake tensor propagation.z!Fake tensor propagation exceptionrK  N)ré  r  rI  Úreasonr�   r$  r¦   )r  rU  rI  rï  s   &   ri   Úwrap_fake_exceptionrÿ  Á  sd   € ð
Ù‹tˆøÜ)ô 
Ý&à'¨¯© zÐ1RÐSˆÜ�‰�CÔÙØ7Ü˜Ÿ™“MØØØ÷	
ó 	
ûð
ús   ‚	 ‰A*”AA%Á%A*c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r   rƒ  ú,torch._subclasses.fake_tensor.FakeTensorModerr   r_   )rt   s   "ri   ru   ru   Ò  s$   € ÷ ?ñ ?Ø	ð?ØEð?àñ?rh   c                óÂ   a € \         P                  P                  P                  V4      ;_uu_ 4        \	        V 3R  l4      uuRRR4       #   + '       g   i     R# ; i)c                 ó0   <€ \         P                  ! S 4      # rˆ   )r  Údeepcopyr€  s   €ri   r±  Ú)deepcopy_to_fake_tensor.<locals>.<lambda>Ö  s   ø€ ¬4¯=ª=¸Ô+=rh   N)rF  r+  r�  ÚFakeCopyModerÿ  )ri  rƒ  s   f&ri   Údeepcopy_to_fake_tensorr  Ò  s:   ø€ ô 
×	Ñ	×	&Ñ	&×	3Ñ	3°I×	>Õ	>Ü"Ô#=Ó>÷ 
?×	>×	>Ó	>ús   ³AÁA	c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r[  rø  rR  rr   r_   )rt   s   "ri   ru   ru   Ù  s!   € ÷ ;ñ ;ˆlð ; ð ;°,ñ ;rh   c                óŠ   € \         P                  ! \         P                  ! \         P                  ! W,
          4      4      4      # )z#
Calculate root mean squared error
)rF  ÚsqrtÚmeanÚsquare)r[  rR  s   &&ri   Úrmser  Ù  s'   € ô �:Š:”e—j’j¤§¢¨c­iÓ!8Ó9Ó:Ð:rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   r[  r   rR  Ú	equal_nanr  rr   r_   )rt   s   "ri   ru   ru   à  s(   € ÷ ñ �cð  ð °ð Àñ rh   c                ó    € \        V VR VR7      # )g        )Útolr  ©Úsame)r[  rR  r  s   &&&ri   Úbitwise_samer  à  s   € ÜØØØØô	ð rh   g-Cëâ6?Tç®Gáz®ï?c               ó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/# )rn   r[  r   rR  Úfp64_refÚcos_similarityr  r  Úfloatr  Úexact_dtypeÚrelax_numpy_equalityÚignore_non_fpÚ	log_errorzCallable[..., None]Ú(use_larger_multiplier_for_smaller_tensorÚforce_max_multiplierÚuse_iou_for_boolÚiou_thresholdrr   r_   )rt   s   "ri   ru   ru   é  sÀ   € ÷ ZFñ ZFØ	ðZFà	ðZFð ðZFð ð	ZFð
 
ðZFð ðZFð ðZFð ðZFð ðZFð #ðZFð /3ðZFð ðZFð ðZFð ðZFð 
ñZFrh   c                ó†  a aaaaaaaaa	a
aaaa€ Sf   S o\        S \        \        \        P                  \
        P                  P                  \
        P                  34      '       dõ   \        S\        \        \        P                  34      '       g$   \        R\        S 4       R\        S4       24      h\        S 4      \        S4      8w  d   S	! R4       R# \        S 4      \        S4      8H  ;'       de    \        ;QJ d4    VVVVVVV	VVVV
3R l\        S SS4       4       F  '       d   K   R# 	  R# ! VVVVVVV	VVVV
3R l\        S SS4       4       4      # \        S 4      P                  R8X  d8   \        S P                   SP                   SP                   SSSSSSS	S
SSSR	7      # \        S \"        4      '       Ed   \        S\"        4      '       g   \        R
\        S4       24      h\%        S P'                  4       4      \%        SP'                  4       4      8w  d@   \        R\%        S P'                  4       4       R\%        SP'                  4       4       24      h\)        S P'                  4       4       FC  p\        S V,          SV,          SV,          SSSSSSS	S
SSSR7      '       d   K9  S	! RV4        R# 	  R# \        S \$        4      '       dl   \        S\$        4      '       g   \        R\        S4       24      h\%        S 4      \%        S4      8w  d$   \        R\%        S 4       R\%        S4       24      hR# \        S \
        P*                  \,        34      '       EdŒ   \
        P.                  P0                  P3                  S 4      '       d   \        R4      h\
        P.                  P0                  P3                  S4      '       d   \        R4      hR R loV3R lS SS3 4       w  o ooS P4                  '       d>   SP4                  '       g   \        R4      hS P7                  4       o SP7                  4       o\        S\
        P*                  4      '       g$   \        R\        S 4       R\        S4       24      hS'       Edó   S P8                  SP8                  8w  d!   S	! RS P8                  SP8                  4       R# S P8                  \
        P:                  8X  Ed˜   S'       d   R# S'       Ed   S S,          P=                  4       P-                  4       pS S,          P=                  4       P-                  4       pV^ 8X  d   \;        V^ 8H  4      # VV,          P?                  4       pVS8  d�   S	! RVS\A        VP?                  4       4      \A        VP?                  4       4      \A        S P=                  4       P?                  4       4      \A        SP=                  4       P?                  4       4      \        S PB                  4      4       R# R# \
        PD                  ! S PG                  \
        PH                  R7      SPG                  \
        PH                  R7      SSSR7      pV'       g	   S	! R4       V# S'       Ed    S PK                  4       PG                  \
        PL                  4      o SPK                  4       PG                  \
        PL                  4      o\
        PD                  ! S SSSRR7      '       d   R# \
        P                  PN                  PQ                  S S^ RR7      pVR8  dA   \R        PU                  RVPW                  4       PY                  4       P?                  4       4       \;        VR8¬  4      # S'       g   S PG                  SP8                  4      o \
        PD                  ! S SSSSR7      '       d   R# SP8                  \
        PZ                  8X  Edï   R*pSP]                  4       P_                  4       '       g†   SP]                  4       P_                  4       '       gb   S P]                  4       P_                  4       '       d>   \
        PD                  ! SPG                  SP8                  R7      SVVSR7      '       d   R# \a        SS 4      P?                  4       p\b        P\                  ! V4      '       d   \R        PU                  R 4       \a        SS4      P?                  4       pR! VVV VVV
3R" llpV! 4       pVVV,          SR#,          ,           8*  pV'       gw   S'       do   \b        P\                  ! V4      '       dS   \b        P\                  ! V4      '       d7   \
        Pd                  Pf                  Ph                  Pj                  '       g   RpV'       g(   S	! R$VVSPm                  4       SP8                  VSS
4       V# S'       d   R# S	! R%S4       R# \        S \n        \@        \        R4      \:        \
        Pp                  34      '       d.   S'       d   R# S S8H  pV'       g   S	! R&\        S 4      S S4       V# \s        S 4      '       g   \u        S 4      '       dr   S'       d3   \s        S4      '       g"   \u        S4      '       g   S P?                  4       o \        S 4      \        S4      J ;'       d    S S8H  pV'       g   S	! R'S S4       V# \w        S 4      '       d`   \        S 4      \        S4      J ;'       dB    \        \
        Px                  ! S 4      \
        Px                  ! S4      SSSSSSSS	S
SSSR7      # \        S 4      P                  R+9   d¤   \        S 4      \        S4      Jd$   \        R\        S 4       R\        S4       24      h\        ;QJ d6    VVVVVVVV	V VVVVV
3R( lS Pz                   4       F  '       d   K   R# 	  R# ! VVVVVVVV	V VVVVV
3R( lS Pz                   4       4      # \}        R)\        S 4      P                   24      h),z-Check correctness to see if ref and res matchNztype mismatch rà   zLength mismatchFc              3  ó\   <"  € T F!  w  rp\        VVVSSSSSSS
SSSS	R 7      x € K#  	  R# 5i)©r  r  r  r   r!  Nr  )r®   ÚaiÚbiÚ	fp64_refir  r  r  r  r  r!  r  r  r  r   r  s   &   €€€€€€€€€€€ri   r°   Úsame.<locals>.<genexpr>  sU   øé € ð ,
ñ" &=Ñ!�˜	ô! ØØØØØØØØ$ØØ#Ø9aØ%9Ø!1Ø+÷ñ ó  &=ùs   ƒ),TÚQuestionAnsweringModelOutputr$  zExpected res to be a dict, got zkeys mismatch z == ©r  r  r  r  r  r  r  r  r  r   r!  zAccuracy failed for key name %szExpected res to be a set, got zelements mismatch zref should not be a FakeTensorzres should not be a FakeTensorc               ó    € V ^8„  d   QhRRRR/# )rn   r‹  r   rr   rø  r_   )rt   s   "ri   ru   Úsame.<locals>.__annotate__T  s   € ÷ 	Iñ 	I˜ð 	I ñ 	Irh   c                ór   € \        V \        P                  4      '       d   V # \        P                  ! V 4      # rˆ   )r„  rF  r'  Útensor©r‹  s   &ri   Ú	to_tensorÚsame.<locals>.to_tensorT  s%   € Ü" 1¤e§l¡l×3Ò3�1ÐH¼¿ºÀa»ÐHrh   c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5irˆ   r_   )r®   rŒ  r0  s   & €ri   r°   r(  W  s   øé € ÐMÑ8L°™i¨Ÿn˜nÓ8LùrÜ  z-Expected res to be sparse since ref is sparsezdtype mismatch %s, %sz^IoU accuracy failed: %.4f < %.2f (intersection=%d, union=%d, ref_sum=%d, res_sum=%d, shape=%s)r"  )ÚatolÚrtolr  z+Accuracy failed: uint8 tensor did not matchg�íµ ÷Æ°>)ÚdimÚepsr  zSimilarity score=%sz=Found nan in reference. Consider running in higher precision.c               ó   € V ^8„  d   QhRR/# )rn   rr   r  r_   )rt   s   "ri   ru   r,  ¼  s   € ÷ !&ñ !&¨ñ !&rh   c                 óÊ  <€ S'       d   R # SP                   \        P                  \        P                  39   d   RMRp S'       d   SP	                  4       ^
8:  d   R p V # S'       d   SP	                  4       R8:  d   Rp V # SP	                  4       R8  gL   SP
                  ^8X  d4   SP                  R,          SP                  R,          u;8X  d   ^8X  g
   M SR8¼  d   Rp V # )	ç      $@g      @g       @iô  g       @r  r­  éþÿÿÿg{®Gáz”?)r  rF  rµ  Úbfloat16ÚnumelÚndimr+  )Ú
multiplierr  r  r[  rR  r  r  s    €€€€€€ri   Úget_multiplierÚsame.<locals>.get_multiplier¼  sÁ   ø€ ÷ ,Ù#ð  #Ÿy™y¬U¯]©]¼E¿N¹NÐ,KÔK™ÐQTð ÷ @Ø Ÿ™Ó(¨BÔ.à%)˜
ð &Ð%÷ BØ Ÿ™Ó(¨CÔ/à%(˜
ð &Ð%ð !Ÿ™Ó(¨4Ô/ØŸH™H¨œM¨c¯i©i¸­m¸s¿y¹yÈ½}Ö.QÐPQÖ.Qà (œ?ð
 &)˜
Ø%Ð%rh   r9  zŠRMSE (res-fp64): %.5f, (ref-fp64): %.5f and shape=%s. res.dtype: %s, multiplier: %f, tol: %f, use_larger_multiplier_for_smaller_tensor: %dz+Accuracy failed: allclose not within tol=%szAccuracy failed (%s): %s != %sz!Accuracy failed (numpy): %s != %sc              3  ó’   <"  € T F<  p\        \        S
V4      \        SV4      \        SV4      SSSSSSS	SSSSR 7      x € K>  	  R# 5i)r*  N)r  r  )r®   rå   r  r  r  r  r  r  r!  r  r[  r  rR  r  r   r  s   & €€€€€€€€€€€€€€ri   r°   r(  /  se   øé € ð 
ñ" $�ô! Ü˜˜SÓ!Ü˜˜SÓ!Ü˜ #Ó&Ø-ØØ#Ø'Ø%9Ø+Ø#Ø9aØ%9Ø!1Ø+÷ñ ó  $ùs   ƒAAzunsupported type: g{®Gáz¤?)ÚMaskedLMOutputÚSeq2SeqLMOutputÚ!CausalLMOutputWithCrossAttentionsÚLongformerMaskedLMOutputÚ	InstancesÚSquashedNormalÚBoxesÚNormalÚTanhTransformÚFooÚVariable)?r„  r¶  r…  rŸ   rW  rF  r(  ÚParameterListrÝ  r  r  rÐ  rÉ  r9  r`   r  ÚlossrP  rÈ  r·  rÝ  r'  r  r+  r�  Úis_fake_tensorÚ	is_sparseÚto_denser  r  r’   rÔ  rq   r+  ÚallcloseÚtor­  Úflattenr¶  Ú
functionalÚcosine_similarityr�   r$  Údetachr  r·  Úisnanr“  r  Úmathr,  rG   ÚcppÚinject_relu_bug_TESTING_ONLYr:  r¦   r�  r±  r¸  r$  Ú	as_tensorÚ__dict__r  )r[  rR  r  r  r  r  r  r  r  r  r  r  r   r!  rB  ÚintersectionÚunionÚiouÚrÚscoreÚ	loose_tolÚ	ref_errorÚ	res_errorr?  r>  Úpasses_testr0  s   ffffffffffffff            @ri   r  r  é  sy	  ÿþ€ ð" ÒØˆÜØŒd”Eœ;×,Ñ,¬e¯h©h×.DÑ.DÄeÇjÁjÐQ÷ò ô ˜#¤¤e¬[×->Ñ->Ð?×@Ò@Ü  >´$°s³)°¸A¼dÀ3»i¸[Ð!IÓJÐJÜˆs‹8”s˜3“xÔÙÐ'Ô(ÙÜ�3‹xœ3˜s›8Ñ#÷ 
ð 
¯«÷ ,
ö ,
ô" &)¨¨c°8Ô%<ó#,
¯¬ð 	
ªð 	
¨÷ ,
ö ,
ô" &)¨¨c°8Ô%<ó#,
ó )
ð 	
ô& 
ˆc‹×	Ñ	Ð=Ô	=ô Ø�H‰HØ�H‰HØ�M‰MØØØØØ ØØØ5]Ø!5Ø-Ø'ô
ð 	
ô  
�Cœ×	Ó	Ü˜#œt×$Ò$Ü Ð#BÄ4ÈÃ9À+Ð!NÓOÐOÜˆs�x‰x‹z‹?œc #§(¡(£*›oÔ-Ü Ø ¤ S§X¡X£Z£Ð 1°´c¸#¿(¹(»*³oÐ5FÐGóð ô ˜Ÿ™›
Ö#ˆAäØ˜•FØ˜•FØ˜Q•KØ#1ØØ'Ø +Ø)=Ø"/Ø'Ø=eØ)=Ø%5Ø"/÷õ ñ" Ð;¸QÔ?Úñ) $ñ* Ü	�Cœ×	Ò	Ü˜#œs×#Ò#Ü Ð#AÄ$ÀsÃ)ÀÐ!MÓNÐNÜˆs‹8”s˜3“xÔÜ Ð#5´c¸#³h°Z¸tÄCÈÃHÀ:Ð!NÓOÐOÙÜ	�Cœ%Ÿ,™,¬Ð.×	/Ó	/Ü×Ñ×(Ñ(×7Ñ7¸×<Ò<Ü Ð!AÓBÐBÜ×Ñ×(Ñ(×7Ñ7¸×<Ò<Ü Ð!AÓBÐBõ	Iô N¸¸cÀ8Ñ8LÓMÑˆˆS�(à�=�=ˆ=Ø—=—=�=Ü$Ð%TÓUÐUØ—,‘,“.ˆCØ—,‘,“.ˆCÜ˜#œuŸ|™|×,Ò,Ü  >´$°s³)°¸A¼dÀ3»i¸[Ð!IÓJÐJßˆ;Ø�y‰y˜CŸI™IÔ%ÙÐ1°3·9±9¸c¿i¹iÔHÙØ�y‰yœEŸJ™JÕ&ß Ùß#Ð#ð %(¨#¥I§?¡?Ó#4×#:Ñ#:Ó#<�LØ  3�YŸO™OÓ-×3Ñ3Ó5�EØ ”zä# L°AÑ$5Ó6Ð6Ø'¨%Õ/×5Ñ5Ó7�CØ˜]Ô*Ù!Ø|ØØ)Ü × 1Ñ 1Ó 3Ó4Ü §
¡
£Ó-Ü §¡£	§¡Ó 0Ó1Ü §¡£	§¡Ó 0Ó1Ü  §¡›Oô	ñ  %Ùä—N’NØ—F‘F¤§¡�FÓ-Ø—F‘F¤§¡�FÓ-ØØØ'ô�÷ ÙÐKÔLØ�çˆ>Ø—+‘+“-×"Ñ"¤5§=¡=Ó1ˆCØ—+‘+“-×"Ñ"¤5§=¡=Ó1ˆCÜ�~Š~˜c 3¨S°sÀd×KÓKñ Ü—H‘H×'Ñ'×9Ñ9¸#¸sÈÈtÐ9ÓTˆEØ�tŒ|Ü—‘Ð1°5·<±<³>×3EÑ3EÓ3G×3LÑ3LÓ3NÔOÜ˜ ™Ó&Ð&çØ—f‘f˜SŸY™YÓ'�ô �~Š~˜c 3¨S°sÀi×PÓPÙð �~‰~¤§¡Õ.ð %�	à Ÿ™Ó(×,Ñ,×.Ò.ØŸI™I›KŸO™O×-Ò-ØŸ	™	›Ÿ™×)Ò)ÜŸšØ Ÿ™¨#¯)©)˜Ó4ØØ&Ø&Ø"+÷ó ñ  Ü  ¨3Ó/×4Ñ4Ó6�	ä—:’:˜i×(Ò(Ü—K‘KØWôô ! ¨3Ó/×4Ñ4Ó6�	÷!&õ !&ñF ,Ó-�
à'¨J¸Õ,BÀSÈ4ÅZÕ,OÑP�ç#ß!ÜŸ
š
 9×-Ò-ÜŸ
š
 9×-Ò-ô "ŸO™O×2Ñ2×6Ñ6×S×SÐSà"&�Kß"ÙðIà!Ø!ØŸ™›
ØŸ	™	Ø"ØØ@ô
ð #Ð"çÙáÐCÀSÔIÙÜ	�Cœ#œs¤D¨£J´´e·l±lÐC×	DÒ	DßÙØ�3‰JˆßÙÐ6¼¸S»	À3ÈÔLØˆÜ	˜3×	Ò	Ô#6°s×#;Ò#;ßÜ˜c×"Ò"Ô&9¸#×&>Ò&>à—(‘(“*ˆCÜ�#‹Yœ$˜s›)Ð#×5Ð5¨#°©*ˆßÙÐ9¸3ÀÔDØˆÜ	˜#×	Ò	Ü�S“	œT #›YÐ&÷ 
ð 
¬DÜ�OŠO˜CÓ Ü�OŠO˜CÓ ØØ)ØØØ#Ø!5Ø'ØØ5]Ø!5Ø-Ø'ô-
ð 	
ô  
ˆc‹×	Ñ	ð  ô 
ô �‹9œD ›IÓ%Ü  >´$°s³)°¸A¼dÀ3»i¸[Ð!IÓJÐJß‹s÷ 
÷ 
ñ 
ð" —|’|ó#
�sŒsð 	
Šsð 	
ˆs÷ 
÷ 
ñ 
ð" —|’|ó#
ó 
ð 	
ô( Ð/´°S³	×0BÑ0BÐ/CÐDÓEÐErh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  r	   rr   r¦   r_   )rt   s   "ri   ru   ru   F  s   € ÷ Hñ H˜8ð H¨ñ Hrh   c                ó†   € V P                   P                  R 4      R,          pRV P                   RV RV P                   R2# )Ú/rÕ  z' (rá   rÎ  r­  )re  Úsplitr  r  )r  Úshort_filenames   & ri   Úformat_func_inforl  F  sD   € Ø×%Ñ%×+Ñ+¨CÓ0°Õ4€NØˆt�|‰|ˆn˜C Ð/¨q°×1DÑ1DÐ0EÀQÐGÐGrh   c               ó   € V ^8„  d   QhRR/# rZ  r_   )rt   s   "ri   ru   ru   L  s   € ÷ =ñ =Ð8ñ =rh   c               #  ó  "  € \         P                  p \        P                  \         n        \         P                  p\        P                  \         n         R x € V \         n        V\         n        R #   T \         n        T\         n        i ; i5irˆ   )rG   Úrecompile_limitr�  r¿  Úaccumulated_recompile_limit)ÚpriorÚprior_acc_limits     ri   Údisable_cache_limitrs  K  s^   é € ä×"Ñ"€Eä Ÿ[™[„FÔÜ×8Ñ8€Oä),¯©„FÔ&ð=Ûà!&ŒÔØ-<ŒÖ*øð "'ŒÔØ-<ŒÕ*üs   ‚ABÁA2 ÁBÁ2B
Â
Bz'collections.defaultdict[Any, list[Any]]Úguard_failuresz3list[torch._dynamo.output_graph.GraphCompileReason]Úgraph_break_reasonsc               ó    € V ^8„  d   QhRRRR/# )rn   Úroot_dirr¦   rr   r_   )rt   s   "ri   ru   ru   k  s   € ÷ ,ñ ,˜Sð , Sñ ,rh   c                óü   € R \         P                   P                  4       P                  R4      ,           R,           \        \        P
                  ! 4       4      ,           p\        P                  P                  W4      # )Úrun_z%Y_%m_%d_%H_%M_%S_%fz-pid_)ÚdatetimeÚnowÚstrftimer¦   rÜ  Úgetpidr   r¬   )rw  Údir_names   & ri   Ú_get_debug_dirr  j  sd   € ð 	Ü
×
Ñ
×
Ñ
Ó
!×
*Ñ
*Ð+AÓ
Bõ	Cð õ	ô Œb�iŠi‹kÓ
õ		ð ô �7‰7�<‰<˜Ó+Ð+rh   c               ó   € V ^8„  d   QhRR/# ©rn   rr   r¦   r_   )rt   s   "ri   ru   ru   v  s   € ÷ &ñ &�sñ &rh   c                 ó8   € \         P                  p \        V 4      # rˆ   )rG   rÿ  r  )Ú
debug_roots    ri   r  r  v  s   € Ü×&Ñ&€JÜ˜*Ó%Ð%rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r’  r~  Úrequiredr  rr   r   r_   )rt   s   "ri   ru   ru   {  s!   € ÷ ñ  ]ð ¸dð Ècñ rh   c                ó  € R V P                   9   d6   \        V P                   R ,          4      '       d   V P                   R ,          # V'       d4   ^ RIHp ^RIHp V! R\        V 4      RV  R2. VP                  OR7       R# R# )r  rH  rŒ  z Missing FakeTensor example valuez,`FakeTensor` example value was required for z but not available.rŽ  N)rŽ  rI   r�  rI  rë  r�  r¦   r�  )r’  r…  rI  r�  s   &&  ri   Úextract_fake_example_valuer‡  {  sl   € Ø˜$Ÿ)™)Ô#¬°·	±	¸/Õ0J×(KÒ(KØ�y‰y˜Õ)Ð)ß	Ý3å'áØ6Ü˜“IØFÀtÀfÐL_Ð`Ø1Ð%×0Ñ0Ð1÷		
ñ rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rU  r   rÊ  r>   rr   r_   )rt   s   "ri   ru   ru   �  s"   € ÷ ñ ˜ð Ð";ð Àñ rh   c                ó€   € ^ RI Hp V! V 4      VP                  Jd"   \        RV! V 4       RVP                   24      hV # )rx   )Úmaybe_get_fake_modez0Expected fake mode of e to be tx.fake_mode, got z vs )Útorch._subclasses.fake_tensorrŠ  rƒ  r  )rU  rÊ  rŠ  s   && ri   Úensure_graph_fakerŒ  �  sK   € ÝAá˜1Ó R§\¡\Ó1ÜØ>Ñ?RÐSTÓ?UÐ>VÐVZÐ[]×[gÑ[gÐZhÐió
ð 	
ð €Hrh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   rÊ  r>   r/  r   Úallow_non_graph_faker  rr   r_   )rt   s   "ri   ru   ru   —  s,   € ÷ /ñ /Ø!ð/Ø*-ð/ØEIð/àñ/rh   c                ól   a a€ R  VV 3R llp\         P                  P                  P                  W4      # )c               ó    € V ^8„  d   QhRRRR/# )rn   r2  r~  rr   r   r_   )rt   s   "ri   ru   Ú0get_fake_values_from_nodes.<locals>.__annotate__š  s   € ÷ ñ �ð  3ñ rh   c                óŠ  <€ V P                   R 8X  d   RV P                  9  d   \        V SS4      # V P                   R8X  d»   RV P                  9  dª   V P                  SP                  P
                  9  d   \        RV P                  : R24      hSP                  P
                  V P                  ,          p\        V\        P                  P                  4      '       g   \        R\        V4       24      hV# V P                  R,          pS'       g-   \        V\        P                  4      '       d   \        VS4      # V# )r½  r  Úget_attrzExpected n.target z to be in tx.output.nn_modulesz.Expected gm to be a torch.fx.GraphModule, got )r0  rŽ  Úget_fake_valueÚtargetrî  Ú
nn_modulesr  r„  rF  r   ÚGraphModuler  r'  rŒ  )r2  r§  rä   rŽ  rÊ  s   &  €€ri   ÚvisitÚ)get_fake_values_from_nodes.<locals>.visitš  sý   ø€ Ø�4‰4�?Ô" ¸a¿f¹fÔ'Dô " ! RÐ)=Ó>Ð>à�T‰T�ZÔ O¸1¿6¹6Ô$AØ�x‰x˜rŸy™y×3Ñ3Ô3Ü$Ø(¨¯©©Ð4RÐSóð ð —‘×%Ñ% a§h¡hÕ/ˆBÜ˜b¤%§(¡(×"6Ñ"6×7Ò7Ü$ØDÄTÈ"ÃXÀJÐOóð ð ˆIà�f‰f�_Õ%ˆß#¬
°3¼¿¹×(EÒ(EÜ$ S¨"Ó-Ð-Øˆ
rh   )rF  r   r’  Úmap_arg)rÊ  r/  rŽ  r˜  s   f&f ri   Úget_fake_values_from_nodesr›  —  s(   ù€ ÷ñ ô. �8‰8�=‰=× Ñ  Ó.Ð.rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rï  r¦   rƒ  zFakeTensorMode | Nonerr   r_   )rt   s   "ri   ru   ru   ´  s#   € ÷ ñ ¨ð Ð9Nð ÐSVñ rh   c                óÊ   aa€ ^ RI p^ RIHo Vf   V # RpVP                  f   \	        R4      hVP                  pVP
                  oR VV3R llpVP                  ! W5V 4      p V # )zÊ
Replace symbolic size expressions (like 's0', 's94') in error messages
with their concrete runtime values for better readability.

Example: "size (s94)" -> "size (s94: hint= 10)" if s94's value is 10.
N)ÚIntegerz
\(s(\d+)\)z$fake_mode.shape_env must not be Nonec               ó    € V ^8„  d   QhRRRR/# )rn   Úmatchr   rr   r¦   r_   )rt   s   "ri   ru   Ú5get_concrete_sizes_from_symints.<locals>.__annotate__È  s   € ÷ ñ ˜3ð  3ñ rh   c                óì   <a€ R V P                  ^4       2o\        V3R lSP                  4        4       R4      p\        V\        S34      '       d   RS R\        V4       R2# V P                  ^ 4      # )rÉ  c              3  óR   <"  € T F  w  rVP                   S8X  g   K  Vx € K  	  R # 5irˆ   )r{   )r®   rB  rC  Úsym_names   &  €ri   r°   ÚGget_concrete_sizes_from_symints.<locals>.replace_sym.<locals>.<genexpr>Ë  s"   øé € ÐKÑ4‘4�1¸¿¹À(Ñ8J�QŠQÓ4ùs   ƒ'�
'NrS  z	: hint = rÎ  )Úgroupri  rÙ   r„  rq   r¦   )r   rŒ  r¤  rž  Úbacked_var_to_vals   & @€€ri   Úreplace_symÚ4get_concrete_sizes_from_symints.<locals>.replace_symÈ  sq   ù€ Ø�u—{‘{ 1“~Ð&Ð'ˆÜÜKÐ,×2Ñ2Ô4ÓKØó
ˆô �cœC ˜>×*Ò*Ø�x�j 	¬#¨c«(¨°1Ð5Ð5Ø�{‰{˜1‹~Ðrh   )rV  Úsympy.core.numbersrž  r„  r  r§  rî  )rï  rƒ  rV  Úpatternr„  r¨  rž  r§  s   &&    @@ri   Úget_concrete_sizes_from_symintsr¬  ´  sk   ù€ ó å*àÒØˆ
à€GØ×ÑÒ"ÜÐCÓDÐDØ×#Ñ#€IØ!×3Ñ3Ð÷ñ ð �&Š&� sÓ
+€CØ€Jrh   c               ó    € V ^8„  d   QhRRRR/# )rn   Úgb_fnzCallable[[], NoReturn]rr   r   r_   )rt   s   "ri   ru   ru   Ö  s   € ÷ 2ñ 2Ð4Jð 2Èxñ 2rh   c           	     óÈ   € ^RI HpHp  V ! 4        \        R4      h  T d?   pT! \        T4      \	        TRR4      4      pTP                  TP                  4      RhRp?ii ; i)r¹   )ÚTorchRuntimeErrorÚUnsupportedÚ
real_stackNzshould be unreachable)r  r°  r±  r¦   r  Úwith_tracebackÚ__traceback__r  )r®  r°  r±  rU  r  s   &    ri   Ú(_wrap_graph_break_with_torch_runtime_errrµ  Ö  s_   € ß3ð<ÙŒô Ð0Ó
1Ð1øð ô <Ù¤ A£¬°°<ÀÓ(FÓGˆØ× Ñ  §¡Ó1°tÐ;ûð<ús   Š œA!£9AÁA!c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÊ  r>   r•  r   rr   r  r_   )rt   s   "ri   ru   ru   á  s(   € ÷ Iñ IÐ%>ð IÈð IÐPTñ Irh   c                ó&  € \        V\        P                  P                  4      '       g   R# ^ RIHp V! V4      pVf   R# V P                  P                  pVP                  P                  \        V4      4      pVf   R# VP                  VR4      # )aš  True if ``target`` is a custom op whose ``register_fake`` ran earlier in
this trace -- i.e. its ``_abstract_fn`` has a pending (not-yet-applied)
attribute mutation. Distinguishes an op defined+register_fake'd inside the
compiled function (recoverable via graph break) from a genuinely
unregistered op (should hard-error with actionable guidance).

Only detects the ``CustomOpDef.register_fake`` method form (a tracked
pending ``_abstract_fn`` store on ``tx.output.side_effects``); other forms
(e.g. an op with no ``CustomOpDef``, or a definition inside a HOP body whose
mutation lives in a subtracer) fall through to the hard error, preserving
pre-existing behavior.F)Ú_maybe_get_opdefÚ_abstract_fn)r„  rF  rõ  r÷  Útorch._library.custom_opsr¸  rî  Úside_effectsÚid_to_variabler�   rL  Úhas_pending_mutation_of_attr)rÊ  r•  r¸  Úopdefr»  r  s   &&    ri   Ú_custom_op_fake_impl_pendingr¿  á  sw   € ô �fœeŸj™j×3Ñ3×4Ò4ÙÝ:á˜VÓ$€EØ‚}ÙØ—9‘9×)Ñ)€LØ	×	$Ñ	$×	(Ñ	(¬¨E«Ó	3€BØ	‚zÙØ×4Ñ4°R¸ÓHÐHrh   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rn   r’  r~  rÊ  r>   rŽ  r  rr   r   r_   )rt   s   "ri   ru   ru   û  s6   € ÷ 	Uñ 	UØ
ð	Uà!ð	Uð ð	Uð 	ñ		Urh   c                ól  € \         P                  ! 4       p \        WV4      VP                  P                  ;P
                  \         P                  ! 4       V,
          ,          un        #   TP                  P                  ;P
                  \         P                  ! 4       T,
          ,          un        i ; irˆ   )r  r   Ú_get_fake_value_implrî  Úbytecode_tracing_timingsÚget_fake_value_ns)r’  rÊ  rŽ  Ú_t0s   &&& ri   r”  r”  û  so   € ô
 �,Š,‹.€CðUÜ# DÐ.BÓCà
�	‰	×*Ñ*×<Ò<ÄÇÂÃÐQTÕ@TÕTÖ<øˆ�	‰	×*Ñ*×<Ò<ÄÇÂÃÐQTÕ@TÕTÖ<ús   —A* Á*A	B3c               ó(   € V ^8„  d   QhRRRRRRRR/# rÁ  r_   )rt   s   "ri   ru   ru     s6   € ÷ Eñ EØ
ðEà!ðEð ðEð 	ñ	Erh   c                óà  a aaaaaaa€ ^ RI Hp ^RIHp ^RIHoHpHpHp S P                  oRS P                  9   d6   \        S P                  R,          4      '       d   S P                  R,          # \        SS P                  S P                  3V4      w  oo\        P                   P"                  P$                  '       g+   \        P                   P"                  P&                  '       dQ   \        S\)        S / 4      V4      pV U	u/ uF,  p	\        V	4      '       g   K  \+        V	4      V	P,                  bK.  	  p
p	M. p/ p
RoSP.                  pVf   \1        R4      hSR8X  dm   \3        S4      ^ 8”  d]   \5        S^ ,          \        P6                  P8                  4      '       d,   \;        S^ ,          V4      3\=        SR,          4      ,           oSR	8X  dq   SP>                  P@                  S PB                  ,          o\E        S4      '       d-   \F        PH                  ! SR
R4      e   SPK                  SS4       \;        SV4      oS PL                  R49   g;   \N        ;QJ d    R S 4       F  '       g   K   RM	  RM! R S 4       4      '       d-   \<        ;QJ d    . R S 4       F  NK  	  5M! R S 4       4      o ^ RI(H)p T;_uu_ 4        \U        4       ;_uu_ 4        V! 4       ;_uu_ 4        \W        VVVV V3R l4      pRRR4       RRR4       RRR4       T'       gA   \¨        Pª                  ! \        P¬                  \®        P°                  ! \²        SR37      X4      p\        P                   P"                  P$                  '       g+   \        P                   P"                  P&                  '       d(   SP>                  P´                  P·                  S TT
4       X# u up	i   + '       g   i     Lê; i  + '       g   i     Lõ; i  + '       g   i     EL; i  T d    h \X         Ed¸   pToTPZ                  e   TPZ                  o\5        S\        P\                  P^                  P`                  4      '       d£   SPb                  \        Pd                  Pf                  Ph                  Pj                  \        Pd                  Pf                  Pl                  Pj                  39   d   R.pMR.pS! R\o        SPb                  4      RSPb                   R2TSR7       EM/\5        S\        P\                  P^                  Pp                  4      '       d�   \        P                   P"                  Pr                  '       g2   S! R\o        SPb                  4      RSPb                   R2R.SR7       EM S! R\o        SPb                  4      RSPb                   R2R.SR7       EMo\5        S\        P\                  P^                  Pt                  4      '       d¶   SPb                  oRp\5        S\        Pv                  Px                  4      '       d^   \        Pz                  P}                  SP~                  PL                  SP~                  P€                  4      pTe   Tw  ppRT RT R T R!2pS! R"R#SPb                   2RT R$2.SR7       EM†\5        S\        P‚                  P„                  P†                  Pˆ                  4      '       d    T! TPŠ                  \o        S4      R%R&7      Sh\5        S\        P\                  P^                  PŒ                  4      '       d   \�        TT TT3R' l4       \1        R(4      Rh\5        ST4      '       d&   T! TPŠ                  TP                  ^ ,          4      Th\5        S\�        4      '       d;   R)\o        S4      9   d+   S! R*R+S PB                   R,S 2R. TP’                  OSR7       MPR-\o        S4      9   dA   \•        SS PB                  4      '       d%   S! R.S PB                   R/. TP–                  OSR7       \™        \o        T4      T4      p^R0IHMpHNpHOp S P                   '       g&   SP>                  P¢                  P¥                  S 4        T! \X        ST.R17        Rp?EL¥  T d   pT! TTP¦                  R27      RhRp?ii ; iRp?ii ; i)5ab  
Run the computation represented by `node` using fake tensors and return the result.

allow_non_graph_fake: whether to allow the return result to be:
    1. non-fake or 2. fake that is not created by this instance of Dynamo.
    If `True`, you must be prepared to deal with such return values, ideally
    by further wrapping them as this graph's fakes.
)ÚValueRangeErrorrŒ  )rI  r±  Ú	UserErrorÚUserErrorTyper  Nr�  Úcall_methodºr¹   NNÚcall_moduleÚ_initialize_hookc              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5irˆ   )r„  Úcomplex)r®   Úas   & ri   r°   Ú'_get_fake_value_impl.<locals>.<genexpr>K  s   é € ð MÙ(, 1Œ
�1”g×Ð«ùs   ‚TFc              3  ó¬   "  € T FJ  p\        V\        P                  4      '       d$   VP                  P                  e   \        V4      MTx € KL  	  R # 5irˆ   )r„  rF  ÚSymFloatr’  Úhintr  rD  s   & ri   r°   rÓ  O  sG   é € ð 
ñ �ô ˜c¤5§>¡>×2Ò2°s·x±x·}±}Ò7Pô �c”
àôó ùs   ‚AA)Ú_use_eager_on_nested_compilec                 ó6   <€ \        SP                  SS SS4      # rˆ   )Úrun_noderî  )r^  r`  Únnmoduler’  rÊ  s   €€€€€ri   r±  Ú&_get_fake_value_impl.<locals>.<lambda>]  s   ø€ œ §¡¨D°$¸ÀÔIrh   zkEnable tracing of data-dependent output operators with `torch._dynamo.config.capture_scalar_outputs = True`z’Consider wrapping the operator into a PyTorch-understood custom operator (see https://pytorch.org/tutorials/advanced/custom_ops_landing_page.html)zData dependent operatorz
Operator `zP` has a non-Tensor output whose value is dependent on the data of Tensor inputs.rK  zDynamic shape operatorz.`'s output shape depends on input Tensor data.zmEnable tracing of dynamic shape operators with `torch._dynamo.config.capture_dynamic_output_shape_ops = True`z'Dynamic shape operator (no meta kernel)zA` does not have a meta kernel that supports dynamic output shapesz!Please report an issue to PyTorchrë  z:It's possible that the support was implemented in module `z` and you may need to `import z`(z), otherwise z3Operator does not support running with fake tensorszunsupported operator: z}see https://docs.google.com/document/d/1GgvOe7C8_NVOMLOCwDaYV1mXXyHMXY7ExoewHqooxrs/edit#heading=h.64r4npvq0w0 for how to fixÚconstrain_as_size_example)Ú	case_namec                 óP   <€ S! R S RSP                    2\        S 4      R.S R7      # )zTensor device mismatchrà   z8Move inputs, parameters, and buffers to the same device.rK  )r•  r¦   )Úcauser’  r0  rI  s   €€€€ri   r±  rÛ  À  s/   ø€ ™Ø4Ø!˜d ! D§K¡K =Ð1Ü # E£
ØUÐVØ"õrh   úshould not be reachableÚargumentz&TypeError when making fake tensor callz
TypeError z: zno fake impl registeredz*Custom op missing fake impl during tracingz�A custom operator was defined and register_fake'd inside the compiled function, then called before the register_fake side effect was applied.)ÚFakeTensorObservedExceptionÚObservedExceptionrœ  r6  )r²  )rÊ  )ÚinterpolateÚ
is_integerÚwrapped_gradient)\Útorch.utils._sympy.value_rangesrÉ  rë  r�  r  rI  r±  rÊ  rË  r0  rŽ  rI   r›  r^  r`  rF  rM  rG   Úuse_graph_deduplicationÚtrack_nodes_for_deduplicationr1   rL  r¬  rƒ  r  rÐ  r„  r(  r<  r  r…  rî  r–  r•  r2  ré  rê  Ú_infer_parametersr{   r“  Útorch._dynamo.eval_framer×  r   rÿ  r  Ú	__cause__r+  r�  ÚDataDependentOutputExceptionÚfuncÚopsÚatenrÔ  rP  Ú_local_scalar_denser¦   ÚDynamicOutputShapeExceptionÚ capture_dynamic_output_shape_opsÚUnsupportedOperatorExceptionrõ  r÷  rj  Ú_dispatch_pystubÚ_schemaÚoverload_namer   r…  r†  ÚGuardOnDataDependentSymNodeÚCONSTRAINT_VIOLATIONÚFakeTensorDeviceMismatchErrorrµ  r;  Ú
USER_ERRORr¿  ÚSUPPORTABLEr¬  râ  rã  rœ  Úusersr‘  Ú
erase_noder²  r�  Útree_map_onlyr'  ræ  ÚpartialrŒ  Úregion_trackerÚtrack_node_mutations)r’  rÊ  rŽ  rÉ  r�  r±  rÊ  rË  Úflat_args_kwargsrE  Úid_to_initial_versionrƒ  r×  Úret_valrU  rO  Úimport_suggestionÚmaybe_pystubr”  Úctxrï  râ  rã  rœ  r  r^  rß  r`  rÚ  r0  rI  s   ff&                      @@@@@@ri   rÃ  rÃ    sw  ÿ€ õ @å#ßIÓIà	�‰€Bð ˜$Ÿ)™)Ô#¬°·	±	¸/Õ0J×(KÒ(KØ�y‰y˜Õ)Ð)ä-Ø
ˆT�Y‰Y˜Ÿ™Ð$Ð&:ó�L€Dˆ&ô
 	�‰×Ñ×4×4Ð4Ü�=‰=×Ñ×=×=Ð=ä5Ø”˜t RÓ(Ð*>ó
Ðñ .>ó!
Ù-= cÄÈÇÔ!ŒBˆs‹G�S—\‘\Ò!Ñ-=ð 	ð !
Ðð
 Ðà "Ðà€HØ—‘€IØÒÜÐ9Ó:Ð:Ø	ˆ]Ôœs 4›y¨1œ}´¸DÀ½GÄUÇXÁXÇ_Á_×1UÒ1Uä'¨¨Q­°Ó;Ð=ÄÀdÈ2ÅhÃÕOˆà	ˆ]ÔØ—9‘9×'Ñ'¨¯©Õ4ˆô ˜8×$Ò$Ü×&Ò& xÐ1CÀTÓJÒVð ×&Ñ& x°Ô6ô +¨8°YÓ?ˆà‡y�yÐEÔEÏËñ MÙ(,óMÏÏÊñ MÙ(,óM÷ Jò J÷ Œuñ 
ñ ó
�u‰uñ 
ñ ó
ó 
ˆðaVÝIçŠYÔ0×2Õ2Ñ4P×4RÕ4RÜ)ßIÐIóˆG÷ 5S×2�Y÷@  Ü× Ò Ü�L‰LÜ×ÒÔ/°BÔ7Øó
ˆô 	�‰×Ñ×4×4Ð4Ü�=‰=×Ñ×=×=Ð=à
�	‰	× Ñ ×5Ñ5ØØØ!ô	
ð €NùòE!
÷b 5S×4Rú×2×2ú�Y�YˆYûð ô ØÜõ XVØ ˆØ�;‰;Ò"Ø—K‘KˆEäØ”5×$Ñ$×0Ñ0×MÑM÷
ò 
ð
 �z‰zÜ—	‘	—‘×#Ñ#×+Ñ+Ü—	‘	—‘×2Ñ2×:Ñ:ðô ðKð‘ð`ð�ñ Ø1Ü˜EŸJ™J›Ø(¨¯©¨ð 5Ið IàØ÷ô Ø”5×$Ñ$×0Ñ0×LÑL÷
ò 
ô —=‘=×'Ñ'×H×HÐHÙØ4Ü §
¡
›OØ",¨U¯Z©Z¨LÐ8fÐ gðYðð #÷	ñ ØEÜ §
¡
›OØ",¨U¯Z©Z¨LÐ8yÐ zà;ðð #÷ô Ø”5×$Ñ$×0Ñ0×MÑM÷
ò 
ð —‘ˆBØ "ÐÜ˜"œeŸj™j×3Ñ3×4Ò4Ü$Ÿx™x×8Ñ8Ø—J‘J—O‘O R§Z¡Z×%=Ñ%=ó �ð  Ò+Ø".‘K�F˜Cð#Ø#) (Ð*HÈÈð QØ˜5 ð/ð &ñ
 ØMØ0°·±°Ð=Øà(Ð)ð *&ð &ðð
 ÷
ô Ø”5—8‘8×(Ñ(×8Ñ8×TÑT÷
ò 
ñ Ø×2Ñ2Ü�E“
Ø5ôð ð	ô
 Ø”5×$Ñ$×0Ñ0×NÑN÷
ò 
ô 5÷ôô !Ð!:Ó;ÀÐEÜ˜˜×/Ò/Ù˜M×>Ñ>ÀÇÁÀqÅ	ÓJÐPQÐQÜ˜œy×)Ò)¨j¼CÀ»JÔ.FÙØ@Ø$ T§[¡[ M°°E°7Ð;ØØ5Ð)×4Ñ4Ð5Øöð '¬#¨e«*Ô4Ô9UØ�—‘÷:
ò :
ñ" ØDØŸ;™;˜-ð9ð 7Ð)×5Ñ5Ð6Øõô .¬c°!«f°iÓ@ˆ÷	
ñ 	
ð �z�zˆzØ�I‰I�O‰O×&Ñ& tÔ,ð	VÙ$¤\°2¸S¸E×BÓBøØ ô 	VÙ-¨c¸a¿l¹lÔKÐQUÐUûð	VþðoXVúsž   ÄO$Ä O$Ë P# ËPË#O<	Ë3O)ÌO<	ÌPÌP# Ï)O9Ï4O<	Ï<PÐPÐP 	ÐP# Ð P# Ð#c-Ð5c-Ð6Ec(ÖL'c(â.cãc%ãc ã c%ã%c(ã(c-c               ó   € V ^8„  d   QhRR/# )rn   rr   útorch.fx.Node | Noner_   )rt   s   "ri   ru   ru     s   € ÷ 1ñ 1Ð.ñ 1rh   c                 ó$   € \        \        R R4      # )ræ   N)r  Ú_current_noder_   rh   ri   Úget_current_noder    s   € Ü”= '¨4Ó0Ð0rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r’  r~  rr   r[  r_   )rt   s   "ri   ru   ru     s   € ÷ "ñ "˜=ð "Ð-Hñ "rh   c              #  óx   "  € \        4       pV \        n         R x € V\        n        R #   T\        n        i ; i5irˆ   )r  r  ræ   )r’  Úolds   & ri   Úset_current_noder    s-   é € ä
Ó
€CØ„MÔð"Ûà!ŒÖø˜cŒÕüs   ‚:™* �:ª7·:c               ó0   € V ^8„  d   QhRRRRRRRRRRRR/# )	rn   Útracerr   r’  r~  r^  r`  rÚ  rr   r_   )rt   s   "ri   ru   ru      sD   € ÷ Zñ ZØðZØ$ðZØ,/ðZØ9<ðZØHKðZàñZrh   c                ó¾  aaaa€ SP                   o\        S4      ;_uu_ 4        R VVVV3R llp^RIHp  SR8X  d   SP                  ! S/ SB uuRRR4       # SR8X  d‚   \        S^ ,          SP                  4      '       g+   ^RIHp ^RIHp V! R	R
V! R4      . VP                  OR7       \        S^ ,          SP                  4      ! SR,          / SB uuRRR4       # SR8X  d"   Vf   \        R4      hV! S/ SB uuRRR4       # SR8X  d0   V P                  P                  SP                  4      uuRRR4       # SR8X  d:   RSP                  9  d   \        R4      hSP                  R,          uuRRR4       #  RRR4       \        S4      h  \        \         3 dY   p	^RIHp ^RIHp . TP                  Op
\#        T	\        4      '       d   T
RR.,          p
T! RR
T! T	4      T
T	R7        Rp	?	LwRp	?	iT d    h \$         d    h \&         d1   p	\)        T! T	4      4      P+                  T	P,                  4      T	hRp	?	ii ; i  + '       g   i     LÒ; i)a   
Runs a given node, with the given args and kwargs.

Behavior is dictated by a node's op.

run_node is useful for extracting real values out of nodes.
See get_real_value for more info on common usage.

Note: The tracer arg is only used for 'get_attr' ops
Note: The nnmodule arg is only used for 'call_module' ops

Nodes that are not call_function, call_method, call_module, or get_attr will
raise an AssertionError.
c               ó    € V ^8„  d   QhRRRR/# )rn   rU  r   rr   r¦   r_   )rt   s   "ri   ru   Úrun_node.<locals>.__annotate__5  s   € ÷ 	ñ 	 #ð 	¨#ñ 	rh   c           	     óV   <€ R S RSP                    RS RS R2	\        V 4      ,           # )z0Dynamo failed to run FX node with fake tensors: rà   z(*z, **z): got )r•  rž  )rU  r^  r`  r’  r0  s   &€€€€ri   Úmake_error_messageÚ$run_node.<locals>.make_error_message5  s=   ø€ àBÀ2À$ÀaÈÏÉÀ}ÐTVÐW[ÐV\Ð\`ÐagÐ`hÐhoÐpÜ�q“'õðrh   )r±  r½  NrÌ  rŒ  rH  z/Missing attribute when running call_method noderë  zattribute not definedrŽ  rÍ  rÎ  z,nnmodule must not be None for call_module opr“  Úplaceholderr  z8Expected 'example_value' in node.meta for placeholder opzsIf the op is a custom op, did you implement a fake tensor implementation? (e.g. with `@my_custom_op.register_fake`)z;If the op is a PyTorch op, please file an issue to PyTorch.zGNotImplementedError/UnsupportedFakeTensorException when running FX noderK  )r0  r  r  r±  r•  rí   rë  r�  rI  rû  r  r  Úoutput_graphÚget_submodulerŽ  rQ  ré  r„  ru  r  r  r³  r´  )r  r’  r^  r`  rÚ  r  r±  r�  rI  rU  rO  r0  s   &fff&      @ri   rÙ  rÙ     sA  û€ ð" 
�‰€Bä	˜$×	Õ	÷	ó 	õ 	%ð;	Ø�_Ô$Ø—{’{ DÐ3¨FÑ3÷ 
 Ò	ð �}Ô$Ü˜t A�w¨¯©×4Ò4Ý3Ý2á!Ø QØ "Ù$6Ð7NÓ$OØ=Ð 1× <Ñ <Ð=õ	ô ˜t A�w¨¯©Ô4°d¸2µhÐIÀ&ÑI÷1 
 Ò	ð2 �}Ô$ØÒ#Ü(Ð)WÓXÐXÙ Ð0¨Ñ0÷9 
 Ò	ð: �zÔ!Ø×*Ñ*×8Ñ8¸¿¹ÓE÷= 
 Ò	ð> �}Ô$Ø"¨$¯)©)Ô3Ü(ØRóð ð —y‘y Õ1÷I 
 Ò	ð> %÷? 
 ôN ˜Ó
ÐøôC $Ô%CÐDô 	å+Ý*à3Ð'×2Ñ2Ð3ˆEÜ˜!Ô0×1Ò1Øð@àQðõ �ñ ØaØÙ.¨qÓ1ØØ÷ò ûð ô 	ØÜô 	ð
 Üô 	ÜÑ1°!Ó4Ó5×DÑDØ—‘óàðûð	ú÷E 
 ×	úsl   ¤I¸FÁA=FÃ#FÄ+FÅ5FÆIÆI	Æ&AG9Ç4IÇ9I	È
I	È
I	ÈI	È+IÉI	É	IÉI	c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r’  r~  r  r   rr   r_   )rt   s   "ri   ru   ru   }  s!   € ÷ /ñ /˜ð /°ð /¸ñ /rh   c                ó²  aa	a
a€ ^RI Ho
 ^RIHo SP                  pW9   d	   W ,          # V P
                  p\        P                  P                  P                  V P                  V P                  3V3R l4      w  rEVR8X  d/   RV P                  9   d   V P                  R,          P                  # VR8X  dY   SP                  P                  V P                   ,          p\#        V4      '       g   \$        P&                  ! V4      pMV! V/ VB  MRp \)        SWWV4      pWrV &   V#   \*         d%   pTo	\-        T	T
T3R l4       \/        R	4      RhRp?ii ; i)
z…
Run the actual computation represented by `node` and return the result.
This will execute any dependent nodes in the graph as well.
rŒ  rH  c                ó   <€ \        V S4      # rˆ   )Úget_real_value)r2  r  s   &€ri   r±  Ú get_real_value.<locals>.<lambda>Œ  s   ø€ ”.  FÔ+rh   r  ÚgraphargrÎ  Nc                 ó6   <€ S! R RR. SP                   OS R7      # )z7RuntimeError when trying to get real value from fx.Noderë  rK  )rû  )Úexnr�  rI  s   €€€ri   r±  r!  £  s%   ø€ ‘MØQØØØ5Ð)×4Ñ4Ð5Øõrh   rà  )rë  r�  r  rI  Úreal_value_cacher0  rF  r   r’  rš  r^  r`  rŽ  Úexampler  r–  r•  r2  r  r  rÙ  r  rµ  r  )r’  r  Úcacher0  r^  r`  Ú	nn_moduleÚ
real_valuerU  r$  r�  rI  s   &f       @@@ri   r   r   }  s+  û€ õ
 $Ý"à×#Ñ#€EØ„}Ø�{Ðà	�‰€BÜ—8‘8—=‘=×(Ñ(Ø	�‰�D—K‘KÐ Ü+ó�L€Dð
 
ˆ]Ô˜z¨T¯Y©YÔ6Ø�y‰y˜Õ$×,Ñ,Ð,à	ˆ]ÔØ×'Ñ'×2Ñ2°4·;±;Õ?ˆ	Ü˜i×(Ò(ÜŸš iÓ0‰Iñ �tÐ&˜vÓ&àˆ	ðBÜ˜f d°&ÓDˆ
Ø ˆd‰ð Ðøô ô BØˆÜ0öô	
ô Ð6Ó7¸TÐAûðBús   ÄD' Ä'EÄ2EÅEc               ó    € V ^8„  d   QhRRRR/# )rn   r§  útorch.nn.Modulerr   rs   r_   )rt   s   "ri   ru   ru   ¯  s   € ÷ Yñ Y¨ð Y¸Tñ Yrh   c           	     ó"  a€ ^ RI HoHp R V3R llpV P                  4        F*  w  r4V! V4      '       g   K  \	        RV RV! V4       24      h	  V P                  4        F*  w  r5V! V4      '       g   K  \	        RV RV! V4       24      h	  R# )rx   )ÚFakeTensorConfigrI   c               ó    € V ^8„  d   QhRRRR/# )rn   r‹  r   rr   r¦   r_   )rt   s   "ri   ru   Ú6assert_no_fake_params_or_buffers.<locals>.__annotate__²  s   € ÷ dñ d˜ð d ñ drh   c                ór   <€ SP                   '       d$   ^ RIpRVP                  ! V P                  4       2# R# )rx   Nz"FAKE TENSOR CREATION TRACEBACK: 
 zNEnable TORCH_FAKE_TENSOR_DEBUG=1 to get creation stack traces on fake tensors.)ÚdebugÚ	tracebackÚformat_listÚ_debug_trace)r‹  r2  r-  s   & €ri   Ústack_or_hintÚ7assert_no_fake_params_or_buffers.<locals>.stack_or_hint²  s2   ø€ Ø×!×!Ð!Ûà8¸×9NÒ9NÈqÏ~É~Ó9^Ð8_Ð`Ð`ácrh   zUnexpected fake buffer rà   zUnexpected fake param N)r‹  r-  rI   Únamed_buffersr  Únamed_parameters)r§  rI   r5  r{   Úbufferr­  r-  s   &     @ri   Ú assert_no_fake_params_or_buffersr:  ¯  s”   ø€ ßG÷dð dð ×(Ñ(Ö*‰ˆÙ�6�?Œ?Ü Ø)¨$¨¨q±¸vÓ1FÐ0GÐHóð ñ +ð
 ×*Ñ*Ö,‰ˆÙ�5�>Œ>Ü Ð#9¸$¸¸qÁÈuÓAUÐ@VÐ!WÓXÐXó -rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r   rr   r¦   r_   )rt   s   "ri   ru   ru   Ä  s   € ÷ 2ñ 2ˆSð 2�Sñ 2rh   c                ó8   € V P                    RV P                   2# )z1
Returns the fully qualified name of the object.
rÚ  )ra   rb   r€  s   &ri   Úfqnr=  Ä  s!   € ð �n‰nÐ˜Q˜s×/Ñ/Ð0Ð1Ð1rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úcount1r   Úcount2rr   r_   )rt   s   "ri   ru   ru   Ë  s!   € ÷ ñ ˜sð ¨Cð °Cñ rh   c                ó^   € \         P                  P                  P                  '       d   V # V# rˆ   )rF  rM  rG   Úassume_static_by_default)r?  r@  s   &&ri   ÚifdynstaticdefaultrC  Ë  s"   € Ü‡}�}×Ñ×4×4Ð4Øˆàˆrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r0  ztypes.ModuleTyperr   rs   r_   )rt   s   "ri   ru   ru   Ò  s   € ÷ Gñ GÐ*ð G¨tñ Grh   c           
     ó^  € \        \        P                  ! \        P                  P	                  \        \        V P                  4      4      4      4       FT  pVP                  R4      '       g   K  V^ ,          R8w  g   K,  \        P                  ! V P                   RVRR  24       KV  	  R# )z8
Ensure all the files in a given submodule are imported
z.pyr  rÚ  Néýÿÿÿ)rÝ  rÜ  Úlistdirr   r%  r   r¦   Ú__file__rˆ  Ú	importlibÚimport_moduler`   )r0  r  s   & ri   Úimport_submodulerK  Ò  st   € ô œ2Ÿ:š:¤b§g¡g§o¡o´d¼3ÀÇÁÓ6MÓ&NÓOÖPˆØ×Ñ˜U×#Ô#¨°­°sÖ(:Ü×#Ò# s§|¡| n°A°h¸sÀ°m°_Ð$EÖFó Qrh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   Û  s   € ÷ /ñ / 6ð /¨dñ /rh   c                ó*   € \        \        V 4      4      # rˆ   )Úclass_has_getattributer  r¤  s   &ri   Úobject_has_getattributerO  Û  s   € Ü!¤$ u£+Ó.Ð.rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   ri  r   r{   r¦   ræ   rr   rs   r_   )rt   s   "ri   ru   ru   ß  s(   € ÷ ñ ¨#ð °Sð Àð Èñ rh   c                óà   €  \         P                  V R 4      pW#V&   R#   \         dE    \        T \        P
                  4      '       g   h \        P
                  P                  T R 4      p LTi ; i©r]  N©r  Ú__getattribute__r  r„  r}  r~  )ri  r{   ræ   r÷  s   &&& ri   Ú object_setattr_ignore_descriptorrU  ß  s_   € ð	>Ü×#Ñ# C¨Ó4ˆð €dƒGøô ô >Ü˜#œyŸ™×/Ò/Øô
 �O‰O×,Ñ,¨S°*Ó=Šð>ús   ‚ žAA-Á,A-c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r   r{   r¦   rr   rs   r_   )rt   s   "ri   ru   ru   ï  s!   € ÷ 	ñ 	¨#ð 	°Sð 	¸Tñ 	rh   c                óÜ   €  \         P                  V R 4      pW! R#   \         dE    \        T \        P
                  4      '       g   h \        P
                  P                  T R 4      p LRi ; irR  rS  )ri  r{   r÷  s   && ri   Ú object_delattr_ignore_descriptorrX  ï  s[   € ð>Ü×#Ñ# C¨Ó4ˆð
 	
Šøô	 ô >Ü˜#œyŸ™×/Ò/ØÜ�O‰O×,Ñ,¨S°*Ó=Šð>ús   ‚ œAA+Á*A+c               ó    € V ^8„  d   QhRRRR/# ©rn   r|   r  rr   r  r_   )rt   s   "ri   ru   ru   û  s   € ÷ 	ñ 	 ð 	¨ñ 	rh   c                óœ   €  \        \        P                  ! V R 4      \        P                  4      '       d   R#  R#   \
         d     R# i ; i)rT  TF)r„  ré  rê  rŸ  rû  r  rŠ   s   &ri   rN  rN  û  sT   € ðÜÜ×"Ò" 3Ð(:Ó;Ü×Ñ÷
ò 
ñ ð	
ñ øô ô ØÙðús   ‚5< ¼AÁ
Ac               ó$   € V ^8„  d   QhRRRRRR/# )rn   ræ   r   Úignore_nn_module_getattrr  rr   rÑ  r_   )rt   s   "ri   ru   ru     s$   € ÷ 
ñ 
Øð
Ø*.ð
àñ
rh   c                óÒ   €  \         P                  ! \        V 4      R 4      pV'       d+   V\        P
                  P                  P                  J d   RpV#   \         d    Rp LCi ; i)Ú__getattr__N)ré  rê  r  r  rF  r(  r<  r_  )ræ   r]  Ú
getattr_fns   && ri   Úget_custom_getattrra    sX   € ðÜ×+Ò+¬D°«K¸ÓGˆ
÷   J´%·(±(·/±/×2MÑ2MÓ$Màˆ
ØÐøô ô ØŠ
ðús   ‚ A ÁA&Á%A&c                  ó"   € ] tR tRt^t^t^tRtR# )ÚTensorStaticReasoni  r_   N)r`   ra   rb   rc   Ú	PARAMETERÚ
NOT_TENSORÚNN_MODULE_PROPERTYrg   r_   rh   ri   rc  rc    s   † Ø€IØ€JØÔrh   rc  c               ó    € V ^8„  d   QhRRRR/# )rn   rþ  rc  rr   r¦   r_   )rt   s   "ri   ru   ru     s   € ÷ 5ñ 5Ð,>ð 5À3ñ 5rh   c                ó¨   € V \         P                  8X  d   R # V \         P                  8X  d   R# V \         P                  8X  d   R# \	        RV  24      h)z>mark_dynamic on parameter, parameters are always static today.z2mark_dynamic on a non tensor, how did this happen?z4tensor is static because it is nn module associated.zIllegal reason )rc  rd  re  rf  r  )rþ  s   &ri   Útensor_static_reason_to_messageri    sJ   € ØÔ#×-Ñ-Ô-ÙOØÔ#×.Ñ.Ô.ÙCØÔ#×6Ñ6Ô6ÙEÜ
˜?¨6¨(Ð3Ó
4Ð4rh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   r.  ztorch.Tensor | AnyÚ	is_tensorr  Útensor_sourcer    rr   z&tuple[bool, TensorStaticReason | None]r_   )rt   s   "ri   ru   ru   $  s0   € ÷ ñ Øðàðð ðð ,ñ	rh   c                óÐ  € ^RI Hp VP                  P                  4       '       g!   VP                  P	                  4       '       d)   \
        P                  '       d   R\        P                  3# \        V 4      \        P                  P                  J g   V! V4      '       d)   \
        P                  '       d   R\        P                  3# V'       g   R\        P                  3# R# )a   
Given a tensor, source, and is_tensor flag, determine if a shape should be static.

Args:
tensor - the real tensor to evaluate, parameters force a static shape.
is_tensor - internal dynamo check, essentially "is_tensor": target_cls is TensorVariable,
tensors not in a TensorVariable for whatever reason are forced static.

Returns a tuple, where the first element is the bool of whether or not this tensor should have a static shape.
The second element is a TensorStaticReason, useful for passing to tensor_static_reason_to_message if needed.
)Ú)is_from_unspecialized_param_buffer_sourceTrÎ  )rì  rn  rð  rò  rô  rG   Ú&force_nn_module_property_static_shapesrc  rf  r  rF  r(  r)  Úforce_parameter_static_shapesrd  re  )r.  rk  rl  rn  s   &&& ri   Útensor_always_has_static_shaperq  $  s®   € õ  Bð 	×"Ñ"×;Ñ;×=Ò=Ø×%Ñ%×HÑH×JÒJÜ
×
7×
7Ð
7ØÔ'×:Ñ:Ð:Ð:ô 	ˆV‹œŸ™×*Ñ*Ó*Ù4°]×CÒCÜ
×
.×
.Ð
.ØÔ'×1Ñ1Ð1Ð1ßØÔ'×2Ñ2Ð2Ð2ØÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r|  r¦   r§  rŠ  rr   r   r_   )rt   s   "ri   ru   ru   F  s"   € ÷ ñ  sð Ð0Dð Èñ rh   c                ó0   a a€ R  V V3R llp\        V4      # )c               ó   € V ^8„  d   QhRR/# r�  r_   )rt   s   "ri   ru   Ú/lazy_format_graph_tabular.<locals>.__annotate__G  s   € ÷ Wñ W�3ñ Wrh   c                 óš  <€  ^ RI H p  SP                  P
                   Uu. uF;  qP                  TP                  TP                  TP                  TP                  .NK=  	  ppT ! T. ROR7      p\        SSP                  P                  P                  T4      #   \         d     R\        \        SS4      4      ,           u # i ; iu upi )rx   )r²   zkTabulate module missing, please install tabulate to log the graph in tabular format, logging code instead:
r¨   )Úopcoder{   r•  r^  r`  )r²   r³   r¦   r)   r‘  r/  r0  r{   r•  r^  r`  r(   ÚforwardÚ__code__re  )r²   r2  Ú
node_specsÚ	graph_strr|  r§  s       €€ri   ÚinnerÚ(lazy_format_graph_tabular.<locals>.innerG  sµ   ø€ ð	Ý)ð ACÇÁÇÂó
Ù@N¸1�T‰T�1—6‘6˜1Ÿ8™8 Q§V¡V¨Q¯X©XÓ6Áð 	ð 
ñ ØÒ Nô
ˆ	ô " '¨2¯:©:×+>Ñ+>×+JÑ+JÈIÓVÐVøô ô 	à~ÜÔ,¨W°bÓ9Ó:õ;òð	üò
s   ƒB ¡ACÂ'CÃCrD   )r|  r§  r|  s   ff ri   Úlazy_format_graph_tabularr~  F  s   ù€ ÷Wñ Wô" �eÓÐrh   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R/# )
rn   r÷  r¦   r{   r  Úline_norq   r  r   rr   r_   )rt   s   "ri   ru   ru   [  sD   € ÷ Wñ WØðWØðWØ&)ðWØ47ðWØ?BðWàñWrh   c                óh   € V  R V R V RV R\         P                  ! V4      P                  4        R2
# )rà   z line z 
r©   )ÚdisÚBytecode)r÷  r{   r  r€  r  s   &&&&&ri   Úformat_bytecoder„  [  s=   € ð ˆX�Q�t�f˜A˜h˜Z v¨g¨Y°c¼#¿,º,ÀtÓ:L×:PÑ:PÓ:RÐ9SÐSUÐVÐVrh   Ú_backward_pre_hooksÚ_backward_hooksc               ó   € V ^8„  d   QhRR/# rÓ  r_   )rt   s   "ri   ru   ru   q  s   € ÷ ñ  Dñ rh   c                 ó   € \        \        \        P                  P                  P
                  P                  4      ;'       g8    \        \        P                  P                  P
                  P                  4      4      # rˆ   )r  rÐ  rF  r(  Úmodulesr”  Ú_global_backward_hooksÚ_global_backward_pre_hooksr_   rh   ri   Únn_module_has_global_hooksrŒ  q  sY   € ô ÜŒE�H‰H×Ñ×#Ñ#×:Ñ:Ó;÷ 	Cð 	CÜŒu�x‰x×Ñ×&Ñ&×AÑAÓBóð rh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rn   r0  r+  Úcheck_forward_hooksr  Úcheck_backward_hooksÚcheck_state_dict_hooksrr   rÆ  r_   )rt   s   "ri   ru   ru   z  s:   € ÷ ñ Ø	ðàðð ðð !ð	ð
 ñrh   c                ó”  € . pV'       * ;'       d    V'       * ;'       d    V'       * pV'       g	   V'       d   VP                  \        4       V'       g	   V'       d   VP                  \        4       V'       d   VP                  \        4       . pV F1  p\	        W. 4      pV F  p	W‰,          p
VP                  V
4       K  	  K3  	  V# )z¶
Sometimes its useful to differentiate between types of hooks such as forward/backward/pre
hooks executed during module.__call__, and state_dict hooks which are executed separately.
)ÚextendÚforward_hook_namesÚbackward_hook_namesÚstate_dict_hook_namesr  rÅ   )r0  rŽ  r�  r�  Úhook_dicts_to_checkÚcheck_all_hooksÚ	all_hooksÚhook_dict_nameÚhooksÚ	hook_namerÃ   s   &&&&       ri   Únn_module_get_all_hooksrœ  z  s´   € ð ÐàÔ÷ 	'ð 	'Ø$Ô$÷	'ð 	'à&Ô&ð ÷
 ŸoØ×"Ñ"Ô#5Ô6ßŸØ×"Ñ"Ô#6Ô7ßØ×"Ñ"Ô#8Ô9à€IÛ-ˆÜ˜¨RÓ0ˆÛˆIØÕ#ˆDà×Ñ˜TÖ"ó ñ .ð Ðrh   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )rn   r0  r+  rŽ  r  r�  r�  rr   r_   )rt   s   "ri   ru   ru   ›  s:   € ÷ ñ Ø	ðàðð ðð !ð	ð
 
ñrh   c                ó6   € \        V VVVR7      p\        V4      # )zD
Helper function to check if a module has any hooks attached to it.
)rŽ  r�  r�  )rœ  r  )r0  rŽ  r�  r�  rš  s   &&&& ri   Únnmodule_has_hooksrŸ  ›  s&   € ô $ØØ/Ø1Ø5ô	€Eô �‹;Ðrh   c               ó    € V ^8„  d   QhRRRR/# ©rn   ræ   r   rr   r_   )rt   s   "ri   ru   ru   ­  ó   € ÷ ñ ˜3ð  3ñ rh   c                ób  € \        V 4      '       d   V # \        V \        P                  4      '       d   \	        V P
                  4      # \        V \        P                  4      '       d   V P                  RR7      # \        V \        \        34      '       d   \        V 4      ! R V  4       4      # V # )z0Convert tensor and tnp.ndarray to numpy.ndarray.T)Úforcec              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irˆ   )Úto_numpy_helper©r®   ri  s   & ri   r°   Ú"to_numpy_helper.<locals>.<genexpr>¶  ó   é € ÐA¹5°Cœ?¨3×/Ð/»5ùrÈ  )rI   r„  Útnpr#  r¦  r.  rF  r'  Únumpyr…  r¶  r  r¤  s   &ri   r¦  r¦  ­  s}   € äˆu‡~‚~ØˆÜ�%œŸ™×%Ò%Ü˜uŸ|™|Ó,Ð,Ü	�Eœ5Ÿ<™<×	(Ò	(Ø�{‰{ ˆ{Ó&Ð&Ü	�EœE¤4˜=×	)Ò	)Ü�EŒ{ÑA¹5ÓAÓAÐAàˆrh   c               ó    € V ^8„  d   QhRRRR/# r¡  r_   )rt   s   "ri   ru   ru   »  r¢  rh   c                óX  € \         f   \        R4      h\        V \         P                  4      '       d   \        P
                  ! V 4      # \        V \        P                  4      '       d   V P                  # \        V \        \        34      '       d   \        V 4      ! R V  4       4      # V # )zeConvert tnp.ndarray to tensor, leave other types intact. If a list/tuple, loop through it to convert.z$numpy must be available (np is None)c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irˆ   )Únumpy_to_tensorr§  s   & ri   r°   Ú"numpy_to_tensor.<locals>.<genexpr>Ä  r©  rÈ  )r¨  r  r„  r#  rF  r\  rª  r.  r…  r¶  r  r¤  s   &ri   r¯  r¯  »  sy   € ä	‚zÜÐCÓDÐDÜ�%œŸ™×$Ò$Ü�Š˜uÓ%Ð%Ü�%œŸ™×%Ò%Ø�|‰|ÐÜ	�EœE¤4˜=×	)Ò	)Ü�EŒ{ÑA¹5ÓAÓAÐAàˆrh   c                  ó:   € ] tR tRtR R ltR R ltR R ltRtR	# )
Únumpy_to_tensor_wrapperiÉ  c               ó    € V ^8„  d   QhRRRR/# )rn   r)  úCallable[_P, R]rr   rs   r_   )rt   s   "ri   ru   Ú$numpy_to_tensor_wrapper.__annotate__Ê  s   € ÷ 5ñ 5˜/ð 5¨dñ 5rh   c                	óV   € Wn         R V P                   P                  ,           V n        R# ©Úwrapped_N©r)  r`   )rÃ  r)  s   &&ri   rÄ  Ú numpy_to_tensor_wrapper.__init__Ê  s   € ØŒØ" T§V¡V§_¡_Õ4ˆŽrh   c               ó   € V ^8„  d   QhRR/# r�  r_   )rt   s   "ri   ru   rµ  Î  s   € ÷ Bñ B˜#ñ Brh   c                	ó6   € R V P                   P                   R2# )z<Wrapped function <original ú>>r¹  rÉ  s   &ri   Ú__repr__Ú numpy_to_tensor_wrapper.__repr__Î  s   € Ø-¨d¯f©f¯o©oÐ->¸bÐAÐArh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   r^  r_  r`  ra  rr   r   r_   )rt   s   "ri   ru   rµ  Ñ  s!   € ÷ $ñ $˜gð $°ð $¸sñ $rh   c                	ó<   € V P                   ! V/ VB p\        V4      # rˆ   )r)  r¯  ©rÃ  r^  r`  rä   s   &*, ri   ræ  Ú numpy_to_tensor_wrapper.__call__Ñ  s    € Ø�fŠf�dÐ%˜fÑ%ˆÜ˜sÓ#Ð#rh   )r`   r)  N)r`   ra   rb   rc   rÄ  r¾  ræ  rg   r_   rh   ri   r²  r²  É  s   † õ5õB÷$ñ $rh   r²  c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r   r{   r¦   rr   r_   )rt   s   "ri   ru   ru   Ö  s!   € ÷ $ñ $˜Cð $ sð $¨sñ $rh   c                ó  € \        V \        P                  4      '       d   \        W4      p\	        V4      # \        V \
        P                  4      '       d,   \        \        P                  ! V 4      V4      p\	        V4      # R # rˆ   )r„  rª  r#  r  r¯  rF  r'  )ri  r{   rä   s   && ri   Únumpy_attr_wrapperrÇ  Ö  s^   € Ü�#”s—{‘{×#Ò#Ü�cÓ ˆÜ˜sÓ#Ð#Ü	�CœŸ™×	&Ò	&Ü”c—k’k #Ó&¨Ó-ˆÜ˜sÓ#Ð#ñ 
'rh   c                  ó>   € ] tR tRtRtR R ltR R ltR R ltR	tR
# )Únumpy_method_wrapperiß  zgConvert obj from torch.Tensor to tnp.ndarray and call method. Then convert result back to torch.Tensor.c               ó    € V ^8„  d   QhRRRR/# )rn   Úmethodr¦   rr   rs   r_   )rt   s   "ri   ru   Ú!numpy_method_wrapper.__annotate__â  s   € ÷ 1ñ 1˜sð 1 tñ 1rh   c                	óB   € Wn         R V P                   ,           V n        R# r·  )rË  r`   )rÃ  rË  s   &&ri   rÄ  Únumpy_method_wrapper.__init__â  s   € ØŒØ" T§[¡[Õ0ˆŽrh   c               ó   € V ^8„  d   QhRR/# r�  r_   )rt   s   "ri   ru   rÌ  æ  s   € ÷ <ñ <˜#ñ <rh   c                	ó"   € R V P                    R2# )z<Wrapped method <original r½  )rË  rÉ  s   &ri   r¾  Únumpy_method_wrapper.__repr__æ  s   € Ø+¨D¯K©K¨=¸Ð;Ð;rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  r   r`  rr   r_   )rt   s   "ri   ru   rÌ  é  s!   € ÷ $ñ $˜cð $¨Sð $°Sñ $rh   c                	óÞ   € V^ ,          p\        V\        P                  4      '       d   \        P                  ! V4      p\        W0P                  4      pV! VR,          / VB p\        V4      # ©rx   rÍ  )r„  rF  r'  rª  r#  r  rË  r¯  )rÃ  r^  r`  ri  Úmethod_callablerä   s   &*,   ri   ræ  Únumpy_method_wrapper.__call__é  sV   € Ø�1�gˆÜ�cœ5Ÿ<™<×(Ò(Ü—+’+˜cÓ"ˆCÜ! #§{¡{Ó3ˆÙ˜t B�xÐ2¨6Ñ2ˆÜ˜sÓ#Ð#rh   )r`   rË  N©	r`   ra   rb   rc   r÷   rÄ  r¾  ræ  rg   r_   rh   ri   rÉ  rÉ  ß  s   † Ùqõ1õ<÷$ñ $rh   rÉ  c                  ó>   € ] tR tRtRtR R ltR R ltR R ltR	tR
# )Únumpy_operator_wrapperiò  zQImplements dunder methods for tnp.ndarray via functions from the operator libraryc               ó    € V ^8„  d   QhRRRR/# )rn   r0  rÌ  rr   rs   r_   )rt   s   "ri   ru   Ú#numpy_operator_wrapper.__annotate__õ  s   € ÷ 1ñ 1Ð-ð 1°$ñ 1rh   c                	ó:   € Wn         R VP                   2V n        R# r·  )r0  r`   )rÃ  r0  s   &&ri   rÄ  Únumpy_operator_wrapper.__init__õ  s   € ØŒØ" 2§;¡; -Ð0ˆŽrh   c               ó   € V ^8„  d   QhRR/# r�  r_   )rt   s   "ri   ru   rÛ  ù  s   € ÷ @ñ @˜#ñ @rh   c                	ó"   € R V P                    R2# )z<Wrapped operator <original r½  )r`   rÉ  s   &ri   r¾  Únumpy_operator_wrapper.__repr__ù  s   € Ø-¨d¯m©m¨_¸BÐ?Ð?rh   c               ó$   € V ^8„  d   QhRRRRRR/# rÁ  r_   )rt   s   "ri   ru   rÛ  ü  s!   € ÷ 	$ñ 	$˜gð 	$°ð 	$¸sñ 	$rh   c                	óv   € V'       d   \        R V 24      hR V 4       pV P                  ! V!  p\        V4      # )zExpected no kwargs, got c              3  ó’   "  € T F=  p\        V\        P                  4      '       d   \        P                  ! V4      MTx € K?  	  R # 5irˆ   )r„  rF  r'  rª  r#  rD  s   & ri   r°   Ú2numpy_operator_wrapper.__call__.<locals>.<genexpr>  s2   é € ð 
ÙRVÈ3¤
¨3´·±× =Ò =ŒC�KŠK˜ÔÀ3ÔFÓRVùs   ‚AA)r  r0  r¯  rÃ  s   &*, ri   ræ  Únumpy_operator_wrapper.__call__ü  sA   € ßÜ Ð#;¸F¸8Ð!DÓEÐEñ
ÙRVó
ˆð �gŠg�t‰nˆÜ˜sÓ#Ð#rh   )r`   r0  Nr×  r_   rh   ri   rÙ  rÙ  ò  s   † Ù[õ1õ@÷	$ñ 	$rh   rÙ  )r¿  c               ó   € V ^8„  d   QhRR/# )rn   rr   z.dict[int, tuple[Callable[..., Any], Any, str]]r_   )rt   s   "ri   ru   ru   	  s   € ÷ ñ Ð&Tñ rh   c                 ó2  € / p \         P                  4        F|  w  rVP                  pVP                  P                  4        FM  w  rE\	        V4      '       g   K  \        WR 4      p\	        V4      '       g   K7  VVV RV 23V \        V4      &   KO  	  K~  	  V # )NrÚ  )ÚNP_TO_TNP_MODULErÙ   r`   r]  r‘  r  rL  )rE  Únp_modÚtnp_modr”  r{   Útnp_callableÚnp_callables          ri   Ú_torch_numpy_callable_id_maprí    s—   € à=?€FÜ+×1Ñ1Ö3‰ˆØ—‘ˆØ")×"2Ñ"2×"8Ñ"8Ö":ÑˆDÜ˜L×)Ò)Ùä! &°Ó5ˆKÜ˜K×(Ò(Ùð ØØ�(˜!˜D˜6Ð"ð(ˆF”2�lÓ#Ó$ó #;ñ 4ð €Mrh   i   c               ó    € V ^8„  d   QhRRRR/# )rn   Úobj_idrq   rr   z%tuple[Callable[..., Any], str] | Noner_   )rt   s   "ri   ru   ru     s   € ÷ %ñ %Øð%à*ñ%rh   c                ó  € \        4       V ,          w  rpVP                  R 4      w  rEpVR8X  g   VP                  R4      '       d   R#  V\        \        P
                  ! V4      V4      Jd   R#  W3#   \        \        3 d     R# i ; i)rÚ  znumpy.randomznumpy.random.N)rí  Ú
rpartitionrV  r  rI  rJ  r  r³   )rï  rë  rì  Ú	cache_keyr”  r  r{   s   &      ri   Ú%_torch_numpy_callable_cache_key_by_idró    s”   € ô ,HÓ+IÈ&Õ+QÑ(€L˜yà×*Ñ*¨3Ó/�O€Fˆtð �Ô 6×#4Ñ#4°_×#EÒ#EÙðØœg¤i×&=Ò&=¸fÓ&EÀtÓLÓLÙð Mð
 Ð$Ð$øô œKÐ(ô Úðús   Á
$A4 Á4B	ÂB	c               ó    € V ^8„  d   QhRRRR/# )rn   ri  rÌ  rr   rs  r_   )rt   s   "ri   ru   ru   2  s   € ÷ ñ Ð);ð À
ñ rh   c                óv   € \        V 4      pV\        4       9  d   R # \        V4      pVf   R # Vw  r4WJd   R # V# rˆ   )rL  rí  ró  )ri  rï  Úentryrë  rò  s   &    ri   Ú_torch_numpy_callable_cache_keyr÷  2  sE   € Ü�‹W€Fð Ô1Ó3Ô3Ùä1°&Ó9€EØ‚}Ùà#Ñ€LØ
ÓÙàÐrh   c               ó    € V ^8„  d   QhRRRR/# r‚  r_   )rt   s   "ri   ru   ru   D  s   € ÷ 4ñ 4˜vð 4¨$ñ 4rh   c                ó   € \        V 4      R J# rˆ   )Únumpy_wrapper_cache_keyr€  s   &ri   Úis_safe_numpy_wrapperrû  D  s   € Ü" 3Ó'¨tÐ3Ð3rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ri  r   rr   ztuple[str, str] | Noner_   )rt   s   "ri   ru   ru   H  s   € ÷ )ñ ) ð )Ð)?ñ )rh   c                ó�   € \        V 4      \        Jd   R # \        V P                  4      pVf   R # \        V 4      P                  V3# rˆ   )r  r²  r÷  r)  rb   )ri  rå   s   & ri   rú  rú  H  s=   € ÜˆCƒyÔ/Ó/Ùä
)¨#¯%©%Ó
0€CØ
‚{Ùä�‹I×"Ñ" CÐ(Ð(rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r°  r   rr   r_   )rt   s   "ri   ru   ru   S  s   € ÷ ñ ˆcð �cñ rh   c                ó~  € ^ RI Hp V! V 4      '       g   V # V P                  '       d¢   V P                  4        Uu. uF6  p\        P
                  P                  P                  P                  V4      NK8  	  ppV P                  4        Uu. uF6  p\        P
                  P                  P                  P                  V4      NK8  	  ppM V P                  4       pV P                  4       p\        P                  ! VVV P                  V P                  V P                  R7      pVP                  4        V# u upi u upi )rx   )rO  )r  r�  rü  )r‹  rO  Ú_has_symbolic_sizes_stridesr:  rF  r   r…  r†  Úoptimization_hintr,  Úempty_stridedr  r�  rü  Úzero_)r°  rO  rÉ  r:  r,  rÿ  s   &     ri   Údefaker	  S  s
  € Ý<á˜!×ÒØˆð 	×$×$Ð$ð
 QR×PVÑPVÔPXó
ÙPXÈ1ŒE�H‰H×!Ñ!×1Ñ1×CÑCÀAÖFÑPXð 	ð 
ð
 —X‘X”Zó
á�ô �H‰H×!Ñ!×1Ñ1×CÑCÀAÖFÙð 	ð 
ˆð
 �v‰v‹xˆØ—‘“ˆÜ×ÒØØØ�g‰gØ�x‰xØ—o‘oô	€Að ‡G�G„IØ€Hùò%
ùò
s   »<D5Â<D:c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   r  r´  r^  r_  r`  ra  rr   rU   r_   )rt   s   "ri   ru   ru   s  s,   € ÷ ñ ØðØ 'ðØ3<ðàñrh   c                ó   € V ! V/ VB # rˆ   r_   )r  r^  r`  s   &*,ri   Ú8_disable_side_effect_safety_checks_for_current_subtracerr	  s  s   € ñ ˆtÐ�vÑÐrh   c               ó    € V ^8„  d   QhRRRR/# r‚  r_   )rt   s   "ri   ru   ru   y  s   € ÷ 4ñ 4˜Vð 4¨ñ 4rh   c                óL   € ^ RI pWP                  P                  P                  J # r¾   )Útorch.utils.checkpointrG  Ú
checkpoint)ri  rF  s   & ri   Úis_utils_checkpointr	  y  s   € ã!à—+‘+×(Ñ(×3Ñ3Ð3Ð3rh   c               ó    € V ^8„  d   QhRRRR/# r‚  r_   )rt   s   "ri   ru   ru   €  s   € ÷ .ñ .˜Fð . tñ .rh   c                ó   € ^ RI Hp WJ # )rx   )Úinvoke_subgraph_placeholder)Ú'torch._higher_order_ops.invoke_subgraphr	  )ri  r	  s   & ri   Úis_invoke_subgraphr	  €  s   € ÝSàÐ-Ð-rh   c               ó    € V ^8„  d   QhRRRR/# ©rn   Úoptionsr   rr   r_   )rt   s   "ri   ru   ru   †  s   € ÷ ñ ¨cð °cñ rh   c                 ód   € ^RI Hp VP                  ! \        P                  P
                  3/ V B # )r¹   ©Ú TorchHigherOrderOperatorVariable)Úvariables.higher_order_opsr	  ÚmakerF  Ú_higher_order_opsÚinvoke_subgraph)r	  r	  s   , ri   Úbuild_invoke_subgraph_variabler	  †  s/   € ÝLà+×0Ò0Ü×Ñ×/Ñ/ñà
ñð rh   c               ó    € V ^8„  d   QhRRRR/# r	  r_   )rt   s   "ri   ru   ru   �  s   € ÷ ñ ¨ð °ñ rh   c                 óÊ   € ^ RI Hu Hp ^RIHp VP
                  p\        P                  P                  P                  '       d   VP                  pVP                  ! V3/ V B # )rx   Nr	  )Útorch._higher_order_ops.wrapr	  Úwrapr	  r	  Útag_activation_checkpointrF  r3  rG   Úfunctionalize_rng_opsÚwrap_activation_checkpointr	  )r	  Úhigher_order_opsr	  Úactivation_checkpoint_ops   ,   ri   Úbuild_checkpoint_variabler&	  �  s_   € ß;Ð;åLð
 	×2Ñ2ð ô ×Ñ×Ñ×4×4Ð4Ø#3×#NÑ#NÐ à+×0Ò0Ø ñà
ñð rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Údevice_typerA   rr   r   r_   )rt   s   "ri   ru   ru   ¢  s   € ÷ ñ  nð ¸ñ rh   c                ó®   € ^RI Hp \        P                  ! V 4      P                  pV! 4       pVR8X  d    V# VR9   d   V'       d   \        4       pV# RpV# )r¹   )Úis_dynamo_supportedr  F)rN  rc  Úmtia)Ú
eval_framer*	  rF  r�  r  r.   )r(	  r*	  r  Úcompile_supporteds   &   ri   Úis_compile_supportedr.	  ¢  s`   € Ý/ä�<Š<˜Ó$×)Ñ)€DÙ+Ó-ÐØˆu„}Øð
 Ðð	 
Ð(Ô	(×->Ü&›LÐð Ðð "ÐØÐrh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r¦   Úoffsetrq   rr   r_   )rt   s   "ri   ru   ru   ´  s&   € ÷ 	Cñ 	C�Sð 	C #ð 	C¨#ñ 	Crh   c                ób   € V P                  R4      p\        VRV P                  RRR7      4      # )zÖ
Convert byte offset `offset` of `str` into character offset.
Byte offset is used for 3.11+ instruction column data.
Takes things like unicode characters into consideration.

Unchanged from CPython implementation.
zutf-8Nrß  )Úerrors)ÚencoderÐ  Údecode)r¦   r0	  Úas_utf8s   && ri   Ú_fix_offsetr6	  ´  s4   € ð �j‰j˜Ó!€GÜˆw�w˜Ð×&Ñ& w°yÐ&ÓAÓBÐBrh   c                  ó@   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   RtR# )	Ú_AnchorsiÀ  rq   Úleft_end_linenoÚleft_end_offsetÚright_start_linenoÚright_start_offsetr_   Nr›  r_   rh   ri   r8	  r8	  À  s   ‡ ð ÓØÓØÓà×rh   r8	  c               ó    € V ^8„  d   QhRRRR/# )rn   Úsegmentr¦   rr   z_Anchors | Noner_   )rt   s   "ri   ru   ru   Ê  s   € ÷ Yñ Y¨ð Y°ñ Yrh   c                ó²  aa€ \         P                  R8  d   \        R\         P                   24      h^ RIpRp VP	                  RV ,           R,           4      pTf   \        R4      h\        TP                  4      ^8w  d   R# T P                  R4      oR T3R llpR	 T3R
 lloR TT3R llpR TT3R llpTP                  ^ ,          p\        YaP                  4      '       Ed[   TP                  p\        YqP                  4      '       Ed#   \        \        TP                  P                   4      ^,
          pTP                  P"                  f   \        R4      hT! Y‡P                  P"                  4      p	S! Y‰4      w  r‰ST,          T	,          ;p
P%                  4       '       g   T
R9   d    T
R9   d   T! Y‰4      w  r‰K@  T! Y‰4      w  r‰KL  T	^,           pT\        ST,          4      8  d7   ST,          T,          ;p
P%                  4       '       g   T
R9  d
   T^,          p\'        Y‰Y‹4      # \        YqP(                  4      '       dî   \        \        TP                  P                   4      ^,
          pTP                  P"                  f   \        R4      hT! YÇP                  P"                  4      pS! YÍ4      w  rÍST,          T,          R8w  d   T! YÍ4      w  rÍK!  \        \        TP                   4      ^,
          pTP"                  f   \        R4      hT! YçP"                  4      p\'        YÍYë4      # \        YqP*                  4      '       dî   \        \        TP,                  P                   4      ^,
          pTP,                  P"                  f   \        R4      hT! YÇP,                  P"                  4      pS! YÍ4      w  rÍST,          T,          R8w  d   T! YÍ4      w  rÍK!  \        \        TP                   4      ^,
          pTP"                  f   \        R4      hT! YçP"                  4      p\'        YÍYë4      # R#   \
         d     R# i ; i)zí
Given source code `segment` corresponding to a bytecode
instruction, determine:
    - for binary ops, the location of the binary op
    - for indexing, the location of the brackets.
`segment` is expected to be a valid Python expression
zPython >= 3.11 required, got Nz(
z
)z$ast.parse returned None unexpectedlyr©   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úlinenorq   r0	  rr   r_   )rt   s   "ri   ru   Ú0_extract_anchors_from_expr.<locals>.__annotate__è  s!   € ÷ 2ñ 2˜#ð 2 sð 2¨sñ 2rh   c                ó*   <€ \        SV ,          V4      # rˆ   )r6	  )rA	  r0	  Úliness   &&€ri   Ú	normalizeÚ-_extract_anchors_from_expr.<locals>.normalizeè  s   ø€ Ü˜5 �=¨&Ó1Ð1rh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   rA	  rq   Úcolrr   ztuple[int, int]r_   )rt   s   "ri   ru   rB	  í  s!   € ÷ ñ  ð ¨#ð °/ñ rh   c                ó@  <€ V \        S4      8  d%   V\        SV ,          4      8¼  d   ^ pV ^,          p K4  V \        S4      8¼  d   \        RV  R\        S4       R24      hV\        SV ,          4      8¼  d&   \        RV RV  R\        SV ,          4       R24      hW3# ©rx   úlineno ú out of range (len(lines)=rÎ  úcol ú out of range (len(lines[ú])=©rÐ  r  )rA	  rI	  rD	  s   &&€ri   Únext_valid_charÚ3_extract_anchors_from_expr.<locals>.next_valid_charí  s«   ø€ Ø”s˜5“zÔ! c¬S°°vµÓ-?Ô&?ØˆCØ�a�KŠFØ”S˜“ZÔÜ Ø˜&˜Ð!;¼CÀ»J¸<ÀqÐIóð ð ”#�e˜F•mÓ$Ô$Ü Ø�s�eÐ4°V°H¸CÄÀEÈ&ÅMÓ@RÐ?SÐSTÐUóð ð ˆ{Ðrh   c               ó$   € V ^8„  d   QhRRRRRR/# rH	  r_   )rt   s   "ri   ru   rB	  ü  s!   € ÷ ñ ˜#ð  Cð ¨Oñ rh   c                óþ   <€ V^,          pS! W4      w  rV \        S4      8¼  d   \        RV  R\        S4       R24      hV\        SV ,          4      8¼  d&   \        RV RV  R\        SV ,          4       R24      hW3# )r¹   rL	  rM	  rÎ  rN	  rO	  rP	  rQ	  ©rA	  rI	  rD	  rR	  s   &&€€ri   r#  Ú-_extract_anchors_from_expr.<locals>.incrementü  s–   ø€ Øˆq�ˆÙ% fÓ2‰ˆØ”S˜“ZÔÜ Ø˜&˜Ð!;¼CÀ»J¸<ÀqÐIóð ð ”#�e˜F•mÓ$Ô$Ü Ø�s�eÐ4°V°H¸CÄÀEÈ&ÅMÓ@RÐ?SÐSTÐUóð ð ˆ{Ðrh   c               ó$   € V ^8„  d   QhRRRRRR/# rH	  r_   )rt   s   "ri   ru   rB	  
  s!   € ÷ ñ ˜ð  3ð ¨?ñ rh   c                ó  <€ ^ pV ^,          p S! W4      w  rV \        S4      8¼  d   \        RV  R\        S4       R24      hV\        SV ,          4      8¼  d&   \        RV RV  R\        SV ,          4       R24      hW3# rK	  rQ	  rV	  s   &&€€ri   ÚnextlineÚ,_extract_anchors_from_expr.<locals>.nextline
  s›   ø€ ØˆØ�!�ˆÙ% fÓ2‰ˆØ”S˜“ZÔÜ Ø˜&˜Ð!;¼CÀ»J¸<ÀqÐIóð ð ”#�e˜F•mÓ$Ô$Ü Ø�s�eÐ4°V°H¸CÄÀEÈ&ÅMÓ@RÐ?SÐSTÐUóð ð ˆ{Ðrh   z)expr.left.end_col_offset must not be Nonez)\#z\#z*expr.value.end_col_offset must not be NonerÓ  z$expr.end_col_offset must not be Nonez)expr.func.end_col_offset must not be NonerS  )rš  é   )r�  rž  r  rU  ÚparserY  rÐ  Úbodyrj  r„  ÚExprræ   ÚBinOpr   rq   ÚleftÚ
end_linenoÚend_col_offsetÚisspacer8	  Ú	SubscriptÚCallrî  )r>	  rU  ÚtreerE	  r#  rZ	  Ú	statementÚexprÚ
cur_linenoÚcur_colÚchÚ	right_colÚleft_linenoÚleft_colÚright_linenorD	  rR	  s   &              @@ri   Ú_extract_anchors_from_exprrq	  Ê  s¤  ù€ ô ×Ñ˜'Ô!ÜÐ<¼S×=MÑ=MÐ<NÐOÓPÐPãà€Dðð �y‰y˜ �¨5Õ0Ó1ˆð ‚|ÜÐCÓDÐDä
ˆ4�9‰9ƒ~˜ÔÙà�M‰M˜$Ó€E÷2ð 2÷
ð ÷ñ ÷ñ ð —	‘	˜!•€IÜ�)ŸX™X×&Ó&Ø�‰ˆÜ�dŸI™I×&Ó&ô œc 4§9¡9×#7Ñ#7Ó8¸1Õ<ˆJØ�y‰y×'Ñ'Ò/Ü$Ð%PÓQÐQÙ 
¯I©I×,DÑ,DÓEˆGÙ"1°*Ó"FÑˆJð ˜zÕ*¨7Õ3Ð3�2×<Ñ<×>Ò>À"ÈÄ,Ø˜”;Ù*2°:Ó*GÑ'�J¡á*3°JÓ*HÑ'�J¡ð   !�ˆIàœC  jÕ 1Ó2Ô2Ø$ ZÕ0°Õ;Ð;˜×DÑD×FÒFØ˜e”Oà˜Q•�	ô ˜J°ÓGÐGÜ˜Ÿm™m×,Ò,ô œs D§J¡J×$9Ñ$9Ó:¸QÕ>ˆKØ�z‰z×(Ñ(Ò0Ü$Ð%QÓRÐRÙ  ¯j©j×.GÑ.GÓHˆHÙ$3°KÓ$JÑ!ˆKØ˜Õ$ XÕ.°#Ô5Ù(1°+Ó(HÑ%�™Xä¤ T§_¡_Ó5¸Õ9ˆLØ×"Ñ"Ò*Ü$Ð%KÓLÐLÙ! ,×0CÑ0CÓDˆIÜ˜K°<ÓKÐKÜ˜Ÿh™h×'Ò'ô
 œs D§I¡I×$8Ñ$8Ó9¸AÕ=ˆKØ�y‰y×'Ñ'Ò/Ü$Ð%PÓQÐQÙ  ¯i©i×.FÑ.FÓGˆHÙ$3°KÓ$JÑ!ˆKØ˜Õ$ XÕ.°#Ô5Ù(1°+Ó(HÑ%�™Xä¤ T§_¡_Ó5¸Õ9ˆLØ×"Ñ"Ò*Ü$Ð%KÓLÐLÙ! ,×0CÑ0CÓDˆIÜ˜K°<ÓKÐKáøôM ô Úðús   »Q ÑQÑQÚfunction_namerÖ  c               ó4   € V ^8„  d   QhRRRRRRRRRRRRR	R/# )
rn   r  r¦   rA	  r  rb	  Ú
col_offsetrc	  rr	  rr   r_   )rt   s   "ri   ru   ru   f  sW   € ÷ rñ rØðràðrð ðrð ð	rð
 ðrð ðrð 	ñrrh   c          	     ó6
  € Vf   R# Ve   TMTp\        W^,           4       Uu. uF'  p\        P                  ! W4      P                  4       NK)  	  pp\	        V4      '       g   R# \
        P                  R8¼  Ed   VEe   W!8w  Ed   VEe   Veþ   \        P                  ! V VVVVVR7      p	\        P                  ! V	.4      ^ ,          p
RP                  V
P                  4       R,          4      p
\        P                  ! RP                  V4      4      P                  4       pV'       g   V
# \        V^ ,          4      \        V^ ,          4      ,
          pV^ ,          R V p\        P                  ! \        P                  ! V
4      V4      # V^ ,          pVe	   Ve   Vf   V# \!        Wã4      pRp. pW!8X  d?   \!        Wä4      pWïV pVP#                  RV,          RVV,
          ,          ,           4       EM3WïR  R,           pVP#                  RV,          R\        V4      V,
          ,          ,           4       VR	,          p\!        VV4      pV^R	  Fr  pVVR,           ,          p\        V4      \        VP%                  4       4      ,
          pVP#                  RV,          R\        V4      V,
          ,          ,           4       Kt  	  VVR V ,          p\        V4      \        VP%                  4       4      ,
          pVP#                  RV,          RVV,
          ,          ,           4       R p \'        V4      pVf$   V Uu. uF  pVP+                  RR4      NK  	  ppEM\V Uu. uF  p\-        V4      NK  	  ppVP.                  ^ 8X  d   V;P0                  V,          un        VP2                  ^ 8X  d   V;P4                  V,          un        \        \        V4      4       F¶  p\        \        VV,          4      4       F”  pVVP.                  8  d   K  VVP.                  8X  d   VVP0                  8  d   K:  VVP2                  8X  d   VVP4                  8¼  d   K^  VVP2                  8”  d   Kq  VV,          V,          R8X  g   Kˆ  RVV,          V&   K–  	  K¸  	  V Uu. uF  pRP                  V4      NK  	  ppRp
\7        VV4       F&  w  ppV
VR,           ,          p
V
VR,           ,          p
K(  	  V
# u upi   \(         d     ELÐi ; iu upi u upi u upi )
Nrë  )rb	  ÚcolnoÚ	end_colnor©   rÍ  rà   Ú~Ú^)rš  é   r­  )rQ  Ú	linecacheÚgetlineÚrstripr“  r�  rž  r2  ÚFrameSummaryr3  r¬   Ú
splitlinesÚtextwrapÚdedentrÐ  Úindentr6	  rÅ   Úlstriprq	  r  rß  r¶  r9	  r:	  r;	  r<	  r9  )r  rA	  rb	  rt	  rc	  rr	  Úlast_linenoÚcurrent_linenoÚsource_linesÚframe_summaryrE  Úsource_lines_dedentÚ
indent_lenr‚	  Ú
first_lineÚstart_offsetr>	  ÚmarkersÚ
end_offsetÚ	last_lineÚlineÚ
num_spacesÚanchorsÚmarkerÚmutable_markersÚmarker_linenorI	  s   &&&&&$                     ri   Úformat_source_ranger•	  f  s  € ð ‚~Ùà *Ò 6‘*¸F€Kô $ F¸!­OÔ<óá<ˆNô 	×Ò˜(Ó3×:Ñ:Ö<Ù<ð ð ô ˆ|×ÒÙô 	×Ñ˜GÕ#ØÓ"ØÕ ØÓ"ØÒ&ô "×.Ò.ØØØØ!ØØ$ô
ˆô ×&Ò&¨ Ó7¸Õ:ˆØ—‘˜6×,Ñ,Ó.¨rÕ2Ó3ˆÜ&Ÿošo¨d¯i©i¸Ó.EÓF×QÑQÓSÐß"ØˆMÜ˜ a�Ó)¬CÐ0CÀAÕ0FÓ,GÕGˆ
Ø˜a•  *Ð-ˆÜ�ŠœxŸš¨vÓ6¸Ó?Ð?à˜a•€JØÒ˜ZÒ/°>Ò3IØÐä˜zÓ6€LØ€GØ€GàÔÜ  Ó<ˆ
Ø¨*Ð5ˆØ�‰�s˜\Õ)¨C°:ÀÕ3LÕ,MÕMÖNà˜]Ð+¨dÕ2ˆØ�‰�s˜\Õ)¨C´3°z³?À\Õ3QÕ,RÕRÔSØ  Õ$ˆ	Ü  ¨NÓ;ˆ
Ø   2Ó&ˆDØ�t˜d•{Õ"ˆGÜ˜T›¤S¨¯©«Ó%7Õ7ˆJØ�N‰N˜3 Õ+¨c´S¸³YÀÕ5KÕ.LÕLÖMñ 'ð 	�9˜[˜jÐ)Õ)ˆÜ˜“^¤c¨)×*:Ñ*:Ó*<Ó&=Õ=ˆ
Ø�‰�s˜ZÕ'¨#°¸jÕ1HÕ*IÕIÔJà#€GðÜ,¨WÓ5ˆð ‚Ù:AÓB¹'°�6—>‘> # sÖ+¹'ˆÐB‰áGNÓ+OÁw¸V¬D°®LÁwˆÐ+Oà×"Ñ" aÔ'Ø×#Ò# |Õ3Õ#Ø×%Ñ%¨Ô*Ø×&Ò&¨,Õ6Õ&ä"¤3 w£<Ö0ˆMÜœS °Õ!?Ó@ÖA�Ø  7×#:Ñ#:Ô:Ùà! W×%<Ñ%<Ô<Ø˜g×5Ñ5Ô5áà! W×%?Ñ%?Ô?Ø˜w×9Ñ9Ô9áØ  7×#=Ñ#=Ô=ÙØ" =Õ1°#Õ6¸#Ö=Ø:=�O MÕ2°3Ó7ó! Bñ 1ñ& 2AÓA± v�2—7‘7˜6–?±ˆÐAà€FÜ˜L¨'Ö2‰ˆˆfØ�$˜•+ÕˆØ�&˜4•-ÕŠñ 3ð €MùòKøô~ ô Úðüò Cùâ+Oùò4 Bs)   £-S5Ì-S: Í TÍ#TÒTÓ:T	ÔT	c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r  ztypes.CodeTypeÚinstr<   rr   r¦   r_   )rt   s   "ri   ru   ru   Û  s!   € ÷ ñ  ^ð ¸;ð È3ñ rh   c           	     óX  € \        VR4      '       g   \        R4      hVP                  f   \        R4      h\        V P                  VP                  P
                  VP                  P                  VP                  P                  VP                  P                  V P                  R7      # )aœ  
Python 3.11+ only. Returns lines of source code (from code object `code`)
corresponding to `inst`'s location data, and underlines relevant code to `inst`.

Example: CALL on `g`:
f(g(
  ^^
    h(x)))
    ^^^^^

We need our own implementation in < 3.13 since `format_frame_summary` in
Python's `traceback` module doesn't handle multi-line expressions
(and their anchor extraction code is not completely correct).
Ú	positionsz&inst must have a 'positions' attributezinst.positions must not be None)rr	  )
rí   r  r™	  r•	  re  rA	  rb	  rt	  rc	  r  )r  r—	  s   &&ri   Úget_instruction_source_311rš	  Û  s„   € ô �4˜×%Ò%ÜÐEÓFÐFØ‡~�~ÒÜÐ>Ó?Ð?ÜØ×ÑØ�‰×ÑØ�‰×!Ñ!Ø�‰×!Ñ!Ø�‰×%Ñ%Ø—l‘lôð rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r‹  r   rr   zStaticInputType | Noner_   )rt   s   "ri   ru   ru   ý  s   € ÷ ñ ˜sð Ð'=ñ rh   c                ó`   € \        V \        P                  4      '       d   \        V R R4      # R# )Ú_dynamo_static_input_typeN)r„  rF  r'  r  r/  s   &ri   Úget_static_address_typerž	  ý  s&   € Ü�!”U—\‘\×"Ò"Ü�qÐ5°tÓ<Ð<árh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru     s   € ÷ )ñ )¨ð )°Dñ )rh   c                ó®  € \         P                  P                  P                  \         P                  P                  \         P
                  \         P                  P
                  3p\         P                  P                  P                  \         P                  P                  \         P                  \         P                  P                  3pV . VOVO59   # rˆ   )	rF  rj  r4   Ú	get_stateÚdefault_generatorra  rN  Ú	set_staterd  )ræ   ÚgettersÚsetterss   &  ri   Úis_rng_state_getter_or_setterr¦	    sœ   € ô 	�‰×Ñ×$Ñ$Ü×Ñ×)Ñ)Ü×ÑÜ�
‰
× Ñ ð€Gô 	�‰×Ñ×$Ñ$Ü×Ñ×)Ñ)Ü×ÑÜ�
‰
× Ñ ð	€Gð Ð(�gÐ( Ñ(Ñ(Ð(rh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru     s   € ÷ ñ  fð °ñ rh   c                ó  € \        V \        P                  4      ;'       df    V P                  R 8H  ;'       dO    \	        V P
                  R4      ;'       d1    V P
                  P                  \        P                  P                  J # )Ú__get__Ú__objclass__)
r„  rŸ  r
   r`   rí   Ú__self__rª	  rF  rj  Ú_TensorBaser¤  s   &ri   Úis_tensor_base_attr_getterr­	    ss   € ä�5œ%×1Ñ1Ó2÷ 	@ð 	@Ø�N‰N˜iÑ'÷	@ð 	@ä�E—N‘N NÓ3÷	@ð 	@ð �N‰N×'Ñ'¬5¯8©8×+?Ñ+?Ð?ð	rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r{   r¦   rr   r  r_   )rt   s   "ri   ru   ru     s   € ÷ ñ  cð ¨dñ rh   c                ó¨   €  \         P                  ! \        P                  V 4      p\	        V4      \
        P                  J #   \         d     R # i ; ire  )ré  rê  rF  r'  r  rŸ  r	  r  )r{   r  s   & ri   Úis_tensor_getset_descriptorr°	    sD   € ðÜ×%Ò%¤e§l¡l°DÓ9ˆÜ�D‹zœU×7Ñ7Ð7Ð7øÜô Úðús   ‚?A ÁAÁAc               ó    € V ^8„  d   QhRRRR/# rZ  r_   )rt   s   "ri   ru   ru   &  s   € ÷ 
Uñ 
U˜ð 
U ñ 
Urh   c                óp   € \        V RR4      pVRJ;'       d    VR8H  ;'       g    VP                  R4      # )aŠ  Check if cls is defined in torch or a torch submodule.

Torch-internal C-level descriptors (e.g. torch.Tensor.unsqueeze_) need
to go through VariableTracker.build / trace_rules so they get the right
VT (TorchInGraphFunctionVariable), which has guards like
inplace-view-on-input-tensor detection. This helper identifies classes
whose descriptors should take that path instead of descriptor VTs.
ra   NrF  ztorch.)r  rV  )r|   r”  s   & ri   Úis_torch_classr³	  &  s=   € ô �S˜,¨Ó-€FØ˜Ð×TÐT 6¨WÑ#4×#SÐ#S¸×8IÑ8IÈ(Ó8SÐTrh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   3  s   € ÷ 0ñ 0 Fð 0¨tñ 0rh   c                ó   € \        V R 4      # )Ú__torch_function__)rí   r¤  s   &ri   Úis_torch_function_objectr·	  3  s   € Ü�5Ð.Ó/Ð/rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r  r@   rr   r  r_   )rt   s   "ri   ru   ru   7  s   € ÷ ñ ˜?ð ¨tñ rh   c                ó’  € ^ RI Hp ^ RIHp V P	                  4       '       g3   \        V R4      '       d“   \        V P                  4       R4      '       ds   Rp\        W4      '       d   \        V P                  RR4      pM(\        W4      '       d   \        V P                  RR4      pVR\        P                  P                  39  # R# )rx   )ÚUserDefinedObjectVariable)ÚTensorWithTFOverrideVariableÚ
peek_valuer¶	  NF)Útorch._dynamo.variablesrº	  Ú&torch._dynamo.variables.torch_functionr»	  rÿ  rí   r¼	  r„  r  Ú
class_typeræ   rF  rj  Ú_disabled_torch_function_impl)r  rº	  r»	  rî  s   &   ri   Úhas_torch_functionrÁ	  7  s˜   € õ BÝSð 
‡~�~×ÒÜ��L×!Ò!¤g¨b¯m©m«oÐ?S×&TÒ&TàˆÜ�b×7Ò7Ü˜2Ÿ=™=Ð*>ÀÓE‰Dä˜×6Ò6Ü˜2Ÿ8™8Ð%9¸4Ó@ˆDà˜D¤%§(¡(×"HÑ"HÐIÑIÐIárh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r‹  rø  rƒ  r  rr   r   r_   )rt   s   "ri   ru   ru   U  s$   € ÷ ñ ØðØ Lðàñrh   c                óð   € R pR p\         P                  P                  P                  4       ;p'       d0   WP                  9   d    VP                  V ,          pVP
                  pVP                  V RW#R7      # )NF)Ústatic_shapesÚsymbolic_contextrì  )rF  r…  r!   Útry_getÚtensor_to_contextrl  Úfrom_tensor)r‹  rƒ  rÅ	  rì  Útracing_contexts   &&   ri   Úto_fake_tensorrÊ	  U  su   € ð ÐØ€FÜŸ-™-×6Ñ6×>Ñ>Ó@Ð@€Ö@Ø×1Ñ1Ô1Ø.×@Ñ@ÀÕCÐØ%×3Ñ3ˆFà× Ñ Ø	˜Ð1Að !ó ð rh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   e  r³  rh   c                ó*  € \        \        V 4      '       * ;'       dt    \        V 4      '       * ;'       d\    \        V 4      ;'       dI    \	        V R 4      ;'       d5    \	        V P
                  R4      ;'       d    V P
                  P                  4      # )Ú__dataclass_params__Úfrozen)r  rO  rN  r   rí   rÍ	  rÎ	  r¤  s   &ri   Úis_frozen_dataclassrÏ	  e  s‘   € ô Ü# EÓ*Ô*÷ 	.ð 	.Ü& uÓ-Ô-÷	.ð 	.ä˜Ó÷	.ð 	.ô �EÐ1Ó2÷	.ð 	.ô �E×.Ñ.°Ó9÷		.ð 	.ð
 ×&Ñ&×-Ñ-óð rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   ri  r   Úattrsr¦   rr   r_   )rt   s   "ri   ru   ru   s  s&   € ÷ Oñ O˜ð O Sð O¨Sñ Orh   c                óp   € V F!  p\        W4      '       g   K  \        W4      u # 	  \        V  RV 24      h)zP
Return the first available attribute or throw an exception if none is present.
z% does not has any of the attributes: )rí   r  r  )ri  rÑ	  r  s   &* ri   Úget_first_attrrÓ	  s  s=   € ó ˆÜ�3×ÔÜ˜3Ó%Ò%ñ ô ˜C˜5Ð EÀeÀWÐMÓ
NÐNrh   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rn   Úshould_enabler  Ú	fullgraphÚdynamicrr   rh  r_   )rt   s   "ri   ru   ru     s,   € ÷ ñ ØðØ$(ðØ:>ðàñrh   c              #  óæ   aa"  € V '       g   R x € R # R VV3R llp\         P                  P                  P                  V4      ;_uu_ 4       pVx € R R R 4       R #   + '       g   i     R # ; i5i)Nc               ó    € V ^8„  d   QhRRRR/# )rn   r§  r   rr   r_   )rt   s   "ri   ru   Ú4maybe_enable_compiled_autograd.<locals>.__annotate__†  s   € ÷ 	ñ 	˜Cð 	 Cñ 	rh   c                óB   <€ R  R lp\         P                  ! WSSR7      # )c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úgm_r   Úexample_inputs_rr   r_   )rt   s   "ri   ru   ÚImaybe_enable_compiled_autograd.<locals>.compiler_fn.<locals>.__annotate__‡  s&   € ÷ Eñ E Cð E¸#ð EÀ#ñ Erh   c                ó¼   € \         P                  P                  P                  R ,          R;;,          ^,          uu&   \         P                  P                  W4      # )Úcompiled_autogradÚcompiles)rF  rM  rG  rW   r,  Úcompile)rÝ	  rÞ	  s   &&ri   Úinner_compilerÚKmaybe_enable_compiled_autograd.<locals>.compiler_fn.<locals>.inner_compiler‡  s>   € Ü—‘×#Ñ#×,Ñ,Ð-@ÕAÀ*×MÐQRÕRÓMÜ—‘×.Ñ.¨sÓDÐDrh   )ÚbackendrÖ	  r×	  )rF  rã	  )r§  rä	  r×	  rÖ	  s   & €€ri   Úcompiler_fnÚ3maybe_enable_compiled_autograd.<locals>.compiler_fn†  s#   ø€ õEô —=’=Ø°iÈôð rh   )rF  rM  rá	  Ú_enable)rÕ	  rÖ	  r×	  rç	  r  s   &ff  ri   Úmaybe_enable_compiled_autogradrê	  ~  sK   ùé € ÷ Ý÷	ñ 	ô �]‰]×,Ñ,×4Ñ4°[×AÔAÀSØŠI÷ B×A×AÒAüs   „A
A1ÁAÁ
A1ÁA.	Á(	A1c               ó   € V ^8„  d   QhRR/# )rn   rr   r0   r_   )rt   s   "ri   ru   ru   “  s   € ÷ &ñ & ?ñ &rh   c                 ó@   €  ! R  R\         4      p \        V ! 4       4      # )c                  ó   € ] tR tRtRtR# )Ú*invalid_removeable_handle.<locals>.Invalidi•  r_   N)r`   ra   rb   rc   rg   r_   rh   ri   ÚInvalidrî	  •  s   † Ûrh   rï	  )rP  r0   )rï	  s    ri   Úinvalid_removeable_handlerð	  “  s   € ô”$ô ô ™7›9Ó%Ð%rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r0  r   rr   r_   )rt   s   "ri   ru   ru   Ÿ  s   € ÷ ñ ˜ð  ñ rh   c                ó"  € \        V \        P                  P                  4      '       g   V # \        V \        P                  P
                  4      '       d   V # V P                  P                  V P                  4      pV P                  Vn        V# rˆ   )	r„  rF  r(  r<  r   r—  rð  rŽ  r]  )r0  Úproxys   & ri   Únn_module_proxyrô	  Ÿ  s`   € Ü�cœ5Ÿ8™8Ÿ?™?×+Ò+Øˆ
Ü�#”u—x‘x×+Ñ+×,Ò,àˆ
Ø�M‰M×!Ñ! #§-¡-Ó0€EØ—\‘\€E„NØ€Lrh   c                  ó:   a € ] tR tRtR V 3R lltR R ltRtV ;t# )Ú	GmWrapperiª  c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r§  rŠ  Úunflatten_fnzCallable[[list[Any]], Any]rr   rs   r_   )rt   s   "ri   ru   ÚGmWrapper.__annotate__«  s$   € ÷ )ñ )Ø&ð)Ø6Pð)à	ñ)rh   c                	ó<   <€ \         SV `  4        Wn        W n        R # rˆ   )rì  rÄ  r§  rø	  )rÃ  r§  rø	  rð  s   &&&€ri   rÄ  ÚGmWrapper.__init__«  s   ø€ ô 	‰ÑÔØŒØ(Örh   c               ó    € V ^8„  d   QhRRRR/# ©rn   r^  r   rr   r_   )rt   s   "ri   ru   rù	  ²  s   € ÷ 1ñ 1˜Sð 1 Sñ 1rh   c                	óV   € \        V4      pV P                  ! V P                  V4      !  # rˆ   )r¶  r§  rø	  )rÃ  r^  s   &*ri   rx  ÚGmWrapper.forward²  s%   € ä˜t›*ˆØ�wŠw˜×)Ñ)¨$Ó/Ñ0Ð0rh   )r§  rø	  )r`   ra   rb   rc   rÄ  rx  rg   rò  ró  s   @ri   rö	  rö	  ª  s   ø† ÷)ð )÷1ó 1rh   rö	  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rn   r§  rŠ  rˆ  r   Ú
compile_gmzCallable[[Any, Any], Any]rr   rÌ  r_   )rt   s   "ri   ru   ru   ¸  s,   € ÷ 4ñ 4Øð4Ø&)ð4Ø7Pð4àñ4rh   c                ó.  a	a
aa€ \        V P                  P                  4       UUu. uF>  w  r4VP                  R8X  g   K  VP                  P                  RR4      '       g   K<  VNK@  	  uppo\        P                  P                  P                  '       dŒ   S^ .8w  d   \        RS 24      h\        V^ ,          \        4      '       g   \        R\        V^ ,          4       24      h\        V^ ,          4      o	R R loR V	3R	 llpV! \        W4      S! V4      4      o
M`\         P"                  ! V4      w  rg\$        P&                  ! \         P(                  VR
7      pV! \        W4      V4      o
\         P*                  oR V
VV3R llpV# u uppi )z‡
Mutate inputs so that they are flat and wrap gm such that it
accepts those inputs.  This is needed for graphs that take
bumpy inputs.
r  Ú	steal_argFz)Expected inputs_idx_to_clear == [0], got z%Expected inputs[0] to be a list, got c               ó    € V ^8„  d   QhRRRR/# rý	  r_   )rt   s   "ri   ru   Ú*flatten_graph_inputs.<locals>.__annotate__Ó  s   € ÷ 	,ñ 	,˜Sð 	, Sñ 	,rh   c                óB   € V ^ ,          \        V R,          4      ,           # rÔ  )r¶  r6  s   &ri   Ú
flatten_fnÚ(flatten_graph_inputs.<locals>.flatten_fnÓ  s   € Ø˜•7œT $ r¥(›^Õ+Ð+rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Ú	flat_argsr   rr   r_   )rt   s   "ri   ru   r
  Ö  s   € ÷ 	Uñ 	U Cð 	U¨Cñ 	Urh   c                ó   <€ V R S .V SR  O5# rˆ   r_   )r

  Úboxed_inputs_counts   &€ri   rø	  Ú*flatten_graph_inputs.<locals>.unflatten_fnÖ  s#   ø€ ØÐ1Ð1Ð2ÐT°YÐ?QÐ?RÐ5SÑTÐTrh   )Útreespecc               ó    € V ^8„  d   QhRRRR/# rý	  r_   )rt   s   "ri   ru   r
  â  s   € ÷ &ñ &�sð &˜sñ &rh   c                 ób   <€ S! V 4      pS F  pW,          P                  4        K  	  S! V4      # rˆ   )r‰   )r^  r

  r”  Úcompiled_fnr
  Úinputs_idx_to_clears   *  €€€ri   ÚwrapperÚ%flatten_graph_inputs.<locals>.wrapperâ  s1   ø€ Ù˜tÓ$ˆ	ó %ˆAØ�G�M‰MŽOñ %ñ ˜9Ó%Ð%rh   )r6  r‘  r/  r0  rŽ  r�   rF  rM  rá	  Úin_compiled_autograd_regionr  r„  r¶  r  rÐ  rö	  r�  r�  ræ  r   Útree_unflattenÚarg_tree_leaves)r§  rˆ  r
  r”  r’  rø	  Úflat_inputsÚspecr
  r
  r
  r
  r
  s   &&&      @@@@ri   Úflatten_graph_inputsr
  ¸  s`  û€ ô ! §¡§¡Ô0ôá0‰GˆAØ�7‰7�mÑ#ô 	
à(,¯	©	¯©°kÀ5×(I÷ 	
ˆÙ0òÐô ‡}�}×&Ñ&×B×BÐBð  1 #Ô%Ü Ø;Ð<OÐ;PÐQóð ô ˜& �)¤T×*Ò*Ü Ø7¼¸VÀA½Y»Ð7HÐIóð ô ! ¨¥›^Ðõ	,÷	Uð 	Uñ !¤¨2Ó!<¹jÈÓ>PÓQ‰ô #×/Ò/°Ó7ÑˆÜ ×(Ò(¬×)>Ñ)>ÈÔNˆÙ ¤¨2Ó!<¸kÓJˆä×+Ñ+ˆ
÷&ò &ð €NùóYs   §FÁFÁ%Fc               ó    € V ^8„  d   QhRRRR/# )rn   Úmaybe_gmr   rr   rÆ  r_   )rt   s   "ri   ru   ru   ï  s   € ÷ 4ñ 4 #ð 4¨)ñ 4rh   c                ó¶   € \        V \        P                  P                  4      '       d   \	        V R 4      '       g   . # V P
                  P                  R. 4      # )rŽ  Úlocals_to_steal)r„  rF  r   r—  rí   rŽ  r�   )r
  s   &ri   Úget_locals_to_stealr
  ï  sB   € Ü�h¤§¡× 4Ñ 4×5Ò5¼WÀXÈv×=VÒ=VØˆ	Ø�=‰=×ÑÐ.°Ó3Ð3rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r§  rŠ  r
  rÆ  rr   rs   r_   )rt   s   "ri   ru   ru   õ  s#   € ÷ 1ñ 1Ð0ð 1À9ð 1ÐQUñ 1rh   c                ó"   € WP                   R &   R# )r
  N©rŽ  )r§  r
  s   &&ri   Úset_locals_to_stealr#
  õ  s   € Ø!0‡G�GÐÓrh   c                  ó.   € ] tR tRtR R ltR R ltRtR# )ÚLitiù  c               ó    € V ^8„  d   QhRRRR/# )rn   rÉ  r¦   rr   rs   r_   )rt   s   "ri   ru   ÚLit.__annotate__ú  s   € ÷ ñ ˜#ð  $ñ rh   c                	ó   € Wn         R # rˆ   rp  )rÃ  rÉ  s   &&ri   rÄ  ÚLit.__init__ú  s   € ØŽrh   c               ó   € V ^8„  d   QhRR/# r�  r_   )rt   s   "ri   ru   r'
  ý  s   € ÷ ñ ˜#ñ rh   c                	ó   € V P                   # rˆ   rp  rÉ  s   &ri   r¾  ÚLit.__repr__ý  s   € Ø�v‰vˆrh   rp  N)r`   ra   rb   rc   rÄ  r¾  rg   r_   rh   ri   r%
  r%
  ù  s   † õ÷ñ rh   r%
  rž  Úwarn_once_cachec               ó$   € V ^8„  d   QhRRRRRR/# )rn   rï  r¦   Ú
stacklevelrq   rr   rs   r_   )rt   s   "ri   ru   ru     s!   € ÷ 	2ñ 	2�3ð 	2 Cð 	2°ñ 	2rh   c                ó†   € V \         9   d   R # \         P                  V 4       \        P                  ! W^,           R7       R # )N)r/
  )r-
  rÓ  ÚwarningsÚwarn)rï  r/
  s   &&ri   Ú	warn_oncer3
    s-   € ð ŒoÔÙÜ×Ñ˜ÔÜ‡M‚M�#¨q¥.×1rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Útextr¦   rr   r_   )rt   s   "ri   ru   ru     s   € ÷ %ñ % #ð %¨#ñ %rh   c                óR   € \         P                  ! R 4      pVP                  RV 4      # )z\x1B[@-_][0-?]*[ -/]*[@-~]rë  )rV  rã	  rî  )r5
  Úansi_escapes   & ri   Ústrip_color_from_stringr8
    s"   € ä—*’*Ð:Ó;€KØ�?‰?˜2˜tÓ$Ð$rh   c               ó   € V ^8„  d   QhRR/# rZ  r_   )rt   s   "ri   ru   ru     s   € ÷ Cñ CÐ5Pñ Crh   c               #  ó  "  €  \         P                  P                  P                  R 4      p Rx € \         P                  P                  P                  V 4       R#   \         P                  P                  P                  X 4       i ; i5i)TN)rF  rj  Ú	_autogradÚ _saved_tensors_hooks_set_tracing)rq  s    ri   Ú+_disable_saved_tensors_hooks_during_tracingr=
    sX   é € ðCÜ—‘×"Ñ"×CÑCÀDÓIˆÛä�‰×Ñ×;Ñ;¸EÖBøŒ�‰×Ñ×;Ñ;¸EÕBüs   ‚B
„-A ±+B
Á+BÂB
c               ó   € V ^8„  d   QhRR/# rÓ  r_   )rt   s   "ri   ru   ru      s   € ÷ Kñ K˜tñ Krh   c                 óŽ   € \         P                  P                  P                  ;'       d    \         P                  ! 4       '       * # rˆ   )rF  r,  rG   ÚfreezingÚis_grad_enabledr_   rh   ri   Úis_parameter_freezingrB
     s,   € Ü�?‰?×!Ñ!×*Ñ*×JÐJ´5×3HÒ3HÓ3JÔ/JÐJrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   rÆ  r_   )rt   s   "ri   ru   ru   $  s   € ÷ ñ  yñ rh   c                 ód   € \        \        4       4       U u. uF  p \        V 4      NK  	  up # u up i rˆ   )rQ  r   Ú get_torch_function_mode_stack_at)r”  s    ri   Úget_torch_function_mode_stackrF
  $  s3   € ä5:Ô;TÓ;VÔ5WóÙ5W°Ô(¨Ö+Ñ5Wñð ùò s   –-c               ó    € V ^8„  d   QhRRRR/# )rn   Úindrq   rr   r   r_   )rt   s   "ri   ru   ru   *  s   € ÷ 0ñ 0¨#ð 0°#ñ 0rh   c                óº   € V ^ 8  d   \        RV  24      hV \        4       8¼  d   \        R\        4        RV  24      h\        P                  P	                  V 4      # )rx   zExpected ind >= 0, got z,Expected ind < _len_torch_function_stack() (z), got )r  r   rF  rj  Ú_get_function_stack_at)rH
  s   &ri   rE
  rE
  *  sd   € Ø
ˆQ„wÜÐ6°s°eÐ<Ó=Ð=Ø
Ô'Ó)Ô)ÜØ:Ô;TÓ;VÐ:WÐW^Ð_bÐ^cÐdó
ð 	
ô �8‰8×*Ñ*¨3Ó/Ð/rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r•  rÆ  rr   rs   r_   )rt   s   "ri   ru   ru   4  s   € ÷ ,ñ ,¨ð ,°tñ ,rh   c                óv   € \        \        4       4       F  p\        4        K  	  V  F  p\        V4       K  	  R # rˆ   )rQ  r   r   r   )r•  r  Úmodes   &  ri   Úset_torch_function_mode_stackrN
  4  s/   € ÜÔ,Ó.Ö/ˆÜ!Ö#ñ 0ó ˆÜ% dÖ+ó rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   ru   <  s   € ÷ $ñ $¨ñ $rh   c                 óN   € \        \        4       4       F  p \        4        K  	  R # rˆ   )rQ  r   r   )r  s    ri   Úclear_torch_function_mode_stackrQ
  <  s   € ÜÔ,Ó.Ö/ˆÜ!Ö#ó 0rh   c               ó    € V ^8„  d   QhRRRR/# )rn   r�  ztorch.devicerr   útorch.Streamr_   )rt   s   "ri   ru   ru   A  s   € ÷ 4ñ 4˜|ð 4°ñ 4rh   c                ó@   € \         P                  P                  V 4      # rˆ   )rF  r¹  Úcurrent_stream)r�  s   &ri   Úget_current_streamrV
  A  s   € Ü×Ñ×+Ñ+¨FÓ3Ð3rh   c               ó    € V ^8„  d   QhRRRR/# r4  r_   )rt   s   "ri   ru   ru   F  s   € ÷ ñ  Cð ¨Dñ rh   c                 ó   € \        4        R # rˆ   )Ú
breakpointr6  s   *ri   Ú_breakpoint_for_c_dynamorZ
  F  s   € Ü†Lrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r   rr   rs   r_   )rt   s   "ri   ru   ru   J  s   € ÷ 
ñ 
 Sð 
¨Tñ 
rh   c                óì   € V P                   p\        P                  ! V4      p\        VP                  4      ^8w  d   ^RIHp V! R4      hVP                  V P                  8w  d   ^RIHp V! R4      hR# )rn   )ÚInternalTorchDynamoErrorz[Tensor subclass method __metadata_guard__ must take exactly two subclass metadata argumentsz?Tensor subclass method __metadata_guard__ must be a classmethodN)	Ú__metadata_guard__ré  Ú	signaturerÐ  r²  r  r]
  r«	  rð  )ræ   r  Úsigr]
  s   &   ri   Úverify_guard_fn_signaturera
  J  sk   € Ø	×	!Ñ	!€BÜ
×
Ò
˜BÓ
€CÜ
ˆ3�>‰>Ó˜aÔÝ1á&Øió
ð 	
ð 
‡{�{�e—o‘oÔ%Ý1á&ØMó
ð 	
ñ &rh   c               ó    € V ^8„  d   QhRRRR/# )rn   Úuser_clsr   rr   r  r_   )rt   s   "ri   ru   ru   [  s   € ÷ ñ °#ð ¸$ñ rh   c                óš  € V P                   \        P                   \        P                   39   ;'       d˜    V P                  \        P                  \        P                  39   ;'       dc    V P                  \        P                  \        P                  39   ;'       d.    V P
                  \        P
                  \        P
                  39   # rˆ   )rÙ   rP  r   r¨  r·  rn  )rc
  s   &ri   Ú#does_not_override_dict_iter_methodsre
  [  s›   € à�‰œ4Ÿ:™:¤{×'8Ñ'8Ð9Ñ9÷ 	Gð 	GØ�O‰O¤§¡¬[×-?Ñ-?Ð@Ñ@÷	Gð 	Gà�M‰MœdŸi™i¬×)9Ñ)9Ð:Ñ:÷	Gð 	Gð ×Ñ¤$§-¡-´×1EÑ1EÐ!FÑFð	rh   c               ó$   € V ^8„  d   QhRRRRRR/# ©rn   r°  r   r”  rq   rr   r_   )rt   s   "ri   ru   ru   h  s!   € ÷ ñ �ð ˜ð  ñ rh   c                ó$   € V P                  V4      # rˆ   )r:  ©r°  r”  s   &&ri   Ú	call_sizerj
  g  s   € à�6‰6�!‹9Ðrh   c               ó$   € V ^8„  d   QhRRRRRR/# rg
  r_   )rt   s   "ri   ru   ru   m  s!   € ÷ ñ �3ð ˜3ð  3ñ rh   c                ó$   € V P                  V4      # rˆ   )r,  ri
  s   &&ri   Úcall_striderm
  l  s   € à�8‰8�A‹;Ðrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r°  r   rr   rq   r_   )rt   s   "ri   ru   ru   r  s   € ÷ ñ ˜3ð  3ñ rh   c                ó"   € V P                  4       # rˆ   )Ústorage_offsetr¯  s   &ri   Úcall_storage_offsetrq
  q  s   € à×ÑÓÐrh   c               ó    € V ^8„  d   QhRRRR/# )rn   r‹  rø  rr   rX   r_   )rt   s   "ri   ru   ru   x  s   € ÷ 
ñ 
˜Lð 
¨^ñ 
rh   c                óª   € R R.pV Uu/ uF=  q"V P                   9   g   K  V\        P                  ! V P                   V,          4      bK?  	  ppV# u upi )r�	  Útag)r]  r  )r‹  ÚKEYS_TO_COPYrå   Útensor_dicts   &   ri   Ú_extract_tensor_dictrw
  x  s]   € à#Øð€Lñ 4@óÙ3?¨CÈ!Ï*É*ÑCTÔ'ˆŒT�YŠY�q—z‘z #•Ó'Ò'±<ð ð ð Ðùò	s
   ‰A ,Ac               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  ú
tuple[Any]r`  rg  rr   rS
  r_   )rt   s   "ri   ru   ru   …  s!   € ÷ ,ñ ,�zð ,¨>ð ,¸lñ ,rh   c                óB   € \         P                  P                  ! V / VB # rˆ   )rF  rj  ÚStreamr@  s   &&ri   Úbuild_streamr|
  …  s   € Ü�8‰8�?Š?˜DÐ+ FÑ+Ð+rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  ry
  r`  rg  rr   ztorch.Eventr_   )rt   s   "ri   ru   ru   ‰  s!   € ÷ +ñ +�jð +¨.ð +¸[ñ +rh   c                óB   € \         P                  P                  ! V / VB # rˆ   )rF  rj  ÚEventr@  s   &&ri   Úbuild_eventr€
  ‰  s   € Ü�8‰8�>Š>˜4Ð* 6Ñ*Ð*rh   c                  ó.   € ] tR tRtRtRtRt^ t^t^t	Rt
R# )Ú
FrameStatei�  r_   NrF  r:  r­  )r`   ra   rb   rc   ÚFRAME_CREATEDÚFRAME_SUSPENDEDÚFRAME_SUSPENDED_YIELD_FROMÚFRAME_EXECUTINGÚFRAME_COMPLETEDÚFRAME_CLEAREDrg   r_   rh   ri   r‚
  r‚
  �  s!   † Ø€MØ€OØ!#ÐØ€OØ€OØ„Mrh   r‚
  c                  ó"   € ] tR tRt^ tRt^tRtR# )ÚPySendResulti–  r_   Nr­  )r`   ra   rb   rc   ÚPYGEN_RETURNÚPYGEN_ERRORÚ
PYGEN_NEXTrg   r_   rh   ri   rŠ
  rŠ
  –  s   † Ø€LØ€KØ„Jrh   rŠ
  c                  ó°   € ] tR tRt$ ^ tR]R&   RtR]R&   ^ t]R R l4       t	]R R l4       t
]R	 R
 l4       t]R R l4       t]]R R l4       4       tRtR# )ÚCompileTimeInstructionCounteriœ  rq   Ú_counterÚ_idc               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   Ú*CompileTimeInstructionCounter.__annotate__¢  s   € ÷ 3ñ 3�dñ 3rh   c                	ó�   € V P                   ^,           V n         V P                   ^8X  d   \        P                  ! 4       V n        R# R# r¸   )Ú_depthr   r�  r‘
  rŠ   s   &ri   r�  Ú#CompileTimeInstructionCounter.start¡  s1   € à—Z‘Z !•^ˆŒ
Ø�:‰:˜Œ?Ü*×0Ò0Ó2ˆCŽGñ rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   r“
  ¨  s   € ÷ ñ �Dñ rh   c                	óØ   € V P                   ^,
          V n         V P                   ^ 8X  dA   V ;P                  \        P                  ! V P                  4      ,          un        RV n        R# R# )r¹   Nr­  )r•
  r�
  r   Úendr‘
  rŠ   s   &ri   r™
  Ú!CompileTimeInstructionCounter.end§  sF   € à—Z‘Z !•^ˆŒ
Ø�:‰:˜Œ?Ø�LŠLÔ0×4Ò4°S·W±WÓ=Õ=�LØˆCŽGñ rh   c               ó   € V ^8„  d   QhRR/# r†   r_   )rt   s   "ri   ru   r“
  ¯  s   € ÷ ñ �dñ rh   c                	ó   € ^ V n         R# r¾   ©r�
  rŠ   s   &ri   r‰   Ú#CompileTimeInstructionCounter.clear®  s	   € àˆŽrh   c               ó   € V ^8„  d   QhRR/# r�   r_   )rt   s   "ri   ru   r“
  ³  s   € ÷ ñ �cñ rh   c                	ó   € V P                   # rˆ   r�
  rŠ   s   &ri   ræ   Ú#CompileTimeInstructionCounter.value²  s   € à�|‰|Ðrh   c               ó   € V ^8„  d   QhRR/# rZ  r_   )rt   s   "ri   ru   r“
  ¸  s   € ÷ ñ Ð2ñ rh   c              #  	ó  "  €  \         P                  '       d   V P                  4        R x € \         P                  '       d   V P                  4        R # R #   \         P                  '       d   T P                  4        i i ; i5irˆ   )rG   Ú%record_compile_time_instruction_countr�  r™
  rŠ   s   &ri   rè  Ú$CompileTimeInstructionCounter.record¶  sV   é € ð	Ü×;×;Ð;Ø—	‘	”Ûä×;×;Ð;Ø—‘–	ñ <øŒv×;×;Ð;Ø—‘•	ð <üs   ‚B„*A ®*BÁ)BÂBr_   Nr­  )r`   ra   rb   rc   r�
  r¡   r‘
  r•
  r¢   r�  r™
  r‰   ræ   r   rè  rg   r_   rh   ri   r�
  r�
  œ  s„   ‡ Ø€HˆcÓØ€CˆƒMØ€Fàô3ó ð3ð
 ôó ðð ôó ðð ôó ðð Øôó ó ôrh   r�
  c                  ó.   a € ] tR tRtR V 3R lltRtV ;t# )ÚCompileCounterIntiÂ  c               ó    € V ^8„  d   QhRRRR/# )rn   Úotherr   rr   r§
  r_   )rt   s   "ri   ru   ÚCompileCounterInt.__annotate__Ã  s   € ÷ 9ñ 9˜Sð 9Ð%6ñ 9rh   c                	ó4   <€ \        \        SV `	  V4      4      # rˆ   )r§
  rì  Ú__add__)rÃ  r©
  rð  s   &&€ri   r¬
  ÚCompileCounterInt.__add__Ã  s   ø€ Ü ¤¡¡°Ó!7Ó8Ð8rh   r_   )r`   ra   rb   rc   r¬
  rg   rò  ró  s   @ri   r§
  r§
  Â  s   ø† ÷9ö 9rh   r§
  c               ó$   € V ^8„  d   QhRRRRRR/# )rn   Úfeaturer¦   Úusager  rr   rs   r_   )rt   s   "ri   ru   ru   Ç  s&   € ÷ Mñ M˜Sð M¨ð M°$ñ Mrh   c                óz   € \        4       P                  4       '       d   \        4       P                  RW4       R# R# )zE
Records whether we are using a feature
Generally a feature is a JK.
rª  N)rð   r  Úset_key_value)r¯
  r°
  s   &&ri   Úset_feature_user³
  Ç  s.   € ô Ó×(Ñ(×*Ò*ÜÓ×+Ñ+¨O¸WÖLñ +rh   ztuple[OptimizeDDPMode, ...]Ú_ddp_optimization_modec               ó   € V ^8„  d   QhRR/# )rn   rr   ÚOptimizeDDPModer_   )rt   s   "ri   ru   ru   à  s   € ÷ )ñ )˜ñ )rh   c                 ó  € \         P                  p \        V \        4      '       d   V '       d   R MRpM1\        V \        4      '       d   T pM\        R\        V 4      : 24      hV\        9  d   \        RV: 24      h\        RV4      # )Úddp_optimizerÚno_optimizationz;Invalid dynamo config optimize_ddp type type(optimize_ddp)=z.Invalid dynamo config optimize_ddp value mode=r¶
  )
rG   Úoptimize_ddpr„  r  r¦   r<  r  r´
  r  r   )rº
  rM
  s     ri   Úget_optimize_ddp_moder»
  à  s   € Ü×&Ñ&€LÜ�,¤×%Ò%ß".‰Ð4E‰Ü	�L¤#×	&Ò	&Ø‰äØJ´t¸LÓ7IÑ6KÐLó
ð 	
ð Ô)Ô)ÜÐNÈÉÐPÓQÐQÜÐ! 4Ó(Ð(rh   c               ó   € V ^8„  d   QhRR/# rZ  r_   )rt   s   "ri   ru   ru   ñ  s   € ÷ ñ Ð&Añ rh   c            	   #  ót  "  € \         P                  ;'       d    \        P                  ! 4       p V '       dT   \        P                  ! R4      ;_uu_ 4        \        P
                  ! 4       ;_uu_ 4        Rx € RRR4       RRR4       R# Rx € R#   + '       g   i     L ; i  + '       g   i     R# ; i5i)aV  
Disables torch.inference_mode for the compilation (still on at runtime).
This simplifies the compile stack where we can assume that inference_mode
will always be off.

Since inference_mode is equivalent to no_grad + some optimizations (version
counts etc), we turn on no_grad here. The other optimizations are not
relevant to torch.compile.
FN)rG   Ú"fake_tensor_disable_inference_moderF  Úis_inference_mode_enabledÚinference_moder.  )Úis_inference_mode_ons    ri   Úmaybe_disable_inference_moderÂ
  ð  so   é € ô 	×1Ñ1×WÐW´e×6UÒ6UÓ6Wð ÷ ä× Ò  ×'Õ'Ü�MŠM�O�Oã÷ ÷ (Ñ'õ
 	÷	 �Oú÷ (×'Ð'üs:   ‚5B8¸B8ÁB$Á4B	Á9B$ÂB8ÂB!ÂB$Â$B5	Â/	B8c               ó   € V ^8„  d   QhRR/# rZ  r_   )rt   s   "ri   ru   ru   	  s   € ÷ 
ñ 
Ð4Oñ 
rh   c               #  óè   "  € \         P                  '       d@   \        P                  P                  P                  4       ;_uu_ 4        Rx € RRR4       R# Rx € R#   + '       g   i     R# ; i5i)z¹
Turns off tracking of inference_mode for fake tensor propagation. With this
context manager, when a real tensor is converted to fake tensor, the fake
tensor looses its inference-ness.
N)rG   r¾
  rF  r+  Ú
meta_utilsÚ$disable_inference_mode_for_fake_propr_   rh   ri   Ú*maybe_disable_inference_mode_for_fake_proprÇ
    sK   é € ô ×0×0Ð0Ü×Ñ×)Ñ)×NÑN×PÕPÛ÷ QÑPõ 	÷ Q×PÐPüs   ‚AA2Á	AÁA2ÁA/	Á)	A2c               ó    € V ^8„  d   QhRRRR/# )rn   r’  r
  rr   r  r_   )rt   s   "ri   ru   ru     s   € ÷ Nñ NÐ1ð N°dñ Nrh   c                óf   € V R J ;'       g'    RV P                   9   ;'       g    RV P                   9   # )Nr  rŒ  r"
  )r’  s   &ri   Úis_node_meta_validrÊ
    s.   € Ø�4ˆ<×MÐM˜?¨d¯i©iÑ7×MÐM¸5ÀDÇIÁIÑ;MÐMrh   c               ó   € V ^8„  d   QhRR/# rÓ  r_   )rt   s   "ri   ru   ru     s   € ÷ !ñ ! 4ñ !rh   c                 ó   € \         # rˆ   ©Ú_error_on_graph_breakr_   rh   ri   Ú_get_error_on_graph_breakrÏ
    s   € Ü Ð rh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   r  rr   rs   r_   )rt   s   "ri   ru   ru   "  s   € ÷ "ñ " Tð "¨dñ "rh   c                ó
   € V s R # rˆ   rÍ
  r¤  s   &ri   Ú_set_error_on_graph_breakrÒ
  "  s   € à!Òrh   c               ó   € V ^8„  d   QhRR/# rÓ  r_   )rt   s   "ri   ru   ru   (  s   € ÷ Hñ H˜tñ Hrh   c                 óV   € \         P                  ! R 4      ;p e   V R9  # \        R4      # )ÚTENSORIFY_PYTHON_SCALARSz)pytorch/compiler:tensorify_python_scalars)rÚ  ÚFALSE)rÜ  Úgetenvr#   )Úenvs    ri   Ú_is_tensorify_enabledrÙ
  '  s.   € ä�yŠyÐ3Ó4Ð4ˆÒAØ˜.Ñ(Ð(ÜÐFÓGÐGrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   úAbstractContextManager[None]r_   )rt   s   "ri   ru   ru   /  s   € ÷ ñ Ð(Dñ rh   c                 óö   € \         P                  P                  P                  '       d*   \         P                  P
                  P                  R 4      M\        P                  ! 4       p V P                  4        V # )zPregraph bytecode)
rF  rG  rH  rI  rj  rk  rl  rŠ  Únullcontextrm  ©Úcms    ri   Úrecord_pregraph_bytecode_enterrà
  .  sV   € ô �>‰>×"Ñ"×7×7Ð7ô 	�‰×Ñ×.Ñ.Ð/BÔCä×#Ò#Ó%ð ð
 ‡L�L„NØ€Irh   c               ó    € V ^8„  d   QhRRRR/# )rn   rß
  rÛ
  rr   rs   r_   )rt   s   "ri   ru   ru   :  s   € ÷ "ñ "Ð&Bð "Àtñ "rh   c                ó,   € V P                  R R R 4       R # rˆ   )rn  rÞ
  s   &ri   Úrecord_pregraph_bytecode_exitrã
  9  s   € à‡K�K��d˜DÖ!rh   ú&tuple[bool | None, bool | None] | NoneÚ_cudagraph_overridec               ó   € V ^8„  d   QhRR/# )rn   rr   rä
  r_   )rt   s   "ri   ru   ru   K  s   € ÷ ñ Ð!Gñ rh   c                 ó   € \         # rˆ   ©rå
  r_   rh   ri   Ú_get_cudagraph_overrideré
  K  s   € ÜÐrh   c               ó    € V ^8„  d   QhRRRR/# )rn   ræ   rä
  rr   rs   r_   )rt   s   "ri   ru   ru   O  s   € ÷  ñ  Ð#Ið  Èdñ  rh   c                ó
   € V s R # rˆ   rè
  r¤  s   &ri   Ú_set_cudagraph_overriderì
  O  s   € àÒrh   c               ó   € V ^8„  d   QhRR/# )rn   rr   zlist[CodeType] | Noner_   )rt   s   "ri   ru   ru   V  s   € ÷ ,ñ ,Ð.ñ ,rh   c                 ó0   € ^ RI Hp  V P                  ! 4       # )rx   ©r!   )Útorch._guardsr!   Úget_traced_coderï
  s    ri   rñ
  rñ
  V  s   € Ý,à×)Ò)Ó+Ð+rh   c               ó    € V ^8„  d   QhRRRR/# r˜  r_   )rt   s   "ri   ru   ru   \  s   € ÷ 0ñ 0 6ð 0¨dñ 0rh   c                óx   € \        V 4      p\        VRR4      pVf   R# \        V RR4      pVRJ;'       d    W29   # )a  Check if value is a pybind11 enum member (with stable hash and eq).

Pybind11 enums have __members__ on their type. Unlike Python's enum.Enum,
pybind11 injects __hash__ and __eq__ directly into the type's __dict__,
which trips raise_on_overridden_hash. But these are safe: members have
deterministic hash and equality, same as Python enums.

Note: pybind11 doesn't always return the singleton for enum values (e.g.
a C++ function returning an enum may construct a new Python wrapper), so
we check by name membership rather than identity.
Ú__members__NFr{   )r  r  )ræ   r‹  Úmembersr{   s   &   ri   Úis_pybind11_enum_memberrö
  \  sF   € ô 	ˆU‹€AÜ�a˜¨Ó-€GØ‚ÙÜ�5˜& $Ó'€DØ�tÐ×/Ð/ ¡Ð/rh   c               ó$   € V ^8„  d   QhRRRRRR/# )rn   rÊ  r>   r)  rÌ  rr   zCallable[..., VariableTracker]r_   )rt   s   "ri   ru   ru   p  s$   € ÷ ñ Ø!ðØ&8ðà#ñrh   c                óV   a a€ \        S4      '       g   \        R 4      hR VV 3R llpV# )z!Expect f to be a python callable.c               ó$   € V ^8„  d   QhRRRRRR/# )rn   r^  r@   r`  rr   r_   )rt   s   "ri   ru   Ú#_make_inlined.<locals>.__annotate__v  s$   € ÷ ñ ØðØ*9ðà	ñrh   c            	     óÎ   <€ ^ RI Hp ^ RIHp V! 4       ;_uu_ 4        SP	                  V! S4      \        V 4      \        V4      4      uuRRR4       #   + '       g   i     R# ; i)rx   )Ú_force_inline)ÚUserFunctionVariableN)Útorch._dynamo.trace_rulesrü
  Ú!torch._dynamo.variables.functionsrý
  Úinline_user_function_returnr¶  rP  )r^  r`  rü
  rý
  r)  rÊ  s   *,  €€ri   Úinline_callÚ"_make_inlined.<locals>.inline_callv  sB   ø€ õ 	<ÝJá�_�_Ø×1Ñ1Ù$ QÓ'Ü�T“
Ü�V“ó÷ �_�_‹_ús   �+AÁA$	)r‘  r  )rÊ  r)  r  s   ff ri   Ú_make_inlinedr  p  s,   ù€ ô �A�;Š;ÜÐ@ÓAÐA÷ñ ð Ðrh   r_   )NFNNNNFNre  )r¦   Fr›  )rš  é   rˆ   )FFrB  )rë  rë  )T)Ú_forward_pre_hooksÚ_forward_pre_hooks_with_kwargsÚ_forward_hooks_with_kwargsÚ_forward_hooks)Ú_state_dict_pre_hooksÚ_state_dict_hooksÚ_load_state_dict_pre_hooksÚ_load_state_dict_post_hooks)FFF)NNN)ÚguardedÚ	unguarded)TT)r¸
  Úpython_reducerÚ'python_reducer_without_compiled_forwardr¹
  (P  Ú__conditional_annotations__r÷   Ú
__future__r   ÚatexitrŸ   rŠ  r  rC  rz  r‚  rÛ  ræ  r»  rI  ré  r´   râ  r{	  r  rY  rD  rÜ  rV  r�  r€	  r}  r  r2  rŸ  r¡  r€  r1
  r^  r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Útyping_extensionsr   r   rF  Útorch._functorch.configÚ%torch.fx.experimental.symbolic_shapesÚtorch.utils._pytreerG  Ú_pytreer�  r   Útorch._Cr   r   r   r   Útorch._dispatch.pythonr   Útorch._dynamo.metrics_contextr   r   rð
  r   r    r!   Útorch._subclasses.meta_utilsr"   Útorch._utils_internalr#   r$   r%   r&   r'   Útorch.fx._utilsr(   r)   Útorch.monitorr*   Útorch.nn.modules.lazyr+   Útorch.utils._ordered_setr,   Útorch.utils._python_dispatchr-   Útorch.utils._tritonr.   r/   Útorch.utils.hooksr0   Úgraph_utilsr1   rú  Úcollections.abcr2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Ú%torch._dynamo.bytecode_transformationr<   Útorch._dynamo.replay_recordr=   Útorch._dynamo.symbolic_convertr>   Útorch._dynamo.variables.baser@   Útorch._prims_commonrA   Útorch._subclassesrB   r«  r¨  rJ  Útorch._loggingÚtorch._numpyÚ_numpyrª  rC   rE   rë  rG   ÚfftÚlinalgr`  rH   r¡   rè  r‹  rI   r³   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   r(  r<  r_  Úunpatched_nn_module_getattrræ  Úunpatched_nn_module_callÚ
_call_implÚunpatched_nn_module_call_implr    rW   rY   Útroubleshooting_urlÚnnmodule_doc_urlÚnnmodule_doc_url_msgr  r`   r�   rZ   r  r\   r€   Útimer_counterrÜ  r^   rk   r²   rº   r»   r¿   rÁ   rÆ   rÊ   rÍ   rÑ   rÒ   rÝ   rç   r~  rî   rð   rô   rö   rü   r‰  rp  rœ  r¢  Úregisterr»  ÚFloatTensorr¶  ÚDoubleTensorr·  ÚdoubleÚ
HalfTensorrµ  ÚhalfÚBFloat16Tensorr;  Ú
ByteTensorr­  Ú
CharTensorr©  Ú
LongTensorr¬  ÚlongÚ	IntTensorr«  rq   ÚShortTensorrª  ÚshortÚ
BoolTensorr  Útensortype_to_dtyper½  rã  rà  rä  rã	  ÚVERBOSErí  Ú	Formatterræ  rÞ  r  r  r*  r3  r6  r=  rA  rC  rm  r…  r†  rž  ÚParamSpecArgsÚParamSpecKwargsÚTypeVarTupleÚTypeAliasTyper–  r£  r¥  r±  r¸  r¹  rÈ  rÐ  rÕ  rÏ  rà  ÚWeakSetrë  rî  rñ  rû  rü  rý  rþ  rò  rø  rè  ÚeqÚneÚltÚleÚgtÚgeÚcmp_name_to_op_mappingÚcmp_name_to_op_str_mappingr  r  r  r  r  r$  r.  r2  r7  r?  rV  r^  ra  rê  r¡  rc  Ú!DEFAULT_COMPILATION_METRICS_LIMITrW  rí  rñ  r  r  r0  r6  rï   rY  r\  r_  ra  rÏ  r  rX  rÛ  rÜ  rÞ  rå  rñ  r   r
  r  r$  rK  rX  rj  ru  r{  r~  r…  r„  r¥  r´  rÁ  rÊ  rÕ  rÑ  r¦   rp   r  ÚEllipsisrð  rW  r�  r  Úmemory_formatr)  ÚfinfoÚiinfoÚ	attentionÚ
SDPBackendrN  Ú_CudaDevicePropertiesÚSequenceKeyÚ
MappingKeyÚ
GetAttrKeyrÖ  rO  rÓ  ÚlanguagerÚ  r'  râ  rê  rö  r  r  r  r  r  r  r·  r   r¨  r!  rÙ   r"  r#  ro  r$  rQ  r%  Ú__length_hint__Útuple_iterator_lenÚdeque_iteratorrÑ  Údeque_rev_iteratorr  rŽ  r;  rP  Údict_newrµ   r]  r‘  Údict_methodsrÈ  Úset_methodsrÙ  Úfrozenset_methodsÚBaseExceptionÚbase_exception_methodsr  Úexception_methodsÚ	tuple_newÚtuple_methodsr¶  Úlist_methodsrM  Úlist_getitemÚdeque_methodsÚstr_methodsÚenum_type_methodsr&  r'  r+  r.  r7  r=  rF  rJ  rO  ri  Ú	iter_nextr[  ra  re  Údict_getitemr 	  rk  rq  rv  r|  r‰  r‘  r—  rŸ  rª  r­  r°  rÁ  rÄ  rÈ  rÐ  rç  ÚGLOBAL_KEY_PREFIXré  rï  rô  rû  rÿ  r  r  r  rz  r  rl  rs  Úorig_code_maprt  ru  Úseen_code_mapr  r  r‡  rŒ  r›  r¬  rµ  r¿  r”  rÃ  r  r  r  rÙ  r   r:  r=  rC  rK  rO  rU  rX  rN  ra  rc  ri  rq  r~  r„  r“  r”  r•  Úall_hook_namesrŒ  rœ  rŸ  r¦  r¯  r²  rÇ  rÉ  rÙ  rí  ró  r÷  rû  rú  r	  r	  r	  r	  r	  r&	  r.	  r6	  r8	  rq	  r•	  rš	  ÚStaticInputTyperž	  r¦	  r­	  r°	  r³	  r·	  rÁ	  rÊ	  rÏ	  rÓ	  rê	  rð	  rô	  rö	  r
  r
  r#
  r%
  r-
  r3
  r8
  r=
  rB
  rF
  rE
  rN
  rQ
  rV
  rZ
  ra
  re
  Ú_disable_dynamorj
  rm
  rq
  rw
  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  s   0@ri   Ú<module>r     sË  øðôõ #ã Û Û Û Û Û Û 
Û Û Û 	Û Û Û Û Û Û Û Û Û 	Û 	Û 
Û Û Û Û Û Û Û Û Û ß ,ß =Ý $Ý ß -÷÷ ÷ ÷ 0ã Û Û ,ß $Ð $Ý ÷ó õ <ß Oß ;Ñ ;Ý =÷õ ÷ GÝ &Ý 1Ý /Ý Fß >Ý -å 'ð 
××Ð÷÷ ÷ õ BÝ;ÝHÝ<Ý2Ý0ðÛð	ÛÝÝ.Ý)å÷ 
àØ�FŠFØ�IŠIØ�IŠIð	>
ÐÐ:ó 	
ð �Ø�FŠF�C—G’GØ�IŠI�s—z’zØ�IŠI�s—z’zð	
Ññ  "Ðð ÐÝ5ñ
 ˆCƒL€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€ÙˆTƒ]€Ùˆeƒn€ÙˆCƒL€Ùˆtƒ_€à#ŸhšhŸošo×9Ò9Ð Ø Ÿ8š8Ÿ?š?×3Ò3Ð Ø %§¢§¢× :Ò :Ð à7B×7NÓ7NØ×Ñó8€Ð
4ó ð %'Ð �>Ó &ð BÐ ØoÐ ØÐ.Ð/Ð/UÐVÐ Ø×Ó˜Ó!€ð 46Ð Ð0Ó 5ð
 .9×-DÓ-DÀUÓ-KÐ Ð*Ó Kà—“Ó!€ô�t—y’yô ÷%Jñ %JõP
ð €
õ õð <@Ð Ð8Ó ?õ*õ$õ$ð €õõõ ð> !—“Ó(Ð õ0õ8ô˜4Ÿ9š9ô ÷o#ñ o#ðd	 —O“OÓ%Ð ð ôó ðð. ÷PQó ðPQðf 
ß Ló 
Ø Lð 
÷)ó 
ð)÷
$ð $ðN ‡‚ô8ó ð8ð
 
×Ò˜Ÿš u§{¢{Ð3Ø	×Ò˜Ÿš¨¯ªÐ5Ø	×Ò�u—}’} e§j¢jÐ1Ø	×Ò˜5Ÿ>š>Ð+Ø	×Ò�u—{’{�nØ	×Ò�u—z’z�mØ	×Ò�u—{’{ E§J¢JÐ/Ø	‡O‚O�e—k’k 5§9¢9Ð-Ø	×Ò˜Ÿš U§[¢[Ð1Ø	×Ò�u—z’z�mðÐ ÷ñ ñ( #:Ó";Ð õ"õ,ð
 —j“jðð ‡J‚Jó	Ð ô0˜×*Ò*ô 0õõ	õ?õ
Gõõõõ	÷ñ ðB 
Ü Aó 
Ø Að 
ôó 
ðð
 
ôó 
ðð
 
ô$ó 
ð$ð
 
ô)ó 
ð)ð
 
ô.ó 
ð.ð 
ô3ó 
ð3ð 
ô8ó 
ð8ð 
ô=ó 
ð=ð  
ôCó 
ðCð" 
ôó 
ðõ
&ñ 27³Ð ˜Ó 8Ø×Ò‘wÔð 	×ÒØ×ÒØ×ÑØ�‰Ø×ÒØ×Òð%Ð!öð ×Ò‘wÔØ! f§l¢l _Õ4Ð!öö$ö&ð 59Ñ Ð1Ó 8ö$ö0-ööð( 
ô5ó 
ñ5ð
 
ô7ó 
ñ7ö
ð ‡OƒOÓñ 5ð 7ó ö
DöIð
 
×ÒØ×Òõ à× Ò õ!ð ×!Ò!õ"ñ ˆIó ööð ˆh�kŠkØˆh�kŠkØˆh�kŠkØˆh�kŠkØˆh�kŠkØˆh�kŠkðÑ ð ˆdØˆdØˆcØˆdØˆcØˆdðÑ öö45öö3öö%ö$ö,ð ×Ò�TÓôó ñ÷ñ ö 
ö$0ö5ð Ñ ð ×Ò÷A"ð A"ó ñA"ðH %'Ñ !ð ?J×>OÓ>OÙ,ô?Ñ Ð;ó ö
-ö`'3öT3ö0-ö`;ö2P3öf%÷!÷
&ð &÷\ô \ð~
 26Ñ Ñ.Ô 5÷ð ÷*ð *ð
 ÷%=ñ %=ó ñ%=ðZ 24�Ñ.Ô 3ð ×Ò÷&5ò &5ó ñ&5öR Ð+õ  ò )Ó*�Õ ÷ð ÷	ð 	÷;ð ;ñ"UÀ÷ Uò Uðp 
öó 
ñð
 
Þ =ó 
Ù =÷ð ÷,
ð 
ð& ö7ó ñ7÷*ð ÷&ó ÷$ð ÷(ð (÷
ð ð@ ×Ò�QÓö1ó ñ1÷@ð ÷.ó ÷&Xð Xñ ˆ2ƒöó ñð Ø	ÙØÙÙ	ÚˆƒJÙ×ÒÙ×ÒØ	‡N�Nà	‡L‚LØ	‡K‚KØ	×ÒØ	‡L‚LØ	‡K‚KØ	‡K‚KØ	‡H‚H×Ò×!Ò!Ø	‡J‚J×$Ò$à	‡K�K×Ñ×#Ò#Ø	‡K�K×Ñ×"Ò"Ø	‡K�K×Ñ×"Ò"ð/$Ñ ‘yô ñ4 ×ÒÝá×Ò™fŸošo×3Ò3Ô4ð÷ð ð$ ‡‚öó ñ÷ð ÷ð ÷>ð ÷<ð ÷Wð W÷
ð 
÷
ð 
÷ð ò "& b§g¢g£i£�	ÑÔ 0Ú%)¨"¯)ª)«+Ó%6�Ñ"Ô 6Ú(,¨R¯XªX«ZÓ(8�
Ñ%Ô 8Ú&*©;«=×+?Ò+?Ó+AÓ&B�Ñ#Ô Bâ&*ª4±«8£n�Ñ#Ô 4â&*ª4²°a³«>Ó&:�Ñ#Ô :Ù#×3Ò3Ñ Ú’d˜;×,Ó,Ó.Ó/Ó0�Úš( ;×#4Ó#4Ó#6Ó7Ó8Ñ Ù�^Š^�
Ù�<Š<�ð —/“/¡$§-¢-×"6Ò"6Ó"8¸+×:NÒ:N×:UÒ:UÓ:WÔXóáXˆÚ�×÷ €FÙXñ�ñ
 %(§L¢L×$7Ò$7Ô$9ÓNÑ$9˜&ºXÀf×=M�vˆvÑ$9ÑN�á"×+Ò+×2Ò2Ô4óÙ4ˆvºÀ×8H‡F€FÑ4ñÑ ñ '×/Ò/×6Ò6Ô8óÙ8ˆvºHÀV×<L‡F€FÑ8ñÑ ñ #×+Ò+×2Ò2Ô4óÙ4ˆvºÀ×8H‡F€FÑ4ñÑ ð
 �MŠM�	Ø&+§n¢n×&;Ò&;Ô&=ÓRÑ&=˜FÂÈ&×AQ—�Ñ&=ÑR�Ù%)§]¢]×%9Ò%9Ô%;ÓPÑ%;˜6ºxÈ×?O—�Ñ%;ÑP�Ù×Ò�ð %×*Ò*×3Ò3×:Ò:Ô<óÙ<ˆvÂÈ×@P‡F€FÑ<ñ�ñ %(§L¢L×$7Ò$7Ô$9ÓNÑ$9˜&ºXÀf×=M�vˆvÑ$9ÑN�ò ˜dŸiši›×1Ò1×8Ò8Ô:óÙ:ˆvºhÀv×>N‡F€FÑ:ñÑ ñ ‰CƒL�Ù‰CƒL�÷ð ÷	Gð 	G÷9ð 9÷$ð ÷1ð 1÷ð ÷
:ð :ñ �	÷ð ÷.ð ÷ð ñ ×Ò�ð ‡�‡‚ö:ó ñ:÷ð ÷=ð =÷ð ÷8ð 8÷*ð ÷Mð M÷
ó ÷*
ð 
÷6Lð L÷	Ið 	I÷&ð &÷RMð M÷9ð 9÷ð ÷D ð  ñ
 !Ñ ÷ =Ð <÷7ð 7÷ð ñ(Ø;@÷(ò (÷$
ð 
÷"?ð ?÷;ð ;÷ó ð Ø ÙØÙØ!&ØØ%(§Y¢YØ5:Ø!&Ø"Ù÷ZFò ZF÷z
Hð Hð
 ×Ñö=ó ñ=ñ  'Ó(�ð ;F×:QÓ:QÑRVÓ:W�Ñ7Ô Wð LNÑ ÑHÔ Mñ 'Ó(�ð ‡‚ö,ó ñ,÷&ð &÷
ó ÷$ð ÷/ð /÷:ð ÷D2ð 2÷Ið I÷4	Uó 	U÷Eó EðP —“Ó!�÷1ð 1ð ö"ó ñ"÷Zð Z÷z/ð /÷dYð Y÷*2ð 2÷ð ÷Gð G÷/ð /÷ð ÷ 	ð 	÷	ð 	÷
ó 
ö˜Ÿšõ ÷5ð 5÷ð ÷Dð ÷*Wð WóÑ ñ -Ñ.?Ð@Ñ óÑ ñ $Ñ&9Õ9Ñ<QÕQ�÷ð ÷ó ÷Bó ÷$ð ÷ð ö
$˜g b¨! e�nõ 
$÷$ð $÷$ô $ö&$˜W R¨ U�^õ $ð, ×Ò˜QÕöó  ñð( ×Ò™TÕ"ö%ó #ñ%÷(ð ÷$4ð 4÷)ð )÷ð ÷@ð ÷4ð 4÷.ð .÷ð ÷ð ÷&ð ÷$	Cð 	Cð ×Ò÷ò ó ñ÷Yð Yóxrñ %÷ró r÷jð ð> Ñ0Õ1�÷ð ÷)ð )÷"ð ÷ð ÷
Uð 
U÷0ð 0÷ð ÷<ð ÷ ð ÷Oð Oð ×Ñ÷ñ ó ñ÷(&ð &÷ð ö1�—’—’õ 1÷4ð 4÷n4ð 4÷1ð 1÷ô ò  ›E�‘Ô !÷	2ó 	2÷%ð %ð ×ÑöCó ñC÷Kð K÷ð ÷0ð 0÷,ð ,÷$ð $÷
4ð 4÷
ð ÷
ð 
÷"ð ð ×Òöó ñð ×Òöó ñð ×Òöó ñ÷
ð 
÷,ð ,÷+ð +ö�—’õ ö�4—9’9õ ÷#ô #öL9˜õ 9÷
Mð Mð ñõ�ñ7Ñ Ñ3ô ÷)ð )ð  öó ñð. ö
ó ñ
÷Nð Nð
 Ñ ÷!ð !÷"ð "ð
 ×Ò�QÓöHó ñHð ×Òöó ñð ×Òö"ó ñ"ð ?CÑ Ñ;Ô B÷ð ÷ ð  ÷,ð ,÷0ð 0÷(ò øðkw ô Ø	ƒBðûð@ ô 	Úð	üòH\ùò
 Oùòùòùòùò SùÚPùòùò OùòsÈ   ÆAb  Æ$#Ab0 ÇBAb0 ùAb>ùAb>úAcúAcûAcûAcüAcüAcýAcýAcþAcþ%AcÿAcÿ$AcÁ@&Ac!Á@<Ac!ÁA%Ac&ÁA;Ac&ÁB5Ac+ÁCAc+Áb 	Ab-Áb,Ab-Áb0Ab;Áb:Ab;