ó
    Eñi«  ã                   óÈ   • S SK Jr  S SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  \(       a  S SKJr  S SKJr  / SQr " S S\5      rg)é    )ÚSequence)Úgetattr_static)ÚAnyÚTYPE_CHECKINGÚ	TypeGuard)ÚSource©Ú
SDPAParams)ÚProxyé   )Úcreate_call_function)Úunimplemented)Ú
AttrSourceé   )ÚVariableTracker)Ú	PyCodegen)ÚInstructionTranslator)ÚqueryÚkeyÚvalueÚ	attn_maskÚdropoutÚ	is_causalÚ
enable_gqac            	       óº   ^ • \ rS rSrSr\SSS\S\S\4S j5       r	S	\
S
\\   S\SS4U 4S jjrSS jrS\
4S jrSSS\S\4S jr\S\S\S   4S j5       rSrU =r$ )ÚSDPAParamsVariableé   zaRepresents the c++ params struct for scaled dot product attention.
This is a read-only container.Útxr   r   ÚsourceÚreturnc                 óÌ   • SSK Jn  [         Vs/ s H-  n[        R                  " U [        X5      [        X$5      5      PM/     nnU" [        5      R                  X0 5      $ s  snf )Nr   )ÚTorchInGraphFunctionVariable)	Útorchr"   ÚPARAM_NAMESr   ÚbuildÚgetattrr   r
   Úcall_function)r   r   r   r"   ÚpÚparamss         ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/sdpa.pyÚcreateÚSDPAParamsVariable.create"   sb   € õ 	8õ !ó
â �ô ×!Ò! "¤g¨eÓ&7¼ÀFÓ9NÖOÙ ð 	ð 
ñ ,¬JÓ7×EÑEÀbÐRTÓUÐUùò	
s   �4A!ÚproxyÚ
param_varsÚkwargsNc                 ó>   >• Xl         X l        [        TU ]  " S0 UD6  g )N© )r-   r.   ÚsuperÚ__init__)Úselfr-   r.   r/   Ú	__class__s       €r*   r3   ÚSDPAParamsVariable.__init__.   s   ø€ ð Œ
Ø$ŒÜ‰ÒÑ"˜6Ó"ó    c                 óþ   ^• U R                   b   eU R                  c   eTR                  U4S j5        TR                  U R                  5        TR	                  [        [        U R                  5      S5      5        g )Nc                  ó(   >• T R                  SS5      $ )Nztorch._CÚ_SDPAParams)Úload_import_from)Úcodegens   €r*   Ú<lambda>Ú0SDPAParamsVariable.reconstruct.<locals>.<lambda>9   s   ø€ �G×,Ñ,¨Z¸ÔGr7   F)r   r.   Úadd_push_nullÚforeachÚextend_outputr   Úlen)r4   r<   s    `r*   ÚreconstructÚSDPAParamsVariable.reconstruct5   se   ø€ Ø�{‰{Ñ"Ð"Ð"Ø�‰Ñ*Ð*Ð*Ø×ÑÜGô	
ð 	�‰˜Ÿ™Ô(Ø×ÑÔ2´3°t·±Ó3GÈÓOÕPr7   c                 ó   • U R                   $ ©N)r-   )r4   s    r*   Úas_proxyÚSDPAParamsVariable.as_proxy>   s   € Ø�z‰zÐr7   Únamec                 óp  • SS K nSSKJn  SSKJn   [        UR                  R                  U5        UR                  U R                  5       U5      nU R                   b  U" X[#        U R                   U5      S
9$ U" XS9$ ! [         a+    SS K	J
s  Jn  [        SSU 3SU S3/ UR                  QS	9   N‚f = f)Nr   r   )Úwrap_fx_proxy)ÚGetAttrVariablez*unsupported torch._C._SDPAParams attributezname: zUnable to fetch attribute z from torch._C._SDPAParams.)Úgb_typeÚcontextÚexplanationÚhints)r   r-   r   )r   r-   )Útorch._CÚbuilderrK   ÚmiscrL   r   Ú_Cr:   ÚAttributeErrorÚtorch._dynamo.graph_break_hintsÚ_dynamoÚgraph_break_hintsr   Ú
USER_ERRORÚcreate_getattr_proxyrG   r   r   )r4   r   rI   r#   rK   rL   rX   r-   s           r*   Úvar_getattrÚSDPAParamsVariable.var_getattrA   s½   € Ûå*Ý)ð	Ü˜5Ÿ8™8×/Ñ/°Ô6ð  ×4Ñ4°T·]±]³_ÀdÓKˆØ�;‰;Ñ"Ù Ø¬:°d·k±kÀ4Ó+Hñð ñ ! BÑ4Ð4øô% ó 
	ßGÐGäØDØ   ˜Ø8¸¸Ð>YÐZðØ&×1Ñ1ðô	ð
	ús   ’ B  Â 2B5Â4B5r
   c                 ó   • U [         L $ rF   r	   )r   s    r*   Úis_sdpa_paramsÚ!SDPAParamsVariable.is_sdpa_params]   s   € àœ
Ð"Ð"r7   )r.   r-   )r<   r   r    N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ústaticmethodr   r   r   r+   r   r   r3   rC   rG   Ústrr[   r   r^   Ú__static_attributes__Ú__classcell__)r5   s   @r*   r   r      sÀ   ø† ñ&ð ð	VØ#ð	VØ,/ð	VØ9?ð	Và	ó	Vó ð	Vð#Øð#Ø(0°Ñ(Að#ØMPð#à	÷#ôQð˜%ô ð5Ð5ð 5¸Sð 5À_ô 5ð8 ð#˜cð # i°Ñ&=ó #ó ö#r7   r   N)Úcollections.abcr   Úinspectr   Útypingr   r   r   Útorch._guardsr   Útorch.backends.cudar
   Útorch.fx.proxyr   Úbytecode_transformationr   Úexcr   r   r   Úbaser   Útorch._dynamo.codegenr   Útorch._dynamo.symbolic_convertr   r$   r   r1   r7   r*   Ú<module>rt      sF   ðÝ $Ý "ß 0Ñ 0å  Ý *Ý  å :Ý Ý Ý !ö Ý/ÝDò€ôA#˜õ A#r7   