
    IЦi                       % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJrJrJrJrJrJrJrJrJrJrJr  S SKrS SKrS SKJ r   S SK!J"r"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)J*r*J+r+  S SK,J-r-J.r.  S S	K/J0r0  S S
K1J2r2  S SK3J4r4J5r5J6r6J7r7J8r8J9r9J:r:  S SK;J<r<J=r=  S SK>J?r?  S SK@JArA  S SKBJCrC  SSKDJErEJFrFJGrGJHrH  SSKIJJrJ  SSKKJLrLJMrM  SSKNJOrOJPrPJQrQ  SSKRJSrSJTrTJUrUJVrVJWrW  SSKXJYrY  SSKZJ[r[J\r\J]r]J^r^J_r_J`r`JaraJbrbJcrcJdrdJereJfrfJgrgJhrhJiriJjrjJkrkJlrlJmrm  SSKHJnrnJoroJprpJqrq  SSKrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJrJr  SSKJrJr  SSKJrJrJrJrJrJr  SSKJrJrJrJrJrJrJr  SSKJrJrJrJrJr  SS KJrJrJrJrJrJrJr  SS!KJr  SS"KJr  SS#KJr  SS$KJrJrJrJrJrJrJrJrJrJr  SS%KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS&KJrJrJr  SS'KJr  SS(KJr  SS)KJr  SS*KJrJrJrJrJrJr  SS+KJrJr  SS,KJrJrJrJr  SS-KJrJrJrJrJrJr   S SKr\(       a	  S S.GK GJGr  \	GR                  " G\5      Gr\GR
                  GR                  G\S/5      Gr\GrS0 Gr	 " S1 S25      Gr
\GR                   " S3 S45      5       Gr " S5 S6G\5      GrG\" S7 G\" \5      GR!                  5        5       5      Gr\G\   G\S8'   G\" 5       Gr\G\   G\S9'    " S: S;5      GrS< GrS= Gr SQS>\4S? jjGrS@ Gr SQSA jGr SRSB jGr SQSC jGrSD GrSE Gr\GR                   " SF SG5      5       Gr  SSS>\:4SH jjGr!SSI.SJ\\k   SKG\"4SL jjGr# " SM SN5      Gr$G\$GRK                  5       G\$Gl&         " SO SP5      Gr'g! \ a    Sr GNuf = f)T    N)AnyCallableDict	FrozenSetListMutableMapping
NamedTupleOptionalSetTYPE_CHECKINGUnion)SymInt)GuardSourceTracingContext)call_torchbind)HigherOrderOperator)
FakeTensoris_fakemaybe_get_fake_mode)is_sparse_any	safe_grad)justknobs_check)BackwardState)_constrain_range_for_size_nested_int_aware_sort
DimDynamicRelaxedUnspecConstraintStatefulSymbolicContextSubclassSymbolicContextSymbolicContext)immutable_dictimmutable_list)is_traceable_wrapper_subclass)ValueRanges)TensorWeakRef   )configmutation_guardreplay_recordtrace_rules) get_registered_device_interfaces)InternalTorchDynamoErrorunimplemented)GuardBuilderinstall_guardmake_dupe_guard)auto_dynamic
auto_unsetFrameStateSizeEntryInferStrideprocess_automatic_dynamic)SideEffects)AttrProxySource
AttrSourceCallMethodItemSourceConstantSourceConstDictKeySourceConvertIntSourceFloatTensorSourceGetItemSource
GradSourceis_constant_sourceis_from_defaultsis_from_optimizer_sourceLocalSourceNumpyTensorSourceOptimizerSourceRandomValueSourceSourceSubclassAttrListSourceTupleIteratorGetItemSource)is_callable_allowedis_numpyis_numpy_dtypeis_numpy_type_info)_extract_tensor_dictbuild_checkpoint_variablebuild_invoke_subgraph_variableclone_inputcommon_constant_typesget_fake_valueget_locals_to_stealget_static_address_typeis_frozen_dataclassis_function_or_wrapperis_invoke_subgraphis_lru_cache_wrapped_functionis_namedtupleis_parameter_freezing	is_typingis_utils_checkpointis_wrapper_or_member_descriptoristypenamedtuple_fieldsodict_valuesproxy_args_kwargsrange_iteratorset_example_valuetensor_always_has_static_shapetuple_iteratortuple_iterator_getitemtuple_iterator_len unwrap_with_attr_name_if_wrapperwrap_fake_exception   )typestrValueMutationNewVariableTrackerVariableTrackerMeta)ConstantVariableEnumVariable)AutocastModeVariableEventVariableNullContextVariablePreserveVersionContextVariableStreamContextVariableStreamVariable)ConstDictVariableCustomizedDictVariableDefaultDictVariableFrozensetVariableHFPretrainedConfigVariablePythonSysModulesVariableSetVariable)DeviceMeshVariablePlacementClassVariablePlacementVariableProcessGroupVariableWorldMetaClassVariable)!CollectiveFunctionRewriteVariableCreateTMADescriptorVariableFunctoolsPartialVariableTritonKernelVariableUserFunctionVariableUserMethodVariableWrapperUserFunctionVariable) TorchHigherOrderOperatorVariable)ItertoolsVariable)LazyVariableTracker)
BaseListVariableListIteratorVariableListVariableNamedTupleVariableRangeVariableRestrictedListSubclassVariableSizeVariableSliceVariableTupleIteratorVariableTupleVariable)AutogradEngineVariableAutogradFunctionContextVariableAutogradFunctionVariableComptimeVariableDebuggingVariableDelayGraphBreakVariableGetAttrVariableGetSetDescriptorVariableInspectSignatureVariableLambdaVariableLoggingLoggerVariableMethodWrapperVariableNumpyDTypeVariableNumpyTypeInfoVariableNumpyVariablePythonModuleVariableRandomClassVariableRandomVariableRegexPatternVariableSavedTensorBoxTorchVersionVariableTypingVariableWeakRefVariable)FSDPManagedNNModuleVariable$UnspecializedBuiltinNNModuleVariableUnspecializedNNModuleVariable)OptimizerVariable)TorchScriptObjectVariableSDPAParamsVariable)NumpyNdarrayVariable$supported_const_comparison_op_valuesSymNodeVariableTensorSubclassVariableTensorVariableUnspecializedPythonVariable)TorchCtxManagerClassVariableTorchInGraphFunctionVariable)build_torch_function_fnTensorWithTFOverrideVariable#torch_function_mode_stack_state_mgrTorchFunctionModeVariable)FrozenDataClassVariableKeyedJaggedTensorVariableMutableMappingVariableSourcelessGraphModuleVariableUserDefinedClassVariableUserDefinedObjectVariable)InstructionTranslatorcudagraph_static_inputsc                     [         R                  " 5          [         R                  " SS5        [        U S5      sS S S 5        $ ! , (       d  f       g = f)NignorezThe .grad attribute of a Tensorgrad)warningscatch_warningsfilterwarningshasattr)ts    ^/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_dynamo/variables/builder.pysafe_has_gradr     s5    		 	 	"*KLq&! 
#	"	"s   #A
Ac                       \ rS rSrSrg)_missingi   N__name__
__module____qualname____firstlineno____static_attributes__r       r   r   r     s    r   r   c                       \ rS rSr% \\S'   \\\R                  4   \S'   \
\S'   \\R                  R                  R                     \S'   Sr\
\S'   Sr\\R"                     \S	'   \S
 5       rS rS rS rS rSrg)GraphArgi  source_examplepass_arg_as_tensorfake_tensorT	is_tensorNexample_strong_refc                     [        U R                  [        5      (       a  U R                  5       nUc   eU$ U R                  $ N)
isinstancer   r%   )selfrs     r   exampleGraphArg.example/  s7    dmm]33A= =H== r   c                     [        U R                  [        R                  5      (       a7  [	        U R                  5      U l        [        U R                  5      (       d   eg g r   )r   r   torchTensorr%   r   r   r   s    r   __post_init__GraphArg.__post_init__8  sC    dmmU\\22)$--8DM4++,,,, 3r   c                 :    U R                   R                  U5        g r   )r   reconstructr   codegens     r   r   GraphArg.reconstruct=  s    (r   c                      S U l         S U l        g r   r   r   r   s    r   eraseGraphArg.erase@  s    "&r   c                 l    U R                   R                  5       UR                   R                  5       :H  $ r   )r   namer   others     r   __eq__GraphArg.__eq__D  s'    {{!U\\%6%6%888r   r   )r   r   r   r   rG   __annotations__r   r%   r   r   boolr
   _subclassesr   r   r   r   r   propertyr   r   r   r   r   r   r   r   r   r   r     s    N M5<</00" %++77BBCC It 26.5! !-
)'9r   r   c                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )BackwardStateGraphArgiH  c                 8   > [         TU ]  S [        5       SS SS9  g )NF)r   r   r   r   r   )super__init__r   )r   	__class__s    r   r
  BackwardStateGraphArg.__init__I  s&    "_$ 	 	
r   c                    ^ TR                   R                  R                  (       d   eTR                  U4S j5        TR	                  SS5        TR                  5         TR                  TR                   R                  R                  5        g )Nc                  D   > T R                  [        R                  S5      $ )Nr   )load_import_fromr   r   )r   s   r   <lambda>3BackwardStateGraphArg.reconstruct.<locals>.<lambda>U  s    G,,]-E-EWr   r   F)txoutputbackward_state_varadd_push_nullcall_functiondup_topstorer   s    `r   r   !BackwardStateGraphArg.reconstructR  se    zz  3333W	
 	a'gjj''::;r   r   returnN)r   r   r   r   r
  r   r   __classcell__r  s   @r   r  r  H  s    
< <r   r  c              #      #    U  HG  u  pUR                  S 5      (       a  M  [        R                  " U5      (       d  M:  [        U5      v   MI     g7f)_N)
startswithinspectisclassid).0r   members      r   	<genexpr>r&  ^  s>      //??3 $+OOF$; BvJJ/s   AAAITERTOOLS_TYPE_IDSITERTOOLS_POLYFILLED_TYPE_IDSc                     ^  \ rS rSrSrS\SS4U 4S jjrS rS r\	\
R                  " S5      S	 5       5       rS
 rS r\S 5       r\\
R                  " S5      S 5       5       rS\R&                  4S jrS\R,                  4S jrS rS r\\
R                  " S5      S\\\S \/\4   4   4S j5       5       rS r S\4S jr!S\"\#\$\%\&4   4S jr'S\(4S jr)S\*4S jr+S\"\,\-4   4S jr.S\/R`                  S\14S jr2S\/Rf                  Rh                  4S jr5S r6S\/R`                  4S jr7S\/R`                  4S jr8S  r9S! r:S" r;S# r<S$r=U =r>$ )%VariableBuilderig  z3Wrap a python value in a VariableTracker() instancer   r  Nc                    > Uc   S5       e[         R                  " 5       c   S5       e[        TU ]  5         Xl        X l        UR                  5       U l        g )NzRConsider SourcelessBuilder for ephemeral objects, usually objects created locally.zExpected active TracingContext)r   try_getr	  r
  r  r   r   )r   r  r   r  s      r   r
  VariableBuilder.__init__j  sZ     	`_	`%%'3U5UU3KKM	r   c                 2   XR                   R                  R                  ;   a]  U R                   R                  R                  U   n[        U R                  UR                  5      nU(       a  U R                  U5        U$ U R                   R                  R                  R                  XR                  5      nU(       a  U$ U R                  U5      nU R                  Ul        U R                  U5      (       ab  XR                   R                  R                  ;  a?  [        U5      (       d/  U R                   R                  R                  R                  X5      nU R                   R                  R                  R                  XR                  U5        U$ r   )r  r  side_effectsr0   r   install_guardsvariable_tracker_cachelookup_wrap_can_lift_attrs_to_inputsr^   track_object_existingadd)r   valueside_effect_result	dup_guard	cached_vtvts         r   __call__VariableBuilder.__call__x  s   GGNN///!%!<!<U!C'5G5N5NOI##I.%%GGNN99@@T	ZZKK	**2..WW^^8883E::,,BB5MB--11%bI	r   c                 F    [        U5      [        [        [        [        1;   $ r   )typer   r   r   r   )r   r;  s     r   r4  )VariableBuilder._can_lift_attrs_to_inputs  s$    Bx(% 	
 
 	
r   c                  
    SS1$ )Nr   rk   r   r   r   r   _common_constants!VariableBuilder._common_constants  s     		
 		
