§
    ŠŠtjoL  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dlm	Z	 d dlm
Z
mZmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lm Z m!Z!  ed¦  «        Z" ed¦  «        Z#ededej$        defd„¦   «         Z%ededej$        defd„¦   «         Z%ededej$        defd„¦   «         Z%edddej$        ddfd„¦   «         Z%d„ Z%dede&defd„Z'd„ Z( G d„ d¦  «        Z)dedefd„Z*	 d1dededej+        dz  fd„Z,dede-fd „Z.d!ed"eddfd#„Z/d$d%œd!ed"ed&e-fd'„Z0d$d$d$d(œd)e1d&e-d*e-d+e-deee#e"f         gee#e"f         f         f
d,„Z2d-efd.„Z3d/„ Z4d-ee#e"f         dee#e"ez  f         fd0„Z5dS )2é    N)ÚCallableÚSequence)Úwraps)ÚGenericAlias)Ú
NamedTupleÚoverloadÚTypeVar)Ú	ParamSpec)ÚCustomOutParamAnnotationÚELEMENTWISE_TYPE_PROMOTION_KINDÚNumberÚ
NumberTypeÚ	ShapeTypeÚ
TensorLikeÚTensorLikeType)Ú_pytree)Ú
_fast_bind)Útree_flattenÚtree_unflattenÚ_TÚ_PÚaÚdtypeÚreturnc                 ó   — d S ©N© ©r   r   s     úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_prims_common/wrappers.pyÚ_maybe_convert_to_dtyper        ó	   € ð 	€Dó    c                 ó   — d S r   r   r   s     r   r    r    &   r!   r"   c                 ó   — d S r   r   r   s     r   r    r    ,   r!   r"   c                 ó   — d S r   r   r   s     r   r    r    2   s   € à€Dr"   c                 ó~  ‡— t          | t          ¦  «        r"| j        ‰k    r|                      ‰¦  «        S | S t          | t          ¦  «        r t          j        ‰¦  «        | ¦  «        S t          | t          ¦  «        rt          ˆfd„| D ¦   «         ¦  «        S | €d S t          dt          | ¦  «        › d�¦  «        ‚)Nc              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r   ©r    )Ú.0Úxr   s     €r   ú	<genexpr>z*_maybe_convert_to_dtype.<locals>.<genexpr>@   s.   øè è € ÐBÐB¸1Õ,¨Q°Ñ6Ô6ÐBÐBÐBÐBÐBÐBr"   zReceived unsupported type z+. Expected TensorLike, Number, or Sequence.)Ú
isinstancer   r   Útor   ÚutilsÚdtype_to_type_ctorr   ÚtupleÚ
ValueErrorÚtyper   s    `r   r    r    8   sÌ   ø€ Ý�!•ZÑ Ô ð ØŒ7�eÒÐØ—4’4˜‘;”;ÐØˆÝ�!•VÑÔð 2Ø.�uÔ'¨Ñ.Ô.¨qÑ1Ô1Ð1Ý�!•XÑÔð CÝÐBÐBÐBÐBÀÐBÑBÔBÑBÔBÐBð 	€yØˆtå
ØY¥T¨!¡W¤WÐYÐYÐYñô ð r"   Útypc                 ó  — t          | t          ¦  «        s"dt          | ¦  «        › d�}t          |¦  «        ‚t	          j        t          | ¦  «        |¦  «        s(d| › dt          | ¦  «        › d|› d�}t          |¦  «        ‚ || ¦  «        S )NzFound unknown type z  when trying to convert scalars!zScalar z	 of type z cannot be safely cast to type ú!)r,   r   r2   r1   r.   Úis_weakly_lesser_type)r   r3   Úmsgs      r   Ú_maybe_convert_to_typer8   K   s�   € Ý�a�Ñ Ô ð ØM¥D¨¡G¤GÐMÐMÐMˆÝ˜‰oŒoÐÝÔ&¥t¨A¡w¤w°Ñ4Ô4ð ØR˜ÐRÐR¥D¨¡G¤GÐRÐRÈCÐRÐRÐRˆÝ˜‰oŒoÐàˆ3ˆq‰6Œ6€Mr"   c                 ón   ‡ — t          j        |¦  «        }|rt          ˆ fd„|D ¦   «         ¦  «        S ‰ |u S )Nc              3   ó:   •K  — | ]}t          ‰|¬ ¦  «        V — ŒdS ))r3   Ú
annotationN)Ú_annotation_has_type)r)   r   r3   s     €r   r+   z'_annotation_has_type.<locals>.<genexpr>Y   s1   øè è € ÐMÐMÀ1Õ'¨C¸AÐ>Ñ>Ô>ÐMÐMÐMÐMÐMÐMr"   )ÚtypingÚget_argsÚany)r3   r;   Úargss   `  r   r<   r<   V   sI   ø€ ÝŒ?˜:Ñ&Ô&€DØð NÝÐMÐMÐMÐMÈÐMÑMÔMÑMÔMÐMØ�*ÐÐr"   c                   óJ   — e Zd ZdZddœdedee         dz  fd„Zdedefd	„Z	dS )
Ú"elementwise_type_promotion_wrappera  
    Adds elementwise type promotion to a Python reference implementation.

    Takes two kwargs, type_promoting_args and type_promotion_kind.

    type_promoting_args must be a string Sequence specifying the argument names of all
    arguments that participate in type promotion (and should be type promoted). If the
    arg specifies a Sequence-type then every element of the Sequence will participate in
    type promotion.

    type_promotion_kind must be one of the kinds specified by ELEMENTWISE_TYPE_PROMOTION_KIND.
    See its documentation for details.

    The return_dtype will be coerced to the wrapped function's dtype arg if it is available and
    not None.

    Other type promotion behavior, like validating the Python type of scalar arguments, must
    be handled separately.
    N)Útype_promoting_argsÚtype_promotion_kindrC   c                ó"   — || _         || _        d S r   )Útype_promoting_arg_namesrD   )ÚselfrD   rC   s      r   Ú__init__z+elementwise_type_promotion_wrapper.__init__r   s   € ð )<ˆÔ%Ø#6ˆÔ Ð Ð r"   Úfnr   c                 óž   ‡ ‡‡— t          j        ‰¦  «        Št          j        t	          ‰¦  «        ˆˆ ˆfd„¦   «         ¦   «         }‰|_        |S )Nc                  óJ  •‡‡‡	— t          ‰g| ¢R i |¤ŽŠt          ˆfd„‰j        D ¦   «         ¦  «        }t          j        |Ž }t          j        |d‰j        iŽ\  ŠŠ	ˆˆfd„‰j        D ¦   «         }‰j         	                    |¦  «          ‰
