
    N j                    <   % S 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rSSKJrJr  SSKJr  SSK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#  SSK$J%r%J&r&  SS	K'J(r(J)r)J*r*J+r+  SS
K,J-r-  SSK.J/r/  SSK0J1r1  SSK2J3r3J4r4J5r5J6r6  SSK7J8r8J9r9J:r:  SSK;J<r<J=r=J>r>J?r?  SSK@JArAJBrB  SSKCJDrD  SSKEJFrF  SSKGJHrH  SSKIJJrJJKrK  SSKLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrU  SSKVJWrWJXrX  SSKYJZrZ  SSK[J\r\  SSK]J^r^J_r_  SSK`Jara  SSKbJcrc  SSKdJereJfrfJgrgJhrhJiri  SSKjJkrk  SSKlJmrmJnrnJoro  SS KpJqrqJrrrJsrs  SS!KtJuruJvrvJwrwJxrxJyry  SS"KzJ{r{  SS#K|J}r}J~r~JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS$KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S%S&KJrJrJrJrJrJr  S%S'KJr  S%S(KJrJr  S%S)KJrJrJrJrJr  S%S*KJrJrJrJrJrJrJrJr  S%S+KJrJrJrJrJr  S%S,KJrJrJrJrJrJrJrJrJrJrJrJrJr  S%S-KJrJr  S%S.KJr  S%S/KJrJr  S%S0KJrJrJrJrJrJrJrJrJr  S%S1KJrJrGJ Gr GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJ	Gr	GJ
Gr
GJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGr  S%S2GKGJGrGJGrGJGr  S%S3GKGJGr  S%S4GKGJGrGJGr  S%S5GKGJGr  S%S6GK GJ!Gr!GJ"Gr"GJ#Gr#  S%S7GK$GJ%Gr%GJ&Gr&GJ'Gr'GJ(Gr(GJ)Gr)GJ*Gr*  S%S8K GJ+Gr+GJ,Gr,GJ-Gr-GJ.Gr.  S%S9GK/GJ0Gr0GJ1Gr1GJ2Gr2  S%S:GK3GJ4Gr4GJ5Gr5GJ6Gr6GJ7Gr7GJ8Gr8GJ9Gr9GJ:Gr:GJ;Gr;GJ<Gr<GJ=Gr=GJ>Gr>GJ?Gr?GJ@Gr@GJAGrA   SSGKBGrC\(       a  SS<GKFGJGGrG  SS=GKHGJIGrIGJJGrJ  \
GR                  " G\L5      GrM\ GR                  GR                  G\LS>5      GrPSS?KGJQGrQ  G\Q" S@5      GrRG\Q" SA5      GrSG\TGrUSBG\VSCG\W4SD jGrX " SE SF5      GrY\GR                   " SG SH5      5       Gr[ " SI SJG\[5      Gr\G\]" SK G\^" \	5      GR                  5        5       5      Gr`G\]G\a   G\ESL'   G\b" 5       GrcG\bG\a   G\ESM'   \ GR                  GR                  GR                  Grg\ GR                  GR                  GR                  Gri " SN SO5      GrjSP\SC\4SQ jGrkSR\SS\=S-  SC\4ST jGrl  SSUSVSW\SX\S-  SYG\mS-  SZ\SC\4S[ jjGrnSUSVSW\SX\SCS4S\ jGro  SS]G\mG\R   SUSVSW\SX\S-  SYG\mS-  SZ\SCG\R4S^ jjGrp SS]G\mG\R   SUSVSW\ GR                  GR                  S_\ GR                  SYG\mS-  SZ\SCG\R4S` jjGrt  SS]G\mG\R   SUSVSW\ GR                  GR                  SX\S-  SYG\mS-  SZ\SCG\R4Sa jjGruSX\SUSVSW\ GR                  GR                  SZG\vG\w\4   SYG\mS-  S]G\mG\R   SC\4Sb jGrxSRG\SSCG\mG\S   S-  4Sc jGryS]\SUSVSX\SYG\mS-  SCG\vG\w\4   4
Sd jGrzS]G\mG\R   SUSVSW\ GR                  GR                  SX\SYG\mS-  SZG\vG\w\4   SCG\R4Se jGr{SC\O4Sf jGr|SGq}G\bG\w   S-  G\ESg'   SGq~G\aS-  G\ESh'   SCG\bG\w   4Si jGrSjG\wSCG\W4Sk jGrSUSVSlG\wSm\ GR                  SC\w4Sn jGrSGqG\bG\w   S-  G\ESo'   SGqG\aS-  G\ESp'   SCG\bG\w   4Sq jGrSjG\wSCG\W4Sr jGr SSm\SUSVSs\StG\WSuG\WSC\S4Sv jjGrSSw.Sm\SUSVSs\S-  SxG\WSy\S-  SC\4Sz jjGrSSw.Sm\SUSVSs\S-  SxG\WSy\S-  SC\4S{ jjGr " S| S}5      GrG\GR                  5       G\Gl         " S~ S5      Grg! G\D a    SGrC\G\ES;'    GNf = f)aq  
This module contains classes and utilities for building variable trackers in Dynamo.
Variable trackers are used to convert Python values into symbolic representations
that can be traced and transformed during graph capture.

The key classes are:

- VariableBuilder: Handles source-tracked objects that need guards and proper
  reconstruction in the output graph. Used for inputs, module attributes, etc.

- SourcelessBuilder: Handles ephemeral objects created during tracing that don't
  need source tracking or guards. Used for temporary lists, intermediate values, etc.

Variable trackers enable Dynamo to track the flow of values through the program,
maintain guards for dynamic properties, and reconstruct values in the output graph.
The builders in this module handle converting Python values into appropriate
VariableTracker instances based on their type and usage context.
    N)CallableMutableMapping)
ModuleType)Any
NamedTupleNoReturnOptionaloverloadTYPE_CHECKINGUnion)SymInt)enable_python_dispatcher)get_external_object_by_indexregister_user_object)get_metrics_contextis_int_specialization_caseis_torch_symset_feature_use)TracingContext)
flat_apply)call_torchbind)is_opaque_reference_typeis_opaque_typeis_opaque_value_typeshould_hoist)HigherOrderOperator
OpOverloadOpOverloadPacket)
FakeTensorFakeTensorModeis_fakemaybe_get_fake_mode)is_sparse_any	safe_grad)justknobs_check)BackwardState)normalize_source_name)_DynamicScalar
DynamicInt)	_constrain_range_for_size_nested_int_aware_sort
DimDynamicRelaxedUnspecConstraintStatefulSymbolicContextSubclassSymbolicContextSymbolicContextSymIntSymbolicContextTrackedFake)immutable_dictimmutable_list)ExpandedWeight)
OrderedSet)is_traceable_wrapper_subclass"is_traceable_wrapper_subclass_type)ValueRanges)TensorWeakRef   )configgraph_break_hintsmutation_guardreplay_recordtrace_rules) get_registered_device_interfaces)InternalTorchDynamoErrorraise_observed_exceptionunimplemented)GuardBuilderinstall_guardmake_dupe_guard)auto_dynamic
auto_unsetFrameStateSizeEntryInferStrideprocess_automatic_dynamic)SideEffects)AttrProxySource
AttrSourceCallMethodItemSourceChainedSourceConstDictKeySourceConvertIntSourceDictGetItemSourceDictSubclassGetItemSourceDynamicScalarSourceFloatTensorSourceGetItemSource
GradSourceis_constant_sourceis_from_closure_sourceis_from_global_sourceis_from_nonlocal_sourceis_from_optimizer_source&is_from_unspecialized_nn_module_sourceListGetItemSourceLocalSourceNonSerializableSetGetItemSourceNumpyTensorSourceOptimizerSourceRandomValueSourceSkipGuardSourceSourceSubclassAttrListSourceTupleIteratorGetItemSource"UnspecializedBuiltinNNModuleSourceUnspecializedNNModuleSource) _extract_tensor_dictbuild_checkpoint_variablebuild_invoke_subgraph_variableclone_inputcommon_constant_types	dict_keysget_fake_valueget_items_from_dictget_locals_to_stealget_static_address_typeis_frozen_dataclassis_function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   )AttributeMutationNewtypestrValueMutationExistingValueMutationNewVariableTrackerVariableTrackerMeta)BuiltinVariable)ConstantVariableEnumVariable)AutocastModeVariableDynamoConfigPatchVariableErrorOnGraphBreakVariableNullContextVariablePreserveVersionContextVariable)ConstDictVariableDefaultDictVariableDictKeySetVariableFrozensetVariableMappingProxyVariableOrderedSetClassVariableOrderedSetVariableSetVariable)DeviceMeshVariablePlacementClassVariablePlacementVariableProcessGroupVariableWorldMetaClassVariable)BuiltinMethodVariableCollectionsNamedTupleFunction!CollectiveFunctionRewriteVariable'CreateTMADescriptorExperimentalVariable!CreateTMADescriptorStableVariableFunctoolsPartialVariableFunctoolsWrapsVariableSysFunctionVariableTritonKernelVariableTritonSetAllocatorSkipVariableUserFunctionVariableUserMethodVariableWrapperUserFunctionVariable)"LocalMapWrappedHigherOrderVariable TorchHigherOrderOperatorVariable)ItertoolsVariable)LazyConstantVariableLazyVariableTracker)	BaseListVariableListIteratorVariableListVariableNamedTupleVariableRangeVariableSizeVariableSliceVariableTupleIteratorVariableTupleVariable)AutogradEngineVariableAutogradFunctionContextVariableAutogradFunctionVariableComptimeVariableConstantLikeVariableDebuggingVariableDelayGraphBreakVariableGetAttrVariableGetSetDescriptorVariableIgnoredFunctionVariableLambdaVariableLoggingLoggerVariableMethodWrapperVariableNumpyDTypeVariableNumpyVariableObjectVariablePythonModuleVariableRandomClassVariableRandomVariableSavedTensorBoxTorchVersionVariableTypingVariableWeakRefVariable)FSDPManagedNNModuleVariable$UnspecializedBuiltinNNModuleVariableUnspecializedNNModuleVariable)OptimizerVariable)OpaqueObjectClassVariableTorchScriptObjectVariableSDPAParamsVariable)EventVariableStreamContextVariableStreamVariable)NumpyNdarrayVariable$supported_const_comparison_op_valuesSymNodeVariableTensorSubclassVariableTensorVariableUnspecializedPythonVariable)DispatchKeySetVariableFuncTorchInterpreterVariableTorchCtxManagerClassVariableTorchInGraphFunctionVariable)TensorWithTFOverrideVariable#torch_function_mode_stack_state_mgrTorchFunctionModeVariable)FrozenDataClassVariableInspectVariableIntWrapperVariableKeyedJaggedTensorVariableMutableMappingVariableSourcelessGraphModuleVariableUserDefinedClassVariableUserDefinedDictVariableUserDefinedEnumClassVariable!UserDefinedExceptionClassVariableUserDefinedListVariableUserDefinedObjectVariableUserDefinedSetVariableUserDefinedTupleVariablenp)	PyCodegen)InstructionTranslatorInstructionTranslatorBasecudagraph_static_inputs)TypeVarVTTypeAliasTtreturnc                     [         R                  R                  [         R                  R                  R                  5         [        U S5      sS S S 5        $ ! , (       d  f       g = f)Ngrad)torch_logginghide_warnings	_internalsafe_grad_filterhasattr)r  s    p/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/torch/_dynamo/variables/builder.pysafe_has_gradr  W  s;    		%	%enn&>&>&O&O	Pq&! 
Q	P	Ps   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                   n   \ rS rSr% \S-  \S'   \\S'   \\S'   \R                  R                  R                  S-  \S'   Sr\\S'   Sr\R                  \R                  -  S-  \S	'   S
\S\SS4S jr\S\R                  \R                  -  \-  S-  4S j5       rSS jrSS jrSS jrS\S\4S jrSrg)GraphArgi`  Nsource_examplepass_arg_as_tensorfake_tensorT	is_tensorexample_strong_refnamevaluer	  c                 0    [         R                  XU5        g N)object__setattr__)selfr&  r'  s      r  r+  GraphArg.__setattr__  s    
 	4u-r  c                     [        U R                  [        5      (       a  U R                  5       nUc   eU$ U R                  $ r)  )
isinstancer!  r:   )r,  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!  r  Tensorr:   r!   r#  r,  s    r  __post_init__GraphArg.__post_init__  sC    dmmU\\22)$--8DM4++,,,, 3r  c                 (    U" U R                   5        g r)  r   r,  codegens     r  reconstructGraphArg.reconstruct  s    r  c                      S U l         S U l        g r)  r!  r%  r5  s    r  eraseGraphArg.erase  s    "&r  otherc                     [        U[        5      (       d  gU R                  c  UR                  S L $ UR                  c  gU R                  R                  UR                  R                  :H  $ )NF)r/  r  r   r&  )r,  rB  s     r  __eq__GraphArg.__eq__  sW    %**;;<<4''||#;;##u||'8'888r  r?  r	  Nr;  r  r	  N)r  r  r  r  rg   __annotations__r   boolr  _subclassesr#  r   r$  r%  r4  r   strr+  propertyr&   r1  r6  r<  r@  r*  rD  r  r  r  r  r  r  `  s    TM M" ""..99D@@ It >Bu||3d:A. .C .D . !4}DtK ! !-
'9F 9t 9r  r  c                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )BackwardStateGraphArgi  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  rQ  BackwardStateGraphArg.__init__  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>  s    G,,]-E-EWr  r   F)txoutputbackward_state_varadd_push_nullcall_functiondup_topstorer:  s    `r  r<  !BackwardStateGraphArg.reconstruct  se    zz  3333W	
 	a'gjj''::;r  r  rF  rG  )r  r  r  r  rQ  r<  r  __classcell__rR  s   @r  rN  rN    s    
< <r  rN  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>rk    s>      //??3 $+OOF$; BvJJ/s   AAAITERTOOLS_TYPE_IDSITERTOOLS_POLYFILLED_TYPE_IDSc            
         ^  \ rS rSrSr S6SSS\S\SS4U 4S	 jjjrS
