Ë
    )V.j÷D  ã                  óÊ   — d Z ddlmZ ddlZddlm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 dd	lmZ dd
lmZ dddddœZ G d„ d«      Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)zn
Methods that can be shared by many array-like classes or subclasses:
    Series
    Index
    ExtensionArray
é    )ÚannotationsN)ÚAny)Úlib)Ú!maybe_dispatch_ufunc_to_dunder_op)Ú
ABCNDFrame)Ú	roperator©Úextract_array)Úunpack_zerodim_and_deferÚmaxÚminÚsumÚprod)ÚmaximumÚminimumÚaddÚmultiplyc                  ó.  — e Zd Zd„ Z ed«      d„ «       Z ed«      d„ «       Z ed«      d„ «       Z ed«      d	„ «       Z ed
«      d„ «       Z	 ed«      d„ «       Z
d„ Z ed«      d„ «       Z ed«      d„ «       Z ed«      d„ «       Z ed«      d„ «       Z ed«      d„ «       Z ed«      d„ «       Zd„ Z ed«      d„ «       Z ed«      d„ «       Z ed «      d!„ «       Z ed"«      d#„ «       Z ed$«      d%„ «       Z ed&«      d'„ «       Z ed(«      d)„ «       Z ed*«      d+„ «       Z ed,«      d-„ «       Z ed.«      d/„ «       Z ed0«      d1„ «       Z ed2«      d3„ «       Z ed4«      d5„ «       Z ed6«      d7„ «       Z  ed8«      d9„ «       Z! ed:«      d;„ «       Z"y<)=ÚOpsMixinc                ó   — t         S ©N©ÚNotImplemented©ÚselfÚotherÚops      úWC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pandas/core/arraylike.pyÚ_cmp_methodzOpsMixin._cmp_method#   ó   € ÜÐó    Ú__eq__c                óB   — | j                  |t        j                  «      S r   )r   ÚoperatorÚeq©r   r   s     r   r"   zOpsMixin.__eq__&   ó   € à×Ñ ¤x§{¡{Ó3Ð3r!   Ú__ne__c                óB   — | j                  |t        j                  «      S r   )r   r$   Úner&   s     r   r(   zOpsMixin.__ne__*   r'   r!   Ú__lt__c                óB   — | j                  |t        j                  «      S r   )r   r$   Últr&   s     r   r+   zOpsMixin.__lt__.   r'   r!   Ú__le__c                óB   — | j                  |t        j                  «      S r   )r   r$   Úler&   s     r   r.   zOpsMixin.__le__2   r'   r!   Ú__gt__c                óB   — | j                  |t        j                  «      S r   )r   r$   Úgtr&   s     r   r1   zOpsMixin.__gt__6   r'   r!   Ú__ge__c                óB   — | j                  |t        j                  «      S r   )r   r$   Úger&   s     r   r4   zOpsMixin.__ge__:   r'   r!   c                ó   — t         S r   r   r   s      r   Ú_logical_methodzOpsMixin._logical_methodA   r    r!   Ú__and__c                óB   — | j                  |t        j                  «      S r   )r8   r$   Úand_r&   s     r   r9   zOpsMixin.__and__D   s   € à×#Ñ# E¬8¯=©=Ó9Ð9r!   Ú__rand__c                óB   — | j                  |t        j                  «      S r   )r8   r   Úrand_r&   s     r   r<   zOpsMixin.__rand__H   s   € à×#Ñ# E¬9¯?©?Ó;Ð;r!   Ú__or__c                óB   — | j                  |t        j                  «      S r   )r8   r$   Úor_r&   s     r   r?   zOpsMixin.__or__L   ó   € à×#Ñ# E¬8¯<©<Ó8Ð8r!   Ú__ror__c                óB   — | j                  |t        j                  «      S r   )r8   r   Úror_r&   s     r   rC   zOpsMixin.__ror__P   ó   € à×#Ñ# E¬9¯>©>Ó:Ð:r!   Ú__xor__c                óB   — | j                  |t        j                  «      S r   )r8   r$   Úxorr&   s     r   rG   zOpsMixin.__xor__T   rB   r!   Ú__rxor__c                óB   — | j                  |t        j                  «      S r   )r8   r   Úrxorr&   s     r   rJ   zOpsMixin.__rxor__X   rF   r!   c                ó   — t         S r   r   r   s      r   Ú_arith_methodzOpsMixin._arith_method_   r    r!   Ú__add__c                óB   — | j                  |t        j                  «      S )a/  
        Get Addition of DataFrame and other, column-wise.

        Equivalent to ``DataFrame.add(other)``.

        Parameters
        ----------
        other : scalar, sequence, Series, dict or DataFrame
            Object to be added to the DataFrame.

        Returns
        -------
        DataFrame
            The result of adding ``other`` to DataFrame.

        See Also
        --------
        DataFrame.add : Add a DataFrame and another object, with option for index-
            or column-oriented addition.

        Examples
        --------
        >>> df = pd.DataFrame({'height': [1.5, 2.6], 'weight': [500, 800]},
        ...                   index=['elk', 'moose'])
        >>> df
               height  weight
        elk       1.5     500
        moose     2.6     800

        Adding a scalar affects all rows and columns.

        >>> df[['height', 'weight']] + 1.5
               height  weight
        elk       3.0   501.5
        moose     4.1   801.5

        Each element of a list is added to a column of the DataFrame, in order.

        >>> df[['height', 'weight']] + [0.5, 1.5]
               height  weight
        elk       2.0   501.5
        moose     3.1   801.5

        Keys of a dictionary are aligned to the DataFrame, based on column names;
        each value in the dictionary is added to the corresponding column.

        >>> df[['height', 'weight']] + {'height': 0.5, 'weight': 1.5}
               height  weight
        elk       2.0   501.5
        moose     3.1   801.5

        When `other` is a :class:`Series`, the index of `other` is aligned with the
        columns of the DataFrame.

        >>> s1 = pd.Series([0.5, 1.5], index=['weight', 'height'])
        >>> df[['height', 'weight']] + s1
               height  weight
        elk       3.0   500.5
        moose     4.1   800.5

        Even when the index of `other` is the same as the index of the DataFrame,
        the :class:`Series` will not be reoriented. If index-wise alignment is desired,
        :meth:`DataFrame.add` should be used with `axis='index'`.

        >>> s2 = pd.Series([0.5, 1.5], index=['elk', 'moose'])
        >>> df[['height', 'weight']] + s2
               elk  height  moose  weight
        elk    NaN     NaN    NaN     NaN
        moose  NaN     NaN    NaN     NaN

        >>> df[['height', 'weight']].add(s2, axis='index')
               height  weight
        elk       2.0   500.5
        moose     4.1   801.5

        When `other` is a :class:`DataFrame`, both columns names and the
        index are aligned.

        >>> other = pd.DataFrame({'height': [0.2, 0.4, 0.6]},
        ...                      index=['elk', 'moose', 'deer'])
        >>> df[['height', 'weight']] + other
               height  weight
        deer      NaN     NaN
        elk       1.7     NaN
        moose     3.0     NaN
        )rN   r$   r   r&   s     r   rO   zOpsMixin.__add__b   s   € ðp ×!Ñ! %¬¯©Ó6Ð6r!   Ú__radd__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úraddr&   s     r   rQ   zOpsMixin.__radd__¼   ó   € à×!Ñ! %¬¯©Ó8Ð8r!   Ú__sub__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Úsubr&   s     r   rU   zOpsMixin.__sub__À   ó   € à×!Ñ! %¬¯©Ó6Ð6r!   Ú__rsub__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrsubr&   s     r   rY   zOpsMixin.__rsub__Ä   rT   r!   Ú__mul__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Úmulr&   s     r   r\   zOpsMixin.__mul__È   rX   r!   Ú__rmul__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrmulr&   s     r   r_   zOpsMixin.__rmul__Ì   rT   r!   Ú__truediv__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Útruedivr&   s     r   rb   zOpsMixin.__truediv__Ð   s   € à×!Ñ! %¬×)9Ñ)9Ó:Ð:r!   Ú__rtruediv__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrtruedivr&   s     r   re   zOpsMixin.__rtruediv__Ô   s   € à×!Ñ! %¬×);Ñ);Ó<Ð<r!   Ú__floordiv__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Úfloordivr&   s     r   rh   zOpsMixin.__floordiv__Ø   s   € à×!Ñ! %¬×):Ñ):Ó;Ð;r!   Ú__rfloordivc                óB   — | j                  |t        j                  «      S r   )rN   r   Ú	rfloordivr&   s     r   Ú__rfloordiv__zOpsMixin.__rfloordiv__Ü   s   € à×!Ñ! %¬×)<Ñ)<Ó=Ð=r!   Ú__mod__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Úmodr&   s     r   ro   zOpsMixin.__mod__à   rX   r!   Ú__rmod__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrmodr&   s     r   rr   zOpsMixin.__rmod__ä   rT   r!   Ú