di ‰j        ¤Ž}d‰j        v r‰j        d         }|r|Š	t          |t          ¦  «        rt          |‰	¦  «        S t          |t          ¦  «        rt          ˆ	fd„|D ¦   «         ¦  «        S t          dt          |¦  «        › �¦  «        ‚)Nc              3   óD   •K  — | ]}|‰j         v ¯‰j         |         V — Œd S r   )Ú	arguments)r)   r*   Úbounds     €r   r+   zKelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<genexpr>„   sC   øè è € ð (ð (àØ˜œÐ'Ð'ð ” Ô"à'Ð'Ð'Ð'ð(ð (r"   rD   c                 óZ   •— i | ]'}|‰j         v ¯|t          ‰j         |         ‰¦  «        “Œ(S r   )rM   r    )r)   r*   rN   Úcompute_dtypes     €€r   ú
<dictcomp>zLelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<dictcomp>�   sD   ø€ ð ð ð àØ˜œÐ'Ð'ð Õ*¨5¬?¸1Ô+=¸}ÑMÔMà'Ð'Ð'r"   r   c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r   r(   )r)   r*   Úresult_dtypes     €r   r+   zKelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<genexpr>¢   s.   øè è € ÐVÐVÈ!Õ4°Q¸ÑEÔEÐVÐVÐVÐVÐVÐVr"   zUnhandled result type: r   )r   r0   rF   ÚpytreeÚarg_tree_leavesr.   Úelementwise_dtypesrD   rM   Úupdater,   r   r    r   ÚAssertionErrorr2   )r@   ÚkwargsrC   Úflattened_type_promoting_argsÚpromoted_argsÚresultÚmaybe_dtyperN   rP   rS   rI   rG   Úsigs          @@@€€€r   Ú_fnz8elementwise_type_promotion_wrapper.__call__.<locals>._fn€   s‘  øøøø€ õ ˜sÐ4 TÐ4Ð4Ð4¨VÐ4Ð4ˆEÝ"'ð (ð (ð (ð (àÔ6ð(ñ (ô (ñ #ô #Ðõ -3Ô,BÐDWÐ,XÐ)Ý*/Ô*BØ.ð+à$(Ô$<ð+ð +Ñ'ˆM˜<ð
ð ð ð ð àÔ6ðñ ô ˆMð
 ŒO×"Ò" =Ñ1Ô1Ð1à�RÐ*Ð*˜%œ/Ð*Ð*ˆFð ˜%œ/Ð)Ð)Ø#œo¨gÔ6�Øð /Ø#.�Lå˜&¥*Ñ-Ô-ð EÝ.¨v°|ÑDÔDÐDÝ˜&¥(Ñ+Ô+ð WÝÐVÐVÐVÐVÈvÐVÑVÔVÑVÔVÐVÝ Ð!I½4À¹<¼<Ð!IÐ!IÑJÔJÐJr"   )ÚinspectÚ	signatureÚtorchÚ_disable_dynamor   Ú__signature__)rG   rI   r_   r^   s   `` @r   Ú__call__z+elementwise_type_promotion_wrapper.__call__{   so   øøø€ ÝÔ Ñ#Ô#ˆõ 
Ô	Ý	ˆr‰Œð!	Kð !	Kð !	Kð !	Kð !	Kð !	Kñ 
Œñ 
Ô	ð!	KðF  ˆÔØˆ
r"   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚstrrH   r   re   r   r"   r   rB   rB   ]   s€   € € € € € ðð ð0 59ð	7ð 7ð 7ð =ð7ð & cœ]¨TÑ1ð	7ð 7ð 7ð 7ð+˜8ð +¨ð +ð +ð +ð +ð +ð +r"   rB   ÚoutÚshapec                 óÊ   — t          j        | j        |¦  «        rdS |                      ¦   «         dk    r.dt	          | j        ¦  «        › d�}t          j        |d¬¦  «         dS )NFr   zCAn output with one or more elements was resized since it had shape a   which does not match the required output shape {str(shape)}. This behavior is deprecated, and in a future PyTorch release outputs will not be resized unless they have zero elements. You can explicitly reuse an out tensor t by resizing it, inplace, to zero elements with t.resize_(0).é   )Ú
stacklevelT)r.   Ú
same_shaperl   Únumelrj   ÚwarningsÚwarn)rk   rl   r7   s      r   Ú_resize_output_checkrt   ª   sy   € åÔ˜œ	 5Ñ)Ô)ð ØˆuØ
‡y‚y�{„{�aÒÐðtÕRUÐVYÔV_ÑR`ÔR`ð tð tð tð 	õ 	Œ�c aÐ(Ñ(Ô(Ð(Øˆ4r"   Úmemory_formatc                 óT   — t          | |¦  «        r|                      ||¬¦  «        S | S )N)ru   )rt   Úresize_)rk   rl   ru   s      r   Ú_maybe_resize_outrx   »   s1   € õ
 ˜C Ñ'Ô'ð Ø�{Š{˜5°ˆ{Ñ>Ô>Ð>àˆ
r"   r*   c                 óR   — |                       ¦   «         dk    o| j        j        dk    S )Nr   Úcpu)ÚdimÚdevicer2   )r*   s    r   Úis_cpu_scalarr}   Æ   s"   € Ø�5Š5‰7Œ7�aŠ<Ð2˜AœHœM¨UÒ2Ð2r"   Ú	copy_fromÚcopy_toc                 ój   — | j         |j         k    r"d| j         › d|j         › d�}t          |¦  «        ‚d S )NzAttempting to copy from device z to device z*, but cross-device copies are not allowed!)r|   ÚRuntimeError)r~   r   r7   s      r   Úcheck_copy_devicesr‚   Ê   s]   € ØÔ˜7œ>Ò)Ð)ðT¨iÔ.>ð Tð TØ œðTð Tð Tð 	õ ˜3ÑÔÐð *Ð)r"   F)Úexact_dtyperƒ   c                 ó2  ‡ ‡— t          ‰ ¦  «        st          ‰ ‰¬¦  «         |r(t          j        ‰ j        ‰j        k    ˆ ˆfd„¦  «         n7t          j        t          j        ‰ j        ‰j        ¬¦  «        ˆ ˆfd„¦  «         ‰                     ‰ ¦  «        S )N©r~   r   c                  ó*   •— d‰ j         › d‰j         › d�S )Nz"Expected out tensor to have dtype z	 but got z instead©r   r…   s   €€r   ú<lambda>z _safe_copy_out.<locals>.<lambda>Þ   s,   ø€ ð /¸¼ð /ð /Ø”}ð/ð /ð /€ r"   )Ú	cast_fromÚcast_toc                  ó*   •— d‰ j         › d‰j         › d�S )NzAttempting to cast from z to out tensor with dtype z0, but this can't be cast because it is not safe!r‡   r…   s   €€r   rˆ   z _safe_copy_out.<locals>.<lambda>ä   s-   ø€ ð =¨y¬ð =ð =ÐZaÔZgð =ð =ð =€ r"   )r}   r‚   rb   Ú_checkr   r.   Úcan_safe_cast_toÚcopy_©r~   r   rƒ   s   `` r   Ú_safe_copy_outr�   Ó   sÌ   øø€ õ ˜Ñ#Ô#ð AÝ Y¸Ð@Ñ@Ô@Ð@ð ð 
ÝŒØŒO˜wœ}Ò,ð/ð /ð /ð /ð /ñ	
ô 	
ð 	
ð 	
õ 	ŒÝÔ"¨Y¬_ÀgÄmÐTÑTÔTð=ð =ð =ð =ð =ñ	
ô 	
ð 	
ð �=Š=˜Ñ#Ô#Ð#r"   )rƒ   Úpass_is_outÚpreserve_memory_formatÚ	out_namesr‘   r’   c                 óì   ‡ ‡‡‡‡‡‡— dŠt          ‰¦  «        dk    r‰Št          ‰¦  «        dk    Šˆfd„Šdt          t          t          f         dt          t          t          f         fˆˆ ˆˆˆˆfd„}|S )N)rk   r   é   c                 ó4   •— ‰rt          j        | ¦  «        nd S r   )r.   Úsuggest_memory_format)Útr’   s    €r   Úmaybe_compute_memory_formatz0out_wrapper.<locals>.maybe_compute_memory_formatþ   s   ø€ Ø1GÐQ�uÔ*¨1Ñ-Ô-Ð-ÈTÐQr"   rI   r   c                 óÚ  •‡ ‡‡‡‡	— ‰rt           nEt          t          t          d„ t          t	          ‰¦  «        ¦  «        D ¦   «         ¦  «        ¦  «        }‰rt           nJt          j        t          t          d„ t          t	          ‰¦  «        ¦  «        D ¦   «         ¦  «        ¦  «        }‰rt           n!t          d‰ j        › �d„ ‰D ¦   «         ¦  «        Št          j	        ‰ ¦  «        Š	dŠt          ˆ	fd„‰D ¦   «         ¦  «        Št          ‰ ¦  «        dt          j        dt          j        fˆˆˆ ˆˆˆˆˆˆf	d	„¦   «         }t          j        d
t          j        j        d|¬¦  «        }t#          ‰	j        t&          t(          f¦  «        s.‰	j        ‰	j        ||fv st-          d‰	j        › d|› d|› �¦  «        ‚g ‰	j                             ¦   «         ¢|‘R }t3          |d„ ¬¦  «        }t          j        |‰¬¦  «        |_        t9          t;          ‰ di ¦  «        ¦  «        |_        ||j        d
<   ‰|j        d<   ‰r‰‰
k    r‰d         |j        t>          <   dt@          j!        › d�|_"        |S )z?
        Adds the out parameter to a Python reference.
        c              3   ó$   K  — | ]}t           V — Œd S r   ©r   ©r)   Ú_s     r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>	  ó"   è è € ÐKÐK°�^ÐKÐKÐKÐKÐKÐKr"   c              3   ó$   K  — | ]}t           V — Œd S r   rœ   r�   s     r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>  rŸ   r"   Úreturn_types_c                 ó    — g | ]}|t           f‘ŒS r   rœ   )r)   Úos     r   ú
