§
    ŠŠtjQ  ã                   óz  — d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlZd dlZd dlZd dlZd dlmc mZ d dlmZ g d¢Zej        j        Zej        j        Zej        j        ZdZ ed	¦  «        Z e
d
¦  «        Z  e
d¦  «        Z!deej"        j#                 fd„Z$eded         fd„¦   «         Z%dej&        dej&        deg e'f         ddfd„Z(de)de)deg e'f         ddfd„Z* G d„ d¦  «        Z+de)de)fd„Z,dej"        j#        ee f         dedeee f         ez  fd„Z-eded         fd„¦   «         Z.dS )é    N)ÚCallableÚ	GeneratorÚIterator)Úcontextmanager)ÚTypeVar)Ú	ParamSpec)ÚDispatchKey)Úenable_python_dispatcherÚno_python_dispatcherÚenable_pre_dispatchFÚ_PÚ_TÚ_RÚreturnc               #   ó´   K  — t           j        D ]H} t          t           j        | ¦  «        }|D ])}t          ||¦  «        }|D ]}t          ||¦  «        V — ŒŒ*ŒIdS )aÄ  
    Warning: the set of overloads this will report is very subtle.  It is precisely
    the set of torch.ops functions that have actually been accessed from Python
    (e.g., we actually called torch.ops.aten.blah at some point.  This is DIFFERENT
    from the set of registered operators, which will in general be a larger set,
    as this would include all operators which we ran C++ static initializers or
    Python operator registration on.  This does not eagerly populate the list on
    torch.ops.aten; this list is lazy!

    In other words, this is good for traversing over everything that has an
    OpOverload object allocated in Python.  We use it for cache invalidation, but
    don't rely on this list being complete.

    Note that even if we did report all C++ registered overloads, this isn't guaranteed
    to be complete either, as a subsequent lazy load of a library which triggers more
    registrations could add more things to the set.
    N)ÚtorchÚopsÚgetattr)ÚnsÚpacketsÚop_nameÚpacketÚoverloads        úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dispatch/python.pyÚall_py_loaded_overloadsr      s„   è è € õ$ Œið 0ð 0ˆÝ�%œ) RÑ(Ô(ˆØð 	0ð 	0ˆGÝ˜W gÑ.Ô.ˆFØ"ð 0ð 0�Ý˜f hÑ/Ô/Ð/Ð/Ð/Ð/ð0ð	0ð0ð 0ó    )NNNc               #   óL  K  — t           j                             t           j        j        j        ¦  «        } t           j                             ¦   «         }| rt          j        ¦   «          	 d V — | rt          j        |¬¦  «         d S d S # | rt          j        |¬¦  «         w w xY w)N)Úreapply_views)r   Ú_CÚ&_dispatch_tls_is_dispatch_key_includedr	   ÚFunctionalizeÚ$_functionalization_reapply_views_tlsÚ_disable_functionalizationÚ_enable_functionalization)Úf_tlsÚf_rvs     r   Úsuspend_functionalizationr'   7   s»   è è € åŒH×;Ò;ÝŒÔÔ*ñô €Eõ Œ8×8Ò8Ñ:Ô:€DØð +ÝÔ(Ñ*Ô*Ð*ð@Øˆˆˆàð 	@ÝÔ+¸$Ð?Ñ?Ô?Ð?Ð?Ð?ð	@ð 	@øˆ5ð 	@ÝÔ+¸$Ð?Ñ?Ô?Ð?Ð?ð	@øøøs   Á*B	 Â	B#ÚnvÚrvÚdescc           
      óŠ  — t          |¦  «        st          dt          |¦  «        › �¦  «        ‚|                      ¦   «         |                     ¦   «         k    rCt           |¦   «         › d|                      ¦   «         › d|                     ¦   «         › �¦  «        ‚| j        |j        k    r)t           |¦   «         › d| j        › d|j        › �¦  «        ‚t
          j                             | |d¬¦  «        \  }}|sGt           |¦   «         › d|                      ¦   «         › d|                     ¦   «         › d|› d	�¦  «        ‚d S )
