
    9iS                    ,   S SK Jr  S SKrS SKrS SKrS SKJr  S SKrSSKJ	r	J
r
JrJrJr  SSKJrJrJrJr  Sr/ SQrSS	S
SSSSSSS.	r " S S5      rSQS jr0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S_S!S_S"S_S#S_S$S_S%S_SSSSSSSSSSSS&.ErS'SS(S)S*S+S,S-S..rSS/S0S1S2S3S4S5S6S7S8S9SS:.rS; rS< rS= rS> rS? r " S@ SA5      r \ " 5       \ l!         " SB SC5      r"SD r#SQSESFSGS SSH.SI jjr$SRSSJ.SK jjr%SQSSJ.SL jjr&SM r'SN r(SSSO jr)SP r*g)T    )annotationsN)Sequence   )_dtypes_dtypes_impl_funcs_ufuncs_util)	ArrayLikenormalize_array_like
normalizerNotImplementedType)C_CONTIGUOUSF_CONTIGUOUSOWNDATA	WRITEABLEALIGNEDWRITEBACKIFCOPYFNCFORCBEHAVEDCARRAYFARRAYr   r   r   r   r   r   r   r   r   )	CFOWAXBCAFAc                  H   ^  \ rS rSrSS jrS	S jrS rU 4S jrS rSr	U =r
$ )
Flags2   c                ^    [        S UR                  5        5       5      (       d   eXl        g )Nc              3  2   #    U  H  o[         ;   v   M     g 7fN)FLAGS).0ks     U/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/_numpy/_ndarray.py	<genexpr>!Flags.__init__.<locals>.<genexpr>4   s     <';!:';s   )allkeys_flag_to_value)selfflag_to_values     r,   __init__Flags.__init__3   s(    <}'9'9';<<<<<+    c                    UR                  5       (       a*  UR                  5       [        ;   a  XR                  5          $ [        SU S35      e)NzNo flag attribute '')islowerupperr)   AttributeError)r2   attrs     r,   __getattr__Flags.__getattr__7   s>    <<>>djjle3

%% #6tfA!>??r6   c                    U[         R                  5       ;   a	  [         U   nU[        ;   a   U R                  U   $ [	        SU S35      e! [         a  n[        SU< 35      UeS nAff = f)Nzkey=No flag key 'r8   )SHORTHAND_TO_FLAGSr0   r)   r1   KeyErrorNotImplementedError)r2   keyes      r,   __getitem__Flags.__getitem__=   sv    $))++$S)C%<<**3// ]3%q122  <)TSF)4!;<s   A 
A*A%%A*c                   > UR                  5       (       a+  UR                  5       [        ;   a  X UR                  5       '   g [        TU ]  X5        g r(   )r9   r:   r)   super__setattr__)r2   r<   value	__class__s      r,   rJ   Flags.__setattr__H   s6    <<>>djjle3!&G,r6   c                z    U[         ;   d  U[        R                  5       ;   a  [        S5      e[	        SU S35      e)Nz"Modifying flags is not implementedr@   r8   )r)   rA   r0   rC   rB   )r2   rD   rK   s      r,   __setitem__Flags.__setitem__N   s:    %<3"4"9"9";;%&JKK]3%q122r6   )r1   )r3   dict)r<   str)__name__
__module____qualname____firstlineno__r4   r=   rF   rJ   rO   __static_attributes____classcell__)rL   s   @r,   r$   r$   2   s"    ,@	3-3 3r6   r$   c                ^   ^  U=(       d    T R                   nU 4S jnXl         SU 3Ul        U$ )Nc                    > T" U 0 UD6$ r(    )argskwargsfns     r,   fcreate_method.<locals>.fX   s    4"6""r6   zndarray.)rS   rU   )r^   namer_   s   `  r,   create_methodrb   U   s0    2;;D# Jv&ANHr6   clipnonzerorepeatroundsqueezeswapaxesraveldiagonaldottraceargsortsearchsortedargmaxargminanyr/   max)minptpsumprodmeanvarstdcumsumcumprodtakechooseabsolutepositivenegativegreaterlessgreater_equal
less_equal)absinvertposneggtltgelesubtractmultiplydividefloor_dividepower	remainderbitwise_and
bitwise_orbitwise_xor
left_shiftright_shift)addsubmultruedivfloordivpowmodandorxorlshiftrshiftmatmulc                n   [        U [        R                  5      (       an  U R                  [        R                  [        R
                  [        R                  [        R                  4;   a  U R                  [        R                  5      $  U $ [        U [        5      (       a  [        S U  5       5      $ U $ )Nc              3  8   #    U  H  n[        U5      v   M     g 7fr(   )_upcast_int_indices)r*   is     r,   r-   &_upcast_int_indices.<locals>.<genexpr>   s     ;U(++U   )
isinstancetorchTensordtypeint8int16int32uint8toint64tupleindexs    r,   r   r      s}    %&&;;5::u{{EKKMM88EKK(( N L 
E5	!	!;U;;;Lr6   c                &    [        S U  5       5      $ )z&Check if there's any advanced indexingc              3    #    U  Hv  n[        U[        [        45      =(       dT    [        U[        R                  5      =(       a3    UR
                  [        R                  :H  =(       d    UR                  S :  v   Mx     g7fr   N)r   r   boolr   r   r   ndimr*   idxs     r,   r-   )_has_advanced_indexing.<locals>.<genexpr>   s_       C 	34() 	YsELL)WsyyEJJ/F/V#((UV,	Ys   A>B )rq   r   s    r,   _has_advanced_indexingr      s        r6   c                   [        U [        5      (       d  U 4n [        U 5      nU(       d  U $ / nU  H  n[        U[        5      (       a)  [        U[        5      (       d  UR                  U/5        MA  [        U[        R                  5      (       a]  UR                  S:X  aM  [        R                  " U5      (       d2  UR                  [        R                  :w  a  UR                  U/5        M  UR                  U5        M     [        U5      $ )zZConvert scalar indices to lists when advanced indexing is present for NumPy compatibility.r   )r   r   r   intr   appendr   r   r   is_floating_pointr   )r   has_advanced	convertedr   s       r,   _numpy_compatible_indexingr      s    eU## *%0L Ic3
3(=(=cU#sELL))A++C00		UZZ' cU# S!   r6   c                <   [        U [        5      (       a  g[        U [        R                  5      (       a,  U R                  [        R                  :X  a  SU R
                  4$ [        U [        5      (       a  U (       a	  U S   U :w  d  g[        U S   5      u  pXS-   4$ )z.Returns the depth of a boolean sequence/tensor)Tr   Tr   )Fr   r   )r   r   r   r   r   r   r   _get_bool_depth)sis_booldepths      r,   r   r      sy    !T!U\\""qww%**'<QVV|q(##adai$QqT*NGAIr6   c                  ^ [        U [        5      (       d  U 4n Sn[        U 5       H  u  p4U[        L d  M  Un  O   Uc  U S S 4$ SnU  H0  n[	        U5      u  pgU(       a  XW-  nM  U[        L d  Uc  M+  US-  nM2     X-
  nUS:X  af  [        U SU 5      n	[        XS-   S 5      n
U	(       aA  U
(       a:  U SU S-   XS-   S -   nS[        S XS-   S  5       5      -   mU4S jnU4S	 jnXU4$ U S
 S 4$ )a  
Patch for NumPy-compatible ellipsis behavior when ellipsis doesn't match any dimensions.

In NumPy, when an ellipsis (...) doesn't actually match any dimensions of the input array,
it still acts as a separator between advanced indices. PyTorch doesn't have this behavior.

This function detects when we have:
1. Advanced indexing on both sides of an ellipsis
2. The ellipsis doesn't actually match any dimensions
Nc                    U $ r(   r[   xs    r,   <lambda>-_numpy_empty_ellipsis_patch.<locals>.<lambda>   s    r6   c                    U $ r(   r[   r   s    r,   r   r      s    Qr6   r   r   r(   c              3  T   #    U  H  n[        U[        5      (       d  M  S v   M      g7f)r   N)r   slicer   s     r,   r-   ._numpy_empty_ellipsis_patch.<locals>.<genexpr>  s       6c*S%:P6s   (	(c                (   > U R                  T* 5      $ r(   )rg   r   	end_ndimss    r,   
squeeze_fn/_numpy_empty_ellipsis_patch.<locals>.squeeze_fn  s    yy),,r6   c                   > [        U [        R                  5      (       a"  U R                  T:  a  U R	                  T* 5      $ U $ r(   )r   r   r   r   	unsqueezer   s    r,   unsqueeze_fn1_numpy_empty_ellipsis_patch.<locals>.unsqueeze_fn  s5    a..166Y3F;;	z22r6   c                    U $ r(   r[   r   s    r,   r   r   !  s    Ar6   c                    U $ r(   r[   r   s    r,   r   r   !  s    r6   )r   r   	enumerateEllipsisr   r   ru   )r   tensor_ndimellipsis_posr   r   consumed_dimsr   r   ellipsis_dimsleft_advancedright_advanced	new_indexr   r   r   s                 @r,   _numpy_empty_ellipsis_patchr      sD    eU## LE"(?L # k;.. M(-"MH_QM   /M .u]l/CD/Q6F6H0IJ^ m|,w6a?O?Q9RRIC  "!#3#56   I-
 ,66+{**r6   c                      \ rS rSrSrg)_Unspecifiedi&  r[   N)rS   rT   rU   rV   rW   r[   r6   r,   r   r   &  s    r6   r   c                     \ rS rSrS<S jr\R                  5        H)  u  rr\	" \
\=(       d    \5      r\" \\5      \" 5       \'   M+     \" \R                  S5      r\" \R                  5      r\R                  5        H/  u  rr\	" \\=(       d    \5      rS\ S3r\" \\5      \" 5       \'   M1     \R                  5        He  u  rr\	" \\=(       d    \5      rS\ S3r\" \\5      \" 5       \'   S\ S3r\" \4S j\5      \" 5       \'   S\ S3r\" \4S	 j\5      \" 5       \'   Mg     \" \R,                  S
5      r\" S S5      rCCCCCC\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!\S 5       r"\S 5       r#\S 5       r$\$RJ                  S 5       r$\S 5       r&\&RJ                  S 5       r&S=S jr'\(S>S?S jj5       r)\(S>S?S jj5       r*SS .S! jr+\,RZ                  \,RZ                  4S" jr.\(S@S# j5       r/S$ r0S% r1S& r2\" \25      r3S' r4S( r5S) r6S* r7S+ r8S, r9S- r:S. r;S/ r<S0 r=S1 r>SS2.S3 jr?SAS4 jr@S5 rAS6 rBS7 rC\
R                  rD\
R                  rESS8.S9 jrFS: rGS;rHg)Bndarrayi1  Nc                    Uc  [         R                  " 5       U l        g [        U[         R                  5      (       a  Xl        g [	        S5      e)NzSndarray constructor is not recommended; prefereither array(...) or zeros/empty(...))r   r   tensorr   
ValueError)r2   ts     r,   r4   ndarray.__init__2  s<    9,,.DK5<<((K8 r6   conj____rc                    U" X5      $ r(   r[   r2   otherr^   s      r,   r   ndarray.<lambda>P  s    5r6   __ic                    U" XU S9$ )N)outr[   r   s      r,   r   r   S  s    r$4'@r6   
__divmod__c                .    [         R                  " X5      $ r(   )r	   divmodr2   r   s     r,   r   r   Y  s    GNN57r6   __rdivmod__c                @    [        U R                  R                  5      $ r(   )r   r   shaper2   s    r,   r  ndarray.shape_  s    T[[&&''r6   c                6    U R                   R                  5       $ r(   )r   numelr  s    r,   sizendarray.sizec  s    {{  ""r6   c                .    U R                   R                  $ r(   )r   r   r  s    r,   r   ndarray.ndimg  s    {{r6   c                V    [         R                  " U R                  R                  5      $ r(   )r   r   r   r  s    r,   r   ndarray.dtypek  s    }}T[[..//r6   c                   ^ U R                   R                  5       m[        U4S jU R                   R                  5        5       5      $ )Nc              3  ,   >#    U  H	  oT-  v   M     g 7fr(   r[   )r*   strideelsizes     r,   r-   "ndarray.strides.<locals>.<genexpr>r  s     H3Gf_3Gs   )r   element_sizer   r  )r2   r  s    @r,   stridesndarray.strideso  s3    ))+H4;;3E3E3GHHHr6   c                6    U R                   R                  5       $ r(   )r   r  r  s    r,   itemsizendarray.itemsizet  s    {{''))r6   c                    [        U R                  R                  5       U R                  R                  R                  5       U R                  R                  S L SS.5      $ )NT)r   r   r   r   )r$   r   is_contiguousT_baser  s    r,   flagsndarray.flagsx  sO      $ 9 9 ; $ ; ; =;;,,4!	
 	
r6   c                6    U R                   R                  5       $ r(   )r   data_ptrr  s    r,   datandarray.data  s    {{##%%r6   c                R    U R                   R                  5       R                  5       $ r(   )r   storagenbytesr  s    r,   r'  ndarray.nbytes  s    {{""$++--r6   c                "    U R                  5       $ r(   )	transposer  s    r,   r  	ndarray.T  s    ~~r6   c                .    [         R                  " U 5      $ r(   )r   realr  s    r,   r-  ndarray.real      {{4  r6   c                L    [        U5      R                  U R                  l        g r(   )asarrayr   r-  r2   rK   s     r,   r-  r.        "5>00r6   c                .    [         R                  " U 5      $ r(   )r   imagr  s    r,   r5  ndarray.imag  r/  r6   c                L    [        U5      R                  U R                  l        g r(   )r1  r   r5  r2  s     r,   r5  r6    r3  r6   c                :   US:w  a  [        SU S35      eUS:w  a  [        SU S35      eU(       d  [        SU S35      eU(       d  [        SU S35      e[        R                  " U5      R                  nU R                  R                  U5      n[        U5      $ )NKzastype(..., order= is not implemented.unsafezastype(..., casting=zastype(..., subok=zastype(..., copy=)rC   r   r   torch_dtyper   r   r   )r2   r   ordercastingsubokcopyr<  r   s           r,   astypendarray.astype  s    C<%(:5'AU&VWWh%&wi/CD  %(:5'AU&VWW%(9$?S&TUUmmE*66KKNN;'qzr6   r   c                "    U R                  5       $ r(   )cloner2   r=  s     r,   r@  ndarray.copy  s    zz|r6   c                .    [         R                  " U 5      $ r(   )r   flattenrE  s     r,   rH  ndarray.flatten  s    }}T""r6   F)refcheckc               *   U(       a  [        SU S35      eUS;   a  g [        U5      S:X  a  US   n[        U[        5      (       a  U4n[        R
                  " S U 5       5      (       a  [        S5      e[        R                  " U5      U R                  R                  5       pCU R                  R                  U5        X4:  aN  U R                  R                  5       (       d   eU R                  R                  5       nXTS  R                  5         g g )Nzresize(..., refcheck=r:  )r[   r(   r   r   c              3  *   #    U  H	  oS :  v   M     g7fr   r[   r*   r   s     r,   r-   !ndarray.resize.<locals>.<genexpr>  s     1y!Ays   z0all elements of `new_shape` must be non-negative)rC   lenr   r   builtinsrq   r   mathrv   r   r	  resize_r  rH  zero_)r2   rJ  	new_shape	new_numel	old_numelbs         r,   resizendarray.resize  s    %'z1EF  % y>Q!!Ii%%"I<<1y111OPP#yy3T[[5F5F5H9I&!;;,,....##%AjM!	 "r6   c                   U[         R                  L a  U R                  nU[         R                  La  [        SU S35      e[        R                  " U5      R
                  nU R                  R                  U5      n[        U5      $ )Nzview(..., type=r:  )	r   unspecifiedr   rC   r   r<  r   viewr   )r2   r   typer<  tviews        r,   r\  ndarray.view  sn    L,,,JJE|///%v=Q&RSSmmE*66  -u~r6   c                :    U R                   R                  U5        g r(   )r   fill_r2  s     r,   fillndarray.fill  s     	% r6   c                6    U R                   R                  5       $ r(   )r   tolistr  s    r,   re  ndarray.tolist  s    {{!!##r6   c                D    S U R                   R                  5        5       $ )Nc              3  8   #    U  H  n[        U5      v   M     g 7fr(   )r   rM  s     r,   r-   #ndarray.__iter__.<locals>.<genexpr>  s     ;$:q

$:r   )r   __iter__r  s    r,   rj  ndarray.__iter__  s    ;DKK$8$8$:;;r6   c                l    [        U R                  5      R                  SS5      R                  SS5      $ )Nr   ztorch.ndarrayzdtype=torch.zdtype=)rR   r   replacer  s    r,   __str__ndarray.__str__  s+    WX/W^X.	
r6   c                     [         R                  " X5      $ ! [        [        4 a2    [        R
                  " U R                  S[        S9n[        U5      s $ f = f)NF)
fill_valuer   )	r	   equalRuntimeError	TypeErrorr   fullr  r   r1  )r2   r   falsys      r,   __eq__ndarray.__eq__  sJ    	"==--i( 	"JJtzze4HE5>!	"s    ?AAc                    X:H  ) $ r(   r[   r  s     r,   __ne__ndarray.__ne__  s    r6   c                     [         R                  " U R                  R                  5       5      $ ! [         a  n[        S5      UeS nAff = f)Nz=only integer scalar arrays can be converted to a scalar index)operatorr   r   item	Exceptionrt  )r2   excs     r,   	__index__ndarray.__index__  sF    	>>$++"2"2"455 	O	s   -0 
AAAc                ,    [        U R                  5      $ r(   )r   r   r  s    r,   __bool__ndarray.__bool__  s    DKK  r6   c                ,    [        U R                  5      $ r(   )r   r   r  s    r,   __int__ndarray.__int__  s    4;;r6   c                ,    [        U R                  5      $ r(   )floatr   r  s    r,   	__float__ndarray.__float__  s    T[[!!r6   c                ,    [        U R                  5      $ r(   )complexr   r  s    r,   __complex__ndarray.__complex__  s    t{{##r6   c                ~     U R                   R                  5       n[        U5      U:H  nU$ ! [         a    Sn U$ f = f)NF)r   r~  r   r  )r2   vresults      r,   
is_integerndarray.is_integer  sH    	  "AVq[F   	F	s   (, <<c                4    U R                   R                  S   $ )Nr   )r   r  r  s    r,   __len__ndarray.__len__  s    {{  ##r6   c                8    U R                   R                  U5      $ r(   )r   __contains__)r2   r   s     r,   r  ndarray.__contains__  s    {{''**r6   c                .    [         R                  " X5      $ r(   )r   r*  )r2   axess     r,   r*  ndarray.transpose  s    ++r6   r=  c               ,    [         R                  " XUS9$ )Nr  )r   reshape)r2   r=  r  s      r,   r  ndarray.reshape#  s    ~~d77r6   c           	     \    [         R                  " U [         R                  " XX#5      5        g r(   )r   copytosort)r2   axiskindr=  s       r,   r  ndarray.sort'  s    dFKKD@Ar6   c                    US:X  a  U R                   R                  5       $ [        U5      S:X  a  U R                  5       US      $ U R	                  U5      $ )Nr[   r   r   )r   r~  rO  ri   rF   )r2   r\   s     r,   r~  ndarray.item+  sO     2:;;##%%Y!^::<Q((##D))r6   c                z  ^^ U R                   mU4S jm[        U[        5      (       a%  [        U5      " U4S j[	        U5       5       5      nO	T" SU5      n[
        R                  " U5      n[        U5      n[        U5      n[        UTR                  5      u  pnU" [        TR                  U5      5      5      $ )Nc                
  > [        U[        5      (       a  UR                  b  UR                  S:  d  U$ [        R                  " TU 45      m[        UR
                  [        5      (       d  UR
                  b   e[        UR                  [        5      (       d  UR                  b   eUR                  (       a  UR                  S-   OS nUR
                  (       a  UR
                  S-   OS n[        X#UR                  * 5      $ )Nr   r   )r   r   stepr   flipstartr   stop)r   r   r  r  r   s       r,   neg_step%ndarray.__getitem__.<locals>.neg_step:  s    q%((QVV-?AFFQJ ZZ-F aggs++qww>>affc**affn<<"#&&AFFQJdE"#''177Q;tDqvvg..r6   c              3  8   >#    U  H  u  pT" X5      v   M     g 7fr(   r[   )r*   r   r   r  s      r,   r-   &ndarray.__getitem__.<locals>.<genexpr>J  s     L;K41;Ks   r   )r   r   r   r]  r   r
   ndarrays_to_tensorsr   r   r   r   r   rF   )r2   r   maybe_squeeze_r  r   s       @@r,   rF   ndarray.__getitem__7  s    	/ eX&&KL9U;KLLEQ&E))%0#E**51"=eV[["QaWV%7%7%>?@@r6   c                   [         R                  " U5      n[        U5      n[        U5      n[	        XR
                  R                  5      u  pn[        R                  " U5      (       d5  [        U5      n[         R                  " X R
                  R                  5      nU R
                  R                  X" U5      5      $ r(   )r
   r  r   r   r   r   r   r   	is_scalarr   cast_if_neededr   rO   )r2   r   rK   r  maybe_unsqueezes        r,   rO   ndarray.__setitem__U  s    ))%0#E**51$?{{GWGW$X!/%%e,,(/E((0A0ABE{{&&uoe.DEEr6   streamc               4    U R                   R                  US9$ )Nr  )r   
__dlpack__)r2   r  s     r,   r  ndarray.__dlpack__f  s    {{%%V%44r6   c                6    U R                   R                  5       $ r(   )r   __dlpack_device__r  s    r,   r  ndarray.__dlpack_device__i  s    {{,,..r6   )r   r(   )r9  r;  TT)r   )r2   r   r=  r   )rK   r   )NN)IrS   rT   rU   rV   r4   methodsitemsmethodra   getattrr   r^   rb   varsr	   	conjugater   dunder	ri_dunderplainrvarivarr  r   r  propertyr  r
  r   r   r  r  r  r#  r'  r  r-  setterr5  rA  r   r@  rH  rX  r   r[  r\  rb  re  rj  rn  __repr__rw  rz  r  r  r  r  r  r  r  r  r*  r  r  r~  rF   rO   r|   putr  r  rW   r[   r6   r,   r   r   1  s}   	  VT^V,&r62v (
 **F3Dg//0IWdnf-fXR&r62v '
 ")Wdnf-VHB%b%0uVHB$B%OQUVtVHB$#%@$
t * w~~|<J7K
 	dD%V( ( # #     0 0 I I * * 	
 	
 & & . .     ! ! 
[[1 1 ! ! 
[[1 1   # # +0 "8 &118P8P  ! !
$<
 W%H" ! "$$+, %( 8B
*A<F ;;D
**C#' 5/r6   r   c                
   / nU  Hz  n[        U[        [        45      (       a  [        U5      n[        U[        5      (       a+  UR                  UR                  R                  5       5        Mi  UR                  U5        M|     U$ )z'Recursively convert tensors into lists.)r   listr   _tolistr   r   r   re  )obja1elems      r,   r  r  m  sc    	BdT5M**4=DdG$$IIdkk((*+IIdO  Ir6   Tr9  F)r@  r=  r?  ndminlikec               8   USLa  [        S5      eUb  [        S5      eUS:w  a  [         e[        U [        5      (       a  USL a  Uc  XPR                  ::  a  U $ [        U [        [
        45      (       a@  U (       a.  [        S U  5       5      (       a  [        R                  " U 5      n O[        U 5      n [        U [        5      (       a  U R                  n S nUb   [        R                  " U5      R                  n[        R                  " XX%5      n[        U5      $ )NFz#'subok' parameter is not supported.z"'like' parameter is not supported.r9  c              3  V   #    U  H  n[        U[        R                  5      v   M!     g 7fr(   )r   r   r   rM  s     r,   r-   array.<locals>.<genexpr>  s     @Cqz!U\\22Cs   '))rC   r   r   r   r  r   r/   r   stackr  r   r   r   r<  r
   _coerce_to_tensor)	r  r   r@  r=  r?  r  r  r<  r   s	            r,   arrayr  ~  s    E!"GHH!"FGG|!! 	3  EMMXX
#e}%%3@C@@@++c"C #,C #wjj KmmE*66$$StCF6?r6   )r  c          	         [        XX#SSS9$ )NFr   )r   r=  r  r@  r  )r  )ar   r=  r  s       r,   r1  r1    s    ue1MMr6   c                   [        XUS9nUR                  R                  5       (       d  UR                  R                  5       Ul        U$ )N)r   r  )r1  r   r  
contiguous)r  r   r  arrs       r,   ascontiguousarrayr    s:    
!t
,C::##%%ZZ**,
Jr6   c               D    [         R                  " U 5      n[        U5      $ r(   )r   from_dlpackr   )r   r   s     r,   r  r    s    !A1:r6   c                     [         R                  " U 5      nU$ ! [         a    [        U 5      R                  n U$ f = fr(   )r   r   r  r1  )entrydtys     r,   _extract_dtyper    sA    #mmE" J  #en""J#s    ==c                    [        U 5      n [        U5      n[        R                  " U R                  UR                  U5      $ r(   )r  r   can_cast_implr<  )from_r   r>  to_s       r,   can_castr    s5    5!E

C%%e&7&7'RRr6   c                 X   / nU  H*  n [        U5      R                  nUR                  U5        M,     [        R                  " U6 n[
        R                  " U5      $ ! [        [        [        4 a8    [
        R                  " U5      n[        R                  " SUR                  S9n Nf = f)Nr   )r   )r1  r   rs  r   rt  r   r   r   emptyr<  r   r   result_type_impl)arrays_and_dtypestensorsr  r   r  r<  s         r,   result_typer    s    G"	6%%A 	q # //9K==%% j)4 	6--&CAS__5A	6s   AA
B)(B)r(   )Nr9  )safe)+
__future__r   rP  rQ  r}  collections.abcr   r    r   r   r   r	   r
   _normalizationsr   r   r   r   newaxisr)   rA   r$   rb   r  r  r  r   r   r   r   r   r   r[  r   r  r  r1  r  r  r  r  r  r[   r6   r,   <module>r     s=   #    $  ; ;  	 
						


  3  3F"
D"t" d" T	"
 t" " T" " 
4" T" t" D"  d!"" d#"$ 
4%"& 
4'"( 
4)"* C"J 



	
 
	"B	?+H	 	 (> y/ y/x	
"%4s%qt %PNd NT 
S&r6   