<listcomp>z5out_wrapper.<locals>._out_wrapper.<locals>.<listcomp>  s   € Ð8Ð8Ð8¨�!•^Ð$Ð8Ð8Ð8r"   )r|   r   c              3   ó*   •K  — | ]}|‰j         v V — Œd S r   )Ú
parameters)r)   Úpr^   s     €r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>!  s*   øè è € ÐHÐH°A˜A ¤Ð/ÐHÐHÐHÐHÐHÐHr"   r@   rY   c                  óh  •	‡ ‡‡— |                      dd ¦  «        Š‰r ‰�‰
D ]}t          ‰|¦  «        }||vr|||<   Œˆ fd„}t          ‰t          t          f¦  «        r‰D ]} ||¦  «         Œn |‰¦  «         ‰r ‰‰ d‰d ui|¤ŽŠn ‰‰ i |¤ŽŠ‰t
          u rt
          S t          ‰t          ¦  «        r‰s�t          ‰t          ¦  «        r t          ‰¦  «        t          ‰¦  «        k    sL‰j        dk    rt          ‰t          t          f¦  «        s%t          dt          ‰¦  «        › d‰› d‰› �¦  «        ‚‰��m‰rq‰j        dk    rft          ‰t          ¦  «        st          dt          ‰¦  «        › �¦  «        ‚t          ‰‰j         ‰‰¦  «        ¦  «         t          ‰‰‰	¬	¦  «         nü‰j        dk    r5t          ‰t          ¦  «        st          d