__divmod__c                ó.   — | j                  |t        «      S r   )rN   Údivmodr&   s     r   ru   zOpsMixin.__divmod__è   s   € à×!Ñ! %¬Ó0Ð0r!   Ú__rdivmod__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrdivmodr&   s     r   rx   zOpsMixin.__rdivmod__ì   s   € à×!Ñ! %¬×):Ñ):Ó;Ð;r!   Ú__pow__c                óB   — | j                  |t        j                  «      S r   )rN   r$   Úpowr&   s     r   r{   zOpsMixin.__pow__ð   rX   r!   Ú__rpow__c                óB   — | j                  |t        j                  «      S r   )rN   r   Úrpowr&   s     r   r~   zOpsMixin.__rpow__ô   rT   r!   N)#Ú__name__Ú
__module__Ú__qualname__r   r   r"   r(   r+   r.   r1   r4   r8   r9   r<   r?   rC   rG   rJ   rN   rO   rQ   rU   rY   r\   r_   rb   re   rh   rn   ro   rr   ru   rx   r{   r~   © r!   r   r   r      sÐ  „ òñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4ñ ˜hÓ'ñ4ó (ð4òñ ˜iÓ(ñ:ó )ð:ñ ˜jÓ)ñ<ó *ð<ñ ˜hÓ'ñ9ó (ð9ñ ˜iÓ(ñ;ó )ð;ñ ˜iÓ(ñ9ó )ð9ñ ˜jÓ)ñ;ó *ð;òñ ˜iÓ(ñW7ó )ðW7ñr ˜jÓ)ñ9ó *ð9ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜mÓ,ñ;ó -ð;ñ ˜nÓ-ñ=ó .ð=ñ ˜nÓ-ñ<ó .ð<ñ ˜mÓ,ñ>ó -ð>ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ð9ñ ˜lÓ+ñ1ó ,ð1ñ ˜mÓ,ñ<ó -ð<ñ ˜iÓ(ñ7ó )ð7ñ ˜jÓ)ñ9ó *ñ9r!   r   c                óv  ‡ ‡‡‡‡‡‡‡‡‡ — ddl m}m} ddlmŠ ddlmŠmŠ t        ‰ «      }t        di |¤Ž}t        ‰ ‰‰g|¢­i |¤Ž}|t        ur|S t        j                  j                  |j                  f}	|D ]s  }
t        |
d«      xr |
j                   ‰ j                   kD  }t        |
d«      xr0 t        |
«      j                  |	vxr t#        |
‰ j$                  «       }|s|sŒmt        c S  t'        d„ |D «       «      }t)        ||«      D ��cg c]  \  }}t+        |‰«      sŒ|‘Œ c}}Št-        ‰«      dkD  rÎt/        |«      }t-        |«      dkD  r"||hj1                  |«      rt3        d	‰› d
�«      ‚‰ j4                  }‰dd D ]@  }t7        t)        ||j4                  «      «      D ]  \  }\  }}|j9                  |«      ||<   Œ ŒB t;        t)        ‰ j<                  |«      «      Št'        ˆˆfd„t)        ||«      D «       «      }n)t;        t)        ‰ j<                  ‰ j4                  «      «      Š‰ j>                  dk(  rI|D �cg c]  }t        |d«      sŒtA        |d«      ‘Œ }}t-        t/        |«      «      dk(  r|d   nd}d|iŠ ni Š ˆˆfd„}ˆˆˆˆˆˆ ˆ fd„Šd|v rtC        ‰ ‰‰g|¢­i |¤Ž} ||«      S ‰dk(  rtE        ‰ ‰‰g|¢­i |¤Ž}|t        ur|S ‰ j>                  dkD  rBt-        |«      dkD  s‰jF                  dkD  r%t'        d„ |D «       «      } tA        ‰‰«      |i |¤Ž}nz‰ j>                  dk(  r%t'        d„ |D «       «      } tA        ‰‰«      |i |¤Ž}nF‰dk(  r-|s+|d   jH                  }|jK                  tA        ‰‰«      «      }ntM        |d   ‰‰g|¢­i |¤Ž} ||«      }|S c c}}w c c}w )z˜
    Compatibility with numpy ufuncs.

    See also
    --------
    numpy.org/doc/stable/reference/arrays.classes.html#numpy.class.__array_ufunc__
    r   )Ú	DataFrameÚSeries)ÚNDFrame)ÚArrayManagerÚBlockManagerÚ__array_priority__Ú__array_ufunc__c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Útype©Ú.0Úxs     r   Ú	<genexpr>zarray_ufunc.<locals>.<genexpr>,  s   è ø€ Ð*¡6˜a”$�q—'¡6ùs   ‚é   zCannot apply ufunc z& to mixed DataFrame and Series inputs.Nc              3  ód   •K  — | ]'  \  }}t        |‰«      r |j                  di ‰¤Žn|–— Œ) y ­w)Nr„   )Ú
