Ë
    g^(hwF  ã                   óÀ  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
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m Z   ed
«      Z! ed«      Z"ededejF                  defd„«       Z$ededejF                  defd„«       Z$ededejF                  defd„«       Z$edddejF                  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)	 d0dededeejT                     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&„Z/d#d#d#d'œd(e0d%e,d)e,d*e,de	e	e"e!f   ge	e"e!f   f   f
d+„Z1d,e	fd-„Z2d.„ Z3d,e	de	fd/„Z4y)1é    N)ÚSequence)Úwraps)ÚGenericAlias)ÚCallableÚ
NamedTupleÚOptionalÚoverloadÚTypeVar)Ú	ParamSpec)ÚCustomOutParamAnnotationÚELEMENTWISE_TYPE_PROMOTION_KINDÚNumberÚ
NumberTypeÚ	ShapeTypeÚ
TensorLikeÚTensorLikeType)Ú_pytree)Útree_flattenÚtree_unflattenÚ_TÚ_PÚaÚdtypeÚreturnc                  ó   — y ©N© ©r   r   s     úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_prims_common/wrappers.pyÚ_maybe_convert_to_dtyper       ó   € àó    c                  ó   — y r   r   r   s     r   r    r    #   r!   r"   c                  ó   — y r   r   r   s     r   r    r    (   r!   r"   c                  ó   — y r   r   r   s     r   r    r    -   r!   r"   c                 ó<  ‡— t        | t        «      r"| j                  ‰k7  r| j                  ‰«      S | S t        | t        «      r t        j                  ‰«      | «      S t        | t        «      rt        ˆfd„| D «       «      S | €y t        dt        | «      › d�«      ‚)Nc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr   ©r    )Ú.0Úxr   s     €r   ú	<genexpr>z*_maybe_convert_to_dtype.<locals>.<genexpr>;   s   øè ø€ ÒB¸1Ô,¨Q°×6ÑBùó   ƒ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    3   s‘   ø€ Ü�!”ZÔ Ø�7‰7�eÒØ—4‘4˜“;ÐØˆÜ�!”VÔØ.Œu×'Ñ'¨Ó.¨qÓ1Ð1Ü�!”XÔÜÓBÀÔBÓBÐBð 	€yØä
Ø
$¤T¨!£W IÐ-XÐ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   r3   r2   r/   Úis_weakly_lesser_type)r   r4   Úmsgs      r   Ú_maybe_convert_to_typer9   F   sp   € Ü�aœÔ Ø#¤D¨£G 9Ð,LÐMˆÜ˜‹oÐÜ×&Ñ&¤t¨A£w°Ô4Ø˜�s˜)¤D¨£G 9Ð,KÈCÈ5ÐPQÐRˆÜ˜‹oÐáˆq‹6€Mr"   c                 ód   — t        |d«      r!|j                  D ]  }t        | |¬«      sŒ y y| |u S )NÚ__args__)r4   Ú
annotationTF)Úhasattrr;   Ú_annotation_has_type)r4   r<   r   s      r   r>   r>   Q   s>   € Üˆz˜:Ô&Ø×$Ñ$ò 	ˆAÜ#¨¸Ö:Ùð	ð à�*ÐÐr"   c                   óB   — e Zd ZdZddœdedeee      fd„Zde	de	fd	„Z
y)
Ú"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 specifiying 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_kindrA   c                ó    — || _         || _        y r   )Útype_promoting_arg_namesrB   )ÚselfrB   rA   s      r   Ú__init__z+elementwise_type_promotion_wrapper.__init__p   s   € ð )<ˆÔ%Ø#6ˆÕ r"   Úfnr   c                 ó”   ‡ ‡‡— t        j                  ‰«      Št        j                  t	        ‰«      ˆˆ ˆfd„«       «       }‰|_        |S )Nc                  ó¾  •‡	‡
—  ‰j                   | i |¤ŽŠ	t        ˆ	fd„‰j                  D «       «      }t        j                  |Ž }t        j                  |d‰j                  iŽ\  }Š
‰j                  D �ci c]8  }|‰	j                  j                  «       v r|t        ‰	j                  |   |«      “Œ: }}‰	j                  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!        |«      › �«      ‚c c}w )Nc              3   ót   •K  — | ]/  }|‰j                   j                  «       v r‰j                   |   –— Œ1 y ­wr   )Ú	argumentsÚkeys)r)   r*   Úbounds     €r   r+   zKelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<genexpr>‚   s7   øè ø€ ò (àØ˜Ÿ™×,Ñ,Ó.Ñ.ð —‘ Õ"ñ(ùs   ƒ58rB   r   c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr   r(   )r)   r*   Úresult_dtypes     €r   r+   zKelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<genexpr>    s   øè ø€ ÒVÈ!Ô4°Q¸×EÑVùr,   zUnhandled result type: r   )Úbindr1   rD   ÚpytreeÚarg_tree_leavesr/   Úelementwise_dtypesrB   rK   rL   r    Úupdater-   r   r   ÚAssertionErrorr3   )ÚargsÚkwargsrA   Úflattened_type_promoting_argsÚcompute_dtyper*   Úpromoted_argsÚresultÚmaybe_dtyperM   rO   rG   rE   Úsigs            @@€€€r   Ú_fnz8elementwise_type_promotion_wrapper.__call__.<locals>._fn~   sY  ú€ ð �C—H‘H˜dÐ- fÑ-ˆEÜ"'ó (à×6Ñ6ô(ó #Ðô -3×,BÑ,BÐDWÐ,XÐ)Ü*/×*BÑ*BØ.ð+à$(×$<Ñ$<ñ+Ñ'ˆM˜<ð ×6Ñ6öàØ˜Ÿ™×,Ñ,Ó.Ñ.ð Ô*¨5¯?©?¸1Ñ+=¸}ÓMÑMðˆMð ð
 �O‰O×"Ñ" =Ô1áÑ*˜%Ÿ/™/Ñ*ˆFð ˜%Ÿ/™/Ñ)Ø#Ÿo™o¨gÑ6�ÙØ#.�Lä˜&¤*Ô-Ü.¨v°|ÓDÐDÜ˜&¤(Ô+ÜÓVÈvÔVÓVÐVÜ Ð#:¼4À»<¸.Ð!IÓJÐJùò's   Á6=E)ÚinspectÚ	signatureÚtorchÚ_disable_dynamor   Ú__signature__)rE   rG   r^   r]   s   `` @r   Ú__call__z+elementwise_type_promotion_wrapper.__call__y   sK   ú€ Ü×Ñ Ó#ˆô 