t          ‰¦  «        › �¦  «        ‚n;t          ‰t          t          f¦  «        st          dt          ‰¦  «        › �¦  «        ‚t          j        t          ‰¦  «        t          ‰¦  «        k    ˆˆfd„¦  «         t!          ‰‰¦  «        D ]6\  }}t          ||j         ‰|¦  «        ¦  «         t          ||‰	¬	¦  «         Œ7n‰Š‰r‰n ‰‰Ž S )Nrk   c                 óž   •— t          | t          ¦  «        r4t          ‰d         t          ¦  «        rt          ‰d         | ¬¦  «         d S d S d S )Nr   r…   )r,   r   r‚   )rk   r@   s    €r   Úmaybe_check_copy_deviceszPout_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.maybe_check_copy_devices,  sa   ø€ Ý˜c¥:Ñ.Ô.ð Gµ:¸dÀ1¼gÅzÑ3RÔ3Rð GÝ&°°a´À#ÐFÑFÔFÐFÐFÐFðGð Gð Gð Gr"   Úis_outÚunbindzUnexpected result type: z, is_tensor=z, out_names=zout must be TensorLike, got r�   zout must be tuple, got zout must be list or tuple, got c                  óH   •— dt          ‰¦  «        › dt          ‰ ¦  «        › �S )Nzexpected tuple of z elements but got )Úlen)rk   r\   s   €€r   rˆ   z@out_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.<lambda>w  s(   ø€ Ð ^µS¸±[´[Ð ^Ð ^ÕTWÐX[ÑT\ÔT\Ð ^Ð ^€ r"   )ÚpopÚgetattrr,   r0   ÚlistÚNotImplementedr   r®   rf   rX   r2   rx   rl   r�   rb   Ú_check_typeÚzip)r@   rY   ÚkÚout_attrrª   r£   Úrrk   r\   rƒ   Úfactory_kwargsrI   Úis_factory_fnÚ	is_tensorr™   r“   r‘   Úreturn_types   `      @@€€€€€€€€€r   r_   z.out_wrapper.<locals>._out_wrapper.<locals>._fn#  sš  øøøø€ à—*’*˜U DÑ)Ô)ˆCØð -  Ø'ð -ð -�AÝ& s¨A™œ�HØ ��Ø$,˜˜q™	øðGð Gð Gð Gð Gõ ˜#¥¥t˜}Ñ-Ô-ð .Øð 0ð 0�AØ,Ð,¨QÑ/Ô/Ð/Ð/ð0ð )Ð(¨Ñ-Ô-Ð-àð -Ø˜˜TÐF¨3°d¨?ÐF¸vÐFÐF��à˜˜TÐ, VÐ,Ð,�Ø�Ð'Ð'Ý%Ð%å˜F¥JÑ/Ô/ðØ4=ðõ ˜v¥uÑ-Ô-ðõ ˜F™œ¥s¨9¡~¤~Ò5Ð5ð ”K 8Ò+Ð+µ
¸6ÅDÍ%À=Ñ0QÔ0QÐ+õ %ð-­t°F©|¬|ð -ð -Èð -ð -Ø!*ð-ð -ñô ð ð
 ‰ð" ð  X ¤°Ò!8Ð!8Ý% c­:Ñ6Ô6ð Ý,ØF½4À¹9¼9ÐFÐFñô ð õ &ØØœØ3Ð3°FÑ;Ô;ñô ð õ
 #Ø"(Ø #Ø$/ðñ ô ð ð ð ”{ hÒ.Ð.Ý)¨#­uÑ5Ô5ð XÝ"0Ð1VÍ4ÐPSÉ9Ì9Ð1VÐ1VÑ"WÔ"WÐWðXõ  *¨#µµe¨}Ñ=Ô=ð Ý"0Ø MÅ$ÀsÁ)Ä)Ð MÐ Mñ#ô #ð õ Ô%Ý˜C™œ¥C¨¡K¤KÒ/Ø^Ð^Ð^Ð^Ð^ñô ð õ !$ F¨CÑ 0Ô 0ð Xð X™˜˜1å)¨!¨Q¬WÐ6QÐ6QÐRSÑ6TÔ6TÑUÔUÐUÝ&°¸AÈ;ÐWÑWÔWÐWÐWðXð
 �à#Ð:�3�3¨¨°cÐ):Ð:r"   rk   N)ÚkindÚdefaultr;   zUnexpected return annotation: z , expected str, TypeVar, empty, z, or c                 ó   — | j         S r   )r¼   )r§   s    r   rˆ   z3out_wrapper.<locals>._out_wrapper.<locals>.<lambda>–  s   € ¨a¬f€ r"   )Úkey)r¦   Úreturn_annotationÚ__annotations__r   r   zThis function is wrapped by z.out_wrapper)#r   r   r0   Úranger®   Útypesr   rf   r`   ra   Úallr   r   r@   rY   Ú	ParameterÚKEYWORD_ONLYr,   rÀ   rj   r	   ÚemptyrX   r¦   ÚvaluesÚsortedÚ	Signaturerd   Údictr°   rÁ   r   Úout_wrapperrg   Ú!_torch_decompositions_out_wrapper)rI   Úout_typeÚbc_out_typer_   Ú	out_paramÚparamsr¸   r¹   r»   r^   Údefault_out_namesrƒ   rº   r™   r“   r‘   s   `     @@@@€€€€€€r   Ú_out_wrapperz!out_wrapper.<locals>._out_wrapper  s  øøøøøø€ ð ð�NˆNåÝ•uÐKÐKµU½3¸y¹>¼>Ñ5JÔ5JÐKÑKÔKÑKÔKñô ð 	ð ð�NˆNåÔ#Ý•uÐKÐKµU½3¸y¹>¼>Ñ5JÔ5JÐKÑKÔKÑKÔKñô ð 	ð ð�NˆNåØ- ¤Ð-Ð-à8Ð8¨iÐ8Ñ8Ô8ñô ð 	õ Ô Ñ#Ô#ˆØ,ˆÝÐHÐHÐHÐH¸ÐHÑHÔHÑHÔHˆå	ˆr‰Œð\	;•r”wð \	;­"¬)ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ð \	;ñ 