issubclassÚreindex)r�   r‘   Útrˆ   Úreconstruct_axess      €€r   r’   zarray_ufunc.<locals>.<genexpr>D  s:   øè ø€ ð 
á*‘��1ô .8¸¸7Ô-CˆIˆA�I‰IÑ)Ð(Ò)ÈÓJÙ*ùs   ƒ-0Únamec                óZ   •— ‰j                   dkD  rt        ˆfd„| D «       «      S  ‰| «      S )Nr“   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr   r„   )r�   r‘   Ú_reconstructs     €r   r’   z3array_ufunc.<locals>.reconstruct.<locals>.<genexpr>U  s   øè ø€ Ð9±&¨Q™ aŸ±&ùs   ƒ)ÚnoutÚtuple)Úresultrœ   Úufuncs    €€r   Úreconstructz array_ufunc.<locals>.reconstructR  s*   ø€ Ø�:‰:˜Š>äÓ9±&Ó9Ó9Ð9á˜FÓ#Ð#r!   c                óJ  •— t        j                  | «      r| S | j                  ‰j                  k7  r‰dk(  rt        ‚| S t	        | ‰‰f«      r‰j                  | | j                  ¬«      } n ‰j                  | fi ‰¤‰¤ddi¤Ž} t        ‰«      dk(  r| j                  ‰«      } | S )NÚouter)ÚaxesÚcopyFr“   )
r   Ú	is_scalarÚndimÚNotImplementedErrorÚ
isinstanceÚ_constructor_from_mgrr¤   Ú_constructorÚlenÚ__finalize__)rŸ   r‰   rŠ   Ú	alignableÚmethodr˜   Úreconstruct_kwargsr   s    €€€€€€€r   rœ   z!array_ufunc.<locals>._reconstructY  s±   ø€ Ü�=‰=˜Ô ØˆMà�;‰;˜$Ÿ)™)Ò#Ø˜Ò Ü)Ð)ØˆMÜ�f˜|¨\Ð:Ô;à×/Ñ/°¸V¿[¹[Ð/ÓI‰Fð '�T×&Ñ&ØñØ*ðØ.@ñØGLòˆFô ˆy‹>˜QÒØ×(Ñ(¨Ó.ˆFØˆr!   ÚoutÚreducec              3  óF   K  — | ]  }t        j                  |«      –— Œ y ­wr   )ÚnpÚasarrayr�   s     r   r’   zarray_ufunc.<locals>.<genexpr>ˆ  s   è ø€ Ð5©f¨”r—z‘z !—}©fùs   ‚!c              3  ó6   K  — | ]  }t        |d ¬«      –— Œ y­w)T)Úextract_numpyNr	   r�   s     r   r’   zarray_ufunc.<locals>.<genexpr>Ž  s   è ø€ ÐLÁVÀ”} Q°d×;Ð;ÁVùs   ‚Ú__call__r„   )'Úpandas.core.framer†   r‡   Úpandas.core.genericrˆ   Úpandas.core.internalsr‰   rŠ   rŽ   Ú_standardize_out_kwargr   r   r´   ÚndarrayrŒ   Úhasattrr‹   r©   Ú_HANDLED_TYPESrž   Úzipr•   r¬   ÚsetÚissubsetr¨   r¤   Ú	enumerateÚunionÚdictÚ_AXIS_ORDERSr§   ÚgetattrÚdispatch_ufunc_with_outÚdispatch_reduction_ufuncr�   Ú_mgrÚapplyÚdefault_array_ufunc)!r   r    r¯   ÚinputsÚkwargsr†   r‡   ÚclsrŸ   Úno_deferÚitemÚhigher_priorityÚhas_array_ufuncÚtypesr‘   r—   Ú	set_typesr¤   ÚobjÚiÚax1Úax2Únamesr™   r¡   Úmgrr‰   rŠ   rˆ   rœ   r®   r˜   r°   s!   ```                       @@@@@@@r   Úarray_ufuncrÜ   ý   sÖ  ÿù€ ÷õ ,÷ô
 ˆt‹*€Cä#Ñ- fÑ-€Fô /¨t°U¸FÐVÀVÒVÈvÑV€FØ”^Ñ#Øˆô 	�
‰
×"Ñ"Ø×Ñð€Hó
 ˆä�DÐ.Ó/ò BØ×'Ñ'¨$×*AÑ*AÑAð 	ô
 �DÐ+Ó,ò :Ü�T“
×*Ñ*°(Ð:ò:ä˜t T×%8Ñ%8Ó9Ð9ð 	ñ
 šoÜ!Ò!ð ô Ñ*¡6Ó*Ó*€EÜ" 6¨5Ô1ÔLÑ1‘t�q˜!´ZÀÀ7Õ5K’Ð1ÒL€Iä
ˆ9ƒ~˜Òô
 ˜“Jˆ	Üˆy‹>˜AÒ 9¨fÐ"5×">Ñ">¸yÔ"Iô &Ø% e WÐ,RÐSóð ð �y‰yˆØ˜Q˜R“=ˆCô "+¬3¨t°S·X±XÓ+>Ö!?‘�‘:�C˜ØŸ)™) C›.��Q’ñ "@ð !ô  ¤ D×$5Ñ$5°tÓ <Ó=ÐÜô 
ä˜F EÔ*ó
ó 
‰ô
  ¤ D×$5Ñ$5°t·y±yÓ AÓBÐà‡y�y�A‚~Ù-3ÓJ©V¨´w¸qÀ&Õ7I”˜˜FÕ#¨VˆÐJÜœs 5›z›?¨aÒ/ˆu�QŠx°TˆØ$ d˜^ÑàÐõ$÷ò ð0 ��ä(¨¨u°fÐP¸vÒPÈÑPˆÙ˜6Ó"Ð"à�Òä)¨$°°vÐQÀÒQÈ&ÑQˆØœÑ'ØˆMð
 ‡y�y�1‚}œ#˜f›+¨š/¨U¯Z©Z¸!ª^ô Ñ5©fÓ5Ó5ˆð (”˜ Ó'¨Ð:°6Ñ:‰Ø	�‰�aŠäÑLÁVÓLÓLˆØ'”˜ Ó'¨Ð:°6Ñ:‰ð �ZÒ©ð ˜‘)—.‘.ˆCØ—Y‘Yœw u¨fÓ5Ó6‰Fô )¨°©°E¸6ÐUÀFÒUÈfÑUˆFñ ˜Ó €FØ€Mùóe Mùò> Ks   ÄN0Ä&N0ÉN6ÉN6c                 ót   — d| vr3d| v r/d| v r+| j                  d«      }| j                  d«      }||f}|| d<   | S )z²
    If kwargs contain "out1" and "out2", replace that with a tuple "out"

    np.divmod, np.modf, np.frexp can have either `out=(out1, out2)` or
    `out1=out1, out2=out2)`
    r±   Úout1Úout2)Úpop)rÎ   rÞ   rß   r±   s       r   r¼   r¼   ¢  sM   € ð �FÑ˜v¨Ñ/°F¸fÑ4DØ�z‰z˜&Ó!ˆØ�z‰z˜&Ó!ˆØ�TˆlˆØˆˆu‰Ø€Mr!   c                óº  — |j                  d«      }|j                  dd«      } t        ||«      |i |¤Ž}|t        u rt        S t        |t        «      rPt        |t        «      rt        |«      t        |«      k7  rt        ‚t        ||«      D ]  \  }}	t        ||	|«       Œ |S t        |t        «      rt        |«      dk(  r|d   }nt        ‚t        |||«       |S )zz
    If we have an `out` keyword, then call the ufunc without `out` and then
    set the result into the given `out`.
    r±   ÚwhereNr“   r   )	rà   rÇ   r   r©   rž   r¬   r¨   rÀ   Ú_assign_where)