Núdesc must be callable, got z: sizes ú != z: dtype F)Ú	only_cudaz
: strides z (mismatch at index ú))	ÚcallableÚAssertionErrorÚtypeÚsizeÚdtyper   Ú_prims_commonÚcheck_significant_stridesÚstride)r(   r)   r*   Úsame_stridesÚidxs        r   Úcheck_tensor_metadata_matchesr:   F   sM  € õ �D‰>Œ>ð IÝÐG½4À¹:¼:ÐGÐGÑHÔHÐHØ	‡w‚w�y„y�B—G’G‘I”IÒÐÝ  ¡¤ÐJÐJ°·²±	´	ÐJÐJ¸r¿wºw¹y¼yÐJÐJÑKÔKÐKØ	„x�2”8ÒÐÝ  ¡¤ÐHÐH°´ÐHÐH¸b¼hÐHÐHÑIÔIÐIÝÔ+×EÒEØ
ˆB˜%ð Fñ ô Ñ€L�#ð ð 
ÝØˆt‰vŒvÐYÐY §¢¡¤ÐYÐY°"·)²)±+´+ÐYÐYÐSVÐYÐYÐYñ
ô 
ð 	
ð
ð 
r   ÚnÚrc                 ó"  ‡‡	— t          ‰¦  «        st          dt          ‰¦  «        › �¦  «        ‚t          j        | ¦  «        \  }}t          j        |¦  «        \  }}t          |¦  «        t          |¦  «        k    r.t          t          |¦  «        › dt          |¦  «        › �¦  «        ‚t          t          t          |¦  «        ¦  «        ||¦  «        D ]6\  Š	}}t          |t          j
        ¦  «        sŒ!t          ||ˆˆ	fd„¦  «         Œ7d S )Nr,   r-   c                  ó"   •—  ‰ ¦   «         › d‰› �S )Nz output © )r*   Úis   €€r   ú<lambda>z(check_metadata_matches.<locals>.<lambda>d   s   ø€ ¸¸¹¼Ð6LÐ6LÈÐ6LÐ6L€ r   )r0   r1   r2   ÚpytreeÚtree_flattenÚlenÚzipÚrangeÚ
isinstancer   ÚTensorr:   )
r;   r<   r*   Ún_valsÚ_n_specÚr_valsÚ_r_specr(   r)   r@   s
     `      @r   Úcheck_metadata_matchesrM   X   s  øø€ Ý�D‰>Œ>ð IÝÐG½4À¹:¼:ÐGÐGÑHÔHÐHÝÔ)¨!Ñ,Ô,�O€FˆGÝÔ)¨!Ñ,Ô,�O€FˆGõ ˆ6�{„{•c˜&‘k”kÒ!Ð!Ý¥ F¡¤Ð>Ð>µ°V±´Ð>Ð>Ñ?Ô?Ð?Ý��s 6™{œ{Ñ+Ô+¨V°VÑ<Ô<ð Nð N‰	ˆˆ2ˆrÝ˜"�eœlÑ+Ô+ð 	ØÝ% b¨"Ð.LÐ.LÐ.LÐ.LÐ.LÑMÔMÐMÐMðNð Nr   c                   ó*   — e Zd Zdeddfd„Zdefd„ZdS )ÚLitÚsr   Nc                 ó   — || _         d S ©N©rP   )ÚselfrP   s     r   Ú__init__zLit.__init__h   s   € ØˆŒˆˆr   c                 ó   — | j         S rR   rS   )rT   s    r   Ú__repr__zLit.__repr__k   s	   € ØŒvˆr   )Ú__name__Ú
__module__Ú__qualname__ÚstrrU   rW   r?   r   r   rO   rO   g   sQ   € € € € € ð˜#ð  $ð ð ð ð ð˜#ð ð ð ð ð ð r   rO   Úac           	      óØ   — t          | t          j        ¦  «        rOt          dt	          |                      ¦   «         ¦  «        › d|                      ¦   «         › d| j        › d�¦  «        S | S )Nztorch.empty_strided(ú, z, dtype=r/   )rG   r   rH   rO   Útupler3   r7   r4   )r\   s    r   Ú_fmtr`   o   se   € Ý�!•U”\Ñ"Ô"ð ÝØT¥5¨¯ª©¬¡?¤?ÐTÐT°a·h²h±j´jÐTÐTÈ!Ì'ÐTÐTÐTñ
ô 
ð 	
ð ˆr   ÚopÚ	final_keyc                 ó¤   ‡ ‡‡— ddl mŠ ‰ t          j        j        j        j        u r‰S dt          j        dt          j	        dt          fˆˆˆ fd„}|S )Nr   )ÚFakeTensorModeÚargsÚkwargsr   c                  ó†  •‡	‡
‡—  ‰¦   «         Š	dt           dt           t          j        j        j        z  fˆ	fd„}dt           dt           t          j        z  fd„}t          j        j                             ¦   «         5  t          ¦   «         5  t          j        || |f¦  «        \  }}t          j        |||f¦  «        \  Š
Š‰	5   ‰|i |¤Ž}d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y    ‰j        ‰g| ¢R i |¤Ž}dt          fˆˆ
ˆfd„}t          |||¦  «         |S )NÚtr   c                 óJ  •— t          | t          j        ¦  «        �rt          j        | ¦  «        rÛt          j        | ¦  «        }|                      ¦   «         |                     ¦   «         k    r9t          d|                      ¦   «         › d|                     ¦   «         › �¦  «        ‚|                      ¦   «         |                     ¦   «         k    r9t          d|                      ¦   «         › d|                     ¦   «         › �¦  «        ‚n| }‰                     |¦  «        S | S )Nzsize mismatch: r-   zstride mismatch: )	rG   r   rH   Ú_is_functional_tensorÚ_from_functional_tensorr3   r1   r7   Úfrom_tensor)rh   r<   Ú	fake_modes     €r   Úfakeify_defunzCmake_crossref_functionalize.<locals>.handler.<locals>.fakeify_defun„   sû   ø€ Ý˜!�Uœ\Ñ*Ô*ñ 0ÝÔ.¨qÑ1Ô1ð ÝÔ5°aÑ8Ô8�Að
 —v’v‘x”x 1§6¢6¡8¤8Ò+Ð+Ý,Ð-W¸q¿vºv¹x¼xÐ-WÐ-WÈQÏVÊVÉXÌXÐ-WÐ-WÑXÔXÐXØ—x’x‘z”z Q§X¢X¡Z¤ZÒ/Ð/Ý,ØL°·²±