Œð\	;õ| Ô%ØÝÔ"Ô/ØØð	
ñ 
ô 
ˆ	õ �sÔ,­sµG¨nÑ=Ô=ð	àÔ$¨¬°H¸kÐ(JÐJÐJå ðN°Ô1Fð Nð NØ19ðNð NØ@KðNð Nñô ð ð 5�#”.×'Ò'Ñ)Ô)Ð4¨9Ð4Ð4ˆõ
 ˜Ð$4Ð$4Ð5Ñ5Ô5ˆå#Ô-ØØ)ð
ñ 
ô 
ˆÔõ
 #¥7¨2Ð/@À"Ñ#EÔ#EÑFÔFˆÔØ%-ˆÔ˜EÑ"Ø(3ˆÔ˜HÑ%ð ð 	I˜Ð&7Ò7Ð7Ø<EÀa¼LˆCÔÕ 8Ñ9ð P­;Ô+AÐOÐOÐOð 	Ô-ð ˆ
r"   )r®   r   r   r   )rƒ   r‘   r’   r“   rÓ   rÒ   rº   r™   s   ```` @@@r   rÌ   rÌ   ë   sÂ   øøøøøøø€ ð !ÐÝ
ˆ9�~„~˜ÒÐà%ˆ	å�I‘” !Ò#€IðRð Rð Rð Rð Rðl�¥"¥b &Ô)ð l­hµr½2°vÔ.>ð lð lð lð lð lð lð lð lð lð lð lð\ Ðr"   rI   c                 ó0   — t          j        | d„ ¬¦  «        S )Nc                 ó$   — t          | d¦  «         S )NrÍ   )Úhasattr)Úfs    r   rˆ   z+_maybe_remove_out_wrapper.<locals>.<lambda>µ  s   € �7 1Ð&IÑJÔJÐJ€ r"   )Ústop)r`   Úunwrap)rI   s    r   Ú_maybe_remove_out_wrapperrÚ   ²  s$   € ÝŒ>Ø
ØJÐJðñ ô ð r"   c                 óŠ   ‡ ‡‡— ˆ fd„Š G ˆfd„dt           j        j        ¦  «        Št          ‰ ¦  «        ˆˆfd„¦   «         }|S )Nc                 ó„   •— t           j                             ¦   «         5   ‰| i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S r   )rb   Ú_CÚ_AutoDispatchBelowAutograd)r@   rY   Úprims     €r   Úredispatch_primz0backwards_not_supported.<locals>.redispatch_primº  s�   ø€ ÝŒX×0Ò0Ñ2Ô2ð 	)ð 	)Ø�4˜Ð( Ð(Ð(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s    5µ9¼9c                   ó@   •— e Zd Zeˆ fd„¦   «         Zed„ ¦   «         ZdS )ú6backwards_not_supported.<locals>.BackwardsNotSupportedc                 óB   •— t          ||¦  «        \  }} ‰||¦  «        S r   )r   )ÚctxÚ	args_specÚ	flat_argsr@   rY   rà   s        €r   Úforwardz>backwards_not_supported.<locals>.BackwardsNotSupported.forward¿  s*   ø€ õ *¨)°YÑ?Ô?‰LˆD�&Ø"�? 4¨Ñ0Ô0Ð0r"   c                 ó    — t          d¦  «        ‚)Nzbackwards not supported on prim)r�   )rä   r@   s     r   Úbackwardz?backwards_not_supported.<locals>.BackwardsNotSupported.backwardÅ  s   € åÐ@ÑAÔAÐAr"   N)rf   rg   rh   Ústaticmethodrç   ré   )rà   s   €r   ÚBackwardsNotSupportedrâ   ¾  sX   ø€ € € € € Ø	ð	1ð 	1ð 	1ð 	1ñ 
Œð	1ð 
ð	Bð 	Bñ 
Œð	Bð 	Bð 	Br"   rë   c                  ó¸   •— t          | |f¦  «        \  }}t          j        ¦   «         r't          d„ |D ¦   «         ¦  «        r ‰j        |g|¢R Ž S  ‰| |¦  «        S )Nc              3   óX   K  — | ]%}t          |t          j        ¦  «        ¯|j        V — Œ&d S r   )r,   rb   ÚTensorÚrequires_grad)r)   r   s     r   r+   zBbackwards_not_supported.<locals>._autograd_impl.<locals>.<genexpr>Ì  sI   è è € ð +
ð +
Ø !µ*¸QÅÄÑ2MÔ2Mð+
ØŒOð+
ð +
ð +
ð +
ð +
ð +
r"   )r   rb   Úis_grad_enabledr?   Úapply)r@   rY   ræ   rå   rë   rà   s       €€r   Ú_autograd_implz/backwards_not_supported.<locals>._autograd_implÉ  s‡   ø€ å+¨T°6¨NÑ;Ô;Ñˆ	�9ÝÔ Ñ"Ô"ð 	1¥sð +
ð +
Ø%.ð+
ñ +
ô +
ñ (
ô (
ð 	1ð /Ð(Ô.¨yÐE¸9ÐEÐEÐEÐEà"�? 4¨Ñ0Ô0Ð0r"   )rb   ÚautogradÚFunctionr   )rß   rò   rë   rà   s   ` @@r   Úbackwards_not_supportedrõ   ¹  s™   øøø€ ð)ð )ð )ð )ð )ð	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	B¥¤Ô 7ñ 	Bô 	Bð 	Bõ ˆ4�[„[ð1ð 1ð 1ð 1ð 1ñ „[ð1ð& Ðr"   c                 ór   ‡ — t          j        ‰ ¦  «        }t          ‰ ¦  «        ˆ fd„¦   «         }||_        |S )zQ
    Allows unary operators that accept tensors to work with Python numbers.
    c                  óÄ  •— t          | ¦  «        dk    rÅt          | d         t          ¦  «        rªt          j        t          | d         ¦  «        ¦  «        }t          | ¦  «        }t          j        | d         |¬¦  «        |d<    ‰|i |¤Ž}t          |t          j	        ¦  «        st          dt          |¦  «        › �¦  «        ‚|                     ¦   «         S  ‰| i |¤ŽS )Nr   r‡   zExpected torch.Tensor, got )r®   r,   r   r.   Útype_to_dtyper2   r±   rb   Útensorrî   rX   Úitem)r@   rY   r   Úargs_r\   rI   s        €r   r_   z-elementwise_unary_scalar_wrapper.<locals>._fnë  sÐ   ø€ åˆt‰9Œ9�qŠ=ˆ=�Z¨¨Q¬µÑ8Ô8ˆ=ÝÔ'­¨T°!¬W©¬Ñ6Ô6ˆEÝ˜‘J”JˆEÝ”| D¨¤G°5Ð9Ñ9Ô9ˆE�!‰Hà�R˜Ð) &Ð)Ð)ˆFÝ˜f¥e¤lÑ3Ô3ð SÝ$Ð%QÅ4ÈÁ<Ä<Ð%QÐ%QÑRÔRÐRØ—;’;‘=”=Ð ð ˆr�4Ð"˜6Ð"Ð"Ð"r"   )r`   ra   r   rd   )rI   r^   r_   s   `  r   Ú elementwise_unary_scalar_wrapperrü   ã  sM   ø€ õ Ô
˜BÑ
Ô
€Cå
ˆ2�Y„Yð#ð #ð #ð #ñ „Yð#ð €CÔà€Jr"   r   )6r`   rÃ   r=   rr   Úcollections.abcr   r   Ú	functoolsr   r   r   r   r	   Útyping_extensionsr
   rb   Útorch._prims_commonÚ_prims_commonr.   r   r   r   r   r   r   r   Útorch.utilsr   rT   Útorch.utils._inspectr   Útorch.utils._pytreer   r   r   r   r   r    r2   r8   r<   rB   rt   ru   rx   Úboolr}   r‚   r�   rj   rÌ   rÚ   rõ   rü   r   r"   r   ú<module>r     s•  ðà €€€Ø €€€Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ø +Ð +Ð +Ð +Ð +Ð +Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð €WˆT�]„]€Ø€Yˆt�_„_€ð 