r   c                     U R                   $ r   r   r   s    r   
get_sourceVariableBuilder.get_source  s    {{r   c                     U R                  5       n[        U[        5      (       d"  UR                  5       [        R
                  :X  a  g [        U Vs/ s H  o2R                  U5      PM     snSS06  0 $ s  snf )Nskiprk   )rF  r   r:   guard_sourcer   CONSTANTr/   
make_guard)r   guardsr   guards       r   r0  VariableBuilder.install_guards  se    "v~..""$(<(<<fEfU))%0fENAN	 Fs   A5c                 @    U R                  [        R                  5      $ r   )_type_dispatch_implr'   trace_numpy)clss    r   _type_dispatchVariableBuilder._type_dispatch  s    &&v'9'9::r   c                    [         R                  [         R                  R                  [         R                  R
                  [         R                  R                  R                  4U R                  4[        [        [        [        R                  [         R                  4U R                  4[         U R"                  4[$        U R&                  4[(        [*        4U R,                  4[        [.        5      U R0                  4[2        R4                  U R6                  4[8        R:                  U R<                  4[         R>                  R@                  RB                  U RD                  4[         RF                  RH                  U RJ                  4/
nU(       a6  [L        (       a+  URO                  [L        RP                  U RR                  45        0 nU H1  u  pE[U        U[        5      (       a  UOU4 H  nXc;  d   eXSU'   M     M3     U$ r   )+r   r   nn	Parameterr  r   functional_tensorFunctionalTensorwrap_tensortuplelistra   collectionsdequeSizewrap_listlikerf   wrap_tuple_iteratorrc   wrap_range_iteratorslicerangewrap_slice_rangerR   wrap_literalrePatternwrap_regex_patternweakrefReferenceTypewrap_weakrefutilshooksRemovableHandlewrap_removable_handlejitScriptFunctionwrap_jit_functionnpappendndarraywrap_numpy_ndarrayr   )rS  rR  entriesresulttsfnr   s          r   rQ  #VariableBuilder._type_dispatch_impl  s    LLHH&&%%00%%77HH	  lK,=,=uzzJ!! S445S445U^S112()3+;+;<ZZ//0""C$4$45[[..0I0IJYY%%s'<'<=+
0 22NNBJJ(>(>?@FB%b%00Rre;&q	 < 
 r   r7  c                 V    U R                  [        R                  5        [        U5      $ r   )r0  r.   ID_MATCHr   r   r7  s     r   rj  "VariableBuilder.wrap_regex_pattern  s!    L112#E**r   c                     U R                  [        R                  5        [        R                  " U R
                  XR                  S9$ NrE  )r0  r.   
TYPE_MATCHr   buildr  r   r  s     r   rm  VariableBuilder.wrap_weakref  s1    L334$$TWWeKKHHr   c                     [        S5        g )Nz"unregistered hook removable handle)r-   r  s     r   rq  %VariableBuilder.wrap_removable_handle  s    
 	:;r   c                 j    U R                  [        R                  5        [        USU R                  S9$ )N_torchdynamo_inlinerE  )r0  r.   r  r   r   r  s     r   rt  !VariableBuilder.wrap_jit_function  s/    L334*(
 	
r   c                    SSK J n  [        R                  S 4US 4[        R                  S 4[
        R                  S 4/n0 nU H@  u  pE[        U[        [        45      (       a  UOU4 H  nXc;  d   eXS[        U5      '   M     MB     U$ )Nr&   )comptimec                     [        [        R                  4SU R                  0U R	                  [
        R                  5      D6$ Nr   )r   r   creater   r0  r.   CLOSURE_MATCHr  s     r   r  .VariableBuilder._id_dispatch.<locals>.<lambda>  s9    N,33%;;% )),*D*DE%r   c                     [        5       $ r   )r   r  s     r   r  r    s    +;+=r   c                 t    [        [        4SU R                  0U R                  [        R
                  5      D6$ r  )r   _dataclasses_fields_lambdar   r0  r.   FUNCTION_MATCHr  s     r   r  r    s3    N.%;;% )),*E*EF%r   c                     [        5       $ r   )r   r  s     r   r  r    s    4H4Jr   )r  r!  	signaturedataclassesfieldsr   __version__r   r\  r]  r#  )rS  r  ry  rz  r{  r|  r   s          r   _id_dispatchVariableBuilder._id_dispatch  s    
 	( !! =>""  JK%
* FB%b5$-88RreC& "r!u D 
 r   c                 hK  ^ ^.^/ SSK JnJn  U" 5       (       a  SSKJn  SSKJn  O " S S5      n " S S5      nU" 5       (       a	  SS	KJnJ	n  OS
 nS nT R                  5       R                  [        U5      5      nUb	  U" T U5      $ T R                  5       R                  [        U5      5      n	U	b	  U	" T U5      $ [        U5      (       d  [!        U["        R$                  5      (       a  T R'                  U5      $ [)        U5      (       a  T R+                  [,        R.                  5        [1        [        U5      5       V
s/ s H5  n
[2        R4                  " [7        X5      [9        T R:                  U
5      S9PM7     nn
[=        U[        U5      T R:                  S9nU$ U[>        R@                  RB                  RD                  L a  T R+                  [,        RF                  5        T RH                  RJ                  RL                  RO                  T R:                  RQ                  5       5        [S        URU                  5       5       VVVs0 s HL  u  nu  p[W        U5      [Y        U[[        T R]                  5       [_        T R]                  5       U5      5      S9_MN     nnnn[a        U[        U5      5      $ U[b        Rd                  L a2  T R+                  [,        Rf                  5        [i        T R:                  S9$ [j        Rl                  " [        U5      5      (       ae  T R+                  [,        Rn                  5        [j        Rp                  " T U5      nT RH                  RJ                  Rr                  Ru                  X5      $ [!        U[v        [x        Rz                  [x        R|                  45      (       Ga  T R+                  [,        R.                  5        [        S UR                  5        5       5      m.T.(       a   T R+                  [,        R                  5        OGT RH                  RJ                  RL                  RO                  T R:                  RQ                  5       5        U.U 4S jm/[w        U/4S j[S        URU                  5       5       5       5      n[!        U[x        Rz                  5      (       aZ  [9        T R:                  S5      n[        U[        U5      [        T RH                  U5      " UR                  5      T R:                  S9nO[a        U[        U5      T R:                  S9nT RH                  RJ                  Rr                  R                  X5      $ [        U[>        R                  R                  5      (       a  T R                  U5      $ [        R                  " U5      (       a  T R                  U5      $ [        U[>        R                  R                  5      (       aF  [        UT R:                  S9nT RH                  RJ                  Rr                  Ru                  UU5        U$ [!        U[        5      (       az  [        S U 5       5      (       ac  U Vs/ s H#  n[        R5                  T RH                  U5      PM%     nnT R+                  [,        R                  5        [        UT R:                  S9$ [        U[        R                  5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        R                  " U5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        U[        R                  5      (       a3  T R+                  [,        Rf                  5        [        UT R:                  S9$ [        U5      (       a  [        T R:                  S9$ [        U5      (       a  [        T R:                  S9$ [        U[        R                  5      (       Ga  [9        T R]                  5       S5      n[        T RH                  U5      " UR                  5      n/ n[9        T R]                  5       S5      n[S        UR                  5       H;  u  nnUR                  [        T RH                  [[        UU5      5      " U5      5        M=     0 n[9        T R]                  5       S5      nUR                  RU                  5        HT  u  p[        R                  " U5      (       d  [        S5        [        T RH                  [[        UU5      5      " U5      UU'   MV     [        T R]                  5       R                  [,        Rn                  5      UR                  [,        R                  5      UR                  [,        R.                  5      5        [        UUU5      $ [        U5      (       a3  T R+                  [,        R                  5        [W        UT R:                  S9$ [        bD  [        U[        R                  5      (       a%  T R                  [        R                  " U5      5      $ [        U5      (       a`  [        (       d   eT R+                  [        U5      (       a  [,        Rf                  O[,        Rn                  5        [        UT R:                  S9$ [        U5      (       a3  T R+                  [,        R                  5        [        UT R:                  S9$ [        U5      (       a  [        U[        R                  5      (       a^  T R+                  [,        Rn                  5        [9        T R:                  S5      n[        UR                  [,        R                  5      5        OT R+                  [,        R                  5        [        UT R:                  S9$ [        R                  " U5      (       aI  T R+                  [,        Rf                  5        [        R4                  " T RH                  UT R:                  S9$ [!        U[>        R                  R                  R                  5      (       a3  T R+                  [,        Rf                  5        [        UT R:                  S9$ [        U[>        R                  R                  R                  5      (       Ga5  S n UGR                   n/ nT R:                  R                  [,        Rn                  5      /n[        UG[        5      (       a  [9        T R:                  S5      nUR                  UR                  [,        R.                  5      5        [S        U5       H:  u  pUR                  [        T RH                  [[        UU5      5      " U5      5        M<     [        U6   T RH                  RJ                  Rr                  Ru                  UG[        UT R:                  G[	        U5      S95      $ [        UG[
        GR                  5      (       a  [!        [7        USS 5      [>        R                  R                  R                  5      (       a~  [7        USS5      S :X  am  U[7        UGR                  S S 5      :X  aQ  T R+                  [,        Rf                  5        G[        [        UGR                  [9        T R:                  SS!9S9S 5      $ [        U[>        GR                  GR                  5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ U[>        GR                  GR                  GR                  GR                  L a/  T R+                  [,        Rf                  5        G[!        U 4S" j5      $ [        U5      (       av  G["        GR$                  " U5      b]  G['        U5      (       a  S#T RH                  RJ                  l        G["        GR$                  " U5      GR+                  UT R:                  S9$ [        (       a2  [        U[        GR,                  5      (       a  T GR/                  U5      $ G[0        GR2                  " U5      (       a+  T R+                  [,        Rn                  5        G[1        U5      $ [        UG[4        5      (       az  U[>        GR6                  GR8                  L a  [        S$5        T R+                  [,        Rn                  [,        GR:                  5        G[<        GR>                  " UT R:                  S9$ [        U[>        GR@                  GRB                  5      (       a~  T R+                  [,        R                  5        [9        T R:                  S%5      n[        T RH                  U5      " UGRD                  5      n G[F        R4                  " T RH                  U 5      $ [        U[>        GRH                  5      (       a  T R+                  [,        R                  5        T RH                  RJ                  GRK                  S&[        U5      S'UGRL                  UGRN                  UGRP                  S(.5      n!G[S        U!GRT                  U5        G[W        U!UUGRX                  T R:                  S9$ [        U[>        GR                  GRZ                  5      (       aL  T R+                  [,        Rn                  5        G[\        R4                  " T RH                  UT R:                  5      $ [        U[>        GR^                  5      (       a  T R+                  [,        R                  5        [>        GR                  R@                  GRa                  U5        T RH                  RJ                  GRK                  S&[>        GR                  R@                  GRb                  [        U5      40 5      n"G[S        U"GRT                  U5        G[e        U"UT R:                  S9$ [        U[>        GR                  GRf                  5      (       a)  U["        R$                  ;   a  G[i        UT R:                  S9$ [!        UG[j        GRl                  5      (       aN  G[n        GRp                  " US)S 5      c3  T R+                  [,        Rn                  5        G[s        T R:                  S9$ G[t        GR2                  " U5      (       ac  T R+                  [,        Rn                  5        G[u        UT R:                  S9nT RH                  RJ                  Rr                  Ru                  X5      $ [        U[>        GRv                  GRx                  5      (       aO  T R+                  [,        R                  5        G[{        T R:                  5      T l        G[}        UT R:                  S9$ G[~        GR                  " U5      (       a  G[        UT R:                  S9$ G[        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a5  T R+                  [,        GR                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a4  T R+                  [,        R                  5        G[        UT R:                  S9$ G[        GR                  " U5      (       a5  T R+                  [,        GR                  5        G[        UT R:                  S9$ [        U5      G[        ;   aH  [        U5      G[        ;  a4  T R+                  [,        Rf                  5        G[        UT R:                  S9$ [        U[>        GR                  5      (       Ga  G[        T R:                  5      n#UGRT                  GR                  5       (       ah  UGRT                  GR                  5       n$T RH                  RJ                  GR                  GR                  G[        U$5      U#G[        GR                  S*9n%O0T RH                  RJ                  GR                  GR                  5       n%T RH                  RJ                  GR                  GR                  G[        GR                  " S+S,T RP                  5      [        U%5      U%U#S9n&G[        U#U%S-S S-U%S.9U&GRT                  GR                  S/'   U%GRT                  GR                  n'[        U'G[        GR                  5      (       d
   U' S035       eT RH                  RJ                  GR                  R                  G[        U%U#S 5      5        G[        U&U%S1:H  5      $ [        XU45      (       a6  T R+                  [,        R                  5        G[        US S T R:                  S9$ XL a
  G[        S1S29$ XL a
  G[        S3S29$ [        U[>        GR                  GR                  GR                  5      (       ad  T R+                  [,        R                  5        G[        UGRX                  UGR                  UGR                  UGR                  /T R:                  S49$ G[        GR                  " U5      (       a4  T R+                  [,        Rf                  5        G[        UT R:                  S9$ G[n        GRp                  " US5S-5      (       a5  T R+                  [,        Rn                  5        G[        US6T R:                  S9$ G[        U5      (       a5  T R+                  [,        Rn                  5        G[        US7T R:                  S9$ G[        U5      (       aT  G[n        GRp                  " US8S-5      (       a5  T R+                  [,        Rn                  5        G[        US8T R:                  S9$ G[        U5      (       a^  G[        U5      u  nn(U(b  [9        T R:                  U(5      T l        G["        GR                  " U5      GR+                  UT R:                  S9$ UG[        GR                  L a3  T R+                  [,        R                  5        G[        T R:                  S9$ [!        UG[        GR                  5      (       a  G[        GR                  " U5      (       ae  T R+                  [,        Rn                  5        G[        UT R:                  S9nT RH                  RJ                  Rr                  R                  X5        U$ [        UG[
        GR                  G[        GR                  45      (       ae  T R+                  [,        Rf                  5        G[        UT R:                  S9nT RH                  RJ                  Rr                  Ru                  X5        U$ [        UG[
        GR                  5      (       a  [        UGR                  [>        R                  R                  [>        R@                  RB                  GR                  45      (       a  [        T RH                  [9        T R:                  S5      S9" UGR                  5      n)U)(       a  [        U)G[        5      (       d   S95       eT R+                  [,        Rf                  5        G[        UGR                  U)T R:                  S9$ [        UG[
        GR                   5      (       a  G[        U5      $ [        UG[
        GR                  5      (       a  G[        U5      $ G[	        [        U5      [        5      (       Ga#  U[>        R@                  GR
                  GR                  [>        R                  GR                  [>        R                  GR                  4;   a1  G["        GR                  " U5      GR+                  UT R:                  S9$ U[>        R                  GR                  L aA  T R+                  [,        Rf                  5        G[        GR                  " T RH                  5      $ T R+                  [,        R                  5        G[        UT R:                  S9$ G[        GR                  " [        U5      5      (       a  T R+                  [,        R.                  5        T RH                  RJ                  Rr                  R                  UG[        G[        G[        U5      5       Vs/ s H.  n[2        R4                  " X   [[        T R:                  U5      S9PM0     sn[        U5      [9        T R:                  S:5      T R:                  S;95      $ G[         GR                  " [        U5      5      (       Ga  S3S<KGJn*GJn+  [>        GR&                  GR(                  GR+                  U5      (       a  T RH                  RJ                  GR                  GR                  G[        GR                  " S+S,T RP                  5      [        U5      UT R:                  S9n,G[        T R:                  US-S S-U5      U,GRT                  GR                  S/'   G[         R4                  " U,UT R:                  S9$ G[-        US=5      (       d  T GR/                  U5      $ [2        GR0                  " [        T RH                  U+" T R:                  5      5      " UGR3                  5       GR5                  5       5      5        [2        GR0                  " [        T RH                  U*" T R:                  5      5      " UGR7                  5       5      5        [>        GR&                  GR(                  GR9                  T RH                  RJ                  GR:                  U5      n-T RH                  RJ                  GR                  GR                  G[        GR                  " S+S,T RP                  5      [        U5      U-T R:                  S9n,G[        T R:                  US-S S-U-5      U,GRT                  GR                  S/'   G[         R4                  " U,U-T R:                  S9$ G[	        [        U5      G[<        5      (       a4  T R+                  [,        Rn                  5        G[?        UT R:                  S9$ G[A        U5      (       ay  T R+                  [,        Rn                  5        G[B        R4                  " T RH                  UT R:                  S9nT RH                  RJ                  Rr                  Ru                  X5      $ T GR/                  U5      $ s  sn
f s  snnnf s  snf ! G[         a     GNf = fs  snf )>Nr   )
has_tritonhas_triton_tma)	Autotuner)JITFunctionc                       \ rS rSrSrg)*VariableBuilder._wrap.<locals>.JITFunctioni!  r   Nr   r   r   r   r  r  !      r   r  c                       \ rS rSrSrg)(VariableBuilder._wrap.<locals>.Autotuneri$  r   Nr   r   r   r   r  r  $  r  r   r  )create_1d_tma_descriptorcreate_2d_tma_descriptorc                      g r   r   r   r   r   r  7VariableBuilder._wrap.<locals>.create_1d_tma_descriptor.      r   c                      g r   r   r   r   r   r  7VariableBuilder._wrap.<locals>.create_2d_tma_descriptor1  r  r   rE  )	tuple_clsr   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   rp   
is_literal)r$  ks     r   r&  (VariableBuilder._wrap.<locals>.<genexpr>m  s     QLq,77::L   #%c                 
  > T(       a  [         R                  " U5      nUnO0[        TR                  5       U 5      n[        R                  " X5      n[        TR                  5       U5      n[        R                  " X%5      nX64$ r   )rp   r  r;   rF  r   r>   )	ir  vkey
source_keysource_valuer7  	all_constr   s	          r   build_key_value.VariableBuilder._wrap.<locals>.build_key_value  si    *11!4C!"J!3DOO4Eq!IJ-44QCC,T__->
K+221Cz!r   c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr   r   )r$  r  r  r  r  s       r   r&  r    s%      :RYQa((:Rs   default_factory)r  r   )user_clsr   c              3      #    U  Hd  n[        U5      [        R                  L =(       a    UR                  S :H  =(       d'    U[        R
                  R                  R                  ;   v   Mf     g7f)r   N)r?  typesBuiltinMethodTyper   r   rn  _pytreeBUILTIN_TYPESr$  xs     r   r&  r    s\      	.
  aE333O8O 7 U[[((6667
 s   A,A.r7  r   funcargskeywordsz*functools.partial with non-literal keyworddtypesaved_tensors)r   r  __self__r    apply)r%  c                    > [        [        R                  R                  R                  R
                  5      R                  T R                  T R                  R                  R                  R                  5       40 5      $ r   )r   r   _dynamoexternal_utilsFakeCompiledAutogradEngineexec_final_callbacksr  r  r  r/  get_ca_final_callbacks_varr   s   r   r  'VariableBuilder._wrap.<locals>.<lambda>L  sZ    ,MM00KK``-GGWW^^00KKMOr   TzHDirectly using invoke_subgraph is not supported. Use mark_compile_regionstreamr  r   )	stream_iddevice_indexdevice_typeenter_result)dynamic_dim[^a-zA-Z0-9]+r  F)r   r   grapharg is not a basic Symbol.rk   )rankr&   )target_valuesr   __script_if_tracing_wrapper__original_fn__wrapped__r  z"Failed to produce a valid self objr  )r  user_cls_sourcer   )FlattenScriptObjectSourceScriptObjectQualifiedNameSource__obj_flatten__("  torch.utils._tritonr  r  triton.runtime.autotunerr  triton.runtime.jitr  $triton.tools.experimental_descriptorr  r  rT  getr?  r  r#  r#   r_   r'   traceable_tensor_subclassesr[  rZ   r0  r.   SEQUENCE_LENGTHr`   r   r  getattrr8   r   r   r   rn  r  SUPPORTED_NODESDICT_VERSIONr  r  guard_on_key_orderr6  r   	enumerateitemsr   r   r>   rF  r;   rx   sysmodulesr  r}   ry   is_matching_cls_hfr  wrapr/  r5  dictr^  defaultdictOrderedDictallkeysDICT_CONST_KEYSrz   r*  r  track_mutabler   rW  Modulewrap_modulerp   r  rg  	overridesTorchFunctionModer   	frozensetSourcelessBuilderr  r{   enumEnumrq   r   is_reorderable_logging_functionBUILTIN_MATCHloggingLoggerr   r]   rO   rX   rP   	functoolspartialr  r  rv  r  r-   r/   rL  	DICT_KEYSr   r\   ru  genericrx  asarrayrK   callabler   rL   r   rM   iinfor   r   can_rewriteautogradfunctionFunctionMetar   FunctionCtxr  RuntimeErrorr\  r   r   r  
MethodTyper  r   _C_ImperativeEnginer   r  r  r  _exec_final_callbacks_stubr   r*   lookup_callablerJ   !has_user_defined_allowed_in_graphcreate_with_sourcenumberwrap_unspecialized_primitiver|   is_matching_objectr   _higher_order_opsinvoke_subgraph
NAME_MATCHr   makecudaStreamContextr  rv   Streamcreate_proxyr  r  r  rd   noderw   device_SDPAParamsr   Eventstore_user_object_weakrefget_user_object_from_idrs   _TensorMetar   
contextlibnullcontextr!  getattr_staticrt   r   optim	OptimizerrE   r   r   is_group_member_typer   is_process_groupr   is_device_meshEQUALS_MATCHr   is_placement_typer   is_placementr'  r(  r   SymBoolr<   has_hintrequire_hint	shape_env$create_unspecified_symint_and_symbolintr   DYNAMICcreate_unbacked_symintroot_tracercreate_graph_inputrh  subr   metaexprsympySymboltracked_fakesTrackedFaker   r   r   ampautocast_modeautocastrr   
fast_dtype_enabled_cache_enabledr   is_matching_clsr   rY   rW   ri   r2  randomRandomr   r   is_supported_random_obj
ModuleTyper)   DummyModuler   TreeSpecrn   r   __func__GetSetDescriptorTyper   MethodWrapperTyper   
issubclassro  BackwardHookrX  Buffer _unsafe_preserve_version_counterru   constructorr   r   re  lenr   r  r  _libraryfake_class_registrytracing_with_realr   wrap_user_definedrealize_all_typequalified_namer  maybe_to_fake_obj	fake_moder   r   rV   r   )0r   r7  r  r  r  r  r  r  type_dispatchid_dispatchr   r  rz  r  r  r  factory_sourcevarr  func_srcfunc_objr  args_sourceargr  keywords_source	dt_sourceactual_saved_tensorsr  rM  saved_tensors_sourcestream_source
stream_varstream_proxyevent_proxy
new_source
value_hint
new_symintsym_node_proxysym_expr	attr_nameself_objr  r  proxyfake_script_objr  r  s0   `                                             @@r   r3  VariableBuilder._wrap  s   B<<:6     ++-11$u+>$ u-- '')--bi8"tU++ )//66554
 4
 ##E**5!! < <= .d5k:
 ;D	 $**E(%dkk48 ;   ($u+dkkF Mekk))999  9 9: GGNN--11$++2B2B2DE "+5;;=!9 ":IAv q!#<()+=doo>OQR+S$  ":   %VT%[99ckk! ; ;<+4;;??#66tE{CC 7 78+00u=F77>>..DDUSSED+"9"9;;R;RSTT < <= QEJJLQQI ##L$@$@A$ 1155dkk6F6F6HI"  :CEKKM:R F e[4455!+DKK9J!K,K$3DGG^$L--%  ;; +T%[ 77>>..<<UKKuxx//##E**((//$$U++u@@AA+E$++FCGGNN''==eSIJE9%%# 	.
 	.
 	+
 	+
 DII5a&--dggq95EI 5 56$U4;;??tyy)) 5 56eDKK@@>>uEE  : :;$U4;;??w~~.. ; ;<(t{{CC '',DKK@@&&1EEy0011!$//"3V<H&tww9%**EHD$T__%6?K#EJJ/3#DGG];-JKCP 0
 H():JGO,,.'22155!"NO-GG]?A> / !,,\-D-DE**<+A+AB&&|'C'CD
 ,HdHEEu 5 56!{{  ^
5"** = =**2::e+<==e__2I2E?? ++!,,
 !t{{;;E"" 5 56%eDKK@@&&%**##L$;$;<&t{{G<	i22<3H3HIJ##L$9$9:(t{{CC.::5AA ; ;<4;;{{ 
 E5>>22??@@ ; ;<+{{  u~~66BBCC#' ',':':$ Mkk,,\-D-DEFF.66'1$++'O$(33L4P4PQ &&:;DA!((' GG]3G%K < 6"77>>..DD/;;"0"?  ue..//z40%..2I2I2V2V  z2.'9$??  ; ;<"(NN:dkk*+U 	  uxx99:: 5 56)%DD}}++FFaab  ; ;<!  e__!<!<U!C!O"5))CG@..u5HHdkk I   RJubii0044U;;'::5AA 7 78-e44233//???^  7 79P9PQ388t{{SSuzz7788 5 56&t{{H=M(-@NJ(//DDu||,, 5 5677>>66U!&$)$6$6#(#4#4		L l//7!{{	   4 466 7 78%,,TWWeT[[IIu{{++ 5 56MM99%@''..55##;;E	K k..6 {{  uehh2233;;;)%DD5*0011&&undCK 7 78&dkk::&99%@@ 7 78.uT[[IF77>>..DDUSSu{{4455 5 56)$++6DK$U4;;??#88??)%DD!22599 5 56'dkkBB..u55 9 9:%eDKK@@#55e<< 5 56)%DD++E22 9 9:${{ 
 uI++5	!>> ; ;<$U4;;??u}}-- *$++6Jzz""$$"ZZ446
 GGNN,,QQJ"$.$6$6 R   "WW^^55LLN
!WW^^77JJ'dii8Z !	 K N 4<#-4N$$Z0 "++H%,,  4234  GGNN((//J
D9 #a  Y788 5 56'{{	  ..A66..A66uyy66??@@ 5 56'LL$$NN((	 {{  *99%@@ ; ;</dkkJJ##E+H%PP 7 78.t{{  +511 7 78.umDKKXX#E**w/E/E(%0
 0
  7 78.,T[[  $E**?FE9 $(i@%%e,??dkk @   fmm# 5 56&dkk::E6==))n.T.T/
 /
  7 78#E$++>FGGNN''55eDM  0 0-2K2KLMM ; ;<){{F GGNN''==eLMu//00ZNNUXX__ekk.A.A.J.JK6
 6
 '
4;;
 CnnH 
/! ! 434   ; ;<%{{ 
 u99:: ,E22u6677
 )//UT**!!..""  #))%0CC$++ D   GGG##L$?$?@5AA$''JJ  5 56+{{  ,;;DKHH < <=77>>..<<.
 "'s5z!2	 "3A ,22"'(=a3P "3	 "%[$.t{{K$H;;
  '66tE{CC 
 ~~11CCEJJ22EEFF+S$))<K;;	 F  /7KKtUE/


+ 177;;  5"344--e44  ++)H)UVKKM002  ++)B4;;)OP))+ $nn@@RR((%O GGNN..AA'dii8U{{	 B E +3UE4+EJJOOJ' -33{{ 
 U^44 7 78)%DD '' 7 78,33DGGU4;;WF77>>..DDUSS))%00]&L Jv   Bs5   <BV	ABV#*BVBV D;5BV/VBV,V+BV,c                    U R                  [        R                  5        [        XR                  S9n[
        R                  " [        U5      5      (       d  U$ U R                  R                  R                  R                  X5      $ r  )r0  r.   r  r   r   r6   "cls_supports_mutation_side_effectsr?  r  r  r/  r5  r   r7  rz  s      r   rj  !VariableBuilder.wrap_user_defined  s]    L334*5E==d5kJJMww~~**@@OOr   c                 .   [         R                  (       aO  [        U5      [        R                  L a3  U R                  [        R                  5        [        R                  " US9$ U R                  [        R                  5        [        U[        5      (       a  [        S U 5       5      (       a|  U R                  R                  5       R!                  5       (       aO  U R                  [        R                  5        [#        U Vs/ s H  n[        R                  " U5      PM     sn5      $ [%        U5       VVs/ s H2  u  p2[&        R                  " U[)        U R+                  5       U5      S9PM4     nnnU R,                  R.                  R0                  R3                  S5      n[5        U R                  [6        5      (       Ga  U R                  R8                  [;        U5      ;   Ga  U R                  n[5        U[<        5      (       d   eU R,                  R.                  R>                  RA                  [B        RD                  " SSU RF                  5      [        U5      UUS9nSURH                  RJ                  S'   [M        [N        U R,                  UUS US	9n/ n	[%        URP                  5       H  u  p:[)        XcS
S9nXR,                  R.                  RR                  U'   [U        X   5      U
RV                  RH                  RJ                  S'   [X        RZ                  " [        R\                  [_        X   5      S9nU	Ra                  URc                  U5      5        M     [e        U	SS06  [g        UUS
S S
S9nXRH                  RJ                  S'   [h        Rj                  " U5      " X@R                  S9n[        U[<        [l        Rn                  45      (       a/  U R,                  R.                  Rp                  Rs                  X5      $ U$ s  snf s  snnf )Nr7  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr   r  )r$  items     r   r&  0VariableBuilder.wrap_listlike.<locals>.<genexpr>  s     H%$$//55%r  rE  r   r  r  T	steal_arg)
target_clsr  r  example_valuesubclass_typer   Fbaseindexindex_is_slicetensor_dictrI  rk   )r   r   r   r  ):r'   specialize_intr?  r   r`  r0  r.   CONSTANT_MATCHrp   r  r  r_   r\  r  r   rJ  is_unspecialized_nn_moduler   r  r   r>   rF  r  r  local_scoper  r   rC   
local_namerT   r]  rH  rI  rh  rJ  r   r.  rK  wrap_fx_proxy_clsr   r  input_source_to_varrN   r  r  r  TENSOR_MATCHr%   rv  rL  r/   r   r   cls_for_instancer^  r_  r/  r  )r   r7  r  r  r  maybe_gmr   tensor_list_proxylist_variablerM  tensor_variablesource_irN  r  rz  s                  r   ra  VariableBuilder.wrap_listlike  sH     T%[EJJ%> ; ;<#**77 	L889 5%  H%HHH((*EEGG ; ;< E!RED"2"9"9$"?E!RSS %U+

 ,	  &&$T__%6: , 	 
 77>>--11&9KK
 
kk$$(;H(EE [[FeT**** $ : : M M'dii8U	 !N ! 8<""''4-)77'#"M F&/0C0C&D"(feT?N228<AUHB%%**//> ")) --]585L h11%89 'E 6**#( H 7?""''
3!2259&U%$ 1 123377>>..<<UKKK "S
s    P:9Pc           
         U R                  [        R                  5        [        [	        U5      5       Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [        X5      5      PMB     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r0  r.   TUPLE_ITERATOR_LENre  rh   r*  r  rI   rF  rg   r   r   r  r/  r  )r   r7  r  r  rz  s        r   rb  #VariableBuilder.wrap_tuple_iterator6  s    L;;<
 -e45	
 6 DGG%?@QST%UV&u0 6	 	 
 'vkkBww~~**88GG
s   ACc                 B   U R                  [        R                  5        [        R                  " U5       Vs/ s H  n[
        R                  " U5      PM     nn[        X0R                  S9nU R                  R                  R                  R                  X5      $ s  snf r  )r0  r.   RANGE_ITERATOR_MATCHcopydeepcopyrp   r  r   r   r  r  r/  r  )r   r7  r  r  rz  s        r   rc  #VariableBuilder.wrap_range_iteratorA  sv    L==> 6:]]55IJ5I!((+5IJ%eKK@ww~~**88GG Ks    Bc           
      Z   S Vs/ s H@  n[        U R                  [        U R                  5       U5      5      " [	        X5      5      PMB     nnU R                  [        R                  5        [        U[        5      (       a  [        X0R                  S9$ [        X0R                  S9$ s  snf )N)startstopsteprE  )r*  r  r8   rF  r  r0  r.   r  r   rd  r   r   r   )r   r7  r  r  s       r   rf   VariableBuilder.wrap_slice_rangeI  s    
 /	
 / DGGZ0A1%EF! /	 	 
 	L334eU## {{;; {{;;
s   AB(rN  c                 z   SSK Jn  [        R                  SU R                  R                  5       [        U5      5        U" XS9  XR                  R                  R                  ;   aT  U R                  R                  R                  U   nUR                  UR                  R                  R                  S   S'   g g )Nr&   )mark_static_addressz Marking static input %s, id: %s)rN  r  _dynamo_static_input_type)
decoratorsr  static_inputs_logdebugr   r   r#  r  r  r/  r  r  r.  rK  )r   r7  rN  r  rs  s        r   mark_static_input!VariableBuilder.mark_static_inputV  s    4.0@0@0BBuI	
 	E/ GGNN///''..--e4C // IINN.+ 0r   c                 	   SSK Jn  [        UR                  5      S:X  a  [	        S[        U5       35        [        X5      (       a  [        R                  " UR                  SS5      (       a  [        U R                  S9$ U R                  [        R                  5        [        U R                  S5      U l        U R!                  UR"                  5      $ [%        U[&        R(                  R*                  [&        R(                  R,                  [&        R(                  R.                  45      (       a   [0        R2                  (       d  [	        S	5        [5        US
S5      (       a  [5        USS5      (       d   S5       eU R                  [        R                  5        [7        XR9                  5       S9n[:        R<                  " [?        U5      5      (       d  U$ U R@                  RB                  RD                  RG                  X5      $ [H        RJ                  " XR@                  RL                  5      (       Ga  [%        U[&        RN                  RP                  RR                  RT                  5      (       a*  URW                  5       n[Y        U R                  5      U l        U R                  [        R                  5        [&        RZ                  R0                  R\                  (       a  [_        5       nURa                  5        H  nU Rc                  XTS9  M     URe                  5        H  nU Rc                  XdS9  M     U(       a,  XR@                  RB                  Rf                  U Rh                  '   URj                  Rm                  S5      (       d  [5        URn                  SS5      (       a  [q        XR                  S9nO[s        XR                  S9n[:        R<                  " [?        U5      5      (       d  U$ U R@                  RB                  RD                  RG                  X5      $ [u        URn                  [&        R(                  Rv                  Rx                  Rz                  5      (       a6  U R                  [        R                  5        [s        XR9                  5       S9$ U R@                  RB                  R}                  UU Rh                  U R9                  5       S9$ )Nr&   )OptimizedModuler   zuninitialized nn.Module: _torchdynamo_disableFrE  	_orig_modz5TorchDynamo purposely graph breaks on RNN, GRU, LSTMs_is_fsdp_managed_module_fsdp_use_orig_paramsz3Dynamo only supports FSDP with use_orig_params=Truer  )z	torch.nn.z	torch.ao._dynamo_marked_static)?
eval_framer  rf  __dict__r-   rl   r_   r!  r7  forwardr   r   r0  r.   r  r8   r  r  r   r   rW  RNNGRULSTMr'   	allow_rnnr  r   rF  r6   r  r?  r  r  r/  r5  r(   is_dynamic_nn_moduleexportfxexperimentalproxy_tensor
_AttrProxyget_baser7   r  inline_inbuilt_nn_modulesr[   
parametersr  buffers
nn_modulesr   r   r   r  r   r   ra  paralleldistributedDistributedDataParallelregister_attr_or_module)r   r7  r  rz  freezingpbs          r   r  VariableBuilder.wrap_modulef  sz   0u~~!#5gen5EFG%))%%emm5KUSS
 /dkkBB 7 78$T[[+>DK##EOO44 uuxx||UXX\\588==IJJ$$QR53U;; .  EDE   7 780?PQFAA$u+NN77>>..DDUSS00GG
 %!6!6!C!C!N!NOO(-dkk: 7 78}}##==02))+A**1*= , A**1*= )  <AGGNN--dii8**+EFF'!8%K K >eKKX6u[[QAA$u+NN77>>..DDUSSOOUXX..::RR
 
  7 780?PQQ77>>99		( :  r   c                 D   [         R                  (       GdJ  [        U5      [        L Ga7  [        R
                  " 5       R                  (       Gd  U R                  R                  5       R                  5       (       a  U R                  R                  5       R                  5       (       dj  U R                  R                  5       R                  5       (       d=  [        U R                  5      (       d#  [        S5      (       dP  XR                  5       ;   a=  U R                  [         R"                  5        [$        R&                  " XR                  S9$ U R)                  U5      $ [         R*                  (       d#  [        U5      [,        L a  U R/                  U5      $ U R                  [         R"                  5        [$        R&                  " XR                  S9n[1        U[2        [4        45      (       a/  U R6                  R8                  R:                  R=                  X5      $ U$ )Nz5pytorch/dynamo:enable_unspecialize_zero_one_plain_intr  )r'   r  r?  rE  r   r  #force_unspec_int_unbacked_size_liker   rJ  is_localis_specialized_nn_module"is_unspecialized_builtin_nn_modulerA   r   rB  r0  r.   r  rp   r  wrap_symintspecialize_floatfloatwrap_symfloatr   r]  setr  r  r/  r  r  s      r   rg  VariableBuilder.wrap_literal  sv   $$$e); "%%'KKKKK,,.7799 ;;++-FFHH;;++-PPRR#DKK00 (O  !7!7!99 ##L$?$?@'..U;;OO''..((T%[E-A%%e,, ; ;<%,,5MF%$--ww~~22@@OOMr   c                     [        U5      (       a/  [        U5      U R                  R                  L a  [	        SS5      eg g )Nz*Cannot wrap a Tensor that has already beenz"wrapped by this instance of Dynamo)r   r   r  ro  r,   r  s     r    assert_not_wrapped_by_this_graph0VariableBuilder.assert_not_wrapped_by_this_graph  s=    5>>1%8DGG<M<MM*<4  N>r   c           	         U R                  5       nXR                  R                  R                  ;  d   e[	        U5      S Ln[
        R                  (       at  U(       dm  [        U[        R                  R                  5      (       d*  U(       a=  UR                  5       R                  5       (       a  U R                  U[        5       S9  SnU=(       a&    [
        R                  (       + =(       d
    [        5       nUR                  5       R                  5       (       d  U(       ab  UR                  5       R!                  5       (       d?  U R#                  U5        U R                  R                  R%                  XR&                  US9$ [)        U5      (       aV  U R#                  U5        U R                  R                  R%                  U[*        R,                  " SSU R&                  5      US9$ [/        U5      [
        R0                  ;   a  [/        U5      nO[/        U5      [        R2                  [        R                  R                  [        R4                  R6                  R8                  [        R4                  R:                  R<                  4;   d   [?        U5      (       d   [/        U5      5       eS nX R                  R                  R@                  ;   nU(       a#  U R                  R                  R@                  U   $ [	        U5      S:X  a  U RC                  [D        RF                  5        U R#                  U5        0 n[/        U5      [
        R0                  ;   aB  [I        U R                  XRJ                  5      US'   U RC                  [D        RL                  5        [        U[        R2                  5      (       aY  URN                  (       aH  [        U[        RP                  RR                  RT                  RV                  5      (       d  [Y        S5        [        U[        R2                  5      (       aK  [[        U5      (       a;  U R                  R\                  (       a  [
        R^                  (       d  [Y        S	5        [a        U5      (       a:  [c        U5      b.  URd                  [c        U5      Rd                  :w  a  [Y        S
5        [g        XR                  SUS9nU R                  R                  Rh                  Rk                  [*        R,                  " SSU R&                  5      [/        U5      UUS9n	[m        U R                  X5        [o        SU R                  U	UUUS.UD6n
URq                  5       (       a*  [g        URr                  U R                  [u        US5      SS9  [D        Rv                  n[        U[x        5      (       a   [{        U5      (       a  [D        R|                  nU RC                  [~        R                  " U[        U[        5      (       a  UO
[        U5      S95        [?        U5      (       a  U RC                  [D        R                  5        U RC                  [D        RL                  5        [        [        U5      R                  [D        R                  5      5        UR                  5       u  pU HT  n[        X5      n[u        U RJ                  U5      n[        R                  " [        U R                  U5      " U5      5        MV     XR                  R                  R@                  U'   SU	R                  R                  ;  d   e[        U5      U	R                  R                  S'   U
R                  R                  R                  S   n[        U5      U R                  R                  La  [        S5      e[        X!SU5      nUU	R                  R                  S'   U
$ )Nr  TrE  r  r  guardedtorch_function_fn3torch.compile does not support strided NestedTensorz-torch.compile does not support sparse TensorszInconsistent dtype between tensor and its gradient. This can happen in FSDP and crashes meta tensor creation. This is potentially a workaround. Fixing it correctly requires some design around FSDP + torch.compile.r  r   r   )r  r  r  r  r   _base)r  r   r   r  r  r  z(Wrapped Tensor must be this graph's fakeFr  r   )UrF  r  r  r/  rU   r'   r  r   r   rW  rX  rJ  r  r  r[   r  is_fsdp_moduler  r  r   r@   rh  rJ  r?  r  r   r  r   r   rY  rZ  r#   r  r0  r.   r  r   r   r  	is_nestednested	_internalnested_tensorNestedTensorr-   r   r  capture_sparse_computer   r   r  wrap_to_fake_tensor_and_recordrH  rI  cache_real_value_when_exportwrap_fx_proxy_is_viewr  r8   r  r?   rB   NOT_NONE_MATCHr  r  rD   r%   TENSOR_SUBCLASS_METADATA_MATCHr/   rH   rL  r=  __tensor_flatten__r  r   rk  r*  r.  rK  rN   r  r   ro  r,   r   )r   r7  r   is_static_inputmake_graph_attributer  is_duplicate_tensoroptionsr  tensor_proxyr  
guard_typeattrsr  attrinner_valueinner_sourcefake_tensor_valuer  s                      r   r[  VariableBuilder.wrap_tensor  s+   " GGNN777771%8D ,,#5%(("4"455 v224OOQQ ""50E0G"H"O.  
000K4I4K 	
 !::<<@T%%'668811%877>>99yy :   f%%11%877>>99'dii8 :   ;&<<<$ !KM;""!!--88!!33DD	# 
 /u55C
 8<E{C 6 !M %(J(JJ77>>55f=="5)Y6 5 56 	--e4;&<<<+B,G'(  7 78 uell++uell&<&<&J&J&W&WXXOP uell++e$$WW^^6+H+H
 IJ %  % ,y/555D  7ggf
 ww~~11DDFF#S$))4K	 E 
 	%TWWlB' 
ww''
 
 >> +77!&'2	 "..
fj)).Fv.N.N%44J "&*;<< &u-		
 )// K KL 7 78&v.99,:S:ST //1HE%e2)$++t<#//#DGG\:;G  6E**62L$5$5$:$::::0DU0K}- ,1166;;OL019J9JJ*+UVVF52CD-5z*r   c           	         [         c   e[        U[         R                  5      (       d   e[        U R	                  5       5      nSSKJn  UR                  R                  (       + nU(       a   SUR                  l        [        R                  " 5           UR                  U5      nU(       a  SSKJn  U" U5      nS S S 5        [(        R*                  " [-        U R.                  U5      " W5      5        [1        UU R.                  SUS9nU R.                  R2                  R4                  R7                  [8        R:                  " SSU R<                  5      [?        U5      UUS	9n	[A        U R.                  X5        S
U0n
[C        S[D        U R.                  U	US.U
D6nXR.                  R2                  RF                  U'   URH                  RJ                  RL                  S   n[O        UUSUSUS9nXRJ                  RL                  S'   U$ ! [         a/    [        UR                  [         R                  5      (       d   e GNf = f! ["         a  n[%        ['        U5      5         S nAGNS nAff = f! , (       d  f       GN= f)Nr   )_utilT)clone_preserve_stridesFr  r  r  rE  r   r  r  r  r  r  r   r   r   r   r  r   )(ru  r   rw  rD   rF  torch._numpyr  flags	writeable
ValueErrorr  nditerr   temp_restore_stack_try_convert_to_tensortorch._prims_commonr  NotImplementedErrorr-   strr   rk  r*  r  r  r  rH  rI  rh  rJ  r   r?  r  r  r   r  r  r.  rK  r   )r   r7  r   r  readonlytensor_valuer  er  r  r  numpy_ndarray_variabler  s                r   rx  "VariableBuilder.wrap_numpy_ndarray  s    ~~%,,,,"4??#45&{{,,,9(,% 1CCE&$;;EBJ#9,#GL F 	''(H(VW6ww	
 **==FF#S$))4	 > 
 	%TWWeBV$!2 "
+ww'	"

 "
 6L**62.4499>>O #%+
 '/


#%%u  9 "%**bii88889 ' &c!f%%& FEsB   -H I/&I5I ?I 
I,I'!I/'I,,I//
I>c           	      *   [        U5      [        L d   eU R                  U R                  R                  R
                  ;   a-  U R                  R                  R
                  U R                     $ U R                  R                  R                  n[        R                  " 5       R                  (       a`  UR                  5       n[        U5        U R                  R                  R                  R                  [        X0R                  S 5      5        GO7[!        U R#                  5       5      (       Gd  [$        R&                  R(                  R*                  (       a=  U R-                  [.        R0                  5        [2        R4                  " XR                  S9$ U R                  R                  5       n[7        U R                  U[8        R:                  " U5      U R                  R=                  5       R?                  5       S9n[(        R@                  (       a  URB                  [D        L a  [G        5       nOY[(        RH                  (       d  [J        RL                  nO3U R-                  [.        R0                  5        [2        R4                  " US9$ URO                  UU R                  US9nU R                  R                  R                  R                  [        X0R                  S 5      5        O][!        U R#                  5       5      (       d   eU R-                  [.        R0                  5        [2        R4                  " XR                  S9$ [Q        U R#                  5       [R        5      (       a   e[U        U R#                  5       RW                  [.        RX                  5      5        SU R#                  5       0nU R                  R                  RZ                  R]                  [^        R`                  " SSU R                  5      [        U5      UU R#                  5       S9nURb                  Rd                  n	[Q        U	[f        Rh                  5      (       d
   U	 S	35       eXR                  R                  RZ                  Rj                  U	'   [m        X40 UD6n
XR                  R                  R
                  U R                  '   [!        U R#                  5       5      (       d  U R                  Rn                  (       aB  [Q        U R#                  5       [p        5      (       d  [s        S
U SU R#                  5        35      eU
Rt                  Rb                  Rv                  S   n[y        U R#                  5       USS SUS9URb                  Rv                  S'   U
$ )Nr  r  r  )r   r  r   r  r  rE  r  =Dynamo attempts to add additional input during export: value=	, source=r  Fr  r  )=r?  rE  r   r  r  unspec_variable_maprC  r   r  r  rG  r   rO  rv  rP  r   r@   rF  r   r  r'   r  r0  r.   r  rp   r  r5   r3   make_scalarrJ  r  automatic_dynamic_shapesscalarr1   $get_automatic_dynamic_shapes_mark_asassume_static_by_defaultr   rF  rD  r   rF   r/   rL  r  rH  rI  rh  rJ  r.  rL  rM  rN  bound_symbolsr   r  rC   AssertionErrorr  rK  r   )r   r7  rC  wrapped_valuer   frame_state_entryr  r  r  r  
unspec_varr  s               r   r  VariableBuilder.wrap_symint  s   E{c!!!99:::77>>55dii@@GGNN,,	CC%<<>M%m4GGNN((//M;;= $DOO$566}}##22 ##L$?$?@'..U;;OO;;##%D 9#//6+/;;+C+C+E+`+`+b	! //%,,<BD44(00 ##L$?$?@'..U;;%JJ{{' K M GGNN((//M;;= &doo&78888 ; ;<#**{{KKdoo/1BCCCCdoo'22<3J3JKLT__./**==FF#S$))4??$	 > 
 !%%**(ELL11WhZ?V3WW1=B""00:$UEWE
8B**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  ',,1166GM*2!#( #0+EJJOOJ' r   c           
      
   SSK Jn  U R                  U R                  R                  R
                  ;   a-  U R                  R                  R
                  U R                     $ [        U R                  U R                  R                  5       [        R                  " U5      U R                  R                  5       R                  5       S9n[        R                  R                  R                  (       d  [!        U R#                  5       5      (       d  [$        R&                  " U5      (       d  [$        R(                  " U5      (       dw  [        R*                  R                  R,                  R.                  (       dD  [1        SS5      (       d3  UR2                  [4        Ld   UR7                  U R                  5      (       a=  U R9                  [:        R<                  5        [>        R@                  " XR                  S9$ [        RB                  " U[        RD                  S9n[        RF                  RH                  RK                  U5      (       a=  U R9                  [:        R<                  5        [>        R@                  " XR                  S9$ [M        U R#                  5       [N        5      (       a   e[Q        U R#                  5       RS                  [:        RT                  5      5        [W        U R#                  5       5      nXQS.n[Y        X@R                  SUS	9nU R                  R                  RZ                  R]                  [^        R`                  " S
SU R                  5      [c        U5      UUS9n[e        U R                  X5        [g        [h        4U R                  UUS.UD6n	[M        U	[h        5      (       d   eXR                  R                  R
                  U R                  '   U R                  Rj                  (       aB  [M        U R#                  5       [l        5      (       d  [o        SU SU R#                  5        35      eS n
U	Rp                  Rr                  Rt                  S   n[w        U5      (       d   eUn
U
Rx                  U R                  Rx                  L d   SU
Rx                   S35       e[{        U R#                  5       USU
SUS9URr                  Rt                  S'   [}        U R                  U R                  R                  R~                  " SS/[        U	/0 5      Q76 5      nU R                  R                  R                  R                  [        UR                  U R                  S 5      5        U$ )Nr&   )TensorifyStater%  z.pytorch/compiler:unspecialize_float_killswitchFr  )r  )r   	raw_valuer  r  r  rE  r  r  r  r&  r'  r  fake mode (^) from fake tensor metadata doesn't match mode({self.tx.fake_mode}) from InstructionTranslatorTr  r  call_methodr  )Esymbolic_convertr5  r   r  r  r(  r5   r   r3   r)  rJ  r  r   r  r'   r  r@   rF  mathisnanisinf	_inductortriton
cudagraphsr   r+  r1   should_specializer0  r.   r  rp   r  tensorfloat64r  
_functorchis_gradtrackingtensorr   rF   r/   rL  r  r=   r  rH  rI  rh  rJ  r?  r  r  r   r  rC   r/  r  r.  rK  r   ro  r   r  r-  rb   rO  rv  rP  sym_num)r   r7  r5  r1  r0  r   r  r  r  r2  r  r   s               r   r  VariableBuilder.wrap_symfloats  s(   5 99:::77>>55dii@@5GGKK++E2'+{{'?'?'A'\'\'^	
 MM  11!$//"344zz%  zz%   %%,,77OQVWW ''|;//<< ; ;<#**{{KK U%--@
 8844]CC ; ;<#**{{KK doo/1BCCCCdoo'22<3J3JKL #4??#45#8 7ggv
 **==FF#S$))4	 > 
 	%TWWeC&'
ww'	

 

 *&ABBBB8B**499577>>*T__->"L"L OP]^ghlhwhwhygz{  !"((--22?C}%%%%) **dgg.?.?? 	
+556 7? ?	
?  '/OO#),'



# GGGGNN'' #J<4
 	$$++K		4;;PT,UVr   c           	      <   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [        R
                  " U5      n[        U R                  5       [        5      (       d6  [        U R                  5       R                  [        R                  5      5        SU R                  5       0nUR                  SU05        [        X R                  SU R                  5       S9nU R                  R                  R                  R!                  ["        R$                  " SSU R                   5      ['        U5      UU R                  5       S9n[)        U R                  XR5        [+        [,        4U R                  UUS.UD6nX`R                  R                  R                  U R                   '   [/        U R                  5       5      (       Gd#  U R                  R0                  (       aB  [        U R                  5       [2        5      (       d  [5        S	U S
U R                  5        35      eS n[        U[6        5      (       a  UR8                  nO#UR:                  R<                  R>                  S   n[A        U5      (       d   eUnURB                  U R                  RB                  L d   SURB                   S35       e[E        U R                  5       USUSUS9UR<                  R>                  S'   U$ )Nr   r6  Fr  r  r  rE  r7  r&  r'  r  r8  r9  Tr  r  )#r   r  r  r(  r   rC  r   rF  rF   r/   rL  r.   r  updater  rH  rI  rh  rJ  r?  r  r  r   r@   r  rC   r/  rp   r7  r  r.  rK  r   ro  r   )r   r7  r0  r  r  r  r2  r  s           r   r$  ,VariableBuilder.wrap_unspecialized_primitive  s   99:::77>>55dii@@U+$//+->??$//+66|7N7NOPT__./U+,6ggt?P
 **==FF#S$))4??$	 > 
 	%TWWeC&'
ww'	

 

 9C**4995!$//"344ww~~j1BK&P&P$STaSbbklpl{l{l}k~  !%*&677 * 0 0 * 0 0 5 5 : :? K=)))) -$..$''2C2CC /99: ;C CC
 +3!#'-#0+EJJOOJ' r   )r   r   r  )?r   r   r   r   __doc__rG   r
  r<  r4  staticmethodr  	lru_cacherB  rF  r0  classmethodrT  rQ  rh  ri  rj  rk  rl  rm  rq  rt  r   rE  r   r   rn   r  r3  rj  r   r\  r]  ra   r	   ra  rf   rb  rc   rc  rd  re  rf  r   r   r  r  rW  r  r  rg  r  r[  rx  r  r  r$  r   r  r  s   @r   r*  r*  g  s   =" " 
	"0
 

  

 ; ; #  #J+

 +
I'"7"7 I<
  	c8.4oEFF	G    D{
1zPs PW5lJ)N#O Wr	H 	HH H<eE5L&9 <0u|| 0D 0 ` `D!Fell O ObF&PfPIV9 9r   r*  c                    [        U [        5      (       a  U R                  nO0[        U [        5      (       a  U R                  nO[        SU  35        / n[        R                  " W5       HX  nS nU R                  (       a*  [        [        U R                  S5      UR                  5      nUR                  [        X4S95        MZ     [        U5      $ )Nz)Dataclass fields handling fails for type __dataclass_fields__rE  )r   r   r7  ry   r  r-   r  r  r   r>   r8   r   rv  r   )objr7  r  fieldr   s        r   r  r  :  s    #011			C/	0	0A#GHE##E*::"3::'=>

F 	.uDE + r   c                     [        U [        R                  5      (       aZ  [        U [        5      (       dE  [        R                  " U 5      (       a  [        U 5      UL d  U R                  (       d  [        U 5      n U $ r   )r   r   r   r   _is_functional_tensorr   r  rQ   )r7  ro  s     r   _clone_inputrV  L  sZ    %&& uj)) ++E22'.);  &ELr   r  c                     U UUUS.UEnUc  [        SS[        0UD6$ [        SS[        0UD6nUR                  U 5        U$ )N)r  r  r  r  r  r   )r  r   r   install_global)r  r  r  r  r  kwargsrz  s          r   r  r  ^  sb     &&	
 F  ENEfEE"U.JUfUb!r   c                    U R                   (       a^  [        R                  R                  5          [	        X R
                  5      UR                  R                  UR                  '   S S S 5        g g ! , (       d  f       g = fr   )	r  r   r  DisableTorchFunctionSubclassrV  ro  tracerreal_value_cacher.  r7  s      r   r  r  p  sU    	yy XX2248D||9ELL))%**5 54	  54s   7A11
A?c                     Uc  [        XX#U40 UD6$ [        U[        R                  5      (       a  [	        XX#U40 UD6$ [        X1X%X@5      $ r   )_wrap_fx_proxyr   r   r   _wrap_fx_preexisting_tensorhandle_traced_output)r  r  r  r  r  r  s         r   r  r    sk     E-
CJ
 	
 
M5<<	0	0*E-
CJ
 	
 $u}
 	
r   c                    SSK Jn  [        U[        R                  5      (       d   S[        U5       35       e[        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        UR                  R                  S:X  a&  SUR                  R                  ;   d   SU S35       eO9SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        U5      UR                   L a  O[#        XU5        UR$                  (       a]  [        R&                  R)                  5          [+        X1R                   5      UR,                  R.                  UR                  '   S S S 5        S	U [0        [2        4;   0nS
U;   a  US
   c   eUS
   US
'   [5        U4SU0UD6nUR6                  R
                  S:w  a&  [        U5      UR                   La  [9        SU 35      eS S S 5        [;        X1X%X@5      $ ! , (       d  f       N= f! , (       d  f       N,= f)Nr&   InstructionTranslatorBasez1_wrap_fx_preexisting_tensor expected tensor, got rM  placeholderr  zplaceholder z* doesn't have 'example_value' in node.metar   r   r  rK  zN`tensor` needs to be a `FakeTensor`wrapped by this instance of Dynamo. Found: )r;  rd  r   r   r   r?  r  rM  rJ  r.  oprK  r  rn  +_disable_saved_tensors_hooks_during_tracingr   ro  r  r  r  r[  rV  r\  r]  r   r   r  r/  r,   ra  )r  r  r  rC  r  r  rd  rY  s           r   r`  r`    s,    =  J	:4<.IJ  b44447wx0<
		 12 zz}}%uzz.	L% JK	L. 5::??2	1jjooo./	12 
			H	H	Jv&",,6(F;yy XX::<@LAELL11%**= = Z"$@ABF w&78+<+HHH&x0F83FLrLVLF==''r||;*>>DXG ; 
KD  EMVV1 =< 
K	Js&    AI57H>,A=I>
I	I
Ic                    SSK Jn  [        X5      (       d   eSU;   a.  US   b(  UR                  R                  R                  US   5        SUR                  R                  ;  d   UR                  R                  S    5       e[        R                  R                  R                  5          [        UR                  USS9nS S S 5        [        X1X%X@5      $ ! , (       d  f       N= f)Nr&   rc  rM  r  T)allow_non_graph_fake)r;  rd  r   r  rM  rJ  r.  rK  r   r  rn  rg  rS   ra  )r  r  r  r  r  r  rd  s          r   r_  r_    s     =b44447wx0<
		 12%**//1Xejjooo6V5WX1 
			H	H	J 'uzz2DQ	 
K  5=  
K	Js   .C
C'c                 >   SS K nSS KnSS Kn[        XR                  5      (       GaT  [        XR
                  R                  5      n[        XR
                  R                  5      n[        XR                  5      n [        UR                  U 5        UR                  R                  R                  X5        UR                  U 5      n	[        XR                   R"                  R$                  5      (       am  U R                  UR                  L aT  U(       a  UOUR                  n
U(       a  UR
                  R                  OU(       a  UR
                  R                  OU
U	S'   UR'                  U	5        U" U40 UD6$ [)        UR                  R*                  S5      (       ag  UR                  R*                  R,                  S:X  aC  [        UR                  R*                  R.                  UR0                  R2                  5      (       d.  UR                  R*                  UR4                  R6                  :X  a  [9        UR                  R*                  5      $ UR                  R*                  UR0                  R:                  :X  d.  UR                  R*                  UR<                  R>                  :X  a  [A        U 5      $ [C        XRD                  5      (       aI  [G        S U  5       5      (       a2  U  Vs/ s H  n[H        RJ                  " U5      PM     nn[M        U40 UD6$ [        U [N        [P        45      (       Ga  [        UR                  U 5        / n[S        U 5       H  u  pUc'  URU                  [H        RJ                  " S0 UD65        M/  URV                  RY                  S[Z        R\                  X.40 S9nSU;   a;  [        U [P        5      (       d   eUS   nUR_                  5       n[a        UUS	S
9US'   OUnURU                  [c        SUUUUS.UD65        M     [        XRD                  5      (       a  [M        X40 UD6$ [C        U [N        5      (       a  [e        U40 UD6$ [C        U [P        [f        45      (       a  [i        U40 UD6$ U Rj                  Rl                  S:X  d;  [)        U S5      (       d*   SU Rj                  Rl                   S[o        U 5       35       e[q        XRj                  40 UD6$ U b#  UR                  R*                  URr                  L a  [H        RJ                  " S0 UD6$ [        XRt                  URv                  URx                  45      (       aG  UR                  R                  R                  X5        [        UR                  U 5        [{        X 40 UD6$ [|        R~                  " UR                  R*                  5      (       a/  [        UR                  R*                  UR                  5      (       dB  UR                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a-  [        UR                  U 5        [        X U R                  40 UD6$ [|        R~                  " UR                  R*                  5      (       a/  [        UR                  R*                  UR                  5      (       dB  UR                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a"  [        UR                  U 5        [        X 40 UD6$ UR                  R*                  S:X  a<  UR                  R                  S:X  a"  [        UR                  U 5        [I        U 40 UD6$ U bp  [        XR                  5      (       aV  UR                  R*                  S:X  a<  UR                  R                  S:X  a"  [        UR                  U 5        [        X 40 UD6$ [        U [        5      (       Ga'  UR                  R*                  UR                  [        [Z        R\                  UR                  R                  UR                  [Z        R                  UR                  R                  R                  [        UR                  S[        5      [        UR                  S[        5      UR                  4
;   d4  UR                  R                  S:X  aG  UR                  R*                  S;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        XR                  R<                  R                  5      (       a%  SSKXJYn  [        UR                  U 5        U" U40 UD6$ [        U [        5      (       a  UR                  R*                  UR0                  R                  UR                  R<                  R                  UR                  R<                  R                  UR                  R<                  R                  S/[Q        [        R                  " 5       5      -   ;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        U [        [        [        45      (       aJ  UR                  R*                  [        L a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        U [        5      (       d  UR                  R*                  S;   a-  [        UR                  U 5        [H        RJ                  " U 40 UD6$ [        S[        U 5       SUR                  R                   SUR                  R*                   3-   SS9  g s  snf s  snnf s  snnf ) Nr   
class_typer   	set_statec              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   rE  r  s     r   r&  'handle_traced_output.<locals>.<genexpr>C	  s      3$1q
1cMs   r  )kindtargetr  rY  r   Fr  r  ztorch.return_types_fieldsz	expected z. == torch.return_types or named tuple but got queryr:  record_eventget_rankget_world_size)
bit_lengthrk   r   
is_integer)hex	__round__ztorch.* op returned non-Tensor  unsupported_operator)	case_namer   r   )etorch._functorch.vmaptorch._subclasses.fake_tensortorch._utilsr   r   rW  rX  rc  rV  ro  rd   r.  r  current_tracertrack_unbacked_symbols
specializer  r   r   rJ  r   rp  r   r  r  	GeneratorrX  set_rng_stater   _DisableFuncTorchr*  _is_in_bad_forkr   r_   r`  r  rp   r  r   r\  r]  r  rv  r\  r-  operatorgetitemr  r>   r  r   r"   r   r  r   r?  r   manual_seedr   SymFloatr@  r   r!  r"  ra  r,  r+   current_streamrw   r/  r1  rs   rf  rE  sym_intr  _utils_element_sizeseedmodrE  vmap_validate_and_get_batch_sizer  r   _constrain_as_sizebackends
SDPAParamssdpar   r   _are_functorch_transforms_activeis_flash_attention_availablecan_use_flash_attentioncan_use_efficient_attentionr   r   r  r   r-   rl   )r  r  r  r  r  r  r   is_parameter	is_bufferspecialized_propstensor_typer  sizesunpackedr  valproxy_ir   	options_ir  device_interfacer   s                         r   ra  ra  	  s	    (-..!-1C1CD}hhoo>	
 %]LLA%**m4
 			  77M&11-@ }&7&7&C&C&N&NOO''2<<7+8-ellK   ""  XX__  l+ 	()%+7++

!!:..JJ&&+5uzz((115883E3EFF:: : ::+EJJ,=,=>>

UXX777::

 : ::(77	zz	*	*s 3$13 0 0 6CC]!((+]CE-W--	ME4=	1	1%**m4.FA{$++<G<  ,,33(#++	 4  w& &mT::::$X.F 'I*7#1U+Ih'
 !(I % #-%&)	
 $9 /J mZZ00  ;7;;M5)) 5W55MD.#9::4G44 **559MMQXyR R C=22==>>lmqr  nA  mB  CC  &h0G0GS7SS		%**"3"3u7H7H"H&&7w77	MLL%..%--#P	Q	Q
		  77M%**m4u?w??

))**uzz((%,,77			#C#E#EA 	''#E 
 	%**m4eM4H4HTGTT

))**uzz((%++66			#C#E#EA 	#E 
 	%**m4U=W==			g	%%**--=*H%**m4999!}kk22JJ/JJMM]*%**m4U=W==	M3	'	'

MMLL&&JJLL!!>>E%%z8<E%%'7B $$
	
$ JJMM]*

!!^3 	%**m4&&}@@@	M>>#6#6#A#A	B	B,%**m4!%3733	M4	(	(

HH55NN<<NN77NN;;
 388:
;<	< 	%**m4&&}@@@=3t"455JJ/%**m4&&}@@@	M5	)	)UZZ->->BV-V%**m4&&}@@@-'(%**--%**:K:K9LMN,	
_ D@s   1 n+n8nc                     [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R
                  $ [        S[         R                   35      e)Ndynamicunbacked	obliviousz+invalid automatic_dynamic_shapes_mark_as = )r'    automatic_dynamic_shapes_mark_asr   rF  SIZE_LIKE_UNBACKEDOBLIVIOUS_SIZEr  r   r   r   r,  r,  	  sn    ..);!!!		0	0J	>,,,		0	0K	?(((9&:a:a9bc
 	
r   c                   d    \ rS rSr% \\\4   \S'   \\S'   \	\
   \S'   S\4S jrS\S\4S jrS	rg
)rP  i	  faker   symbolic_contextr  c                 `    [        U R                  U R                  R                  5       45      $ r   )hashr  r   r   r   s    r   __hash__TrackedFake.__hash__	  s#    TYY 0 0 2344r   r   c                     [        U[        5      (       aT  U R                  UR                  L =(       a5    U R                  R	                  5       UR                  R	                  5       :H  $ g)NF)r   rP  r  r   r   r   s     r   r   TrackedFake.__eq__	  sI    e[))99

*Xt{{/?/?/AU\\EVEVEX/XXr   r   N)r   r   r   r   r   r   r   r  rG   r
   r    rE  r  objectr  r   r   r   r   r   rP  rP  	  sA    

F"
##N//5# 5F t r   rP  c                   ^4^5 U R                   (       aH  [        U [        R                  R                  R
                  R                  5      (       d  [        S5        UR                  5       nUR                  R                  R                  R                  U S 5      nU(       a  UR                  OS nS nU R                  5       (       a#  [        US5      n	[!        U R"                  XU5      n[%        U 5      (       a  U(       d  [!        XX#SS9n
0 n['        U 5      R)                  U 5      u  pU H(  n[+        X5      n[        X.5      n[!        XUU5      X'   M*     [-        U
R.                  U
R0                  U
R2                  U
R4                  UU
R6                  U
R                  US9$ U(       as  [9        [:        R<                  /U R?                  5       -  [:        R@                  /U R?                  5       -  S /U R?                  5       -  S /U R?                  5       -  UUUS9$ SSK!J"m5  [G        U54S	 jU RI                  5        5       5      (       a  [9        U RI                  5        Vs/ s H8  n[        U[J        5      (       a  [:        RL                  O[:        R<                  PM:     sn[:        R@                  /U R?                  5       -  S /U R?                  5       -  S /U R?                  5       -  UUUS9$ U RI                  5       n[O        U 5      (       Gdd  U RQ                  5       nU R?                  5       nS /U-  n[G        S
 U 5       5      (       Ga%  [S        U5       Vs0 s H+  nUU   c  M  UU   S:  d  M  UU   UU   -  [U        U5      _M-     nn[W        [S        U5       Vs/ s H  nUU   b  M  UU   U4PM     sn[X        S9nU H;  u  nnUU   b  M  UU   U;   d  M  UUU      UU'   [U        U5      UUU   UU   -  '   M=     [G        S U 5       5      (       a=  [[        [S        U5       Vs/ s H  nUU   b  M  UU   U4PM     sn[X        S9u  nnUUU'   [G        S
 U 5       5      (       a  GM%  O/ n[]        X[^        R`                  " [c        U5      [c        U5      5      5      n[e        U 5      n0 m4U44S jnSSK3J4n  UR                  Rj                  (       aj  UR                  Rj                   HP  n[        UU5      (       a  M  URl                  U:X  d  M(  U" UR>                  URn                  UR                  5        MR     / n/ n / n!/ n"[S        U R?                  5       5       GHl  nU[+        U S[q        5       5      ;   n#U[+        U S[q        5       5      ;   n$U[+        U S[q        5       5      ;   n%U[+        U S[q        5       5      ;   n&U$(       aN  [r        Ru                  SU5        [v        /U R?                  5       -  n'[x        U'U'   U[^        Rz                  " U'S9-  n[|        R~                  =(       a    UR                  U5      n([|        R~                  =(       a    UR                  U5      n)U(=(       d    U)n*T4R                  U5      nUc  S n+S n,U$(       a  [|        R                  (       d  S n,[        U S5      (       a  U R                   V-s/ s H  n-U-R>                  U:X  d  M  U-PM     sn-R                  5       n.U.RZ                  c  U.R                  c
  [        SS9n+OSSK!JHn/  U/" [        U.RZ                  U.R                  S9SS9n+Op[        SS9n+OfU&(       d(  U*(       a!  U((       a	  [        SS9n+U)(       a	  [        SS9n,O7S n+S n,O2Uu  n+n0S n,U SU S3n1U0UR                  R                  R                  U1'   U!R                  U+5        U"R                  U,5        U#(       a  [:        R                  n2OU+c,  U$(       d%  U%(       d  T5" U RI                  5       U   5      (       a#  U*(       a  [        5       n2OU[:        RL                  n2ODU(       d  [|        R                  (       d  U&(       a  [:        R<                  n2O[:        R                  n2U,b  [:        RL                  n3O[:        R@                  n3UR                  U25        U R                  U35        GMo     [9        UU U!U"UUUS9$ s  snf s  snf s  snf s  snf s  sn-f )Nr  r  T)
outer_only)dynamic_sizesdynamic_stridesconstraint_sizesconstraint_stridesview_base_contexttensor_source#shape_env_to_source_to_symbol_cacheinner_contexts)r  r  r  r  r  r  r  r   )is_nested_intc              3   l   >#    U  H)  n[        U[        5      =(       a    T" U5      (       + v   M+     g 7fr   )r   r   )r$  sr  s     r   r&  %_automatic_dynamic.<locals>.<genexpr><
  s(     
L8a:a 9q)9%998s   14c              3   (   #    U  H  oS L v   M
     g 7fr   r   r  s     r   r&  r  S
  s     ,Vt)V   )r  c              3   (   #    U  H  oS L v   M
     g 7fr   r   r  s     r   r&  r  b
  s     -f9fr  c                    > U T;   a=  SSK Jn  TU    u  pEU" UR                  UR                  -  SS9nU=(       d    UnXg4TU '   g X4TU '   g )Nr   StrictMinMaxConstraintFvr	warn_only)%torch.fx.experimental.symbolic_shapesr  r  )	dimconstraint_ranger   r  old_constraint_rangeold_namenew_constraint_rangenew_namedim2constraints	           r   update_dim2constraint1_automatic_dynamic.<locals>.update_dim2constraintu
  se    . T-;C-@* #9#&&)=)@)@@$   '4H"6"@N3"2"8N3r   )_RelaxedConstraint_dynamo_unbacked_indices_dynamo_dynamic_indices_dynamo_weak_dynamic_indices_dynamo_static_indicesz#automatic dynamic %s marked dynamic)size_dynamo_dynamic_rangeF)r  r  )lowerupperr  z.size()[])Qr  r   r   r  r  r  r  r-   r   r  tracing_contexttensor_to_contextr  r  r   r8   _automatic_dynamicr  r#   r?  r  r  r   r  r  r  r  r  r   r   STATICr  INFER_STRIDEr  r  anyr  r   rF  r   stridere  r4   sortedr   minr5   r3   make_tensorr\  r#  torch.export.dynamic_shapesr  export_constraintst_idr  r  logr  r2   r1   	make_sizer'   r*  is_size_dynamicis_stride_dynamicallow_ignore_mark_dynamicr   r  popmaxr   r  r$   rC  source_name_to_debug_namerv  r  r,  r-  DUCK)6r!  r  r   static_shapesr  r   prior_policyr  r  base_sourceouter_contextr  r
  r  r  inner_tensorr  r  ex_size	ex_strider  r  r  
candidatesval_listr  r1  r  r  r  
constraintr  r  r  r  marked_unbackedmarked_dynamicmarked_weak_dynamicmarked_static	mark_sizeautomatic_dynamic_sizeautomatic_dynamic_strideautomatic_dynamicconstraint_sizeconstraint_stridedr	dim_ranger  name_dim_namedynamic_sizedynamic_strider  r  s6                                                       @@r   r  r  	  s    	{{:	5<<!!//<<  	KL;;=D99,,>>BB1dKL<H88d (
 48zz|| 1.qwwW$Q''
*6T

 7--a0D"1+L%f3L#5,$N   ''55)99*;;,??/'550=0a0a)	
 		
 &%,,-7'445?"Vaeeg- $v// 0S
 	
 D

L1668
LLL& !A '1F&;&;
""ARARR! (445?"Vaeeg- $v// 0S
 	
  ffhGHHJ	eeg#,V,,, s#A!9 :-6q\Q-> :
Yq\);q>9#  
 ,1#JLJq&)")A,"JL*H !1!9$1)C *9Q< 8F1I<GNJy|gaj89 !
 -f---05c
P
1fQi&ilA&
P.Q  q	+ ,V,,,. 1
%11%.%-P a5DN9  ?	yy##))66J*&899$&%NNJ$?$?	 7 MO1557^wq*DceLLga)BCEJJ71.Lce#TTWQ(@#%HH 
 II;TB#quuw.I'IaL!4!>!>I!NN ++T0A0Q0QRS0T 	 ++V0A0S0STU0V 	! 3N6N
 $''*
"O $f&F&F$(!1566%&%<%<!%<r!%<!ce  !}},1F*AE*R +A*immT&++
 '>&NO"'8)&=&MO+(?$(O%"&$(!%/"OU $xs!,HFKBII99(C0!!"34%88L'"QVVXa[))
 !CE)11f==%,,L &??L('//N'44N\*~.M P ##')-+,O }, M Qt!s<   $?c+
c0,c07c0$
c52c51
c:?c:c?,c?)parent_contextr   r   c          
        ^ ^^^ [        T 5      [        R                  [        R                  R                  [
        4;   d0  [        T [        R                  5      (       d  [        T 5      (       Ga
  Tc   e[        T UTS9u  pVU(       d  [        T TTU5      mO2[        T[        5      (       d   eTR                  nUR                  U   m[        R                  STR                  5       [!        T R"                  5      T[        T 5      5        [%        U UUU4S j5      nTb]  [        U[
        5      (       aH  UR&                  =n	b9  TR(                  R*                  R-                  [/        U	[1        T5      T5      5        [        U5      (       ac  UR3                  5       u  pU
 HK  n[5        X5      n[5        T U5      n[        TU5      n[7        UTU[        U[        R                  5      TS9  MM     TTR(                  R8                  R:                  T '   [=        U5      (       a  UR>                  (       a  URA                  5       OURC                  5       nURE                  5       SURF                  -  URE                  5       URI                  5       S.TR(                  RJ                  T'   O8URE                  5       URI                  5       S.TR(                  RJ                  T'   U(       a  U(       a  TRM                  5       (       dq  [O        T5      (       da  TR(                  R*                  R-                  [/        UTT5      5        TR(                  RP                  [S        T 5         R-                  T5        U$ T $ )N)r  zwrap_to_fake %s %s %s %sc                  :   > TR                   R                  T TTS9$ )N)r   r  )ro  from_tensor)r!  r   r  r  s   r   r  0wrap_to_fake_tensor_and_record.<locals>.<lambda>-  s"    BLL,,!1 - r   )r   r   r  )rk   )r  r  values_sizevalues_stride)r  r  )*r?  r   r   rW  rX  r   r   r#   re   r  r8   r%  r  r  r  r   r\  shaperj   	item_memor  rO  rv  rP  r9   r  r  r  r  r  r   	is_sparse_valuesvaluesr  ndimr  input_source_to_sizes_stridesr  r@   tracked_fakes_id_to_sourcer#  )r!  r  r   r   r  r  reasoninner_context_namefake_esym_valr
  r  r  
fake_innerinnerr  r  r  s   ```              @r   r  r    s    	QELL%(("4"4jAAa&&(++!!! > !
 1!RO fj1111!'-<<=OP		&KKM!''NG	
 %
 6:..",,,9II##**G%9&%ACST )00002HE$V2
4()&$7.'(U\\B#3	  :J		!!33A6   *0)9)9V^^%v}}F ,%{{}!'?BII33F;  --/?BII33F; "v'F'F'H'H&v..II##**FF,<= II00A7>>vFr   c                   ^    \ rS rSrSrSS jr\SSS\4S j5       r\S	 5       r	\S
 5       r
Srg)r  il  a  
Like builder, but stateless and does not require a source. Useful for simple type->VT objects, or objects
that are being created/evaporated during inlining (ex: consider a locally made list of tensors we then iterate over
.), such a list should not show up as an artifact from inputs, nor in reconstruction, nor in the graph. However,
there may be reasons to represent it as a ListVariable internally.

NOTE - Objects produced here are born UNGUARDED due to the nature of sources!

NOTE - This class is very new! It will have some rough edges, but it was created to stem the bleeding of giant
if/else type->VariableTracker trees that were cropping up all over dynamo.
r  Nc                     [        S5      e)NzUse SourcelessBuilder.create()r/  r   s    r   r
  SourcelessBuilder.__init__y  s    =>>r   r  r   c                    [        U5      n[        R                  R                  U5      nU(       a  U" X5      $ [	        U[
        5      (       a  U$ [	        U[        R                  5      (       a  [        U5      $ [        R                  " U5      (       a  [        R                  " U5      $ [        U5      (       aT  [        R                  " U5      b=  [        U5      (       a  SU R                   l        [        R                  " U5      " U5      $ [%        U5      (       a  [        R&                  " U5      " U5      $ [	        U[(        R*                  5      (       a  [-        U5      $ [	        U[         [.        R0                  45      (       a  [3        U5      $ [	        U[4        R6                  5      (       a  [9        U5      $ [	        U[:        R<                  R>                  R@                  5      (       a  [C        U5      $ [	        U[:        RD                  RF                  RH                  [:        RD                  RF                  RJ                  45      (       a  [        U5      $ [L        RN                  " U5      (       a  [M        U5      $ [P        RR                  " U5      (       a  [Q        U5      $ [	        U[T        RV                  5      (       a  [Y        U5      $ [	        U[:        RZ                  R\                  R^                  R`                  5      (       a  [        R                  " [c        U5      5      $ [e        SURf                   SURh                   35        g )NTz&Unexpected type in sourceless builder .)5r?  r  _type_handlersr  r   rn   r  _HAS_DEFAULT_FACTORY_CLASSr   rp   r  r  r  r*   r   rJ   r  r!  rW   r2  r	  r
  rq   abcABCMetar   r  r`  r   r   r  graph_moduleGraphModuler   rn  r  r]  LeafSpecr   r?  r   r<  rh  ri  r   r  	variableslazyLazySymNodeFormatStringr  r-   r   r   )r  r7  
value_typefast_handlers       r   r  SourcelessBuilder.create|  sa   %[
(77;;JG**e_--L{EEFF,U33((//#**511e__!<!<U!C!O"5))>B		;..u5e<<#E**%%e,U33tyy))&&ckk233+E22u6677(//uxx44@@AA077EKK''00%++2E2E2N2NO
 
 -U33++E22$U++..u55%e,,rzz**'..u}}66;;SSTT#**3u:664Z5J5J4K1ZMdMdLef	
r   c                 d    [         R                  " U 5      (       d   e[         R                  " U S9$ )Nr  )rp   r  r  r  s    r   wrap_constant_literal'SourcelessBuilder.wrap_constant_literal  s*    **51111&&U33r   c                    ^ [         R                  m0 n [         H  nS X'   M
     U4S jU [        '   U4S jU [        '   U4S jU [
        '   U4S jU [        '   U4S jU [        R                  '   U [           U [        R                  '   U [           U [        '   U [
           U [        '   S U [        R                  '   S U [        R                   '   S	 U [        R"                  R$                  R&                  '   S
 U [        R"                  R$                  R(                  '   S U [        R"                  R$                  R*                  '   SS jn[,        R.                   H  nX U'   M	     U $ )Nc                     [        U5      $ r   )rp   r  r7  s     r   r  6SourcelessBuilder.make_type_handlers.<locals>.<lambda>  s
    ,<U,Cr   c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf N)mutation_type)r~   rm   r  r7  r  r  s      r   r  r?    s)    +$)*EqVB]E*:J:L+
*   +c                    > [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        U5      [        5       S9$ s  snnf rA  )rx   r  r?  rm   )r  r7  r  r  r  s       r   r  r?    sB    +<6;kkmDmdaVB]F2M)mDK*,,
Ds   A
c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf rA  )r   rm   rC  s      r   r  r?    s)    <$)*EqVB]E*:J:L,
*rD  c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r   )r   rC  s      r   r  r?    s#    M$)*EqVB]E*-
*   $c           	      R   > [        U Vs/ s H  nT" X5      PM     sn5      $ s  snf r   )r   rC  s      r   r  r?    s#    $)*EqVB]E*2
*rH  c                     [        5       $ r   )r   r>  s     r   r  r?    s    4G4Ir   c                     [        U5      $ r   )r   r>  s     r   r  r?    s
    7KE7Rr   c                 &    [        U[        5       S9$ rA  r   rm   r>  s     r   r  r?        7!1!3
r   c                 &    [        U[        5       S9$ rA  rM  r>  s     r   r  r?    rN  r   c                 &    [        U[        5       S9$ rA  rM  r>  s     r   r  r?    rN  r   c                     U$ r   r   r>  s     r   passthrough9SourcelessBuilder.make_type_handlers.<locals>.passthrough  s    Lr   )r  r   )r  r  rR   r  r  r]  r\  r   r`  r^  r  r!   r"   rX  rY  r  r[  distributionsconstraints_Real	_Interval
Constraintro   all_subclasses)handlersr   rR  rS  r  s       @r   make_type_handlers$SourcelessBuilder.make_type_handlers  s?   "))&ACHK '




 
 -5TN(()#+D> #+D> "I%R!!"
 	++11	

 	++55	

 	++66	
	 '55C'SM 6r   r   r  )r   r   r   r   rL  r
  rM  rn   r  r:  r[  r   r   r   r   r  r  l  sX    
? )
* )
o )
 )
V 4 4 1 1r   r  c                   >    \ rS rSrSrS
S jr\SSS\4S j5       rS	r	g)"SourcelessUserDefinedObjectBuilderi  z
SourceLessBuilder does not return a UserDefinedObjectVariable, but in some
cases it might be ok to return UserDefinedObjects. In such case, use this
builder.
r  Nc                     [        S5      e)Nz/Use SourcelessUserDefinedObjectBuilder.create()r(  r   s    r   r
  +SourcelessUserDefinedObjectBuilder.__init__  s    NOOr   r  r   c                     [        U5      n[        U[        5      (       a  [        U[	        5       S9$ [        U[        R                  R                  5      (       a  [        U[	        5       S9$ [        U[	        5       S9$ rA  )r?  ra  r   r   rm   r   r   rW  r  r   r   )r  r7  r6  s      r   r  )SourcelessUserDefinedObjectBuilder.create  sg    %[
j.11)%?O?QRRuxx//0%5%7  -UBRBTUUr   r   r  )
r   r   r   r   rL  r
  rM  rn   r  r   r   r   r   r^  r^    s4    P 	V* 	Vo 	V 	Vr   r^  )NNr   )F((  r.  r^  r5  r  r  r	  r  r!  	itertoolsr  r<  r  rX  rh  r  r  r   rk  typingr   r   r   r   r   r   r	   r
   r   r   r   rM  r   r   torch._guardsr   r   !torch._higher_order_ops.torchbindr   
torch._opsr   r~  r   r   r   torch._subclasses.meta_utilsr   r   torch._utils_internalr   %torch.fx.experimental._backward_stater   r  r   r   r   r   r   r   r    torch.fx.immutable_collectionsr!   r"   torch.utils._python_dispatchr#   torch.utils._sympy.value_rangesr$   torch.utils.weakr%   r  r'   r(   r)   r*   r  r+   excr,   r-   rM  r.   r/   r0   pgor1   r2   r3   r4   r5   r/  r6   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rn  rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   r  rl   rm   rn   ro   constantrp   rq   ctx_managerrr   rs   rt   ru   rv   rw   dictsrx   ry   rz   r{   r|   r}   r~   r  r   r   r   r   r   	functionsr   r   r   r   r   r   r   higher_order_opsr   iterr   r4  r   listsr   r   r   r   r   r   r   r   r   r   miscr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	nn_moduler   r   r   	optimizerr   script_objectr   r  r   rC  r   r   r   r   r   r   r   r   torch_functionr   r   r   r   user_definedr   r   r   r   r   r   numpyru  ModuleNotFoundErrortorch._dynamo.symbolic_convertr   	getLoggerr   r  _logginggetArtifactLoggerr  DimListr   r   	dataclassr   r  r  varsr  r'  rE  r  r  r(  r*  r  rV  r  r  r  r`  r_  ra  r,  rP  r  r  r  r  r[  r,  r^  r   r   r   <module>r     sy                	 
          5 < * R R A 1 ?   J F 7 * A A ? 9 A A  '     *        > R Q 4       ? # %        2 
 ) 4 $  N  
 DD !NN44' 
 "	 	 99 99 99x<H <, &/ /Y--// & IcN  +.% s3x /P Pf6 $& 26$p >B
, 26;W@ >B0F
R

   $ .3GGX IMav&a37aHs sl $5#G#G#I   V VkW  	Bs   ?O- -O98O9