´
ÐLÐLÀÇÂÁ
Ä
ÐLÐLñô ð ð 0ð
 �Aà ×,Ò,¨QÑ/Ô/Ð/ØˆHr   c                 ób   — t          | t          j        ¦  «        r|                      ¦   «         S | S rR   )rG   r   rH   Údetach)rh   s    r   Úmaybe_detachzBmake_crossref_functionalize.<locals>.handler.<locals>.maybe_detach˜   s)   € Ý˜!�Uœ\Ñ*Ô*ð Ø—x’x‘z”zÐ!à�r   c                  ó°   •— d                      t          j        d„ ‰D ¦   «         d„ ‰                     ¦   «         D ¦   «         ¦  «        ¦  «        } ‰› d| › d�S )Nr^   c              3   ód   K  — | ]+}t          t          j        t          |¦  «        ¦  «        V — Œ,d S rR   )ÚreprrB   Útree_mapr`   )Ú.0r\   s     r   ú	<genexpr>zMmake_crossref_functionalize.<locals>.handler.<locals>.desc.<locals>.<genexpr>¯   s6   è è € ÐIÐI¸•T�&œ/­$°Ñ2Ô2Ñ3Ô3ÐIÐIÐIÐIÐIÐIr   c              3   óZ   K  — | ]&\  }}|› d t          j        t          |¦  «        › �V — Œ'dS )ú=N)rB   ru   r`   )rv   ÚkÚvs      r   rw   zMmake_crossref_functionalize.<locals>.handler.<locals>.desc.<locals>.<genexpr>°   sT   è è € ð ð á ˜A˜qð Ð9Ð9�vœ­t°QÑ7Ô7Ð9Ð9ðð ð ð ð ð r   ú(r/   )ÚjoinÚ	itertoolsÚchainÚitems)Úfmt_argsra   Úorig_f_argsÚorig_f_kwargss    €€€r   r*   z:make_crossref_functionalize.<locals>.handler.<locals>.desc¬   sw   ø€ Ø—y’yÝ”ØIÐI¸[ÐIÑIÔIðð à$1×$7Ò$7Ñ$9Ô$9ðñ ô ñô ñô ˆHð Ð&Ð&˜8Ð&Ð&Ð&Ð&r   )r   r   Ú_subclassesÚfake_tensorÚ