ð	˜~ð 	°e´kð 	Ànð 	ð 	ð 	ñ 
„ð	ð 
ð	˜zð 	°%´+ð 	À*ð 	ð 	ð 	ñ 
„ð	ð 
ð	˜xð 	°´ð 	Àð 	ð 	ð 	ñ 
„ð	ð 
ð	˜tð 	¨E¬Kð 	¸Dð 	ð 	ð 	ñ 
„ð	ð
ð ð ð&˜jð ¨tð ¸
ð ð ð ð ðð ð ðIð Ið Ið Ið Iñ Iô Ið IðZ˜nð °Yð ð ð ð ð( 15ðð Ø	ðàðð Ô&¨Ñ-ðð ð ð ð3�^ð 3¨ð 3ð 3ð 3ð 3ð  ^ð  ¸nð  ÐQUð  ð  ð  ð  ð PUð$ð $ð $Ø ð$Ø+9ð$ØHLð$ð $ð $ð $ð4 ØØ#(ð	Dð Dð DØðDàðDð ðDð !ð	Dð
 ˆx˜˜B˜ÔÐ  (¨2¨r¨6Ô"2Ð2Ô3ðDð Dð Dð DðN (ð ð ð ð ð$ð $ð $ðTØ��R�Ôðàˆb�"�z‘/Ð!Ô"ðð ð ð ð ð r"   