r   r    r¯   rÍ   rÎ   r±   râ   rŸ   ÚarrÚress
             r   rÈ   rÈ   ±  sÎ   € ð �*‰*�UÓ
€CØ�J‰J�w Ó%€Eà#ŒW�U˜FÓ# VÐ6¨vÑ6€Fà”ÑÜÐä�&œ%Ô ä˜#œuÔ%¬¨S«´S¸³[Ò)@Ü%Ð%ä˜C Ö(‰HˆC�Ü˜#˜s EÕ*ð )ð ˆ
ä�#”uÔÜˆs‹8�qŠ=Ø�a‘&‰Cä%Ð%ä�#�v˜uÔ%Ø€Jr!   c                óB   — |€|| dd yt        j                  | ||«       y)zV
    Set a ufunc result into 'out', masking with a 'where' argument if necessary.
    N)r´   Úputmask)r±   rŸ   râ   s      r   rã   rã   Ô  s"   € ð €}àˆ‰A‰ä
�
‰
�3˜˜vÕ&r!   c                ó¶   ‡ — t        ˆ fd„|D «       «      st        ‚|D �cg c]  }|‰ ur|nt        j                  |«      ‘Œ }} t	        ||«      |i |¤ŽS c c}w )z�
    Fallback to the behavior we would get if we did not define __array_ufunc__.

    Notes
    -----
    We are assuming that `self` is among `inputs`.
    c              3  ó&   •K  — | ]  }|‰u –— Œ
 y ­wr   r„   )r�   r‘   r   s     €r   r’   z&default_array_ufunc.<locals>.<genexpr>ç  s   øè ø€ Ð)¡&˜Qˆq�DŒy¡&ùs   ƒ)Úanyr¨   r´   rµ   rÇ   )r   r    r¯   rÍ   rÎ   r‘   Ú