\S\	4S jr
S
\S\	4S jrS\	S\4S jrS\4S jrS\S\4   S\\\4   S-  4S jr\S\\\S\4   4   4S j5       r\\R,                  S\S\\\S\4   4   4S j5       5       rS
\R2                  \   S\4S jrS
\R:                  \   S\4S jrS
\ RB                  RD                  RF                  S\$4S jr%S
\S\&4S jr'S
\S\	4S jr(\\R,                  S\\)\S \/\	4   4   4S j5       5       r*S
\S\	4S jr+S
\S\	4S jr,S
\-\.\S4   \/\   \0\14   S\	4S jr2S
\3S\	4S jr4S
\5S\	4S  jr6S
\7\8-  S\9\:-  4S! jr;S
\ Rx                  S"\SS4S# jr=S
\ R|                  R~                  S\	4S$ jr@S
\S\	4S% jrAS
\)S\	4S& jrBS
\CS\	4S' jrD\ES
\)S(\\)/\	4   S\	4S) j5       rF\ES
\CS(\\C/\	4   S\	4S* j5       rF\E S7S
\-\)\C\\4   S(SS\	4S+ jj5       rF S7S
\-\)\C\\4   S(\G\\/\	4      S\	4S, jjrFS
\ Rx                  SS4S- jrHS
\ Rx                  S\	4S. jrIS
\S\	4S/ jrJ  S8S
\)S0\KS-  S1\LS-  S\	4S2 jjrMS
\CS\	4S3 jrNS
\S\	4S4 jrOS5rPU =rQ$ )9VariableBuilderi  z3Wrap a python value in a VariableTracker() instancerY  r  r   allow_lazy_constantr	  Nc                    > Uc   S5       e[         R                  " 5       c   S5       e[        TU ]  5         Xl        X l        UR                  U l        X0l        g )NzRConsider SourcelessBuilder for ephemeral objects, usually objects created locally.zExpected active TracingContext)r   try_getrP  rQ  rY  r   r&  rp  )r,  rY  r   rp  rR  s       r  rQ  VariableBuilder.__init__  s`     ! 	
`	
! %%'3U5UU3KK	 $7 r  r'  c                 ~   [         R                  " 5       n U R                  U5      U R                  R                  R
                  =R                  [         R                  " 5       U-
  -  sl        $ ! U R                  R                  R
                  =R                  [         R                  " 5       U-
  -  sl        f = fr)  )timetime_ns
_call_implrY  rZ  bytecode_tracing_timingsvariable_builder_call_ns)r,  r'  _t0s      r  __call__VariableBuilder.__call__  sy    lln	??5)GGNN33LL$LDGGNN33LL$Ls   A1 1AB<c                    XR                   R                  R                  ;   a  U R                   R                  R                  U   n[        U R                  UR                  5      nU(       a  U R                  U5        [        U[        R                  R                  5      (       a0  [        U[        5      (       a  UR                  U R                  5        U$ U R                   R                  R                  R                  U R                  5      nU(       a(  U R                  (       d  [        U[        5      (       d  U$ U R!                  U5      nUR                  c  U R                  Ul        S["        S[$        S[&        4S jnU R)                  U5      (       d  U" X5      (       ab  XR                   R                  R                  ;  a?  [+        U5      (       d/  U R                   R                  R                  R-                  X5      nSU R                  R.                  ;  a,  XPR                   R                  R                  U R                  '   U$ )Nr'  vtr	  c                 t    [        U 5      =(       d    [        U [        5      =(       a    [        U[        5      $ r)  )r   r/  r(   r   )r'  r~  s     r  _is_deduplicable_sym_variableAVariableBuilder._call_impl.<locals>._is_deduplicable_sym_variable  s,     U#Hz%'H2R12r  JVP_NESTING)rY  rZ  side_effectsrG   r   install_guardsr/  r  nnModuler   set_nn_module_stack_sourcevariable_tracker_cachegetrp  r   _wrapr   r   rI  _can_lift_attrs_to_inputsr   track_object_existingr&  )r,  r'  side_effect_result	dup_guard	cached_vtr~  r  s          r  rw  VariableBuilder._call_impl  s   GGNN///!%!<!<U!C'5G5N5NOI##I.%11j"$A7 7 #==dkkJ%%GGNN99==dkkJ	 ''z.0 0 ! ZZ99BI	2 	2/ 	2d 	2 ..r220;;WW^^8883E::,,BB5MB  0 00ACGGNN11$++>	r  r~  c                 P    [        U5      [        [        [        [        [
        1;   $ r)  )typer   r   r   r   r   )r,  r~  s     r  r  )VariableBuilder._can_lift_attrs_to_inputs.  s'    Bx(% %
 
 	
r  c                     U R                   $ r)  r9  r5  s    r  
get_sourceVariableBuilder.get_source7  s    {{r  guards.c                     U R                  5       n U Vs/ s H  o2R                  U5      PM     nn[        USS06  0 $ s  snf ! [         a     g f = f)Nskipr   )r  
make_guardNotImplementedErrorrF   )r,  r  r   guardtmps        r  r  VariableBuilder.install_guards:  s\    "	9?@$$U+C@ 	s##		 A" 		s   A ?A A 
AAc                 @    U R                  [        R                  5      $ r)  )_type_dispatch_implr<   trace_numpy)clss    r  _type_dispatchVariableBuilder._type_dispatchC  s    &&v'9'9::r  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[L        RN                  U RP                  4/nU(       a6  [R        (       a+  URU                  [R        RV                  U RX                  45        0 nU H1  u  pE[[        U[        5      (       a  UOU4 H  nXc;  d   eXSU'   M     M3     U$ r)  ).r  r4  r  	ParameterrJ  r   functional_tensorFunctionalTensorwrap_tensortuplelistr   collectionsdequeSizewrap_listliker   wrap_tuple_iteratorr   wrap_range_iteratorslicerangewrap_slice_rangerp   wrap_literalrePatternwrap_regex_patternweakrefReferenceTypewrap_weakrefutilshooksRemovableHandlewrap_removable_handlejitScriptFunctionwrap_jit_functiontypesMappingProxyTypewrap_mapping_proxyr   appendndarraywrap_numpy_ndarrayr/  )r  r  entriesresulttsfnr  s          r  r  #VariableBuilder._type_dispatch_implG  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'<'<=##S%;%;<-
2 22NNBJJ(>(>?@ FB%b%00Rre;&q	 < 
 r  c                 V    U R                  [        R                  5        [        U5      $ r)  )r  rE   ID_MATCHr   r,  r'  s     r  r  "VariableBuilder.wrap_regex_patternq  s!    L112#E**r  c                     U R                  [        R                  5        [        R                  " U R
                  XR                  S9$ Nr9  )r  rE   
TYPE_MATCHr   buildrY  r   r  s     r  r  VariableBuilder.wrap_weakrefv  s1    L334$$TWWeKKHHr  c                     [        SSS/ S9  g )Nz3Attempted to represent unregistered RemovableHandle zDynamo attempted to build a representation of a torch.utils.hooks.RemovableHandle, which is not supported. This happens because the RemovableHandle was created in another frame.gb_typecontextexplanationhints)rD   r  s     r  r  %VariableBuilder.wrap_removable_handlez  s     	Im	
r  c                 j    U R                  [        R                  5        [        USU R                  S9$ )N_torchdynamo_inliner9  )r  rE   r  r   r   r  s     r  r  !VariableBuilder.wrap_jit_function  s/    L334*(
 	
r  c           
        ^ ^ T R                  [        R                  5        T R                  [        R                  5        [	        S U 5       5      nU(       dL  [        SSUR                  5        Vs/ s H"  n[        R                  " U5      (       a  M   UPM$     sn 3SS/S9  S[        S[        S	[        [        [        4   4U 4S
 jjm[        U4S jUR                  5        5       5      n[        US S9n[        UT R                   S9nT R"                  R$                  R&                  R)                  X5      $ s  snf )Nc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r   
is_literalri  ks     r  rk  5VariableBuilder.wrap_mapping_proxy.<locals>.<genexpr>  s     F1(33A66   #%znon-const keys in mappingproxynon-const keys: z1Dynamo expects mappingproxy keys to be constants.zFEnsure your mappingproxy keys are constants (e.g. int, float, strings)r  r  vr	  c                    > [         R                  " U 5      nU n[        TR                  5       U5      n[        R                  " X5      nX%4$ r)  )r   createrX   r  r   )r  r  key
source_keysource_value	res_valuer,  s         r  build_key_value;VariableBuilder.wrap_mapping_proxy.<locals>.build_key_value  sC    "))!,CJ():JGL+221CI>!r  c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr)  r  )ri  r  r  r  s      r  rk  r    s     E}tq_Q**}s   r9  )r  rE   r  MAPPING_KEYS_CHECKallrD   keysr   r  r   r  r   dictitemsr   r   r   rY  rZ  r  track_mutable)r,  r'  	all_constr  r  dict_vtr  r  s   `      @r  r  "VariableBuilder.wrap_mapping_proxy  s   L334 	L;;<FFF	8*uzz|+j|!K[KfKfghKiA|+j*klO\		"s 	"s 	"u_o5U/V 	" Eu{{}EE $E$7%gdkkBww~~**88GG- ,ks   3D=D=c                     SSK J n  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                     [        5       $ r)  )r   r  s     r  rW  .VariableBuilder._id_dispatch.<locals>.<lambda>  s    +;+=r  c                 t    [        [        4SU R                  0U R                  [        R
                  5      D6$ )Nr   )r   _dataclasses_fields_lambdar   r  rE   CLOSURE_MATCHr  s     r  rW  r    s3    N.%;;% )),*D*DE%r  c                     [        5       $ r)  )r   r  s     r  rW  r    s    4H4Jr  )	r  dataclassesfieldsr  __version__r/  r  r  rh  )r  r  r  r  r  r  r  s          r  _id_dispatchVariableBuilder._id_dispatch  s    
 	( =>""  JK
 FB%b5$-88RreC& "r!u D 
 r  c                 2r  ^ ^^B^C SSK JnJnJn  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SlS jn	SlS jn
 " S S5      nSlS jnU" 5       (       a  SSKJn	Jn
  U" 5       (       a  SSKJn  U" 5       (       a!  SS Kn[#        US5      (       a  UR$                  nT R'                  5       R)                  [+        T5      5      nUb	  U" T T5      $ T R-                  5       R)                  [/        T5      5      nUb	  U" T T5      $ [1        T[2        R4                  5      (       a  [+        T5      [2        R6                  R8                  R:                  [2        R6                  R8                  R<                  [>        4;  an  [+        T5      [@        RB                  ;  aQ  [+        T5      RD                  [2        R4                  RD                  L d  [G        T5      (       a  T RI                  T5      $ [K        T5      (       a  T RM                  [N        RP                  5        [S        [+        T5      5       Vs/ s H6  n[T        RV                  " [Y        TU5      [[        T R\                  U5      S9PM8     nn[_        UT R\                  [a        5       S9n[c        U[+        T5      T R\                  US9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [m        T[n        [p        Rr                  [p        Rt                  45      (       Ga  T RM                  [N        Rv                  5        [y        S T 5       5      mBTB(       d9  T Rd                  Rf                  Rz                  R}                  T R\                  5        S[~        S[~        S[~        S[        [        [        4   4UBU 4S jjmC[o        UC4S j[        [        T5      5       5       5      n[m        T[p        Rr                  5      (       aZ  [[        T R\                  S5      n[        U[+        T5      [        T Rd                  U5      " TR                  5      T R\                  S9nO[        U[+        T5      T R\                  S9nT Rd                  Rf                  Rh                  R                  TU5      $ [1        T[2        R6                  R                  5      (       a  T R                  T5      $ [        R                  " T5      (       a  T R                  T5      $ [1        T[2        R                  R                  5      (       aF  [        TT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5        U$ [m        T[        [        45      (       Ga  [        S  T 5       5      (       a  [        S!S"S#S$/[        R                  QS%9  T RM                  [N        Rv                  5        T RM                  [N        RP                  5        [        n[m        T[        5      (       as  [[        T R\                  S&5      n[        UR                  [N        R                  5      5        T Rd                  Rf                  Rz                  R}                  U5        [        n[        T5      n[        U5       VVs/ s H/  u  nn[T        RV                  " U[        T R\                  U5      S9PM1     nnnU" UT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [m        T[        5      (       az  [y        S' T 5       5      (       ac  T Vs/ s H#  n[        RW                  T Rd                  U5      PM%     nnT RM                  [N        R                  5        [        UT R\                  S9$ [1        T[        R                  [2        R                  [2        R                  R                  R                  45      (       a3  T RM                  [N        R                  5        [        TT R\                  S(9$ [        R                  " T5      (       a3  T RM                  [N        R                  5        [        TT R\                  S9$ [        T5      (       ao  [        U4S) j[2        R                  R@                  R                   5       5      (       a3  T RM                  [N        R                  5        [        TT R\                  S9$ [1        T[        R                  5      (       a3  T RM                  [N        Rv                  5        [        TT R\                  S9$ [        T5      (       a  [        T R\                  S9$ [        T5      (       a  [        T R\                  S9$ [        R                  " T5      (       a  [        R                  " T R\                  S9$ [1        T[        R                  5      (       Ga  [[        T R                  5       S*5      n[        T Rd                  U5      " TR                  5      n/ n[[        T R                  5       S+5      n[        TR                  5       H=  u  nn UGR                  [        T Rd                  G[        UU5      5      " U 5      5        M?     0 n![[        T R                  5       S,5      n"TGR                  GR                  5        Hk  u  n#n[        R                  " U#5      (       d   [        S-S.U# 3S// [        GR                  QS%9  [        T Rd                  G[        U"U#5      5      " U5      U!U#'   Mm     [        T R                  5       R                  [N        Rv                  5      U"R                  [N        R                  5      UR                  [N        RP                  5      5        [Y        TS0S 5      n$G[        UUU!U$S19$ G[        T5      (       a4  T RM                  [N        R                  5        G[        TT R\                  S9$ G[        bI  [1        TG[        GR                  5      (       a(  T GR                  G[        GR                  " T5      5      $ G[        GR                  " T5      (       Gau  G[        (       d   e[m        TG[        GR                   5      (       af  G["        GR$                  " TGR&                  5      (       a=  [        [[        T R\                  S25      R                  [N        GR(                  5      5        OG["        GR*                  " T5      (       a!  T RM                  [N        GR,                  5        OG["        GR$                  " T5      (       a!  T RM                  [N        GR(                  5        OO[        T5      (       a   T RM                  [N        R                  5        OT RM                  [N        Rv                  5        G[/        TT R\                  S9$ G[        GR0                  " T5      (       a4  T RM                  [N        R                  5        G[3        TT R\                  S9$ G[        GR4                  " T5      (       a  [1        TG[        GR6                  5      (       a^  T RM                  [N        Rv                  5        [[        T R\                  S35      n%[        U%R                  [N        R                  5      5        OT RM                  [N        R                  5        G[9        TT R\                  S9$ G[:        GR<                  " T5      (       aK  T RM                  [N        GR(                  5        G[:        RV                  " T Rd                  TT R\                  S9$ [m        T[2        GR>                  GR@                  GRB                  5      (       a5  T RM                  [N        GR,                  5        G[E        TT R\                  S9$ [1        T[2        GR>                  GR@                  GRF                  5      (       Ga8  S n& TGRH                  n&/ n'T R\                  R                  [N        Rv                  5      /n([1        U&[        5      (       a  [[        T R\                  S45      n)U(GR                  U)R                  [N        RP                  5      5        [        U&5       H=  u  nnU'GR                  [        T Rd                  G[        U)U5      5      " U5      5        M?     [        U(6   T Rd                  Rf                  Rh                  Rk                  TG[M        TT R\                  G[O        U'5      S595      $ [1        TG[        GR                   5      (       a  [m        [Y        TS6S 5      [2        GR>                  GR@                  GRB                  5      (       a  [Y        TS7S85      S9:X  a  T[Y        TGRP                  S9S 5      :X  at  [        [[        T R                  5       S25      R                  [N        GR(                  5      5        G[S        G[E        TGRP                  [[        T R\                  S6S:9S9S95      $ [1        T[2        R                  GRT                  5      (       a4  T RM                  [N        R                  5        G[W        TT R\                  S9$ T[2        R                  GRX                  GRZ                  GR\                  L a0  T RM                  [N        GR(                  5        G[_        U 4S; j5      $ [1        TU5      (       a  G[a        TGRb                  5      $ [1        TU5      (       a  G[e        TGRf                  5      $ [        T5      (       a  G[        GRh                  " T5      bi  G[        GRj                  " T5      (       a  S<T Rd                  Rf                  l        G[        GRh                  " T5      GRo                  TT R\                  S9$ G[        (       a3  [1        TG[        GRp                  5      (       a  T GRs                  T5      $ [1        TG[t        5      (       ak  T[2        GRv                  GRx                  L a  [        S=S8S>/ S%9  T RM                  [N        Rv                  5        G[z        GR|                  " TT R\                  S9$ [1        T[2        GR~                  GR                  5      (       a~  T RM                  [N        R                  5        [[        T R\                  S?5      n*[        T Rd                  U*5      " TGR                  5      n+G[        RV                  " T Rd                  U+5      $ [1        T[2        GR                  5      (       a  T RM                  [N        Rv                  5        G[        TT R\                  5      n,T Rd                  Rf                  GR                  S@G[        U,40 5      n-G[        U-GR                  T5        G[        U-TT R\                  U,SA9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        T[2        R                  GR                  5      (       aL  T RM                  [N        Rv                  5        G[        RV                  " T Rd                  TT R\                  5      $ [1        T[2        R                  GR                  GR                  5      (       a+  T RM                  [N        R                  5        G[        T5      $ [1        T[2        GR                  5      (       a  T RM                  [N        Rv                  5        G[        TT R\                  5      n,T Rd                  Rf                  GR                  S@G[        U,40 5      n.G[        U.GR                  T5        G[        U.TU,T R\                  S9$ [m        TG[        GR                  5      (       aN  G["        GR                  " TSBS 5      c3  T RM                  [N        Rv                  5        G[        T R\                  S9$ G[        GR                  " T5      (       ad  T RM                  [N        Rv                  5        G[        TT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        T[2        GR                  GR                  5      (       aO  T RM                  [N        R                  5        G[        T R\                  5      T l.        G[        TT R\                  S9$ [1        T[2        GR                  5      (       a,  T RM                  [N        GR                  5        G[        T5      $ G[        GR                  " T5      (       a  G[        TT R\                  S9$ G[        GR                  " T5      (       a4  T RM                  [N        R                  5        G[        TT R\                  S9$ G[        GR                  " T5      (       a4  T RM                  [N        R                  5        G[        TT R\                  S9$ G[        GR                  " T5      (       a4  T RM                  [N        R                  5        G[        TT R\                  S9$ G[        GR                  " T5      (       a4  T RM                  [N        R                  5        G[        TT R\                  S9$ T[        L a*  T RM                  [N        R                  5        G[        5       $ [/        T5      G[        ;   aI  [/        T5      G[        ;  a5  T RM                  [N        GR,                  5        G[        TT R\                  S9$ [1        TG[        5      (       GaK  [1        TG[        5      n/G[        T R\                  U/5      n0[/        T5      T Rd                  Rf                  GR                  GR                  ;   a9  T Rd                  Rf                  GR                  GR                  [/        T5         n1OT Rd                  Rf                  GR                  GR                  TGR                  U0G[        GR                  SC9n2T Rd                  Rf                  GR                  GR                  U2TGR                  U0SD9n1T Rd                  Rf                  GR                  GR                  G[        GR                  " SESFT GR                  5      [+        U15      U1U0S9n3G[        U0U1SGS SGU1SH9U3GR                  GR                  SI'   U1GR                  GR                  n4[1        U4G[        GR                  5      (       d
   U4 SJ35       eT Rd                  Rf                  GR                   GR                  G[        U1U0S 5      5        G[        RV                  " T Rd                  U3U15      $ G[        T5      (       Gas  [1        T[2        GR                  5      (       a  T R\                  OG[        T R\                  5      n0S n5TGR                  GR                  5       (       ab  T Rd                  Rf                  GR                  GR                  G[        TGR                  GR                  5      U0G[        GR                  SK9n5Om[1        T[2        GR                  5      (       a1  T Rd                  Rf                  GR                  GR                  5       n5O[        SLS8SM/ [        R                  QS%9  U5c   eT Rd                  Rf                  GR                  GR                  G[        GR                  " SESFT GR                  5      [+        U55      U5U0S9n3G[        U0U5SGS SGU5SH9U3GR                  GR                  SI'   U5GR                  GR                  n4[1        U4G[        GR                  5      (       d
   U4 SJ35       eT Rd                  Rf                  GR                   GR                  G[        U5U0S 5      5        [1        T[2        GR                  5      (       a  U5OU5SN:H  n6G[        U3U65      $ [1        TX45      (       a6  T RM                  [N        R                  5        G[        TS S T R\                  S9$ TU	L a
  G[        SNSO9$ TU
L a
  G[        SSO9$ TUGR                  L a  G[        5       $ TUL a  G[!        T5      $ [1        T[2        GR"                  GR$                  GR&                  5      (       ad  T RM                  [N        R                  5        G[)        TGR*                  TGR,                  TGR.                  TGR0                  /T R\                  SP9$ G[2        GR4                  " T5      (       a  G["        GR*                  " T5      (       a!  T RM                  [N        GR,                  5        O=G["        GR$                  " T5      (       a   T RM                  [N        GR(                  5        G[3        TT R\                  S9$ G["        GR                  " TSQSG5      (       a5  T RM                  [N        Rv                  5        G[7        TSRT R\                  S9$ G[9        T5      (       a5  T RM                  [N        Rv                  5        G[7        TSST R\                  S9$ TG[:        GR<                  L d+  G[:        GR>                  ST:  a*  TG[:        GR@                  L a  G[C        TT R\                  S9$ G[E        T5      (       aT  G["        GR                  " TSUSG5      (       a5  T RM                  [N        Rv                  5        G[7        TSUT R\                  S9$ T[        GRF                  L a4  T RM                  [N        R                  5        G[I        TT R\                  S9$ T[p        GRJ                  L a4  T RM                  [N        R                  5        G[M        TT R\                  S9$ [1        TG[        GRN                  5      (       aQ  G[P        GRR                  " T5      (       a4  T RM                  [N        R                  5        G[Q        TT R\                  S9$ G[U        T5      (       aw  TG[V        GRX                  G[V        GRZ                  4;   aO  T RM                  [N        R                  5        G[S        G[]        G[V        T R\                  S9TGR^                  5      $ G[E        T5      (       a^  G[a        T5      u  mn7U7b  [[        T R\                  U75      T l.        G[        GRb                  " T5      GRo                  TT R\                  S9$ TG[d        GRf                  L a3  T RM                  [N        R                  5        G[i        T R\                  S9$ [m        TG[d        GRf                  5      (       a  G[j        GRl                  " T5      (       af  T RM                  [N        Rv                  5        G[k        TT R\                  S9nT Rd                  Rf                  Rh                  R                  TU5        U$ [1        TG[        GRn                  G[p        GRr                  45      (       ag  T RM                  [N        GRt                  5        G[w        TT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5        U$ [1        TG[        GR                   5      (       a  [1        TGRP                  [2        R6                  R                  [2        GRx                  GRz                  GR|                  45      (       a}  [        T Rd                  [[        T R\                  S65      S9" TGRP                  5      n8U8(       a  [1        U8[        5      (       d   SV5       eG[        TGR&                  U8T R\                  S9$ [1        TG[        GR                  5      (       a  G[        T5      $ [1        TG[        GR                  5      (       a  G[        T5      $ G[        [+        T5      [*        5      (       aB  G[        TG[        5      (       a+  T RM                  [N        R                  5        G[        T5      $ G[        [+        T5      [*        5      (       Ga2  T[2        GRx                  GR                  GR                  [2        R6                  GR                  [2        R6                  GR                  4;   a1  G[        GRb                  " T5      GRo                  TT R\                  S9$ T[2        GR>                  GR                  L aB  T RM                  [N        GR,                  5        G[        GR                  " T Rd                  5      $ G[        T[2        R4                  5      (       a`  T[2        R4                  LaM  TRD                  [2        R4                  RD                  L a&  G[        T5      (       d  G[        TT R\                  S9$ G[        T R\                  5      (       d   T RM                  [N        GR,                  5        G[        T5      (       a  G[        TT R\                  S9$ [1        T[*        5      (       a5  G[        T[        R                  5      (       a  G[        TT R\                  S9$ G[        TT R\                  S9$ G[        GR4                  " [+        T5      5      (       Ga  SSWK.GJVn9GJWn:  [2        GR                  GR                  GR                  T5      (       a  T Rd                  Rf                  GR                  GR                  G[        GR                  " SESFT GR                  5      [+        T5      TT R\                  S9n;G[        T R\                  TSGS SGT5      U;GR                  GR                  SI'   G[        RV                  " U;TT R\                  S9$ G[        [+        T5      5      (       a"  T RM                  [N        GR                  5        GO,G[        [+        T5      5      (       a@  T RM                  [N        Rv                  5        T RM                  [N        GR                  5        O[#        TSX5      (       d  T GR                  T5      $ [T        GR                  " [        T Rd                  U:" T R\                  5      5      " TGR                  5       GR                  5       5      5        [T        GR                  " [        T Rd                  U9" T R\                  5      5      " TGR                  5       5      5        [2        GR                  GR                  GR                  T Rd                  Rf                  GR                  T5      n<G[        [+        T5      5      (       a  G[        [+        T5      5      (       d  Tn;OT Rd                  Rf                  GR                  GR                  G[        GR                  " SESFT GR                  5      [+        T5      U<T R\                  S9n;G[        T R\                  TSGS SGU<5      U;GR                  GR                  SI'   G[        RV                  " U;U<T R\                  S9$ [1        T[n        [p        Rt                  45      (       Ga  [+        T5      GR                  [n        GR                  L Gaj  T RM                  [N        Rv                  5        T RM                  [N        RP                  5        T Rd                  Rf                  Rz                  R}                  T R\                  5        S[~        S[~        S[~        S[        [        [        4   4U 4SY jjmC[o        UC4SZ j[        [        T5      5       5       5      n[        U[1        T[p        Rt                  5      (       a  [p        Rt                  O[n        [a        5       T R\                  S[9n=S<U=Glh        G[        TU=T R\                  S\9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        T[        5      (       Ga  T RM                  [N        Rv                  5        T RM                  [N        RP                  5        G[        [        GR                  T5      5       Vs/ s HF  n[T        RV                  " [        GR                  TU5      G[        T R                  5       U5      S9PMH     nn[_        UT R\                  [a        5       S9nG[        TUT R\                  S]9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        T[        5      (       Ga  T RM                  [N        Rv                  5        T RM                  [N        RP                  5        G[        [        GR                  T5      5       Vs/ s HF  n[T        RV                  " [        GR                  TU5      G[        T R                  5       U5      S9PMH     nnG[        UT R\                  [a        5       S9n>G[        TU>T R\                  S^9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        T[        [        45      (       Gaf  T RM                  [N        Rv                  5        T RM                  [N        RP                  5        [        [n        GR                  T5      5      nG[        [        GR                  U5      5       Vs/ s HE  n[T        RV                  " [        GR                  UU5      [        T R                  5       U5      S9PMG     nn[1        T[        5      (       a  [        n?O[1        T[        5      (       d   e[        n?U?" UT R\                  [a        5       S9n@G[        TU@T R\                  S_9nT Rd                  Rf                  Rh                  Rk                  TU5      $ G[        [+        T5      G[        5      (       ad  T RM                  [N        Rv                  5        G[        TT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5      $ G[        T5      (       az  T RM                  [N        Rv                  5        G[        RV                  " T Rd                  TT R\                  S9nT Rd                  Rf                  Rh                  Rk                  TU5      $ [1        TG[        5      (       a  [y        S` T 5       5      (       a  T Vs/ s H#  n[        RW                  T Rd                  U5      PM%     nn[        T R                  5       R                  [N        RP                  5      T R                  5       R                  [N        R                  5      5        G[        UT R\                  S9$ [        SaSbT V#s/ s H"  n#[        R                  " U#5      (       a  M   U#PM$     sn# 3ScSd/S%9  g G[        GR                  " T5      (       Ga  SSeGKzGJ{nA  TGR                  b&  TGR                  R*                  WAGR                  :X  a  T GR                  TGR                  5      $ TGR                  R*                  WAGR                  :X  a{  G[         GR                  SfT R\                  GR                  G[        GR                  5        T GR                  TGR                  G[        GR                  G[        G[        SGSg9Sh9Si9$ TGR                  R*                  WAGR                  :X  aj  G[         GR                  SfT R\                  GR                  G[        GR                  5        T GR                  TGR                  G[        GR                  Sj9$ G[K        SkTGR                   35      e[m        TG[
        5      (       a4  T RM                  [N        Rv                  5        G[        TT R\                  S9$ T GR                  T5      $ s  snf s  snnf s  snf ! G[J         a     G(Nf = fs  snf s  snf s  snf s  snf s  sn#f )mNr   )
has_triton has_triton_experimental_host_tma%has_triton_tensor_descriptor_host_tmar;   )DynamoConfigPatchProxy(ErrorOnGraphBreakDecoratorContextManager)	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  r	  c                      g r)  r  r  r  r  create_1d_tma_descriptor7VariableBuilder._wrap.<locals>.create_1d_tma_descriptor      r  c                      g r)  r  r  r  r  create_2d_tma_descriptor7VariableBuilder._wrap.<locals>.create_2d_tma_descriptor  r  r  c                   (    \ rS rSr\SS j5       rSrg)/VariableBuilder._wrap.<locals>.TensorDescriptori  Nc                      g r)  r  r  r  r  from_tensor;VariableBuilder._wrap.<locals>.TensorDescriptor.from_tensor  s    r  r  rF  )r  r  r  r  staticmethodr"  r  r  r  r  TensorDescriptorr     s     r  r%  c                      g r)  r  r  r  r  set_allocator,VariableBuilder._wrap.<locals>.set_allocator  r  r  )r  r  )r%  r'  r9  )r   mutation_type)	tuple_clsr   tuple_vtc              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  r  s     r  rk  (VariableBuilder._wrap.<locals>.<genexpr>9  s     JEq,77::Er  ir  r  c                    > T	R                  5       nT(       a  [        R                  " U5      nUnO![        X05      n[        R                  " X5      n[        X55      n[        R                  " X&5      nXG4$ r)  )r  r   r  rR   r   rT   )
r.  r  r  baser  r  r  r  r  r,  s
           r  r  .VariableBuilder._wrap.<locals>.build_key_valueT  se     (*11!4C!"J!3D!<J-44QCC0B/66qG	~%r  c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr)  r  ri  r.  r  r  r  s       r  rk  r-  g  (      !FIAv  a((!F   default_factory)r6  r   )user_clsr   c              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr)  )r/  r  r4  ri  xs     r  rk  r-    s     >1:a..s   ')z$Attempted to wrap a set with tensorsz+Python set containing torch.Tensor elementszDynamo cannot trace sets of tensors. To get a stable ordering, Dynamo needs to convert the set into a list and the order might not be stable if the set contains tensors.z,Use a dictionary where the keys are tensors.r  _dictc              3     #    U  H  n[        U5      [        R                  L =(       a    UR                  S :H  =(       dD    U[        R
                  R                  R                  ;   =(       d    [        U[        [        45      v   M     g7f)r  N)r  r  BuiltinMethodTyper  r  r  _pytreeBUILTIN_TYPESr/  r   r   r9  s     r  rk  r-    ss      .
  aE333O8O > U[[((666> 1z+;<=> s   B	Br'  r   c              3   ,   >#    U  H	  nTUL v   M     g 7fr)  r  )ri  r  r'  s     r  rk  r-    s      %
"OBERK"Os   funcargskeywordsz,functools.partial() with non-literal keywordznon-literal keyword: z3functools.partial() expects literal/string keywords
cache_hash)original_cache_hash__func__dtypesaved_tensors)r   rI  __self__r  r  apply)rj  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]  rY  rZ  r  get_ca_final_callbacks_varr5  s   r  rW  'VariableBuilder._wrap.<locals>.<lambda>s  sZ    ,MM00KK``-GGWW^^00KKMOr  Tz9Attempted to wrap torch._higher_order_ops.invoke_subgraphzJDirectly using invoke_subgraph is not supported. Use nested_compile_regionstreamr]  )r   user_object_indexenter_resultr   dynamic_dim)hintr   [^a-zA-Z0-9]+rd  F)r$  r%  grapharg is not a basic Symbol.)rW  z!Attempted to wrap unbacked SymIntz+Unbacked SymInt input is not supported yet.r   )rank)target_valuesr   __script_if_tracing_wrapper__original_fn__wrapped__)      r  z"Failed to produce a valid self obj)FlattenScriptObjectSourceScriptObjectQualifiedNameSource__obj_flatten__c                    > TR                  5       n[        X05      n[        R                  " X5      n[	        X45      n[        R                  " X&5      nXW4$ r)  )r  rR   r   r  rU   )	r.  r  r  r0  r  r  r  r  r,  s	           r  r  r1    sM     (/8
)00?8J/66qG	~%r  c              3   @   >#    U  H  u  nu  p#T" XU5      v   M     g 7fr)  r  r3  s       r  rk  r-    r4  r5  )r7  r)  r   )r  r   )r+  r   )list_vtr   )set_vtr   c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  r  s     r  rk  r-    s     A5a#..q115r  znon-const keys in dict_keysr  z.Dynamo expects dict_keys keys to be constants.zCEnsure your dict_keys keys are constants (e.g. int, float, strings))_DimHintTypez%s marked %s via IntWrapper	warn_only)
constraint)dynamismr  ro  zUndefined dynamism rF  (  torch.utils._tritonr  r  r  
decoratorsr  r  triton.runtime.autotunerr  triton.runtime.jitr  $triton.tools.experimental_descriptorr  r  triton.tools.tensor_descriptorr%  tritonr  r'  r  r  r  r	  rh  r/  r  r4  r  	parameterUninitializedBufferUninitializedParameterr5   r<   nontraceable_tensor_subclasses__torch_dispatch__r7   r  r{   r  rE   SEQUENCE_LENGTHr   r   r  getattrrO   r   r   r   r   rY  rZ  r  r  r   r  r  defaultdictOrderedDictr  r  guard_on_key_orderaddr   r  r   	enumeraters   r   ro  r6  r   r  r  wrap_moduler   r  r  	overridesTorchFunctionModer   setr6   anyrD   r=   SUPPORTABLEr   rF   r  DICT_KEYS_MATCHr   r  rb   	frozensetSourcelessBuilderEQUALS_MATCHr   enumEnumDispatchKey_C
_functorchTransformTyper  r   r   is_reorderable_logging_functionBUILTIN_MATCHcallablerM  ignore_logging_functionsr   loggingLoggerr   r~   rm   ry   rn   r   should_wrap_in_hopr  	functoolspartialr  rB  rC  r  rX   rD  r  
USER_ERRORrT   r   r}   r   r   genericr  asarrayr@   is_numpyr  
MethodTyperf  
isfunctionrG  r  rg  CLASS_MATCHr   is_numpy_dtyper   is_numpy_type_infoiinfor   r   can_rewriteautogradfunctionFunctionMetar   FunctionCtxrI  RuntimeErrorr   r   rJ  r   _ImperativeEnginer   rN  rO  _exec_final_callbacks_stubr   r   changesr   error_on_graph_breaklookup_callableis_callable_allowed!has_user_defined_allowed_in_graphcreate_with_sourcenumberwrap_unspecialized_primitiver   _higher_order_opsinvoke_subgraphr   makecudaStreamContextrS  r   Streamr   create_proxyr   r   noder   _SDPAParamsr   pyfunctorchFuncTorchInterpreterr   Eventr   
contextlibnullcontextgetattr_staticr   r   is_matching_objectoptim	Optimizerrd   r   DispatchKeySetDISPATCH_KEY_SET_MATCHr   r   is_group_member_typer   is_process_groupr   is_device_meshr   is_placement_typer   is_placementr   rl  rm  r   r(   r)   rV   root_tracerdynamic_scalar_nodes	shape_envcreate_unspecified_symbolrealr,   DYNAMICcreate_symintnodecreate_graph_inputr  subr&  r  metaexprsympySymboltracked_fakesr2   r   r   r   rS   has_hint$create_unspecified_symint_and_symbolintrX  SymBoolcreate_unbacked_symintr   r   r"  r   r   ampautocast_modeautocastr   device
fast_dtype_enabled_cache_enabledr   is_matching_clsr   rz   sysexc_infoversion_info	exceptionr   rx   wrapsr   
namedtupler   r=  r   is_supported_builtin_methodrw   floatfromhexhexr   r  r   lookuprandomRandomr   r   is_supported_random_objr   r?   DummyModuleMODULE_MATCHr   r  r>  TreeSpecr   GetSetDescriptorTyper   MethodWrapperTyper   
issubclassBaseExceptionr   r  BackwardHookr  Buffer _unsafe_preserve_version_counterr   constructorr8   r   r[   r   r   r   r   r   rc  rd  _libraryfake_class_registrytracing_with_realr   CONSTANT_MATCHr   OPAQUE_OBJ_GUARD_FN_MATCHwrap_user_definedrealize_all_typequalified_namere  maybe_to_fake_obj	fake_moder   __new__should_reconstruct_allr   r  __len____getitem__r   r`   r   r   fromkeysr   r   r   rv   r   rq   r   r   torch.export.dynamic_shapesrk  ro  STATICwrap_symintvallogdebugr1   r-   AUTOr*  r   )Dr,  r'  r  r  r  r  r  r  r  r  r  r%  r'  
triton_modtype_dispatchid_dispatchr&  rZ  r+  r  factory_sourcevarset_var_clsinternal_dict_sourceLr.  r  r  func_srcfunc_objrC  args_sourceargrD  keywords_sourcer  rF  	dt_sourceactual_saved_tensorsrI  r  saved_tensors_sourcestream_source
stream_varindexstream_proxyevent_proxyis_intr   r  symsym_node_proxysym_expr
new_syminttracing_symint	attr_nameself_objrc  rd  proxyfake_script_objr  rh  
set_vt_clsri  rk  r  r  sD   ``                                                                @@r  r  VariableBuilder._wrap  s*   	
 	
	

 <<:6  			 	
	 ,-- 122G<<'z?33 * 8 8 ++-11$u+>$ u-- '')--bi8"tU++ uell++U ""66""99	 U6#H#HH U..%,,2Q2QQ077''.. < <= .d5k:-
 ;D	 $**E4(%dkk48 ;  - %{{35H
 (u+{{!	F 77>>..DDUFSSED+"9"9;;R;RSTT 7 78JEJJI " 1155dkkB&&&#&&78& &&  !*+>u+E!F F
 e[4455!+DKK9J!K,K$3DGG^$L--%  ;; +!%[;; 77>>..<<UFKKuxx//##E**((//$$U++u@@AA+E$++FCGGNN''==eSIJEC,-->>>>BI>
 G*66  7 78 < <=%KeZ(('1$++w'G$(33L4P4PQ 11556JK0 UA
 &aL	 )DAq $**=dkk1M )	   !t{{;F77>>..DDUFSSE9%%# .
 .
 +
 +
" DII5a&--dggq95EI 9 9:$U4;;??DIIu00%((2E2E2S2ST
 
  5 56eDKK@@>>uEE  : :;$U4;;??e__ %
"'--"6"6"O"O%
 "
 "
  5 56*5EEw~~.. 7 78(t{{CC '',DKK@@&&1EE/BB5II5;;4;;OOy0011!$//"3V<H&tww9%**EHD$T__%6?K#EJJ/3#DGG];-JKCP 0
 H():JGO,,.1'22155! N"7s ;$Y= 1 < <=	 .GG.B / !,,\-D-DE**<+G+GH&&|'C'CD #*%t"D+$>Q  u 5 56!{{  ^
5"** = =**2::e+<==!!%((2I2eU--..%%enn55!"4;;
;FF(66
 ''##L$<$<=##E**##L$>$>?%##L$9$9:##L$;$;< t{{;;''.. 5 56%eDKK@@++E22%**##L$;$;<&t{{G<	i22<3H3HIJ##L$9$9:'dkkBB.::5AA : :;4;;{{ 
 E5>>22??@@ 8 89+{{  u~~66BBCC#' ',':':$ Mkk,,\-D-DEFF.66'1$++'O$(33L4P4PQ &&:;DAq!((' GG]3G%K < 6"77>>..DD/;;"0"?  ue..//z40%..2I2I2V2V  z2.'9$?? 4??,j9DD ..
 #(NN%dkk*E   uxx99:: 5 56)%DD}}++FFaab  : :;!  566,U]];;GHH,U-G-GHHe__!<!<U!C!O..u55CG@..u5HHdkk I   RJubii0044U;;233//???W l	  7 78388t{{SSuzz7788 5 56&t{{H=M(-@NJ(//DDu||,, 7 78(<E77>>66!=xL l//7 eDKK5C 77>>..DDUCPP 4 466 7 78%,,TWWeT[[IIu//;;PPQQ 5 56/66u{{++ 7 78(<E''..55,	K k..6 {{	  5*0011&&undCK 7 78&dkk::&99%@@ 7 78.uT[[IF77>>..DDUFSSu{{4455 5 56)$++6DK$U4;;??u3344 C CD)%00#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:${{  j  5 56*,,uI++5	!>> 8 89$U4;;??~..z2F(f=F%yDGGNN66KKK ww~~11FFr%yQggnn..HHJJ! * 2 2 I 
 ww~~//AA! B  "WW^^77JJ'dii8T
	 K N 4<#'4N$$Z0 yy~~Hh55 *345 GGNN((//D&$0OP"))$''>4HH%   eU\\22 %dkk2 
 Jzz""$$GGNN,,QQEJJOO,$.$6$6 R   eU]]33!%!9!9!P!P!RJ " C "$Q> 1 = =>	 )))!WW^^77JJ'dii8Z 	 K N 4<#-4N$$Z0 "++Hh55 *345 GGNN((//JPT0UV )==
:QR?  #>>BB788 5 56'{{	  ..:BB..:BB&222466m#1%88uyy66??@@ 5 56'LL$$NN((	 {{  *99%@@u%%##L$<$<=##E**##L$>$>?/dkkJJ##E+H%PP 7 78.t{{  +511 7 78.umDKKXXcll"'ES]],B&uT[[AA#E**w/E/E(%0
 0
  7 78.,T[[  ioo% 5 56)%DDk,,, 5 560t{{KK5**
 
#??FF 5 56(t{{CCEemmUYY-G$G 5 56"dkk:  $E**?FE9 $(i@%%e,??dkk @   fmm# 5 56&dkk::E6==))n.T.T/
 /
  7 78#E$++>FGGNN''55eVDM  0 0-2K2KLMM 9 9:){{F
 GGNN''==eVLMu//00ZNNUXX__ekk.A.A.J.JK6
 6
 '
4;;
 CnnH 
8_ E E 4E &{{ 
 u99:: ,E22u6677
 )//UT**z%/O/O 5 564U;;UT**!!..""  #))%0CC$++ D   GGG##L$<$<=5AA$''JJ 5%,,//- ,,0O0OO
 ;5AA-eDKKHH)$++66 ##L$<$<=e$$0;; 
 %&&:eTYY+G+G3;; 
 ,{{  '66tE{CC  ~~11CCEJJ22EEFF+S$))<K;;	 F  /7KK/


+ 177;;  $DK00##L$?$?@)$u+66##L$;$;<##L$J$JKU$566 --e44 $//#!@!M 446 $//#DGG-Ft{{-ST--/ $nn@@RR((%O $DK00d5k9R9R22EEFF+S$))<K#;;	 F  /7KK#/


+ -33{{  ut[%<%<=>>U##t||3  7 78 < <= GGNN--11$++>
&
&
&#&
&78
&   !*+>u+E!F F
 ( "%)@)@AA  ++35{{
G .2G*,UGDKKXF77>>..DDUFSSu%% 7 78 < <= u}}U34
 5A	 $**%%eQ/():A> 5   %{{35H
 .F 77>>..DDUFSSt$$ 7 78 < <= t||E23
 4A	 $**$$UA.,T__->B 4   #{{35G
 -UGDKKXF77>>..DDUFSSY/00 7 78 < <=T]]5)*A t||A/
 0A	 $**$$Q*:4??;LaP 0   %%%(
!%3333.
t{{:O:QF ,E&UF77>>..DDUFSSU^44 7 78+E$++FF77>>..DDUFSS '' 7 78,33DGGU4;;WF77>>..DDUFSSy))A5AAA HMMu!*11$''1=uMOO%001M1MNOO%001J1JK *%DD9.5/g5aHXHcHcdeHf5/g.hi P]	  22599@~~%)<)<@S@S)S''		22$$(<(<<		1KK$$&&
 ''II'//1#:U#K (   $$(9(99		1KK$$&&
 ''		J<N<N'OO"%88H#IJJE6"" 7 78!%<<))%00K -J2 Jt   h.&B N 0hs`   =Cc;6Cc#%*Cc)ACc. EACd I)ACdN7ACd
W*CdZCdZ/Cdc.Cc=c<Cc=c                    U R                  [        R                  5        [        R                  " U5      (       a  [        U[        U R                  5      S9nO[        XR                  S9n[        R                  " [        U5      5      (       d  U$ U R                  R                  R                  R                  X5      $ r  )r  rE   r  r   r  rf   r   r   rM   "cls_supports_mutation_side_effectsr  rY  rZ  r  r  )r,  r'  r  s      r  r	  !VariableBuilder.wrap_user_defined*  s    L334--e44
 %U?4;;3OPF.u[[IF==d5kJJMww~~**@@OOr  c                 X   [         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      (       ax  U R                  R                  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'   U H  nURi                  5         M     [j        Rl                  " U5      " X@R                  S9n[        U[<        [n        Rp                  45      (       a/  U R,                  R.                  Rr                  Ru                  X5      $ U$ s  snf s  snnf )Nr'  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr)  r  )ri  items     r  rk  0VariableBuilder.wrap_listlike.<locals>.<genexpr>I  s     H%$$//55%r  r9  r,  rY  rd  T	steal_arg)
target_clsrY  r8  example_valuesubclass_typer   Fr0  r-  index_is_slicetensor_dictr  r   )r"  r#  r$  rZ  );r<   specialize_intr  r  r  r  rE   r  r   r  r}  r   r  r  r   guard_sourceis_unspecialized_nn_moduler   r  r   rX   r  rY  rZ  local_scoper  r/  ra   
local_namert   r  r  r  r  r  r&  r  r  wrap_fx_proxy_clsr   r  input_source_to_varrl   r8  r  r  TENSOR_MATCHr:   r  r  rF   r  realizer   cls_for_instancer  r  r  r  )r,  r'  rB  r.  rZ  maybe_gmr   tensor_list_proxylist_variabler  tensor_variablesource_ir  rZ  r~  r  s                   r  r  VariableBuilder.wrap_listlike9  s^      T%[EJJ%> ; ;<#**77 	L889 5%  H%HHH((CCEE ; ;< 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y "S
s    P!69P&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  )r  rE   TUPLE_ITERATOR_LENr  r   ro  rY  ri   r  r   r   r   rZ  r  r  )r,  r'  r.  rZ  r  s        r  r  #VariableBuilder.wrap_tuple_iterator  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  )r  rE   RANGE_ITERATOR_MATCHcopydeepcopyr   r  r   r   rY  rZ  r  r  )r,  r'  r  r  r  s        r  r  #VariableBuilder.wrap_range_iterator  sv    L==> 6:]]55IJ5I!((+5IJ%eKK@ww~~**88GG Ks    Bc           
      p   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                  U R                  S9$ [        X0R                  S9$ s  snf )N)startstopstepr9  )ro  rY  rO   r  r~  r  rE   r  r/  r  r   r   r   )r,  r'  r  r  s       r  r   VariableBuilder.wrap_slice_range  s    
 /	
 / DGGZ0A1%EF! /	 	 
 	L334eU## DD {{;;
s   AB3r  c                 r   SSK Jn  [        R                  SU R                  R
                  [        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)r  rJ  _dynamo_static_input_type)rr  ri  static_inputs_logr  r   r&  rh  rY  rZ  r  rk  r8  r  r  )r,  r'  r  ri  r  s        r  mark_static_input!VariableBuilder.mark_static_input  s    4.0@0@"U)	
 	E/ GGNN///''..--e4C // IINN./JK 0r  c                 0   SSK Jn  [        UR                  5      S:X  a4  [	        S[        U5      S[        U5       S3/ [        R                  QSPS9  [        X5      (       a  [        R                  " UR                  S	S
5      (       a:  [        R                  " UR                  SS 5      n[        U R                  SU S3S9$ U R                  [        R                   5        [#        U R                  S5      U l        U R%                  UR&                  5      $ [)        U[*        R,                  R.                  [*        R,                  R0                  [*        R,                  R2                  45      (       a;  [4        R6                  (       d&  [	        S[9        U5      SS/[        R:                  QS9  [=        USS
5      (       a  [=        USS
5      (       d  [	        SSS/ S9  U R                  [        R                   5        [?        XRA                  5       S9n[B        RD                  " [G        U5      5      (       d  U$ U RH                  RJ                  RL                  RO                  X5      $ [P        RR                  " XRH                  RT                  5      (       Ga  [)        U[*        RV                  RX                  RZ                  R\                  5      (       a*  UR_                  5       n[a        U R                  5      U l        [*        Rb                  R4                  Rd                  (       a  [g        5       n[i        URj                  5      (       aF  URj                  Rl                  [n        L a)   URk                  5        H  u  pgU Rq                  XuS9  M     [i        URz                  5      (       aF  URz                  Rl                  [|        L a)   UR{                  5        H  u  piU Rq                  XS9  M     U(       a,  XRH                  RJ                  R~                  U R                  '   UR                  R                  S5      (       a   UR                  R                  S5      (       a  [=        UR                  SS
5      (       a  U R                  n
[4        Rd                  (       aO  U RH                  RJ                  RT                  (       a  [4        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        OU R                  n
[4        Rd                  (       aO  U RH                  RJ                  RT                  (       a  [4        R                  (       a  [        U R                  5      n
[        XS9n[        U
R                  [        R                   5      5        U RH                  RJ                  R                  XR                  5        [B        RD                  " [G        U5      5      (       d  U$ U RH                  RJ                  RL                  RO                  X5      $ [        UR                  [*        R,                  R                  R                  R                  5      (       a6  U R                  [        R                   5        [        XRA                  5       S9$ U RH                  RJ                  R                  UU R                  U RA                  5       S9$ ! [r         a<  n[u        [G        U5      U RH                  [w        URx                  5      S9   S nAGNS nAff = f! [r         a<  n[u        [G        U5      U RH                  [w        URx                  5      S9   S nAGNS nAff = f)Nr;   )OptimizedModuler   zUninitialized nn.Modulez6Attempted to trace an uninitialized nn.Module of type .z?Ensure your nn.Module instance has called `super().__init__()`.r  _torchdynamo_disableF_torchdynamo_disable_msgzHOptimized `nn.Module` is wrapped with `torch.compiler.disable` (reason: ))r   msg	_orig_modz#Attempted to wrap RNN, GRU, or LSTMz*Dynamo does not support RNN, GRU, or LSTM.zgSet torch._dynamo.config.allow_rnn=True to enable experimental support for RNN, GRU, and LSTM in Dynamo_is_fsdp_managed_module_fsdp_use_orig_paramszFSDP with use_orig_params=Falser  z3Dynamo only supports FSDP with use_orig_params=Truer9  rj  )rC  )ztorch.nn.modulesz	torch.ao.ztorch.nn.modules.container_dynamo_marked_static)Q
eval_framerp  len__dict__rD   r   r=   r  r   rf  r  forwardr   r   r  rE   r  rO   r  rv  r/  r  r  RNNGRULSTMr<   	allow_rnnrK  r  r~  r   r  rM   r=  r  rY  rZ  r  r  r>   is_dynamic_nn_moduleexportfxexperimentalproxy_tensor
_AttrProxyget_baserN   rM  inline_inbuilt_nn_modulesr|   r  named_parametersrG  !og_module_named_parameters_fn_ptrrm  	TypeErrorrC   r  rC  named_buffersog_module_named_buffers_fn_ptr
nn_modulesr&  r  re  rR  install_free_tensorsrj   r   rF   r  rk   r    add_fqn_info_for_inlined_modulesr  paralleldistributedDistributedDataParallelregister_attr_or_module)r,  r'  rp  ru  r  freezingrd  peb
new_sources              r  r  VariableBuilder.wrap_module  s~   0u~~!#1TU\]bUcTddef&11U	 %))%%emm5KUSS
 ,,MM#=t /;;bcfbgghi 
  7 78$T[[+>DK##EOO44 uuxx||UXX\\588==IJJ$$=E
H}&22	 53U;; 5"95AA= U	"  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:}}##==02 U3344..7789V$)$:$:$<DA 2212E %= U0011++448VVV$)$7$7$9DA 2212E %:
  <AGGNN--dii8   ++,MNN((334PQQ*A5II![[
33--1L1L "DDKK!PJ=eWj33L4K4KLM![[
33--1L1L "=T[[!IJ6uPj33L4K4KLMGGNN;;E;;OAA$u+NN77>>..DDUSSOOUXX..::RR
 
  7 780?PQQ77>>99		( :  o % V0a$''QVVUUV % V0a$''QVVUUVs0   .(\ (] 
]1]]
^1^^c                 @   [        U5      [        L GaR  [        U[        5      (       d   e[        U R                  R
                  5      (       aH  [        R                  SU R                  R
                  5        U R                  U[        R                  S9$ [        U R                  R
                  5      (       aH  [        R                  SU R                  R
                  5        U R                  U[        R                  S9$ [        R                  (       Gd<  [        XR                  5      (       Ga  S nU R                  R                   R#                  5       (       d)  U R                  R                   R%                  5       (       a  Sn['        U R(                  U R                  R
                  [*        R,                  " U5      U R                  R                   R%                  5       S9  U R/                  [0        R2                  " [4        R6                  US95        [8        R:                  " XR                  S9$ U R=                  XR>                  5      $ U R=                  U5      $ [        U5      [@        L aX  [        U[@        5      (       d   e[        RB                  (       d  U R=                  XRD                  5      $ U R=                  U5      $ [        U5      [F        [H        4;   a.  [        U[F        [H        45      (       d   eU R=                  U5      $ U R/                  [4        RJ                  5        [8        R:                  " XR                  S9n[        U[L        [N        45      (       a/  U R(                  RP                  RR                  RU                  X5      $ U$ )N&%s marked dynamic via source whitelistrp  '%s marked unbacked via source whitelista  torch.compile considers integer attributes of the nn.Module to be static. If you are observing recompilation, you might want to make this integer dynamic using torch._dynamo.config.allow_unspec_int_on_nn_module = True, or convert this integer into a tensor.rM  )recompile_hintr@  )+r  r  r/  is_dynamic_sourcer   r&  r  r  r  r,   r  is_unbacked_sourceUNBACKEDr<   rK  r   rL  "is_unspecialized_builtin_nn_modulerM  rL   rY  rJ   make_scalarr  r  r  rE   r  r   r  _wrap_lazy_constant_wrap_symint_for_lazyr  specialize_float_wrap_symfloat_for_lazyrI  rK  r  r  r  rZ  r  r  )r,  r'  r  r  s       r  r  VariableBuilder.wrap_literal  s   ;#eS)))) !1!122		BDKKDTDTU''
8J8J'KK!$++"2"233		CT[[EUEUV''
8K8K'LL((( .e[[AA%)N00SSUU;;33NNPP5 ' .((+77>37;;3K3K3f3f3h	 ''!))(55n
 ,22{{SS//7Q7QRR++E22%[E!eU++++**//7S7STT++E22%[T3K'edC[1111++E22 ; ;<%,,5MF%$--ww~~22@@OOMr  c                 $    U R                  U5      $ r)  )r  r  s     r  r  %VariableBuilder._wrap_symint_for_lazy  s    &&r  c                 $    U R                  U5      $ r)  )wrap_symfloatr  s     r  r  'VariableBuilder._wrap_symfloat_for_lazy  s    !!%((r  wrap_fnc                     g r)  r  r,  r'  r  s      r  r  #VariableBuilder._wrap_lazy_constant      
 r  c                     g r)  r  r  s      r  r  r    r  r  c                     g r)  r  r  s      r  r  r    r  r  c                     U R                   (       dH  Ub  U" U5      $ U R                  [        R                  5        [        R
                  " XR                  S9$ [        R
                  " XR                  S9$ )zCWrap a primitive constant, deferring guard installation if allowed.r@  r9  )rp  r  rE   r  r   r  r   r   r  s      r  r  r    s[     ''"u~% ; ;<#**{{KK#**5EEr  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"   rY  r  rB   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           	      J   U R                  5       nXR                  R                  R                  ;  d   e[	        U5      S Ln[
        R                  (       ap  U(       di  [        U[        R                  R                  5      (       d&  U(       a9  UR                  R                  5       (       a  U R                  U[        5       S9  Sn[
        R                  =(       a/    [!        U5      =(       d    [#        U5      =(       d    [%        U5      nU=(       aQ    [
        R                  (       + =(       d5    [        5       =(       d$    [        R&                  R
                  R(                  nU(       dE  UR                  R+                  5       (       d  U(       a^  UR                  R-                  5       (       d?  U R/                  U5        U R                  R                  R1                  XR2                  US9$ [	        U5      S:X  a^  U R5                  [6        R8                  5        U R/                  U5        U R                  R                  R1                  XR2                  US9$ [;        U5      (       aV  U R/                  U5        U R                  R                  R1                  U[<        R>                  " SSU R2                  5      US9$ X R                  R                  R@                  ;   nU(       a#  U R                  R                  R@                  U   $ 0 n[C        U5      nUb  U R5                  [6        RD                  5        [	        U5      S:X  a  U R5                  [6        R8                  5        U R/                  U5        [        U[        RF                  5      (       aZ  URH                  (       aI  [        U[        RJ                  RL                  RN                  RP                  5      (       d  [S        SSS	/ S
9  [        U[        RF                  5      (       a\  [U        U5      (       aL  U R                  RV                  (       a  [
        RX                  (       d  [S        SSS/ [Z        R\                  QS
9  [_        U5      (       a  [a        U5      bt  URb                  [a        U5      Rb                  :w  aQ  [a        U5      n	U	b  [e        U	Rb                  5      OSn
[S        SSURb                   SU
 3S/ [Z        Rf                  QS
9  [i        XR                  SUS9nU R                  R                  Rj                  Rm                  [<        R>                  " SSU R2                  5      [o        U5      UUS9n[q        U R                  X5        [s        S$U R                  UUUUS.UD6nURu                  5       (       a*  [i        URv                  U R                  [y        US5      SS9  [6        Rz                  n[        U[|        5      (       a   [        U5      (       a  [6        R                  n[        R                  R                  5       =(       a.    [        U[        R                  R                  R                  5      nU(       dD  U R5                  [        R                  " U[        U[        5      (       a  UO
[        U5      S95        [        U5      (       Ga  U(       Ga  U R5                  [6        RD                  5        UR                  5       S   S   nUS:w  a  [        S5      eUR                  5       S   n[        U5      S:X  a&  US   UR                  :X  a  US   UR                  :X  d  [        S5      e[        [y        U R                  S5      R                  [6        R                  5      5        [        [y        U R                  S5      R                  [6        R                  5      5        OoU R5                  [6        R                  5        U R5                  [6        RD                  5        [        [        U5      R                  [6        R                  5      5        UR                  5       u  nnU HU  n[        UU5      n[y        U R                  U5      n[        R                  " [        U R                  U5      " U5      5        MW     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$ )%Nrj  Tr9  guardedrY  rd  z&Attempted to wrap strided NestedTensorr  3torch.compile does not support strided NestedTensorr  zAttempted to wrap sparse Tensorz-torch.compile does not support sparse TensorsNonez.dtype mismatch between tensor and its gradientztensor dtype: z; grad dtype: zmInconsistent dtype between tensor and its gradient. This can happen in FSDP and crashes meta tensor creation.rY  r$  r   )rY  r8  rF  rG  r   _base)rY  r   r$  r@  r   _local_tensorz7Expecting Dtensor inner tensor name to be _local_tensorr   r;   z;Expecting Dtensor flattening ctx to be _spec, requires_grad_specrequires_gradrJ  rF  z(Wrapped Tensor must be this graph's fakeFrZ  r  )br  rY  rZ  r  ru   r<   r  r/  r  r  r  rL  rM  rm  r|   r  r\   r]   r_   rM  prepare_freezingis_specialized_nn_moduleis_fsdp_moduler  r  r&  r  rE   r  rZ   r  r  rQ  infer_subclass_typer  r4  	is_nestednestedr  nested_tensorNestedTensorrD   r#   r  capture_sparse_computer=   SPARSE_TENSORr  r$   rH  rK  r  wrap_to_fake_tensor_and_recordr  r  r  cache_real_value_when_exportwrap_fx_proxy_is_viewr  rO   rR  rY   r^   NOT_NONE_MATCHr  is_availabletensorDTensorr  r  rc   r:   r7   __tensor_flatten__r  r{  r  r  rF   r   r  DTENSOR_SPEC_MATCHr  TENSOR_SUBCLASS_METADATA_MATCHrh   r~  r   r
  ro  r  r  rl   r8  r"   r  rB   r  )r,  r'  r   is_static_inputshould_install_free_tensormake_graph_attributeis_duplicate_tensoroptionsrG  safe_grad_valgrad_strrF  tensor_proxyrX  
guard_type
is_dtensorinner_tensor_nameflattening_ctxattrsrd  attrinner_valueinner_sourcefake_tensor_valuerZ  s                            r  r  VariableBuilder.wrap_tensor  s   " GGNN777771%8D ,,#5%(("4"455 v22MMOO ""50E0G"H"O &,%@%@ &
!&) >&v.>5f= 	#  /  
000 5$&5}}##44 	 &  99;;?S''668811%877>>99yy :   #5)Y6  5 5611%877>>99yy :   f%%11%877>>99'dii8 :   %(J(JJ77>>55f==+E2$ 7 78"5)Y6 5 56 	--e4 uell++uell&<&<&J&J&W&WXX@Q	 uell++e$$WW^^6+H+H
 9K8)778	 %  % ,y/555%e,M3@3Ls=../RXHH(^H:NL6)556" 7ggf
 ww~~11DDFF#S$))4K	 E 
 	%TWWlB' 
ww''
 
 >> +77!&'2	 "..
fj)).Fv.N.N%44J&&335 
*5$$++33;

  !! &f.?@@ *51	 )// ##L$;$;< %*$<$<$>q$A!$D!$7&Q 
 "'!9!9!;A!> '1,&q)U[[8&q)U-@-@@ 'U  t{{G4??$77 t{{O<GG$11 ##L$O$OP##L$;$;<*62==l>W>WX //1HE1%eT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           
      8   [         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        S n[        R                  " 5           UR                  U5      nU(       a  SSKJn  U" U5      nS S S 5        Uc   e[(        R*                  " [-        U R.                  U5      " U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 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 RP                  Ul(        U$ ! [         a/    [        UR                  [         R                  5      (       d   e GNf = f! ["         a!  n[%        S['        U5      S/ US9   S nAGNS nAff = f! , (       d  f       GN= f)Nr   )_utilT)clone_preserve_stridesz)failed to convert numpy.ndarray to TensorzHException encountered when attempting to convert numpy.ndarray to Tensor)r  r  r  r  from_excFr  rY  rd  r9  r   )rE  rY  r8  rF  rG  rF  r"  r#  r$  r%  rZ  r  ))r   r/  r  rc   r  torch._numpyr  flags	writeable
ValueErrorr0  nditerr   temp_restore_stack_try_convert_to_tensortorch._prims_commonr  r  rD   rK  r   r
  ro  rY  r  rZ  r  r  r  r  r&  r  r  rP  r   rQ  r8  r  r  r  r   )r,  r'  r   r  readonlytensor_valuer  r  rF  r8  r  numpy_ndarray_variablerZ  s                r  r  "VariableBuilder.wrap_numpy_ndarray	  sV   ~~%,,,,"4??#45&{{,,,9(,%
 0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 #%+
 '/


# )-%%%O  9 "%**bii88889 ' GJ j  FEsB   -H  J
&I 5II
J&J<J
JJ


Jro  r  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                  [        XPR                  S 5      5        GO[!        U R#                  5       5      (       Gd  Ucf  [$        R&                  R(                  R*                  (       a=  U R-                  [.        R0                  5        [2        R4                  " XR                  S9$ U R                  R                  n[7        U R                  U[8        R:                  " U5      U R                  R<                  R?                  5       S9n[A        U R                  R                  5      nU R                  n	[C        U	[D        5      (       a  U	RG                  5       n	Ub  Un
GO[(        RH                  (       a*  URJ                  [L        L a  [O        SS5        [Q        5       n
O[C        U	[R        5      (       a<  U	RT                  b/  [W        U	RT                  5      R                  USS05      S   (       d  [(        RX                  (       d  [Z        R\                  n
ORURJ                  [L        L a  [O        SS5        U R-                  [.        R0                  5        [2        R4                  " US9$ UR_                  UU R                  U
S9nU R                  R                  R                  R                  [        XPR                  U5      5        O][!        U R#                  5       5      (       d   eU R-                  [.        R0                  5        [2        R4                  " XR                  S9$ [C        U R#                  5       [`        5      (       a   e[c        U R#                  5       Re                  [.        Rf                  5      5        S	U R#                  5       0nU R                  R                  Rh                  Rk                  [l        Rn                  " S
SU R                  5      [        U5      UU R#                  5       S9nURp                  Rr                  n[C        U[t        Rv                  5      (       d
   U S35       eXR                  R                  Rh                  Rx                  U'   [z        R4                  " U R                  X40 UD6nXR                  R                  R
                  U R                  '   [!        U R#                  5       5      (       d3  [}        U R#                  5       USS SUS9URp                  R~                  S'   U$ )Nr@  r  dynamo.automatic_dynamic_shapesTr   Fr@  rV  r   rY  rd  r9  r[  r  rZ  )@r  r  r&  rY  rZ  unspec_variable_mapr  r   r  #force_unspec_int_unbacked_size_liker  r*   r  r  r2   r   rZ   r  r  rM  r<   rK  r  rE   r  r   r  rL   rJ   r  rL  rM  r'   r/  rQ   r  automatic_dynamic_shapesscalarrH   r   $get_automatic_dynamic_shapes_mark_asra   ro  r  assume_static_by_defaultr,   r  r  re   rF   r  r  r  r  r  r  r  r  r  r  bound_symbolsr   r  r  )r,  r'  ro  r  r  wrapped_valuer&  frame_state_entrynormalized_source_namebase_sourcerW  r  r8  r3  
unspec_vars                  r  r  VariableBuilder.wrap_symintS
  sU    E{c!!!99:::77>>55dii@@GGNN,,	CC%<<>M%m4GGNN((//M;;= $DOO$566EMM$8$8$G$G
 ##L$?$?@'..U;;OO;;##D 9#//6+/;;+C+C+^+^+`	! &;4;;;K;K%L"++K+}55)224#&//%,,< A4HBD;44((4--.223IAu:V 44(00 %++|;#$EuM##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:$++DGGUUWU
8B**4995!$//"344*2!#( #0+EJJOOJ' r  c           
      
   U R                   U R                  R                  R                  ;   a-  U R                  R                  R                  U R                      $ [	        U R                  U R
                  R                   [        R                  " U5      U R
                  R                  R                  5       S9n[        R                  R                  R                  (       d  [        U R                  5       5      (       d  [         R"                  " U5      (       d  [         R$                  " U5      (       dl  [        R&                  R                  R(                  R*                  (       d9  [-        SS5      (       d(  [        R.                  (       aP  UR0                  [2        La=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [        R>                  " U[        R@                  S9n[        RB                  RD                  RG                  U5      (       a=  U R5                  [6        R8                  5        [:        R<                  " XR
                  S9$ [I        U R                  5       [J        5      (       a   e[M        U R                  5       RO                  [6        RP                  5      5        [S        U R                  5       5      nXAS.n[U        X0R                  SUS9nU R                  R                  RV                  RY                  [Z        R\                  " SS	U R                   5      [_        U5      UUS
9n[a        U R                  Xs5        [c        [d        4U R                  UUS S.UD6n[I        U[d        5      (       d   eXR                  R                  R                  U R                   '   U R                  Rf                  (       aB  [I        U R                  5       [h        5      (       d  [k        SU SU R                  5        35      eS n	URl                  Rn                  Rp                  S   n[s        U5      (       d   eUn	U	Rt                  U R                  Rt                  L d   SU	Rt                   S35       e[w        U R                  5       USU	SUS9URn                  Rp                  S'   [y        U R                  U R                  R                  Rz                  " SS/[}        U/0 5      Q76 5      n
U R                  R                  R~                  R                  [        U
R                  U R
                  S 5      5        [        5       R                  SSSS9  U
$ )Nr  z.pytorch/compiler:unspecialize_float_killswitchFr@  )rH  )r   	raw_valuer  rY  rd  r9  rY  r8  rF  rG  =Dynamo attempts to add additional input during export: value=	, source=rF  fake mode (^) from fake tensor metadata doesn't match mode({self.tx.fake_mode}) from InstructionTranslatorTr  rZ  call_methodrB  tensorify_float_attempt)	overwrite)Er&  rY  rZ  r  rL   r   rJ   r  rL  rM  r  rM  r<   r  rZ   r  mathisnanisinf	_inductorrw  
cudagraphsr%   r  r  rH   r  rE   r  r   r  r  float64r  r  is_gradtrackingtensorr/  re   rF   r  r  rW   r  r  r  r  r  r  r  rP  r   r  ra   AssertionErrorr8  r  r  r!   r  r  r  r  r   r  r  r2   sym_numr   r  )r,  r'  r  r  r   r  rF  r8  r	  r  r0  s              r  r  VariableBuilder.wrap_symfloat
  s1    99:::77>>55dii@@5GGKK++E2'+{{'?'?'Z'Z'\
 MM  11!$//"344zz%  zz%   %%,,77OQVWW//%,,L@  ; ;<#**{{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!!";TT!Rr  c           	      F   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 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R7                  5       (       a  UR9                  5       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   r  Fr  rY  rd  r9  r  r  r  rF  r  r  Tr  rZ  )#r&  rY  rZ  r  r  r  r/  r  re   rF   r  rE   r  updater  r  r  r  r  r  r  rP  r   rZ   r  ra   r  is_python_constantas_python_constantr8  r  r  r!   r  r  )r,  r'  r  r  rF  r8  r	  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~  !%,,.. * = = ? !+ 0 0 5 5 : :? K=)))) -$..$''2C2CC /99: ;C CC
 +3!#'-#0+EJJOOJ' r  )rp  r&  r   rY  )Tr)  NN)Rr  r  r  r  __doc__rg   rI  rQ  r*  r   r{  rw  r  r  r   r   r  rK  r  classmethodr  r  cacher  r  r  r   r  r  r  r   r  r  r  r  r  r   r  r   r  r  r  r	  r  r	  r   r  r  r   r   r  r   r  r   r  r  r  r   r   r  r4  rm  r  r  r  r  r  r  r  r
   r  r	   r  r  r  r,   r1   r  r  r  r  ra  rb  s   @r  ro  ro    s   = %)	7#7 7 "	7
 
7 7&f  = =? =~
O 
 
F hsCx&8 T#s(^d=R  ;tFHS#X,>$>? ; ; __&d &tFHSRUXDV<V7W &  &P+

3 +<P +
I'"7"7"< I I
[[&&66
	

s 
/J 
 H  H  HD __	c8.4oEFF	G  6Z13 Z1? Z1x"Ps P Pp5c?DI|ZOPp	pd	H 	HO 	HH HO H<eem <8U <u|| D T $c c_ cJ?& ?_ ?B'3 '? ')U ) )  3%01 
	   5'?23 
	   S%s*+  
	  ?CFS%s*+F (C5/#9:;F 
	Fell t J J/ JXS& S& S&p '+04	ww t#w '-	w
 
wrO5 O_ Ob># >/ > >r  ro  objc           	         S n[        U [        5      (       a  U R                  nO[        SSU  S[	        U 5       3SU  S3/ S9  Uc   e/ n[
        R                  " U5       HY  nS nU R                  (       a+  [        U R                  S5      n[        XSR                  5      nUR                  [        X4S95        M[     [        U5      $ )	Nzdataclass fields failurezobj: z; variable type: z$Dataclass fields handling fails for z*. Expected it to be a user-defined object.r  __dataclass_fields__r9  )r/  r   r'  rD   r  r  r  r   rO   rT   r&  r  r   )r(  r'  r  fieldr   base_srcs         r  r  r    s    E#011		.C5 1$s)=>seCmn		
 E##E*::!#**.DEH&x<F.uDE + r  r'  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  r4  r   _is_functional_tensorr"   r  ro   )r'  r  s     r  _clone_inputr/    sZ    %&& uj)) ++E22'.);  &ELr  rY  r  r8  rF  rG  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$ )Nr  rE  r  )rP  r   r   install_global)rY  r8  rF  rG  r  kwargsr  s          r  r  r    sd     &&	
 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  DisableTorchFunctionSubclassr/  r  tracerreal_value_cacher  )rY  r8  rF  s      r  r  r    sW     
yy XX2248D||9ELL))%**5 54	  54s   7A11
A?rE  c                    Uc  [        XX#U40 UD6nO;[        U[        R                  5      (       a  [	        XX#U40 UD6nO[        X1X%X@5      n[        U[        R                  R                  R                  [        R                  R                  R                  45      (       a?  UR                  R                  S:w  a%  UR                  R                  R                  U5        U$ )Nplaceholder)_wrap_fx_proxyr/  r  r4  _wrap_fx_preexisting_tensorhandle_traced_outputrM  	variablesr   r   r  oprZ  current_tracerrecord_tensor_or_symint_vt)rE  rY  r8  rF  rG  r  outs          r  rP  rP    s     )E-
CJ
 
M5<<	0	0)E-
CJ
 #u}

 	''66''77	
 	
 JJMM]*
		  ;;C@Jr  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        [;        XX#XE5      $ ! , (       d  f       N= f! , (       d  f       N,= f)Nr;   r  z1_wrap_fx_preexisting_tensor expected tensor, got r  r8  rF  zplaceholder z* doesn't have 'example_value' in node.metar$  r   rY  r  zN`tensor` needs to be a `FakeTensor`wrapped by this instance of Dynamo. Found: )symbolic_convertr  r/  r  r4  r  rZ  r  r   r  r=  r  rM  r  +_disable_saved_tensors_hooks_during_tracingr"   r  r  r  r  r4  r/  r5  r6  r   r   r  r  rB   construct_tensor_variable)rE  rY  r8  r  rG  r  r  r2  s           r  r:  r:  B  s&    =fell++ 
;DL>J+ b44447wx0<
		 12 zz}}%%**//1 	
5'!KL	
1 ejjoo5 	
zz/0	
5
 
			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H %} 5 =< 
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        [        UUUUUU 5      $ ! , (       d  f       N= f)Nr;   rB  r  rF  T)allow_non_graph_fake)rC  r  r/  rZ  r  r   r  r  r  rM  r  rD  rr   r;  )rE  rY  r8  rF  rG  r  r  s          r  r9  r9    s     =b44447wx0<
		 12%**//1Xejjooo6V5WX1 
			H	H	J 'uzz2DQ	 
K  
  
K	Js   .C
C*c                 H   SS K nSS KnSS Kn[        XR                  5      (       a  [        U 5      (       aK  UR                  (       a  [        R                  (       d%  [        S[        U 5      S/ [        R                  QS9  [        XQX XC5      n[        U[        5      (       d   eUR                  R                   R#                  X'[$        S9  U$ ['        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                  L aG  [9        UR(                  R*                  5      [        Ld   e[;        UR(                  R*                  5      $ UR(                  R*                  UR0                  R<                  L d-  UR(                  R*                  UR>                  R@                  L a  [C        U 5      $ [E        XRF                  5      (       aI  [I        S U  5       5      (       a2  U  Vs/ s H  n[J        RL                  " U5      PM     n	n[O        U	40 UD6$ [        U [P        [R        45      (       Ga  [U        UR(                  U 5        / n
[W        U 5       H  u  pUc'  U
RY                  [J        RL                  " S#0 UD65        M/  URZ                  R]                  S	[^        R`                  X+40 S
9nSU;   a;  [        U [R        5      (       d   eUS   nURc                  5       n[e        UUSS9US'   OUnU
RY                  [g        S$UUUUS.UD65        M     [        XRF                  5      (       a  [O        X40 UD6$ [E        U [P        5      (       a  [i        U
40 UD6$ [E        U [R        [j        45      (       a  [m        U
40 UD6$ U Rn                  Rp                  S:X  d;  ['        U S5      (       d*   SU Rn                  Rp                   S[9        U 5       35       e[s        XRn                  40 UD6$ U b#  UR(                  R*                  URt                  L a  [J        RL                  " S#0 UD6$ [        XRv                  URx                  URz                  45      (       aS  UR                  R|                  R                  X5        [U        UR(                  U 5        [        RL                  " XU 40 UD6$ [        XR                  5      (       a  UR(                  R*                  [        L dB  UR(                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a[  [U        UR(                  U 5        S nUR(                  R*                  [        L a  UR(                  R                  S   n[        X U40 UD6$ [        XR                  5      (       a  UR(                  R*                  [        L dB  UR(                  R*                  [        5        VVs/ s H  u  nnUR                  PM     snn;   a[  S nUR(                  R*                  [        L a  UR(                  R                  S   n[U        UR(                  U 5        [        X U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        UR(                  U 5        [        X S 40 UD6$ UR(                  R*                  S:X  a<  UR(                  R                  S:X  a"  [U        UR(                  U 5        [K        U 40 UD6$ U bq  [        XR                  5      (       aW  UR(                  R*                  S:X  a=  UR(                  R                  S:X  a#  [U        UR(                  U 5        [        X S 40 UD6$ [        U [        5      (       Gae  UR(                  R*                  UR                  [        [^        R`                  UR                  R                  UR                  [^        R                  UR                  R                  R                  UR                  R                  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:X  a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        XR                  R>                  R                  5      (       a%  SSK_J`n  [U        UR(                  U 5        U" U40 UD6$ [        U [        5      (       Gaa  UR(                  R*                  UR0                  R                  UR0                  R                  R                  UR                  R>                  R                  UR                  R>                  R                  UR                  R>                  R                  UR0                  R                  UR0                  R                  UR0                  R                  UR0                  R                  UR0                  R                  S/[S        [        R                  " 5       5      -   ;   a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        U [        [        [        45      (       a  UR(                  R*                  [        L dQ  UR(                  R*                  [        L d4  UR(                  R                  S:X  aG  UR(                  R*                  S:X  a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        U [        5      (       d  UR(                  R*                  S;   a-  [U        UR(                  U 5        [J        RL                  " U 40 UD6$ [        [9        U 5      5      (       al  [        [9        U 5      5      (       a  U nUR                  R                  R                  UR                  R                  U 5      n[        RL                  " UU5      $ [        S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 s  snnf )%Nr   z4Attempted to wrap sparse Tensor with VariableTrackerzBtorch.compile does not support sparse Tensors with VariableTrackerr  )mutation_type_clsr  	set_statec              3   B   #    U  H  n[        U[        5      v   M     g 7fr)  )r/  r  r9  s     r  rk  'handle_traced_output.<locals>.<genexpr>  s      3$1q
1cMs   r]  )kindtargetrC  r2  r   FrH  )rE  rY  r8  rF  ztorch.return_types_fieldsz	expected z. == torch.return_types or named tuple but got queryr  record_eventget_rankget_world_size
bit_lengthr   r   
is_integerrB  )r  	__round__ztorch.* op returned non-Tensorzexample_value type: z; op: z
; target: zUtorch.* ops that return a non-Tensor cannot be traced into the Dynamo FX graph outputr)  r  )ytorch._functorch.vmaptorch._subclasses.fake_tensortorch._utilsr/  r4  r#   r  r<   r  rD   rK  r=   r  rE  r   rZ  r  
_track_objr   r  r  rN  r  rJ  r  	Generatorr  set_rng_stater  r   _DisableFuncTorchr  _is_in_bad_forkr   r   r  r  r   r  r   r  r  r   r  r  r5  r  operatorgetitemr`  rX   rP  r   r4   r   rR  r  r   manual_seedr   SymFloatr  r>  track_produced_symintsr   r  r   rA   current_streamrC  r   r  r   rf  rg  r  r=  r  sym_intr~  _utils_element_sizeseedmodr  vmap_validate_and_get_batch_sizepredispatch_vmap_increment_nesting_vmap_decrement_nestingr  r  _constrain_as_sizebackends
SDPAParamssdpar   rI   _are_functorch_transforms_activeis_batchedtensoris_flash_attention_availablecan_use_flash_attentioncan_use_efficient_attention_get_cudnn_sdp_enabled_get_flash_sdp_enabled_get_mem_efficient_sdp_enabled_get_math_sdp_enabled_get_overrideable_sdp_enabledr   r  r  r   r   r   r   r  r  r  r  r   r   )rF  rY  r8  r  rG  rE  r  r  r:  sizesunpackedr.  r  proxy_ir   	options_ird  device_interfacer-  r   r9  s                        r  r;  r;    s
    !(-.. ''		!>!>NM*`8)778	 (E-
 #////
		))*> 	* 	
 


!!:..JJ&&+5uzz((115883E3EFF:: : ::EJJ%%&c111+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#',+Ih' !(I % #-%&) $	= /P mZZ00  ;7;;M5)) 5W55MD.#9::4G44 ''226JJ=)44 M33>>??mnr  tA  oB  nC  D	5
 &h0G0GS7SS		%**"3"3u7H7H"H&&7w77	MLL%..%--#P	Q	Q
		  77M%**m4%%bJ'JJ=,,//JJ!==			#C#E#EA 	''#E 
 	%**m4:: <<JJOOA&EeEEWEE=++..JJ!==			#C#E#EA 	''#E 
 :: <<JJOOA&E%**m4U5DGDD

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

MMLL&&JJLL!!>>((@@((@@E%%z8<E%%'7B $$
	
( JJMM]*uzz/@/@L/P 	%**m4&&}@@@	M>>#6#6#A#A	B	B,%**m4!%3733	M4	(	(

HH55HH00NN<<NN77NN;;HH++HH++HH33HH**HH22
 388:
;<	<  	%**m4&&}@@@	MC#5	6	6

^+::
*JJMM]*uzz/@/@F/J%**m4&&}@@@	M5	)	)UZZ->->BV-V%**m4&&}@@@	]+	,	,] 344!E..<<NNII
 )//
 	

 	4*7=+A*B&Wabgblblbsbsatuo		
s DLs   * v	vvvc                 4   [        U 5      [        R                  [        R                  R                  [        R
                  R                  R                  [        R
                  R                  R                  4;   d  [        U 5      (       a  g [        U 5      $ r)  )r  r  r4  r  r  rJ  r#  r   r  r  r7   r@  s    r  r  r    sm    E{%%00++<<	 
 
'u	-	-$ E{r  c                    U R                  U5      n[        U[        R                  R                  R
                  5      (       a  UR                  UR                  L a  U(       a  UnO[        U[        R                  R                  5      (       a  [        R                  R                  nOT[        U[        R                  R                  5      (       a  [        R                  R                  nO[        R                  nXTS'   U$ )N
class_type)
specializer/  r  rJ  r#  r   r  r  r  r  r4  )rE  rY  rF  rG  specialized_propstensor_types         r  get_specialized_propsr    s     #--m< 	=%"3"3"?"?"J"JKK##r||3'Kuxx'9'9::((,,Kuxx77((//K,,K*5,'r  c                    [        X1R                  5      n[        UR                  U5        UR                  R                  S:w  a%  UR
                  R                  R                  X25        UR                  [        XX45      5        U " U40 UD6$ )z
Actually construct a tensor variable after all the pre-processing from
wrapping a pre-existing or newly created tensor value.
r8  )
r/  r  r   r  r=  rZ  r>  rc  r   r  )rE  rY  r8  rF  rG  r  s         r  rE  rE    sn     !=Mejj-0
 zz}}%
		  77MNN(VWe'w''r  c                      [         R                  S:X  a  [        R                  $ [         R                  S:X  a  [        R                  $ [        S[         R                   35      e)Ndynamicunbackedz+invalid automatic_dynamic_shapes_mark_as = )r<    automatic_dynamic_shapes_mark_asr,   r  r  r  r  r  r  r  r    sT    ..);!!!		0	0J	>"""9&:a:a9bc
 	
r  _DYNAMIC_SOURCES_DYNAMIC_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf N r  ,)	hashr  compilerr<   dynamic_sourcesr  r  replacesplitcurrent_hashss     r  get_dynamic_sourcesr    s     --==>L #(D(T
 &&66>>sBGMMcRRA 	
R
 $0    
B*B*source_namec                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzA%s was marked dynamic due to dynamic source allowlist pattern: %sTF)r  r  matchr  r  )r  r  patterns      r  r  r    sG    )+O"!RXXg%C%CIIS
  # r  r&  r  c           
         UR                  5       n[        U5      (       d  UR                  5       nUR                  5       nS /U-  n[	        U5       Vs/ s H
  otU   U* 4PM     nnUR                  [        S9  0 n	U H;  u  pU* nU	R                  X5      Xg'   U	R                  XU   -  [        U5      5        M=     O/ n[        U U[        R                  " [        U5      [        U5      5      5      $ s  snf )N)r  )sizer#   stridedimr  sortr+   r  
setdefaultrK   rL   rJ   make_tensorr  )rY  r&  r  ex_size	ex_strider  r  r.  pending
candidatesi_strideneg_is               r  record_automatic_dynamicr  ,  s     ffhGHHJ	eeg#/4Sz:z!aL1"%z:/0
&OHA"x:FI!!(QZ"7QH  ' $
''gfF  ;s   C4_UNBACKED_SOURCES_UNBACKED_SOURCES_CONFIG_HASHc                  ^   [        [        R                  R                  R                  5      n [
        b  [        U :X  a  [
        $ [        R                  R                  R                  R                  SS5      R                  S5       Vs1 s H  nU(       d  M  UiM     snqU q[
        $ s  snf r  )	r  r  r  r<   unbacked_sourcesr  r  r  r  r  s     r  get_unbacked_sourcesr  P  s     -->>?L $)F,)V  
 &&77??RHNNsSSA 	
S
 %1!r  c                     [        5       nU H<  nX :X  d  [        R                  " X 5      (       d  M%  [        R	                  SU U5          g   g)NzC%s was marked unbacked due to unbacked source allowlist pattern: %sTF)r  r  r  r  r  )r  r  r  s      r  r  r  d  sH    +-#!RXXg%C%CIIU
  $ r  r   static_shapes
outer_onlyc                   ^0^1 U R                   (       aI  [        U [        R                  R                  R
                  R                  5      (       d  [        SSS/ S9  UR                  nUR                  R                  R                  R                  U S 5      nU(       a  UR                  O0 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
[        U
[&        5      (       d   e0 n[)        U 5      R+                  U 5      u  pU H(  n[-        X5      n[        X.5      n[!        XUU5      X'   M*     [/        U
R0                  U
R2                  U
R4                  U
R6                  UU
R8                  U
R                  US9$ U(       a  [;        U5      (       ds  ['        [<        R>                  /U RA                  5       -  [<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  UUUS	9$ S
SK"J#m1  [I        U14S jU RK                  5        5       5      (       a  ['        U RK                  5        Vs/ s H8  n[        U[L        5      (       a  [<        RN                  O[<        R>                  PM:     sn[<        RB                  /U RA                  5       -  S /U RA                  5       -  S /U RA                  5       -  UUUS	9$ [Q        XU 5      n[S        U 5      n0 m0S[T        SSS[V        SS 4U04S jjnS
SK,J-n  UR                  R\                  bj  UR                  R\                   HP  n[        UU5      (       a  M  UR^                  U:X  d  M(  U" UR@                  UR`                  UR                  5        MR     / n/ n/ n/ n/ n[c        U RA                  5       5       GH  nU[-        U S[e        5       5      ;   nU[-        U S[e        5       5      ;   nU[-        U S[e        5       5      ;   nU[-        U S[e        5       5      ;   n U[-        U S[e        5       5      ;   n!URg                  [-        U S0 5      R                  U/ 5      5        [i        UR                  5      n"Un	[        U	[j        5      (       a  U	Rm                  5       n	U(       dQ  [        U	[n        5      (       a  U	Rp                  b}  [s        U	Rp                  5      R                  U"US05      U   (       aN  [t        Rw                  SU5        [x        /U RA                  5       -  n#[z        U#U'   U[|        R~                  " U#S9-  n[        R                  =(       a    UR                  U5      n$[        R                  =(       a    UR                  U5      n%[;        U5      (       a  [t        Rw                  SU5        Sn$[        U5      (       a  [t        Rw                  SU5        Sn$U$=(       d    U%n&T0R                  U5      nUGcA  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*R                  c  U*R                  c
  [        SS 9n'OS
S!K"JLn+  U+" [        U*R                  U*R                  S"9SS#9n'O[        SS 9n'OU(       a
  [        SS 9n'OU!(       d4  U&(       a-  [        S$S5        U$(       a	  [        SS 9n'U%(       a	  [        SS 9n(O_U!(       d!  [        R                  (       d  [        S$S5        S n'S n(O2Uu  n'n,S n(U S%U S&3n-U,UR                  R                  R                  U-'   URg                  U'5        URg                  U(5        U(       d  [        U5      (       a  [<        R                  n.OU'c,  U(       d%  U (       d  T1" U RK                  5       U   5      (       a#  U&(       a  [        5       n.OU[<        RN                  n.ODU(       d  [        R                  (       d  U!(       a  [<        R>                  n.O[<        R                  n.U(b  [<        RN                  n/O[<        RB                  n/URg                  U.5        URg                  U/5        GM     ['        UUUUUUUU[-        U S'S 5      S(9	$ s  snf s  sn)f ))NzGEncountered strided NestedTensor in automatic dynamic dim determinationr  r  r  r  T)r  )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   )ri  r  r  s     r  rk  %_automatic_dynamic.<locals>.<genexpr>  s(     
L8a:a 9q)9%998s   14r  constraint_rangeStrictMinMaxConstraintr&  r	  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   r  Fvrrm  )%torch.fx.experimental.symbolic_shapesr  r  )	r  r  r&  r  old_constraint_rangeold_namenew_constraint_rangenew_namedim2constraints	           r  update_dim2constraint1_automatic_dynamic.<locals>.update_dim2constraint  sg     . T-;C-@* #9#&&)=)@)@@$   '4H"6"@N3"2"8N3r  )_RelaxedConstraint_dynamo_strict_unbacked_indices_dynamo_unbacked_indices_dynamo_dynamic_indices_dynamo_weak_dynamic_indices_dynamo_static_indices_specialize_onFz#automatic dynamic %s marked dynamic)r  r  r  _dynamo_dynamic_rangerl  r  )lowerupperr  r  z.size()[]_dynamo_shape_ids)	r  r  r  r  specialize_onr  r  r  	shape_ids)Ur  r/  r  r  r  r  r  rD   r&  rZ  tracing_contexttensor_to_contextr  r  r  rO   _automatic_dynamicr  r7   r.   r  r  r~  r/   r  r  r  r  r  r  r,   r  r  INFER_STRIDEr  r  r  r  r   r  r  rh  r  rK  r  r  export_constraintst_idr  r  r  r  r'   rQ   r  ra   ro  r  r  r  rI   rH   rJ   	make_sizer<   r   is_size_dynamicis_stride_dynamicr  allow_ignore_mark_dynamicr  r  popminmaxr-   r  r9   r   r  source_name_to_debug_namer  r  r  DUCK)2r  rY  r   r  r  r&  prior_policyr  r  r  outer_contextr  r  rd  r  inner_tensorr  r  r  r  r  r  rn  r  r  r  r  r  r.  marked_strict_unbackedmarked_unbackedmarked_dynamicmarked_weak_dynamicmarked_staticr  	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  s2                                                   @@r  r  r  s  s    	{{:	5<<!!//<<  	]M		
 ;;D99,,>>BB1dKL<H88b (
 15zz|| 1.qwwW$Q''
*6T
 -)@AAAA 7--a0D"1+L%f3L#5,$N   ''55)99*;;,??/'550=0a0a)	
 		
 .t44&%,,-7'445?"Vaeeg- $v// 0S
 	
 D

L1668
LLL& !A '1F&;&;
""ARARR! (445?"Vaeeg- $v// 0S
 	
 11= a5DN99$<9DG9	9$ ?	yy##/))66J*&899$&%NNJ$?$?	 7 MOM1557^!"g0#%'
 "
 wq*DceLLga)BCEJJ71.Lce#TTWQ(@#%HHWQ(8"=AA!RHI
 "7v{{!Ck=11%..0K{K00$$0[))*../E5zRSTU II;TB#quuw.I'IaL!4!>!>I!NN ++T0A0Q0QRS0T 	 ++V0A0S0STU0V 	! T""II>E%)"d##II?F%)"2N6N
 $''*
"O $f&F&F$(!1566%&%<%<!%<r!%<!ce  !}},1F*AE*R +A*immT&++
 '>&NO'"9E"J"'8 A4H)&=&MO+(?$(O%$V-L-L#$EuM"&$(!%/"OU $xs!,HFKBII99(C0!!"34066%..L'"QVVXa[))
 !CE)11f==%,,L &??L('//N'44N\*~.K N ##')-#+,O!0$7 z!s   ?c5<c:c:)parent_contextr$  r  c                J   [         R                  " 5       n [        XX#US9UR                  R                  =R
                  [         R                  " 5       U-
  -  sl        $ ! UR                  R                  =R
                  [         R                  " 5       U-
  -  sl        f = f)Nr   r$  r  )ru  rv  $_wrap_to_fake_tensor_and_record_implrZ  rx  !wrap_to_fake_tensor_and_record_ns)r  rY  r   r$  r  rz  s         r  r  r    sx     ,,.C
3&n
 			**LLLLNS 	
L		**LLLLNS 	
Ls   
A! !AB"c          
      Z  ^ ^^^ [        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                  [!        T R"                  5      T[        T 5      5        [%        5          TR&                  c   e[)        U UUU4S j5      nS S S 5        Tb]  [        W[
        5      (       aH  UR*                  =n	b9  TR,                  R.                  R1                  [3        U	[5        T5      T5      5        [        W5      (       ac  UR7                  5       u  pU
 HK  n[9        X5      n[9        T U5      n[        TU5      n[;        UTU[        U[        R                  5      TS9  MM     TTR,                  R<                  R>                  T '   [A        U5      (       a  URB                  (       a  URE                  5       OURG                  5       nURI                  5       SURJ                  -  URI                  5       URM                  5       S.TR,                  RN                  T'   O8URI                  5       URM                  5       S.TR,                  RN                  T'   U(       a  U(       a  TRQ                  5       (       dq  [S        T5      (       da  TR,                  R.                  R1                  [3        UTT5      5        TR,                  RT                  [W        T 5         R1                  T5        U$ T $ ! , (       d  f       GNl= f)N)r  zwrap_to_fake %s %s %s %sc                  :   > TR                   R                  T TTS9$ )N)r   symbolic_context)r  r"  )r  r   r
  rY  s   r  rW  6_wrap_to_fake_tensor_and_record_impl.<locals>.<lambda>  s"    00!%5 1 r  r  )r   )r  r  values_sizevalues_stride)r  r  ),r  r  r4  r  r  r   r/  r7   r   r  rO   rj  r  r  r  r&  r  shaper   r  r   	item_memorZ  r  r  r2   rP   r  r~  r  r  r  r#   	is_sparse_valuesvaluesr  ndimr  input_source_to_sizes_stridesr  rZ   tracked_fakes_id_to_sourcerh  )r  rY  r   r$  r  r  _reasoninner_context_namefake_esym_valr  rd  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		&KK!''NG	
 &'<<+++(F ( 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 ('s   "N
N*c            
          \ rS rSrSrSS jr\\SSS\\	\
      \\\
\
4      -  \\\
S	4      -  \\\
      -  S\4S
 j5       5       r\\SSS\\
   S\4S j5       5       r\\SSS\\
S	4   S\4S j5       5       r\\SSS\\-  \-  \-  S\4S j5       5       r\\SSS\
S\4S j5       5       r\SSS\
S\4S j5       r\S\S\4S j5       r\S\\\S\
/\4   4   4S j5       rSrg)r  i  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  r5  s    r  rQ  SourcelessBuilder.__init__  s    =>>r  rY  r  r'  .c                     g r)  r  rY  r'  s     r  r  SourcelessBuilder.create   s     r  c                     g r)  r  r!  s     r  r  r"  *  s    SVr  c                     g r)  r  r!  s     r  r  r"  .  s     r  c                     g r)  r  r!  s     r  r  r"  4  s     r  c                     g r)  r  r!  s     r  r  r"  :  s    PSr  c           
         [        U5      n[        R                  R                  U5      nU(       a  U" X5      $ [	        U[
        5      (       a  U$ [        [        U5      5      (       aU  [        R                  R                  R                  U R                  R                  U5      n[        R                  " UU5      $ [	        U[        R                   5      (       a  [#        U5      $ [$        R&                  " U5      (       a  [$        R                  " U5      $ [)        U5      (       a_  [*        R,                  " U5      bH  [*        R.                  " U5      (       a  SU R                  l        [*        R,                  " U5      " U5      $ [)        U5      (       aW  [2        R4                  " U5      (       a<  [*        R,                  " UR6                  5      " UR6                  5      n[9        US5      $ [;        U5      (       a  [*        R<                  " U5      " U5      $ [	        U[>        R@                  [        RB                  [        RD                  RF                  RH                  45      (       a  [K        U5      $ [	        U[         [L        RN                  45      (       aJ  [	        U[         5      (       a*  [Q        U[>        R@                  5      (       a  [S        U5      $ [3        U5      $ [	        U[T        RV                  5      (       a  [Y        U5      $ [	        U[T        RZ                  5      (       a  [	        UR6                  [         [L        RN                  45      (       au  []        UR6                  UR^                  R`                  5      U:X  d   e[        R                  XR6                  5      n URc                  XR^                  R`                  5      $ [	        U[        Rf                  Rh                  Rj                  5      (       a  [m        U5      $ [	        U[        Rn                  Rp                  Rr                  5      (       a  [#        U5      $ [t        Rv                  " U5      (       a  [u        U5      $ [x        Rz                  " U5      (       a  [y        U5      $ U[|        R~                  L a  [        U5      $ [	        U[        R                  5      (       a  [        U5      $ [	        U[        R                  R                  R                  R                  5      (       a  [$        R                  " [        U5      5      $ [	        U[        [        R                  R                  5      5      (       a3  [        R                  R                  R                  R                  U5      $ [	        U[T        R                  [T        R                  45      (       a  [        U5      $ [        U5      (       aT  [        [        U5      5       Vs/ s H"  n[        R                  U []        X5      5      PM$     nn[        U[        U5      S9$ [	        U[        R                  5      (       aq  UR                  R                  U R                  R                  ;   aC  U R                  R                  UR                  R                     n	[        R                  " X	5      $ [        U[        5      (       a  [        U5      $ [        SUR                   SUR                   3SU 3/ [        R                  QS9  g ! [d         a     NEf = fs  snf )NTr  )r*  z%Unexpected type in sourceless builderrq  z3SourcelessBuilder.create does not know how to wrap r  )`r  r  _type_handlersr  r/  r   r   r  r  r  r  rZ  r  r   r  r  _HAS_DEFAULT_FACTORY_CLASSr   r   r  r  r@   r  r  r  r   is_supported_new_methodrJ  r   rx   r  r  r  r  r  r  r  r   abcABCMetar  r   r  r  r   r  r~  rG  r  var_getattrr  r  graph_moduleGraphModuler   r  r>  r  r   r  r   r  r  r  r   r  r  r   rM  r<  lazyLazySymNodeFormatStringrK  r  flex_attention_backwardhigher_order_ops&FlexAttentionBackwardHighOrderVariableGenericAlias	UnionTyper   r{   r   r   r   r  r  r  r   r   r*  r   rD   r  r  r=   
DYNAMO_BUG)
rY  r'  
value_typefast_handlerr9  r(  
cls_obj_vtr&  rZ  r8  s
             r  r  r"  >  sC   %[
(77;;JG**e_--L!$u+..#nn@@RR		##UO -33 
 {EEFF,U33((//#**511e__!<!<U!C!O..u55>B		;..u5e<<e__!9!Q!Q"
 "

 --enn=ennMC"3	22#E**%%e,U33DIIu00%((2E2E2S2ST
 
  &&ckk233%&&:eTYY+G+G3E::+E22u6677(//ue..// 5>>D#+++>?? 5>>5>>+B+BCuLLL*11"nnEJ!--b..2I2IJJ uxx44@@AA077u{{22;;<<,U33++E22$U++..u55%e,,ioo%)%00rzz**'..u}}66;;SSTT#**3u:66tE$;$;$S$STUU==**;;bb   2 2EOODEE!%((5!! .d5k::D "((WU-AB:   &fUDDuell++

299#:#::II++EJJOO<E"))"44E6""!%((;!,,-Qz/F/F.GHMj\Z1%001		
I ' .s   0$\- )\=-
\:9\:c                 d    [         R                  " U 5      (       d   e[         R                  " U S9$ )Nr@  )r   r  r  r@  s    r  wrap_constant_literal'SourcelessBuilder.wrap_constant_literal  s*    **51111&&U33r  r  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 [        '   U4S jU [        R                  '   U [
           U [        R                  '   U [
           U [        '   U [           U [        '   U4S jU [        R                  '   S	 U [        R                   '   S
 U ["        R$                  '   S U [&        R(                  '   S U [        R*                  '   S U [        R,                  '   S U [        R.                  R0                  R2                  '   S U [        R4                  R6                  R8                  '   S U [        R4                  R6                  R:                  '   S U [        R4                  R6                  R<                  '   SSS[>        S[>        4S jn[@        RB                   H  nX U'   M	     U $ )Nc                     [        U5      $ r)  )r   r!  s     r  rW  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)r)  )r   r   rY  r'  r:  r  s      r  rW  r@    s)    +$)*EqVB]E*:J:L+
*   +c           	      `   > [        U Vs/ s H  nT" X5      PM     sn[        5       S9$ s  snf rB  )r   r   rC  s      r  rW  r@    s*    1C$)*EqVB]E*:J:L2
*rD  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 rB  )r   r  r  r   rY  r'  r  r  r  s       r  rW  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 rB  )r   r   rC  s      r  rW  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  rW  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  rW  r@    s#    $)*EqVB]E*2
*rJ  c                    > [        [        UR                  5        VVs0 s H  u  p#T" X5      T" X5      _M     snn[        [	        5       S95      $ s  snnf rB  )r   r   r  r  r   rG  s       r  rW  r@    sF    =Q:?++-H-$!r--H.0>
Hs   Ac                     [        U5      $ r)  )r   r!  s     r  rW  r@    s
    6u=r  c                 &    [        U[        5       S9$ rB  r   r   r!  s     r  rW  r@    s    8Q!1!39
r  c                     [        5       $ r)  )r   r!  s     r  rW  r@    s    4G4Ir  c                     [        U5      $ r)  )r   r!  s     r  rW  r@    s
    7KE7Rr  c                 &    [        U[        5       S9$ rB  )r   r   r!  s     r  rW  r@    s    ;Q!1!3<
r  c                 &    [        U[        5       S9$ rB  )r   r   r!  s     r  rW  r@    s    :%5%7r  c                 &    [        U[        5       S9$ rB  rO  r!  s     r  rW  r@        7%5%7r  c                 &    [        U[        5       S9$ rB  rO  r!  s     r  rW  r@    rU  r  c                 &    [        U[        5       S9$ rB  rO  r!  s     r  rW  r@    rU  r  rY  r  r'  r	  c                     U$ r)  r  r!  s     r  passthrough9SourcelessBuilder.make_type_handlers.<locals>.passthrough  s    Lr  )"r  r  rp   r  r6   r  r  r  r  r  r  r  r3   r4   r  r  r  rf  r  r  r  r   r  r  r  r  distributionsconstraints_Real	_Interval
Constraintr  r   all_subclasses)handlersr  rY  r  r  s       @r  make_type_handlers$SourcelessBuilder.make_type_handlers  s    #))  	 'ACHK '
 




 
 -5TN(()#+D> #+D> ,
''( > 	++,'
""# #J%R!!"*
%%& 	!!--BBC 	$$00667 	$$00::; 	$$00;;<	3 	A 	! 	 '55C'SM 6r  r  rF  )r  r  r  r  r%  rQ  r
   r$  r  r  r   r  r  r  r   r  r   r   rI  r  r  rK  r   r   r*  r<  r   rb  r  r  r  r  r  r    s   
? 'CH~
tCH~

uS#X
  tCy/ 
   V.VtCyV\V  V'05c3h	   '04s
U0BS0H	   S.SsSS  Sf
. f
s f
 f
 f
P 4V 4 4 4 Ph/5FGG! P Pr  r  c                   B    \ rS rSrSrSS jr\S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  r5  s    r  rQ  +SourcelessUserDefinedObjectBuilder.__init__
  s    NOOr  rY  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$ rB  )r  r  r   r   r   r/  r  r  r  r   r   )rY  r'  r8  s      r  r  )SourcelessUserDefinedObjectBuilder.create  sg    %[
j.11)%?O?QRRuxx//0%5%7  -UBRBTUUr  r  rF  )r  r  r  r  r%  rQ  r$  r   r   r  r  r  r  r  re  re    s<    P 	V* 	V3 	V? 	V 	Vr  re  r$  r)  )F(  r%  r+  r  r  r`  r  r  r  rf  	itertoolsr  r  r_  r  r  r  ru  r  r  collections.abcr   r   r   typingr   r   r   r	   r
   r   r   r  r  r   torch._dispatch.pythonr   #torch._dynamo.graph_bytecode_inputsr   r   torch._dynamo.utilsr   r   r   r   torch._guardsr   "torch._higher_order_ops.flat_applyr   !torch._higher_order_ops.torchbindr   torch._library.opaque_objectr   r   r   r   
torch._opsr   r   r   rX  r   r    r!   r"   torch._subclasses.meta_utilsr#   r$   torch._utils_internalr%   %torch.fx.experimental._backward_stater&   torch.fx.experimental._dynamismr'   torch.fx.experimental.sym_noder(   r)   r  r*   r+   r,   r-   r.   r/   r0   r1   r2   torch.fx.immutable_collectionsr3   r4    torch.nn.utils._expanded_weightsr5   torch.utils._ordered_setr6   torch.utils._python_dispatchr7   r8   torch.utils._sympy.value_rangesr9   torch.utils.weakr:   r  r<   r=   r>   r?   r@   r  rA   excrB   rC   rD   r  rE   rF   rG   pgorH   rI   rJ   rK   rL   r  rM   r   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   rk   r  rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r0  r   r   r   r   r   r   builtinr   constantr   r   ctx_managerr   r   r   r   r   dictsr   r   r   r   r   r   r   r   r  r   r   r   r   r   	functionsr   r   r   r   r   r   r   r   r   r   r   r   r   r3  r   r   iterr   r0  r   r   listsr   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   rr  r   streamsr   r   r   r  r   r   r   r   r   r   r   r   r   r   torch_functionr   r   r   user_definedr   r   r   r   r   r   r   r   r   r   r   r   r   r   numpyr   ModuleNotFoundErrorrH  torch._dynamo.codegenr  torch._dynamo.symbolic_convertr  r  	getLoggerr  r  r  getArtifactLoggerrl  r  r  r  r  DimListr*  rI  r  r  	dataclassr  rN  r  varsr  rl  r  r  rm  r  r  r  r  r  r  ro  r  r/  r  r  r  rP  r  Proxyr4  r:  r9  r  rK  r;  r  r  rE  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rb  r(  re  r  r  r  <module>r     s  &              	 
    4  V V V    ;  ) 9 <  I H  B 1 ? A E
 
 
 J ; / 8 * T T ? S S A A  '       @! ! ! ! ! ! ! ! !D  % 4 	 	 	     $ ;
 
 
           2  
 ) ( O O $ $ I I I       
       $
 //  !NN44'  
 m$CL
"V " "
	 	 G9 G9 G9T<H <, &/ /Y--// & IcN  +.% s3x /
 "'!>!> $)HHOO$D$D !K' K'\N O    0 (= # * !%!%	# : $;	
  2
#
,/
@C
	
z !%!%$[!$#$ $ :	$
 $;$ $ $Z "&D[!D#D 88>>D LL	D
 $;D D DX !%!% [! #  88>>  :	 
 $;     Hz
z
#z
 88>>z
 #s(^	z

 $;z
 [!z
 z
zq T!Wt^ :#  $;	
 
#s(^2([!(#( 88>>( 	(
 $;( #s(^( (6
j 
 %) #c(T/ (+/ cDj /SX (
3 
4 
#+.38<<@ &* 3s8d? ),0 sTz 0c#h (
C 
D 
( U
U#U U 	U
 U U~ "&


#
 TM	

 
 $J
 	
2 "&n
n#n TM	n
 n $Jn 	nbm m` $5#G#G#I   V VO~  B
s   ^ ^^