FakeTensorrH   ÚutilsÚ_python_dispatchÚ_disable_current_modesr'   rB   ru   Ú_op_dkr[   rM   )re   rf   rn   rq   Úf_argsÚf_kwargsÚf_rr<   r*   rm   r‚   rƒ   rd   rb   ra   s            @@@€€€r   Úhandlerz,make_crossref_functionalize.<locals>.handler�   s]  øøøø€ Ø"�NÑ$Ô$ˆ	ð	�Rð 	¥B­Ô):Ô)FÔ)QÑ$Qð 	ð 	ð 	ð 	ð 	ð 	ð(	�Bð 	¥2­¬Ñ#4ð 	ð 	ð 	ð 	õ ŒKÔ(×?Ò?ÑAÔAð		.ð 		.å%Ñ'Ô'ð		.ð 		.õ  &œ¨}¸tÀV¸nÑMÔMÑˆF�HÝ)/¬Ø˜v xÐ0ñ*ô *Ñ&ˆK˜ð ð .ð .Ø�b˜&Ð- HÐ-Ð-�ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð		.ð 		.ð 		.ñ 		.ô 		.ð 		.ð 		.ð 		.ð 		.ð 		.ð 		.øøøð 		.ð 		.ð 		.ð 		.ð 		.ð 		.ð 		.ñ 		.ô 		.ð 		.ð 		.ð 		.ð 		.ð 		.ð 		.øøøð 		.ð 		.ð 		.ð 		.ð ˆBŒI�iÐ1 $Ð1Ð1Ð1¨&Ð1Ð1ˆð
	'•cð 
	'ð 
	'ð 
	'ð 
	'ð 
	'ð 
	'ð 
	'ð 
	'õ 	˜s A tÑ,Ô,Ð,ØˆsZ   Á<DÂ7C.Ã	CÃC.ÃCÃC.ÃCÃC.Ã"DÃ.C2	Ã2DÃ5C2	Ã6DÄD	ÄD	)Útorch._subclasses.fake_tensorrd   r   r   ÚatenÚ
lift_freshÚdefaultr   re   rf   r   )ra   rb   rŽ   rd   s   `` @r   Úmake_crossref_functionalizer“   x   s   øøø€ ð =Ð<Ð<Ð<Ð<Ð<ð 
�UŒYŒ^Ô&Ô.Ð.Ð.ØÐð8•r”wð 8­"¬)ð 8½ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ðt €Nr   c               #   ó6  K  — t          ¦   «         D ]+} |                      t          j        j        j        ¦  «         Œ,	 t          ¦   «         5  t          j         	                    dd¦  «        5  d V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          ¦   «         D ]+} |                      t          j        j        j        ¦  «         Œ,d S # t          ¦   «         D ]+} |                      t          j        j        j        ¦  «         Œ,w xY w)Nz-torch._dispatch.python.CROSSREF_FUNCTIONALIZET)
r   Ú_uncache_dispatchr   r   r	   r!   r
   ÚunittestÚmockÚpatch)ra   s    r   Úenable_crossref_functionalizer™   À   s¡  è è € å%Ñ'Ô'ð Að AˆØ
×Ò�UœXÔ1Ô?Ñ@Ô@Ð@Ð@ðEå$Ñ&Ô&ð	ð 	åŒM×ÒÐ OÐQUÑVÔVð	ð 	ð ˆEˆEˆEð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ *Ñ+Ô+ð 	Eð 	EˆBØ× Ò ¥¤Ô!5Ô!CÑDÔDÐDÐDð	Eð 	EøÕ)Ñ+Ô+ð 	Eð 	EˆBØ× Ò ¥¤Ô!5Ô!CÑDÔDÐDÐDð	EøøøsS   ¾C Á!BÁ-A>Á2BÁ>B	ÂBÂB	ÂBÂ	C ÂBÂC ÂBÂC Ã<D)/r~   Úunittest.mockr–   Úcollections.abcr   r   r   Ú
contextlibr   Útypingr   Útyping_extensionsr   r   Útorch._CÚ
torch._opsÚtorch.utils._python_dispatchÚtorch.utils._pytreer‡   Ú_pytreerB   r	   Ú__all__r   Ú_DisablePythonDispatcherr   Ú_EnablePythonDispatcherr
   Ú_EnablePreDispatchr   ÚCROSSREF_FUNCTIONALIZEr   r   r   Ú_opsÚ
OpOverloadr   r'   rH   r[   r:   ÚobjectrM   rO   r`   r“   r™   r?   r   r   ú<module>r¬      sÕ  ðØ Ð Ð Ð Ø Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  ð VÐ
UÐ
U€à”xÔ8Ð Ø œ8Ô;Ð Ø”hÔ1Ð àÐ à€Yˆt�_„_€Ø€WˆT�]„]€Ø€WˆT�]„]€ð0 ¨%¬*Ô*?Ô!@ð 0ð 0ð 0ð 0ð4 ð@ 9Ð-=Ô#>ð @ð @ð @ñ „ð@ð
ØŒð
Øœ,ð
Ø.6°r¸3°wÔ.?ð
à	ð
ð 
ð 
ð 
ð$N˜fð N¨ð N°xÀÀCÀÔ7Hð NÈTð Nð Nð Nð Nðð ð ð ð ñ ô ð ðˆFð �vð ð ð ð ðCØŒ
Ô˜b "˜fÔ%ðCØ2=ðCàˆb�"ˆfÔ˜Ñ#ðCð Cð Cð CðP ðE yÐ1AÔ'Bð Eð Eð Eñ „ðEð Eð Er   