new_inputss   `      r   rÌ   rÌ   ß  s_   ø€ ô Ó)¡&Ó)Ô)Ü!Ð!áAGÓHÁ¸A�q ‘}‘!¬"¯*©*°Q«-Ñ7À€JÐHà!Œ7�5˜&Ó! :Ð8°Ñ8Ð8ùò Is    "Ac                óB  — |dk(  sJ ‚t        |«      dk7  s|d   | urt        S |j                  t        vrt        S t        |j                     }t	        | |«      st        S | j
                  dkD  rt        | t        «      rd|d<   d|vrd|d<    t        | |«      dddi|¤ŽS )	z@
    Dispatch ufunc reductions to self's reduction methods.
    r²   r“   r   FÚnumeric_onlyÚaxisÚskipnar„   )	r¬   r   r�   ÚREDUCTION_ALIASESr¾   r§   r©   r   rÇ   )r   r    r¯   rÍ   rÎ   Úmethod_names         r   rÉ   rÉ   ï  s²   € ð �XÒÐÐä
ˆ6ƒ{�aÒ˜6 !™9¨DÑ0ÜÐà‡~�~Ô.Ñ.ÜÐä# E§N¡NÑ3€Kô �4˜Ô%ÜÐà‡y�y�1‚}Ü�dœJÔ'à%*ˆF�>Ñ"à˜Ñð ˆF�6‰Nð &Œ7�4˜Ó%Ñ=¨UÐ=°fÑ=Ð=r!   )r    únp.ufuncr¯   ÚstrrÍ   r   rÎ   r   )ÚreturnrÅ   )r    rò   r¯   ró   )rô   ÚNone)Ú__doc__Ú
__future__r   r$   Útypingr   Únumpyr´   Úpandas._libsr   Úpandas._libs.ops_dispatchr   Úpandas.core.dtypes.genericr   Úpandas.corer   Úpandas.core.constructionr
   Úpandas.core.ops.commonr   rð   r   rÜ   r¼   rÈ   rã   rÌ   rÉ   r„   r!   r   Ú<module>r      sn   ðñõ #ã Ý ã å Ý Gå 1å !Ý 2Ý ;ð ØØØñ	Ð ÷W9ñ W9ó|bóJó óF'ó9ô #>r!   