×	Ñ	Ü	ˆr‹õ!	Kó 
ó 
ð!	KðF  ˆÔØˆ
r"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚstrrF   r   rd   r   r"   r   r@   r@   [   sA   „ ñð0 8<ò	7ð =ð7ð & h¨s¡mÑ4ó	7ð+˜8ð +¨ô +r"   r@   ÚoutÚshapec                 óÈ   — t        j                  | j                  |«      ry| j                  «       dk7  r.dt	        | j                  «      › d�}t        j                  |«       y)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).T)r/   Ú
same_shaperk   Únumelri   ÚwarningsÚwarn)rj   rk   r8   s      r   Ú_resize_output_checkrq   ¨   s_   € ä×Ñ˜Ÿ	™	 5Ô)ØØ
‡y�yƒ{�aÒàQÔRUÐVY×V_ÑV_ÓR`ÐQað btð tð 	ô 	�‰�cÔØr"   Úmemory_formatc                 óD   — t        | |«      r| j                  ||¬«      S | S )N)rr   )rq   Úresize_)rj   rk   rr   s      r   Ú_maybe_resize_outru   ¹   s&   € ô
 ˜C Ô'Ø�{‰{˜5°ˆ{Ó>Ð>àˆ
r"   r*   c                 ó^   — | j                  «       dk(  xr | j                  j                  dk(  S )Nr   Úcpu)ÚdimÚdevicer3   )r*   s    r   Úis_cpu_scalarrz   Ä   s$   € Ø�5‰5‹7�a‰<Ò2˜AŸH™HŸM™M¨UÑ2Ð2r"   Ú	copy_fromÚcopy_toc                 ó†   — | j                   |j                   k7  r(d| j                   › d|j                   › d�}t        |«      ‚y )NzAttempting to copy from device z to device z*, but cross-device copies are not allowed!)ry   ÚRuntimeError)r{   r|   r8   s      r   Úcheck_copy_devicesr   È   sR   € Ø×Ñ˜7Ÿ>™>Ò)à-¨i×.>Ñ.>Ð-?ð @Ø Ÿ™Ð(Ð(RðTð 	ô ˜3ÓÐð *r"   F)Úexact_dtyper€   c                 óF  ‡ ‡— t        ‰ «      st        ‰ ‰¬«       |r2t        j                  ‰ j                  ‰j                  k(  ˆ ˆfd„«       nCt        j                  t        j                  ‰ j                  ‰j                  ¬«      ˆ ˆfd„«       ‰j                  ‰ «      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'   ø€ Ð8¸¿¹Ð8Ið JØ—}‘}�o Xð/€ 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¯©Ð.?Ð?YÐZa×ZgÑZgÐYhð i=ð =€ r"   )rz   r   ra   Ú_checkr   r/   Úcan_safe_cast_toÚcopy_©r{   r|   r€   s   `` r   Ú_safe_copy_outr�   Ñ   sy   ù€ ô ˜Ô#Ü Y¸Õ@ñ Ü�‰Ø�O‰O˜wŸ}™}Ñ,ô/õ	
ô 	�‰Ü×"Ñ"¨Y¯_©_ÀgÇmÁmÔ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©rj   r   é   c                 ó6   •— ‰rt        j                  | «      S d S r   )r/   Úsuggest_memory_format)Útr�   s    €r   Úmaybe_compute_memory_formatz0out_wrapper.<locals>.maybe_compute_memory_formatü   s   ø€ Ù1GŒu×*Ñ*¨1Ó-ÐQÈTÐQr"   rG   r   c                 ó–  •‡ ‡‡‡	‡
— ‰rt         n1t        t        t        d„ t        t	        ‰«      «      D «       «      «      }‰rt         n;t        j                  t        t        d„ t        t	        ‰«      «      D «       «      «      }‰rt         n,t        d‰ j                  › �‰D �cg c]
  }|t         f‘Œ c}«      Š	t        j                  ‰ «      Š
dŠt        ˆ
fd„‰D «       «      Št        ‰ «      ddœdt        j                  d	t        j                  fˆˆˆ ˆˆˆˆˆˆ	f	d
„«       }t        j                  dt        j                  j                   d|¬«      }t#        ‰
j$                  t&        «      s‰
j$                  ‰
j(                  ||fv sJ ‚g ‰
j*                  j-                  «       ¢|‘­}t/        |d„ ¬«      }t        j0                  |‰	¬«      |_        t5        t7        ‰ di «      «      |_        ||j8                  d<   ‰	|j8                  d<   ‰r‰‰k7  r‰d   |j8                  t:        <   dt<        j>                  › d�|_         |S c c}w )z?
        Adds the out parameter to a Python reference.
        c              3   ó(   K  — | ]
  }t         –— Œ y ­wr   ©r   ©r)   Ú_s     r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>  ó   è ø€ ÒK°Ÿ^˜^ÑKùó   ‚c              3   ó(   K  — | ]
  }t         –— Œ y ­wr   rš   r›   s     r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>  r�   rž   Úreturn_types_)ry   r   c              3   ó:   •K  — | ]  }|‰j                   v –— Œ y ­wr   )Ú
parameters)r)   Úpr]   s     €r   r+   z4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>  s   øè ø€ ÒH°A˜A §¡Ô/ÑHùs   ƒNr’   rV   rW   c                 ó¨  •	‡ ‡‡— ‰r‰ �‰
D ]  }t        ‰ |«      }||vsŒ|||<   Œ ˆfd„}t        ‰ t        t        f«      r‰ D ]
  } ||«       Œ n |‰ «       ‰r ‰‰d‰ d ui|¤ŽŠn ‰‰i |¤ŽŠt        ‰t        «      r‰sNt        ‰t        «      rt        ‰«      t        ‰«      k(  s'‰j                  dk(  rt        ‰t        t        f«      sJ ‚‰ �÷‰rM‰j                  dk7  r>t        ‰ t        «      sJ ‚t        ‰ ‰j                   ‰‰«      «       t        ‰‰ ‰	¬«       nª‰j                  dk7  rt        ‰ t        «      sJ ‚t        ‰ t        t        f«      sJ ‚t        j                  t        ‰ «      t        ‰«      k(  ˆ ˆfd„«       t        ‰‰ «      D ]0  \  }}t        ||j                   ‰|«      «       t        ||‰	¬«       Œ2 n‰Š ‰r‰ S  ‰‰ Ž S )Nc                 óp   •— t        | t        «      r%t        ‰d   t        «      rt        ‰d   | ¬«       y y y )Nr   r‚   )r-   r   r   )rj   rV   s    €r   Úmaybe_check_copy_deviceszPout_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.maybe_check_copy_devices'  s1   ø€ Ü˜c¤:Ô.´:¸dÀ1¹gÄzÔ3RÜ&°°a±À#ÖFð 4SÐ.r"   Úis_outÚunbindrŒ   c                  ó8   •— dt        ‰«      › dt        ‰ «      › �S )Nzexpected tuple of z elements but got )Úlen)rj   r[   s   €€r   r…   z@out_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.<lambda>`  s"   ø€ Ð"4´S¸³[°MÐASÔTWÐX[ÓT\ÐS]Ð ^€ r"   )Úgetattrr-   r1   Úlistr   rª   re   ru   rk   r�   ra   Ú_check_typeÚzip)rj   rV   rW   ÚkÚout_attrr¦   ÚoÚrr[   r€   Úfactory_kwargsrG   Úis_factory_fnÚ	is_tensorr—   r�   rŽ   Úreturn_types   ``      @€€€€€€€€€r   r^   z.out_wrapper.<locals>._out_wrapper.<locals>._fn  sÚ  û€ á  Ø'ò -�AÜ& s¨A›�HØ ’Ø$,˜˜qš	ð-ô
Gô ˜#¤¤t˜}Ô-Øò 0�AÙ,¨QÕ/ñ0ñ )¨Ô-áÙ˜TÐF¨3°d¨?ÐF¸vÑF‘á˜TÐ, VÑ,�ä˜F¤JÔ/±Iä˜v¤uÔ-Ü˜F›¤s¨9£~Ò5ð —K‘K 8Ò+Ü" 6¬D´%¨=Ô9ð
ðð ˆñ"  §¡°Ò!8Ü% c¬:Ô6Ð6Ð6ä%Ø˜VŸ\™\Ñ+FÀvÓ+Nôô #¨V¸SÈkÖZà—{‘{ hÒ.Ü)¨#¬uÔ5Ð5Ð5ä)¨#´´e¨}Ô=Ð=Ð=Ü×%Ñ%Ü˜C›¤C¨£KÑ/Ü^ôô !$ F¨CÓ 0ò X™˜˜1ä)¨!¨Q¯W©WÑ6QÐRSÓ6TÔUÜ&°¸AÈ;ÖWñXð
 �á#�3Ð:©°cÐ):Ð:r"   rj   )ÚkindÚdefaultr<   c                 ó   — | j                   S r   )r·   )r£   s    r   r…   z3out_wrapper.<locals>._out_wrapper.<locals>.<lambda>|  s
   € ¨a¯f©f€ r"   )Úkey)r¢   Úreturn_annotationÚ__annotations__r   r   zThis function is wrapped by z.out_wrapper)!r   r   r1   Úrangerª   Útypesr   re   r_   r`   Úallr   r   rV   rW   Ú	ParameterÚKEYWORD_ONLYr-   r»   ri   Úemptyr¢   ÚvaluesÚsortedÚ	Signaturerc   Údictr«   r¼   r   Úout_wrapperrf   Ú!_torch_decompositions_out_wrapper)rG   Úout_typeÚbc_out_typer±   r^   Ú	out_paramÚparamsr³   r´   r¶   r]   Údefault_out_namesr€   rµ   r—   r�   rŽ   s   `      @@@@€€€€€€r   Ú_out_wrapperz!out_wrapper.<locals>._out_wrapperÿ   s/  ý€ ñ õ äÜ”uÑK´U¼3¸y»>Ó5JÔKÓKóð 	ñ õ ä×#Ñ#Ü”uÑK´U¼3¸y»>Ó5JÔKÓKóð 	ñ õ äØ §¡˜}Ð-ÈYÖ/WÈ°´NÒ0CÒ/Wóð 	ô ×Ñ Ó#ˆØ,ˆÜÓH¸ÔHÓHˆä	ˆr‹Ø$(ò I	;”r—w‘wð I	;´B·I±I÷ I	;ô I	;ó 
ðI	;ôV ×%Ñ%ØÜ×"Ñ"×/Ñ/ØØô	
ˆ	ô ˜#×/Ñ/´Ô5¸×9NÑ9NØ�I‰IØØðS
ñ :
ð 	
ð 
ð
 5�#—.‘.×'Ñ'Ó)Ð4¨9Ñ4ˆô
 ˜Ñ$4Ô5ˆä#×-Ñ-Ø°ô
ˆÔô #¤7¨2Ð/@À"Ó#EÓFˆÔØ%-ˆ×Ñ˜EÑ"Ø(3ˆ×Ñ˜HÑ%ñ ˜Ð&7Ò7Ø<EÀa¹LˆC×ÑÔ 8Ñ9ð
 3OÌ{×OeÑOeÐNfÐfrÐ0sˆÔ-àˆ
ùòs 0Xs   Â$I
)rª   r   r   r   )r€   rŽ   r�   r�   rÎ   rÍ   rµ   r—   s   ```` @@@r   rÇ   rÇ   é   sg   þ€ ð !ÐÜ
ˆ9ƒ~˜Òà%ˆ	ä�I“ !Ñ#€IôRðQœ¤"¤b &Ñ)ð Q¬h´r¼2°vÑ.>÷ Qò Qðf Ðr"   rG   c                 ó2   — t        j                  | d„ ¬«      S )Nc                 ó   — t        | d«       S )NrÈ   )r=   )Úfs    r   r…   z+_maybe_remove_out_wrapper.<locals>.<lambda>˜  s   € œ7 1Ð&IÓJÐJ€ r"   )Ústop)r_   Úunwrap)rG   s    r   Ú_maybe_remove_out_wrapperrÔ   •  s   € Ü�>‰>Ø
ÙJôð r"   c                 óˆ   ‡ ‡‡— ˆ fd„Š G ˆfd„dt         j                  j                  «      Št        ‰ «      ˆˆfd„«       }|S )Nc                 ó|   •— t         j                  j                  «       5   ‰| i |¤Žcd d d «       S # 1 sw Y   y xY wr   )ra   Ú_CÚ_AutoDispatchBelowAutograd)rV   rW   Úprims     €r   Úredispatch_primz0backwards_not_supported.<locals>.redispatch_prim�  s5   ø€ Ü�X‰X×0Ñ0Ó2ñ 	)Ù˜Ð( Ñ(÷	)÷ 	)ò 	)ús    2²;c                   ó2   •— e Zd Zeˆ fd„«       Zed„ «       Zy)ú6backwards_not_supported.<locals>.BackwardsNotSupportedc                 ó4   •— t        ||«      \  }} ‰||«      S r   )r   )ÚctxÚ	args_specÚ	flat_argsrV   rW   rÚ   s        €r   Úforwardz>backwards_not_supported.<locals>.BackwardsNotSupported.forward¢  s    ø€ ä)¨)°YÓ?‰LˆD�&Ù" 4¨Ó0Ð0r"   c                 ó   — t        d«      ‚)Nzbackwards not supported on prim)r~   )rÞ   rV   s     r   Úbackwardz?backwards_not_supported.<locals>.BackwardsNotSupported.backward§  s   € äÐ@ÓAÐAr"   N)re   rf   rg   Ústaticmethodrá   rã   )rÚ   s   €r   ÚBackwardsNotSupportedrÜ   ¡  s+   ø„ Ø	ó	1ó 
ð	1ð 
ñ	Bó 
ñ	Br"   rå   c                  ó¨   •— t        | |f«      \  }}t        j                  «       r%t        d„ |D «       «      r ‰j                  |g|¢­Ž S  ‰| |«      S )Nc              3   ój   K  — | ]+  }t        |t        j                  «      sŒ|j                  –— Œ- y ­wr   )r-   ra   ÚTensorÚrequires_grad)r)   r   s     r   r+   zBbackwards_not_supported.<locals>._autograd_impl.<locals>.<genexpr>®  s&   è ø€ ò +
Ø !´*¸QÄÇÁÕ2MˆA�O�Oñ+
ùs   ‚3¢3)r   ra   Úis_grad_enabledÚanyÚapply)rV   rW   rà   rß   rå   rÚ   s       €€r   Ú_autograd_implz/backwards_not_supported.<locals>._autograd_impl«  s^   ø€ ä+¨T°6¨NÓ;Ñˆ	�9Ü× Ñ Ô"¤sñ +
Ø%.ô+
ô (
ð /Ð(×.Ñ.¨yÐE¸9ÒEÐEá" 4¨Ó0Ð0r"   )ra   ÚautogradÚFunctionr   )rÙ   rí   rå   rÚ   s   ` @@r   Úbackwards_not_supportedrð   œ  s@   ú€ ô)öB¤§¡× 7Ñ 7ô Bô ˆ4ƒ[ô1ó ð1ð& Ðr"   c                 óf   ‡ — t        j                  ‰ «      }t        ‰ «      ˆ fd„«       }||_        |S )zQ
    Allows unary operators that accept tensors to work with Python numbers.
    c                  óP  •— t        | «      dkD  r�t        | d   t        «      r}t        j                  t        | d   «      «      }t        | «      }t        j                  | d   |¬«      |d<    ‰|i |¤Ž}t        |t        j                  «      sJ ‚|j                  «       S  ‰| i |¤ŽS )Nr   r„   )rª   r-   r   r/   Útype_to_dtyper3   r¬   ra   Útensorrè   Úitem)rV   rW   r   Úargs_r[   rG   s        €r   r^   z-elementwise_unary_scalar_wrapper.<locals>._fnË  s“   ø€ äˆt‹9�qŠ=œZ¨¨Q©´Ô8Ü×'Ñ'¬¨T°!©W«Ó6ˆEÜ˜“JˆEÜ—|‘| D¨¡G°5Ô9ˆE�!‰HÙ˜Ð) &Ñ)ˆFÜ˜f¤e§l¡lÔ3Ð3Ð3Ø—;‘;“=Ð á�4Ð"˜6Ñ"Ð"r"   )r_   r`   r   rc   )rG   r]   r^   s   `  r   Ú elementwise_unary_scalar_wrapperr÷   Å  s:   ø€ ô ×
Ñ
˜BÓ
€Cä
ˆ2ƒYó	#ó ð	#ð €CÔØ€Jr"   r   )5r_   r¾   ro   Úcollections.abcr   Ú	functoolsr   r   Útypingr   r   r   r	   r
   Útyping_extensionsr   ra   Útorch._prims_commonÚ_prims_commonr/   r   r   r   r   r   r   r   Útorch.utilsr   rQ   Útorch.utils._pytreer   r   r   r   r   r    r3   r9   r>   r@   rq   rr   ru   Úboolrz   r   r�   ri   rÇ   rÔ   rð   r÷   r   r"   r   ú<module>r     sS  ðã Û Û Ý $Ý Ý ß DÕ DÝ 'ã Ý #÷÷ ñ õ *ß <ñ ˆTƒ]€Ùˆtƒ_€ð 
ð	˜~ð 	°e·k±kð 	Ànò 	ó 
ð	ð 
ð	˜zð 	°%·+±+ð 	À*ò 	ó 
ð	ð 
ð	˜xð 	°·±ð 	Àò 	ó 
ð	ð 
ð	˜tð 	¨E¯K©Kð 	¸Dò 	ó 
ð	ò
ð&˜jð ¨tð ¸
ó ò÷Iñ IðZ˜nð °Yó ð( 48ñØ	ðàðð ˜E×/Ñ/Ñ0óð3�^ð 3¨ó 3ð  ^ð  ¸nð  ÐQUó  ð PUò$Ø ð$Ø+9ð$ØHLó$ð4 ØØ#(ò	iØðiàðið ðið !ð	ið
 ˆx˜˜B˜ÑÐ  (¨2¨r¨6Ñ"2Ð2Ñ3óiðX (ó ò#ðR¨ð °hô r"   