Your IP : 3.134.111.63


Current Path : /opt/alt/python313/lib64/python3.13/__pycache__/
Upload File :
Current File : //opt/alt/python313/lib64/python3.13/__pycache__/_pydecimal.cpython-313.opt-2.pyc

�

*}g�w���/SQr\rSrSrSrSSKrSSKrSSK	r	SSK
Jr \"SSSS	9r
SrSrS
rSrSrSrSrSrSrSr\	R2S:XaSrSrSrOSrSrSr\\S-
-
r"SS\5r"SS\5r "SS\5r!"S S!\!5r""S"S#\\#5r$"S$S%\!5r%"S&S'\!\#5r&"S(S)\5r'"S*S+\!5r("S,S-\5r)"S.S/\5r*"S0S1\'\)5r+"S2S3\'\)\*5r,"S4S5\\-5r.\ \$\'\+\)\,\!\*\./	r/\"\!\%\!\&\!\(\!0r0\\\\\\\\4r1SSK2r2\2Rf"S65r4\5"/S7Q5r6S8r7S9r8C2SsS:jr9"S;S<\:5r;StS=jr<\RzR}\;5 "S>S?\:5r?"S@SA\:5r@"SBSC\:5rASuSDjrB\CR�rESErFSFrGSGrHSHrISvSIjrJSJrKSKrL"SLSM\:5rM\M"5R�rOSvSNjrPSOrQSPrRSQSRSSSTSUSVSWSXSYSZ.	4S[jrSSwS\jrTStS]jrU\@"S^\\$\+\!//S_S`SSSa9rV\@"Sb\\$\+\!\ \,//Sc9rW\@"Sb\//Sc9rXSSKYrY\YR�"Sd\YR�\YR�-5R�r^\YR�"Se5R�r_\YR�"Sf5R�r`\YR�"Sg\YR�\YR�-5rbCYSSKcrdSsShjreSirfSjrgSxSkjrhSlriSmrj\;"Sn5rk\;"So5rl\;"Sp5rm\;"S5rn\;"S5ro\;"Sq5rp\k\l4rq\	R�R�rt\	R�R�rv\	R�R�rx\y"SX\tSr-
\t5rzC	g!\a S
r
GNGf=f!\a N�f=f)y)%�Decimal�Context�DecimalTuple�DefaultContext�BasicContext�ExtendedContext�DecimalException�Clamped�InvalidOperation�DivisionByZero�Inexact�Rounded�	Subnormal�Overflow�	Underflow�FloatOperation�DivisionImpossible�InvalidContext�ConversionSyntax�DivisionUndefined�
ROUND_DOWN�
ROUND_HALF_UP�ROUND_HALF_EVEN�
ROUND_CEILING�ROUND_FLOOR�ROUND_UP�ROUND_HALF_DOWN�
ROUND_05UP�
setcontext�
getcontext�localcontext�MAX_PREC�MAX_EMAX�MIN_EMIN�	MIN_ETINY�HAVE_THREADS�HAVE_CONTEXTVAR�decimalz1.70z2.4.2�N)�
namedtuplerzsign digits exponent)�modulec��U$�N�)�argss �1/opt/alt/python313/lib64/python3.13/_pydecimal.py�<lambda>r0Cs���rrrrrrrrTl����l��N�Zol������N�Zoi@�Ti����c��\rSrSrSrSrg)r�_c��gr,r-��self�contextr.s   r/�handle�DecimalException.handlers��r1r-N��__name__�
__module__�__qualname__�__firstlineno__r9�__static_attributes__r-r1r/rr_s��&
r1rc��\rSrSrSrg)r	�vr-N�r<r=r>r?r@r-r1r/r	r	v���r1r	c��\rSrSrSrSrg)r
�c��U(a9[USRUSRSS5nURU5$[$)Nr(�nT)�_dec_from_triple�_sign�_int�_fix_nan�_NaN)r7r8r.�anss    r/r9�InvalidOperation.handle�s9���"�4��7�=�=�$�q�'�,�,��T�J�C��<�<��(�(��r1r-Nr;r-r1r/r
r
�s��.r1r
c��\rSrSrSrSrg)r�c��[$r,�rMr6s   r/r9�ConversionSyntax.handle�����r1r-Nr;r-r1r/rr�s��r1rc��\rSrSrSrSrg)r�c��[U$r,)�_SignedInfinity�r7r8�signr.s    r/r9�DivisionByZero.handle�s
���t�$�$r1r-Nr;r-r1r/rr�s��%r1rc��\rSrSrSrSrg)r�c��[$r,rSr6s   r/r9�DivisionImpossible.handle�rUr1r-Nr;r-r1r/rr����r1rc��\rSrSrSrSrg)r��c��[$r,rSr6s   r/r9�DivisionUndefined.handle�rUr1r-Nr;r-r1r/rr�rar1rc��\rSrSrSrg)r��r-NrCr-r1r/rr�rDr1rc��\rSrSrSrSrg)r��c��[$r,rSr6s   r/r9�InvalidContext.handle�rUr1r-Nr;r-r1r/rr�s��r1rc��\rSrSrSrg)r
��r-NrCr-r1r/r
r
�rDr1r
c��\rSrSrSrg)r�r-NrCr-r1r/rr�rDr1rc��\rSrSrSrSrg)r�c��UR[[[[4;a	[
U$US:XaQUR[:Xa	[
U$[USUR-URUR-
S-5$US:XaQUR[:Xa	[
U$[USUR-URUR-
S-5$g)Nr(�9r2)�roundingrrrrrYrrI�prec�EmaxrrZs    r/r9�Overflow.handles������
�� /�� ;�;�"�4�(�(��1�9����=�0�&�t�,�,�#�D�#�g�l�l�*:�#�L�L����5�a�7�9�
9��1�9����;�.�&�t�,�,�#�D�#�g�l�l�*:�$�\�\�'�,�,�6�q�8�:�
:�r1r-Nr;r-r1r/rrs��,
:r1rc��\rSrSrSrg)ri&r-NrCr-r1r/rr&rDr1rc��\rSrSrSrg)ri5r-NrCr-r1r/rr5rDr1r�decimal_context)ru�Eminrv�capitals�clamprt�flags�trapsc��[R5$![a$ [5n[R	U5 Us$f=fr,)�_current_context_var�get�LookupErrorr�set�r8s r/rr_s?���#�'�'�)�)�����)��� � ��)����s��+A�Ac��U[[[4;a UR5nUR	5 [
R
U5 gr,)rrr�copy�clear_flagsr�r�r�s r/rrms6���>�<��A�A��,�,�.���������W�%r1c���Uc
[5n[U5nUR5H4up4U[;a[	SUS35e[URX45 M6 U$)N�'z2' is an invalid keyword argument for this function)r�_ContextManager�items�_context_attributes�	TypeError�setattr�new_context)�ctx�kwargs�ctx_manager�key�values     r/r r vsc��H�{��l��!�#�&�K��l�l�n�
���)�)��a��u�$V�W�X�X���'�'��4�%��r1c��\rSrSrSrS{Sjr\S5rSrSr	S|Sjr
S	rS
rSr
S}SjrS}S
jrS}SjrS}SjrS}SjrS}SjrSrSrSrSrS~SjrS}SjrS}SjrS}SjrSSjrS}Sjr\rS}SjrS}Sjr S}Sjr!\!r"S}Sjr#S r$S}S!jr%S}S"jr&S}S#jr'S}S$jr(S}S%jr)S}S&jr*S}S'jr+S}S(jr,S)r-S*r.\.r/\0S+5r1\0S,5r2S-r3S.r4S/r5S0r6S1r7S2r8S3r9S4r:S5r;S6r<S7r=S8r>\?"\7\8\9\:\;\<\=\>S99r@S}S:jrAS;rBS<rCS}S=jrDS}S>jrES?rFS|S@jrGS}SAjrHS}SBjrIS|SCjrJS}SDjrKSErLSFrMS|SGjrNS|SHjrO\OrPS}SIjrQS}SJjrRS}SKjrSSLrTSMrUSNrVSOrWS}SPjrXS}SQjrYS}SRjrZSSr[STr\S}SUjr]S}SVjr^SWr_SXr`SYraSZrbS}S[jrcS\rdS]reS^rfS}S_jrgS`rhSariS}SbjrjScrkS}SdjrlS}SejrmSfrnSgroS}ShjrpS}SijrqS}SjjrrS}SkjrsS}SljrtS}SmjruS}SnjrvS}SojrwS}SpjrxS}SqjrySrrzS}Ssjr{S}Stjr|S}Sujr}Svr~SwrSxr�S|Syjr�Szr�g)�ri�)�_exprKrJ�_is_specialNc��	�[RU5n[U[5(Ga�[	UR5R
SS55nUc&Uc
[5nUR[SU-5$URS5S:XaSUlOSUlURS5nUbtURS	5=(d Sn[URS
5=(d S5n[[XV-55Ul
U[U5-
UlSUlU$URS
5nUbW[[U=(d S55R#S5Ul
URS5(aSUlOSUlOSUl
SUlSUlU$[U[5(a>US:�aSUlOSUlSUl[[%U55Ul
SUlU$[U[&5(aFURUlURUlURUl
UR UlU$[U[(5(aNUR*Ul[UR5Ul
[UR,5UlSUlU$[U[.[045(Gau[U5S:wa[3S5e[US[5(a	USS;d[3S5eUSUlUSS:XaSUl
USUlSUlU$/n	USHSn
[U
[5(a2SU
s=::aS::a%O O"U	(dU
S:waU	R5U
5 MHMJ[3S5e USS;a7SR7[9[U	55Ul
USUlSUlU$[US[5(aASR7[9[U	=(d S/55Ul
USUlSUlU$[3S5e[U[:5(a~Uc
[5nUR[<S5 [&R?U5nURUlURUlURUl
UR UlU$[ASU-5e)N�_�zInvalid literal for Decimal: %rr[�-r2r(�int�frac�exp�0F�diag�signal�NrH�FT�ztInvalid tuple size in creation of Decimal from list or tuple.  The list or tuple should have exactly three elements.�r(r2z|Invalid sign.  The first value in the tuple should be an integer; either 0 for a positive number or 1 for a negative number.��	zTThe second value in the tuple must be composed of integers in the range 0 through 9.�rHr�zUThe third value in the tuple must be an integer, or one of the strings 'F', 'n', 'N'.�;strict semantics for mixing floats and Decimals are enabledzCannot convert %r to Decimal)!�object�__new__�
isinstance�str�_parser�strip�replacer�_raise_errorr�grouprJr�rK�lenr�r��lstrip�absr�_WorkRepr[r��list�tuple�
ValueError�append�join�map�floatr�
from_floatr�)�clsr�r8r7�m�intpart�fracpartr�r��digits�digits           r/r��Decimal.__new__�sY��.�~�~�c�"���e�S�!�!�����
�-�-�c�2�6�7�A��y��?�(�l�G��+�+�,<� A�E� I�K�K��w�w�v��#�%���
���
��g�g�e�n�G��"��7�7�6�?�0�b���!�'�'�%�.�/�C�0����G�$4� 5�6��	��#�h�-�/��	�#(�� ��K��w�w�v����#� #�C����$4� 5� <� <�S� A�D�I��w�w�x�(�(�$'��	�$'��	�!$�D�I� #�D�I�#'�� ��K��e�S�!�!���z���
���
��D�I��C��J��D�I�$�D���K��e�W�%�%����D�I����D�J����D�I� %� 1� 1�D���K��e�X�&�&����D�J��E�I�I��D�I��E�I�I��D�I�$�D���K��e�d�5�\�*�*��5�z�Q�� �"G�H�H��u�Q�x��-�-�%��(�e�2C� �"O�P�P��q��D�J��Q�x�3����	�!�!�H��	�#'�� �6�K�1��"�1�X�E�!�%��-�-�!�u�/��/�!�U�a�Z�"�M�M�%�0�&0�)�*8�9�9�
&���8�z�)� "����C��(8� 9�D�I� %�a��D�I�'+�D�$��K� ��a��#�.�.� "����C���A�3�(?� @�D�I� %�a��D�I�',�D�$�
�K�%�&>�?�?�
�e�U�#�#���$�,��� � ���
��&�&�u�-�E����D�I����D�J����D�I� %� 1� 1�D���K��6��>�?�?r1c�<�[U[5(a!US:�aSOSnSn[[U55nO�[U[5(a�[
R"U5(d[
R"U5(aU"[U55$[
R"SU5S:XaSnOSn[U5R5upVUR5S-
n[USU--5nO[S5e[X$U*5nU[LaU$U"U5$)Nr(r2g�?�zargument must be int or float.)r�r�r�r�r��_math�isinf�isnan�repr�copysign�as_integer_ratio�
bit_lengthr�rIr)r��fr[�k�coeffrH�d�results        r/r��Decimal.from_floatIs���,�a�����Q��1�A�D��A���A��K�E�
��5�
!�
!��{�{�1�~�~����Q����4��7�|�#��~�~�c�1�%��,������q�6�*�*�,�D�A������"�A���!�Q�$��K�E��<�=�=�!�$��r�2���'�>��M��v�;�r1c�Z�UR(aURnUS:XagUS:Xagg)NrHr2r�r�r()r�r�)r7r�s  r/�_isnan�Decimal._isnanvs-������)�)�C��c�z������r1c�J�URS:XaUR(aggg)Nr����r2r()r�rJ�r7s r/�_isinfinity�Decimal._isinfinity�s ���9�9����z�z���r1c�L�UR5nUcSnOUR5nU(dU(apUc
[5nUS:XaUR[SU5$US:XaUR[SU5$U(aUR	U5$UR	U5$g)NFr��sNaNr()r�rr�r
rL)r7�otherr8�self_is_nan�other_is_nans     r/�_check_nans�Decimal._check_nans�s����k�k�m���=� �L� �<�<�>�L��,���$�,���a���+�+�,<�f�(,�.�.��q� ��+�+�,<�f�(-�/�/���}�}�W�-�-��>�>�'�*�*�r1c���Uc
[5nUR(dUR(a�UR5(aUR[SU5$UR5(aUR[SU5$UR5(aUR[SU5$UR5(aUR[SU5$g)Nzcomparison involving sNaNzcomparison involving NaNr()rr��is_snanr�r
�is_qnan�r7r�r8s   r/�_compare_check_nans�Decimal._compare_check_nans�s����?� �l�G����u�0�0��|�|�~�~��+�+�,<�,G�,0�2�2�������+�+�,<�,G�,1�3�3�������+�+�,<�,F�,0�2�2�������+�+�,<�,F�,1�3�3�r1c�F�UR=(d URS:g$�Nr��r�rKr�s r/�__bool__�Decimal.__bool__�s��
���3�4�9�9��#3�3r1c��UR(dUR(a-UR5nUR5nX#:XagX#:aggU(dU(dgSUR-*$U(dSUR-$URUR:agURUR:agUR5nUR5nXE:Xa|URSUR
UR
-
--nURSUR
UR
-
--nXg:XagXg:aSUR-*$SUR-$XE:�aSUR-$SUR-*$)Nr(r�r2r�)r�r�rJ�adjustedrKr�)r7r��self_inf�	other_inf�
self_adjusted�other_adjusted�self_padded�other_paddeds        r/�_cmp�Decimal._cmp�sQ�����u�0�0��'�'�)�H��)�)�+�I��$���%�������u�{�{�*�+�+������#�#��;�;����#���:�:����#���
�
��
����)���*��)�)�c�4�9�9�u�z�z�+A�&B�B�K� �:�:��U�Z�Z�$�)�)�-C�(D�D�L��*���+��d�j�j�(�(�(��T�Z�Z�'�'�
�
+�����#�#��4�:�:�%�&�&r1c��[XSS9upU[LaU$URX5(agURU5S:H$)NT)�equality_opFr()�_convert_for_comparison�NotImplementedr�r�r�s   r/�__eq__�Decimal.__eq__sE��-�d�t�L����N�"��L����E�+�+���y�y���1�$�$r1c��[X5upU[LaU$URX5nU(agURU5S:$�NFr(�r�r�r�r��r7r�r8rNs    r/�__lt__�Decimal.__lt__"�E��-�d�:����N�"��L��&�&�u�6�����y�y���!�#�#r1c��[X5upU[LaU$URX5nU(agURU5S:*$rrrs    r/�__le__�Decimal.__le__+�E��-�d�:����N�"��L��&�&�u�6�����y�y���1�$�$r1c��[X5upU[LaU$URX5nU(agURU5S:�$rrrs    r/�__gt__�Decimal.__gt__4rr1c��[X5upU[LaU$URX5nU(agURU5S:�$rrrs    r/�__ge__�Decimal.__ge__=r
r1c���[USS9nUR(dU(a+UR(aURX5nU(aU$[UR	U55$�NT��raiseit)�_convert_otherr�r�rr�rs    r/�compare�Decimal.compareFsQ���u�d�3��
����%�*;�*;��"�"�5�2�C���
��t�y�y��'�(�(r1c���UR(ahUR5(a[S5eUR5(a[RU5$UR(a[*$[$URS:�a[SUR[5nO [[UR*[5n[UR5U-[-nUS:�aUOU*nUS:XaS$U$)Nz"Cannot hash a signaling NaN value.r(�
r����)r�r�r��is_nanr��__hash__rJ�_PyHASH_INFr��pow�_PyHASH_MODULUS�
_PyHASH_10INVr�rK)r7�exp_hash�hash_rNs    r/r�Decimal.__hash__Xs�������|�|�~�~�� D�E�E���������t�,�,��:�:�'�<�'�&�&��9�9��>��2�t�y�y�/�:�H��=�4�9�9�*�o�F�H��D�I�I���)�O�;���q�y�e�u�f���B�Y�r�'�C�'r1c	��[UR[[[UR
55UR5$r,)rrJr�r�r�rKr�r�s r/�as_tuple�Decimal.as_tuplers+��
�D�J�J��c�#�t�y�y�.A�(B�D�I�I�N�Nr1c� �UR(a+UR5(a[S5e[S5eU(dg[	UR
5nURS:�aUSUR--Sp!O{UR*nUS:�a$US-S:XaUS-nUS-nUS:�aUS-S:XaMUR*n[X*-R5S-
U5nU(aX-nXE-nSU-U-nUR(aU*nX4$)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratior�r(rr2r�)
r�rr��
OverflowErrorr�rKr��minr�rJ)r7rHr��d5�d2�shift2s      r/r��Decimal.as_integer_ratioys������{�{�}�}� �!F�G�G�#�$N�O�O���
��	�	�N���9�9��>��r�4�9�9�}�$�a�q��)�)��B��q�&�Q��U�a�Z��a����a����q�&�Q��U�a�Z��)�)��B��!�b�&�,�,�.��2�B�7�F���������2����A��:�:���A��t�r1c��S[U5-$)Nz
Decimal('%s'))r�r�s r/�__repr__�Decimal.__repr__�s����T��*�*r1c�(�SS/URnUR(aIURS:XaUS-$URS:XaUS-UR-$US-UR-$UR[	UR5-nURS::a	US	:�aUnO1U(dS
nO'URS:XaUS
-S-S
-
nOUS
-
S-S
-nUS::aSnS
SU*--UR-nOeU[	UR5:�a+URSU[	UR5-
--nSnO!URSUnS
URUS-nXE:XaSnO&Uc
[5nSS/URSXE-
--nX6-U-U-$)Nr�r�r��InfinityrH�NaNr�r(���r2r�r��.�e�Ez%+d)rJr�r�rKr�rr|)	r7�engr8r[�
leftdigits�dotplacer�r�r�s	         r/�__str__�Decimal.__str__�s����C�y����$������y�y�C���j�(�(����c�!��e�|�d�i�i�/�/��f�}�t�y�y�0�0��Y�Y��T�Y�Y��/�
�
�9�9��>�j�2�o�!�H���H�
�Y�Y�#�
�"�Q��!�+�a�/�H�#�Q��!�+�a�/�H��q�=��G��S�8�)�_�,�t�y�y�8�H�
��T�Y�Y��
'��i�i��X�c�$�)�)�n�%<� =�=�G��H��i�i�	��*�G��T�Y�Y�x�y�1�1�H��!��C���$�,����*�W�-�-�.��*�:M�1N�N�C��~��(�3�.�.r1c�"�URSUS9$)NT)r8r8)r;�r7r8s  r/�
to_eng_string�Decimal.to_eng_string�s���|�|��g�|�6�6r1c��UR(aURUS9nU(aU$Uc
[5nU(d%UR[:waUR5nOUR
5nURU5$�Nr�)r�r�rrtr�copy_abs�copy_negate�_fix�r7r8rNs   r/�__neg__�Decimal.__neg__�sn��
����"�"�7�"�3�C���
��?� �l�G���(�(�K�7��-�-�/�C��"�"�$�C��x�x�� � r1c��UR(aURUS9nU(aU$Uc
[5nU(d%UR[:waUR5nO[
U5nURU5$rB)r�r�rrtrrCrrErFs   r/�__pos__�Decimal.__pos__sg��
����"�"�7�"�3�C���
��?� �l�G���(�(�K�7��-�-�/�C��$�-�C��x�x�� � r1c���U(dUR5$UR(aURUS9nU(aU$UR(aUR	US9nU$URUS9nU$rB)rCr�r�rJrGrJ)r7�roundr8rNs    r/�__abs__�Decimal.__abs__sl����=�=�?�"�����"�"�7�"�3�C���
��:�:��,�,�w�,�/�C��
��,�,�w�,�/�C��
r1c��[U5nU[LaU$Uc
[5nUR(dUR(a�UR	X5nU(aU$UR5(aPURUR:wa+UR5(aUR[S5$[U5$UR5(a[U5$[URUR5nSnUR[:XaURUR:waSnU(dPU(dI[URUR5nU(aSn[USU5nURU5nU$U(dS[!XARUR"-
S-
5nUR%XBR5nURU5nU$U(dS[!X@RUR"-
S-
5nUR%XBR5nURU5nU$['U5n['U5n[)XxUR"5upx['5n	UR*UR*:wa�UR,UR,:Xa [USU5nURU5nU$UR,UR,:aX�p�UR*S:Xa+SU	lUR*UR*sUlUlO6SU	lO.UR*S:XaSU	lSuUlUlOSU	lUR*S:XaUR,UR,-U	lOUR,UR,-
U	lUR.U	l[U	5nURU5nU$)Nz
-INF + INFr(r2r�)r(r()rr�rr�r�r�rJr�r
rr)r�rtrrIrE�maxru�_rescaler��
_normalizer[r�r�)
r7r�r8rNr��negativezeror[�op1�op2r�s
          r/�__add__�Decimal.__add__.s���
�u�%���N�"��L��?� �l�G����u�0�0��"�"�5�2�C���
����!�!��:�:����,��1B�1B�1D�1D�"�/�/�0@�,�O�O��t�}�$�� � �"�"��u�~�%��$�)�)�U�Z�Z�(�������{�*�t�z�z�U�[�[�/H��L��E��t�z�z�5�;�;�/�D����"�4��c�2�C��(�(�7�#�C��J���c�:�:����4�Q�6�7�C��.�.��&6�&6�7�C��(�(�7�#�C��J���c�9�9�w�|�|�3�A�5�6�C��-�-��%5�%5�6�C��(�(�7�#�C��J��t�n���u�o���c����5�������8�8�s�x�x���w�w�#�'�'�!�&�|�S�#�>���h�h�w�'���
��w�w���� ��S��x�x�1�}����%(�X�X�s�x�x�"���#�(����
�X�X��]��F�K�!'��C�H�c�h��F�K��8�8�q�=����3�7�7�*�F�J����3�7�7�*�F�J��W�W��
��f�o���h�h�w����
r1c���[U5nU[LaU$UR(dUR(aURXS9nU(aU$UR	UR5US9$rB)rr�r�r�rWrDrs    r/�__sub__�Decimal.__sub__�sc���u�%���N�"��L����u�0�0��"�"�5�"�:�C���
��|�|�E�-�-�/��|�A�Ar1c�L�[U5nU[LaU$URXS9$rB)rr�rZr�s   r/�__rsub__�Decimal.__rsub__�s*���u�%���N�"��L��}�}�T�}�3�3r1c��[U5nU[LaU$Uc
[5nURUR-nUR(dUR(a�URX5nU(aU$UR
5(a&U(dUR[S5$[U$UR
5(a&U(dUR[S5$[U$URUR-nU(aU(d [USU5nURU5nU$URS:Xa)[X1RU5nURU5nU$URS:Xa)[X0RU5nURU5nU$[U5n[U5n[U[UR UR -5U5nURU5nU$)Nz(+-)INF * 0z0 * (+-)INFr��1)rr�rrJr�r�r�r�r
rYr�rIrErKr�r�r�)r7r�r8�
resultsignrN�	resultexprUrVs        r/�__mul__�Decimal.__mul__�s���
�u�%���N�"��L��?� �l�G��Z�Z�%�+�+�-�
����u�0�0��"�"�5�2�C���
����!�!��"�/�/�0@�-�P�P�&�z�2�2�� � �"�"��"�/�/�0@�-�P�P�&�z�2�2��I�I��
�
�*�	��5�"�:�s�I�>�C��(�(�7�#�C��J��9�9���"�:�z�z�9�E�C��(�(�7�#�C��J��:�:���"�:�y�y�)�D�C��(�(�7�#�C��J��t�n���u�o���z�3�s�w�w����/@�+A�9�M���h�h�w����
r1c��[U5nU[La[$Uc
[5nURUR-nUR(dUR(a�URX5nU(aU$UR
5(a+UR
5(aUR[S5$UR
5(a	[U$UR
5(a1UR[S5 [USUR55$U(d4U(dUR[S5$UR[SU5$U(dURUR-
nSnGO[!UR"5[!UR"5-
UR$-S-nURUR-
U-
n['U5n['U5n	US:�a)[)UR*SU--U	R*5upjO)[)UR*U	R*SU*--5upjU
(aUS	-S:XaUS-
nOAURUR-
nX[:a#US-S:XaUS-nUS-
nX[:aUS-S:XaM[U[-U5U5nUR/U5$)
Nz(+-)INF/(+-)INFzDivision by infinityr�z0 / 0zx / 0r(r2rr�)rr�rrJr�r�r�r�r
rYr	rI�Etinyrrr�r�rKrur��divmodr�r�rE)r7r�r8r[rNr�r��shiftrUrV�	remainder�	ideal_exps            r/�__truediv__�Decimal.__truediv__�sL���u�%���N�"�!�!��?� �l�G��z�z�E�K�K�'�����u�0�0��"�"�5�2�C���
����!�!�e�&7�&7�&9�&9��+�+�,<�>O�P�P����!�!�&�t�,�,�� � �"�"��$�$�W�.D�E�'��c�7�=�=�?�C�C����+�+�,=�w�G�G��'�'����F�F���)�)�e�j�j�(�C��E���
�
�O�c�$�)�)�n�4�w�|�|�C�a�G�E��)�)�e�j�j�(�5�0�C��4�.�C��5�/�C���z�#)�#�'�'�B��I�*=�s�w�w�#G� ��y�#)�#�'�'�3�7�7�R�%��Z�3G�#H� ����1�9��>��Q�J�E��!�I�I��
�
�2�	��o�%�"�*��/��b�L�E��1�H�C��o�%�"�*��/��t�S��Z��5���x�x�� � r1c���URUR-nUR5(a
URnO [URUR5nUR	5UR	5-
nU(aUR5(dUS::a([USS5UR
XBR54$XRR::a�[U5n[U5nURUR:�a0U=RSURUR-
--slO/U=RSURUR-
--sl[URUR5up�USUR-:a6[U[U5S5[UR[U	5U54$UR[S5n
X�4$)Nrr�r(rz%quotient too large in //, % or divmod)rJr�r�r)r�rIrRrtrur�r�r�rgr�r�r)r7r�r8r[rj�expdiffrUrV�q�rrNs           r/�_divide�Decimal._divides}���z�z�E�K�K�'��������	�	�I��D�I�I�u�z�z�2�I��-�-�/�E�N�N�$4�4���u�(�(�*�*�g��m�$�T�3��2��M�M�)�-=�-=�>�@�
@��l�l�"��4�.�C��5�/�C��w�w�#�'�'�!����2����#�'�'� 1�2�2�����2����#�'�'� 1�2�2���#�'�'�3�7�7�+�D�A��2�w�|�|�#�#�(��s�1�v�q�9�(����S��V�Y�G�I�I��"�"�#5�#J�L���x�r1c�L�[U5nU[LaU$URXS9$rB)rr�rkr�s   r/�__rtruediv__�Decimal.__rtruediv__1s-���u�%���N�"��L�� � �� �7�7r1c�j�[U5nU[LaU$Uc
[5nURX5nU(aX34$URUR-nUR5(aMUR5(aUR
[S5nX34$[UUR
[S54$U(dMU(dUR
[S5nX34$UR
[SU5UR
[S54$URX5upVURU5nXV4$)Nzdivmod(INF, INF)�INF % xzdivmod(0, 0)�x // 0�x % 0)
rr�rr�rJr�r�r
rYrrrqrE)r7r�r8rNr[�quotientris       r/�
__divmod__�Decimal.__divmod__8s-���u�%���N�"��L��?� �l�G����u�.����:���z�z�E�K�K�'�������� � �"�"��*�*�+;�=O�P���x��'��-��,�,�-=�y�I�K�K����*�*�+<�n�M���x���,�,�^�X�t�L��,�,�-=�w�G�I�I�#�l�l�5�:����N�N�7�+�	��"�"r1c�L�[U5nU[LaU$URXS9$rB)rr�r{r�s   r/�__rdivmod__�Decimal.__rdivmod__\s-���u�%���N�"��L������6�6r1c��[U5nU[LaU$Uc
[5nURX5nU(aU$UR	5(aUR[S5$U(d3U(aUR[S5$UR[S5$URX5SnURU5nU$)Nrwryz0 % 0r2)
rr�rr�r�r�r
rrqrE)r7r�r8rNris     r/�__mod__�Decimal.__mod__cs����u�%���N�"��L��?� �l�G����u�.����J�������'�'�(8�)�D�D����+�+�,<�g�F�F��+�+�,=�w�G�G��L�L��0��3�	��N�N�7�+�	��r1c�L�[U5nU[LaU$URXS9$rB)rr�r�r�s   r/�__rmod__�Decimal.__rmod__~�*���u�%���N�"��L��}�}�T�}�3�3r1c��Uc
[5n[USS9nURX5nU(aU$UR5(aUR	[
S5$U(d3U(aUR	[
S5$UR	[S5$UR5(a[U5nURU5$[URUR5nU(d([URSU5nURU5$UR5UR5-
nXRRS-:�aUR	[5$US::a,UR!XBR"5nURU5$[%U5n[%U5nUR&UR&:�a0U=R(S	UR&UR&-
--slO/U=R(S	UR&UR&-
--sl[+UR(UR(5up�S
U	-US--UR(:�aX�R(-n	US-
nUS	UR-:�aUR	[5$URn
U	S:aSU
-
n
U	*n	[U
[-U	5U5nURU5$)NTrzremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)r�r2rrr�r()rrr�r�r�r
rrrEr)r�rIrJr�rurrRrtr�r�r�rgr�)r7r�r8rN�ideal_exponentrnrUrVrorpr[s           r/�remainder_near�Decimal.remainder_near�su���?� �l�G��u�d�3�����u�.����J�������'�'�(8�(E�G�
G����+�+�,<�,B�D�D��+�+�,=�,B�D�D�������$�-�C��8�8�G�$�$��T�Y�Y��
�
�3���"�4�:�:�s�N�C�C��8�8�G�$�$��-�-�/�E�N�N�$4�4���l�l�Q�&�&��'�'�(:�;�;��b�=��-�-��0@�0@�A�C��8�8�G�$�$��t�n���u�o���7�7�c�g�g���G�G�r�C�G�G�c�g�g�-�.�.�G��G�G�r�C�G�G�c�g�g�-�.�.�G��c�g�g�s�w�w�'���
�Q�3�!�A�#�;���� �
���L�A�
��F�A���G�L�L� � ��'�'�(:�;�;��z�z���q�5��T�6�D���A��t�S��V�^�<���x�x�� � r1c��[U5nU[LaU$Uc
[5nURX5nU(aU$UR	5(aKUR	5(aUR[S5$[URUR-$U(dKU(a.UR[SURUR-5$UR[S5$URX5S$)Nz
INF // INFrxz0 // 0r()rr�rr�r�r�r
rYrJrrrqrs    r/�__floordiv__�Decimal.__floordiv__�s����u�%���N�"��L��?� �l�G����u�.����J������� � �"�"��+�+�,<�l�K�K�&�t�z�z�E�K�K�'?�@�@����+�+�N�H�,0�J�J����,D�F�F��+�+�,=�x�H�H��|�|�E�+�A�.�.r1c�L�[U5nU[LaU$URXS9$rB)rr�r�r�s   r/�
__rfloordiv__�Decimal.__rfloordiv__�s-���u�%���N�"��L��!�!�$�!�8�8r1c���UR5(a6UR5(a[S5eUR(aSOSnO[	U5n[U5$)Nz%Cannot convert signaling NaN to floatz-nan�nan)r�r�r�rJr�r��r7�ss  r/�	__float__�Decimal.__float__�sC���;�;�=�=��|�|�~�~� �!H�I�I��*�*��%�A��D�	�A��Q�x�r1c��UR(a@UR5(a[S5eUR5(a[	S5eSUR
-nURS:�a(U[UR5-SUR--$U[URSUR=(d S5-$)NzCannot convert NaN to integerz"Cannot convert infinity to integerr�r(rr�)	r�r�r�r�r(rJr�r�rKr�s  r/�__int__�Decimal.__int__�s�������{�{�}�}� �!@�A�A��!�!�#�#�#�$H�I�I�
�$�*�*����9�9��>��S����^�#�B��	�	�M�1�1��S����:�D�I�I�.�5�#�6�6�6r1c��U$r,r-r�s r/�real�Decimal.reals���r1c��[S5$�Nr(�rr�s r/�imag�Decimal.imags���q�z�r1c��U$r,r-r�s r/�	conjugate�Decimal.conjugates���r1c�*�[[U55$r,)�complexr�r�s r/�__complex__�Decimal.__complex__s���u�T�{�#�#r1c��URnURUR-
n[U5U:�aAU[U5U-
SR	S5n[URX RS5$[U5$)Nr�T)	rKrur}r�r�rIrJr�r)r7r8�payload�max_payload_lens    r/rL�Decimal._fix_nansm���)�)��"�,�,����6���w�<�/�)��c�'�l�?�:�;�<�C�C�C�H�G�#�D�J�J����D�I�I��t�}�r1c�L�UR(a1UR5(aURU5$[U5$UR	5nUR5nU(d�URU/URn[[URU5U5nXPR:wa,UR[5 [URSU5$[U5$[UR 5UR-UR"-
nXc:�aMUR[$SUR5nUR[&5 UR[(5 U$Xb:nU(aUnURU:Ga�[UR 5UR-U-
n	U	S:a[URSUS-
5nSn	UR*UR,n
U
"X	5nUR SU	=(d SnUS:�a:[/[1U5S-5n[U5UR":�a
USSnUS-
nXc:�a"UR[$SUR5nO[URX�5nU(aU(aUR[25 U(aUR[45 U(aUR[&5 UR[(5 U(dUR[5 U$U(aUR[45 URS:XaZURU:�aJUR[5 UR SURU-
--n
[URX�5$[U5$)Nr��
above Emaxr(r`r2r�)r�r�rLrrf�Etoprvr}r)rQr�r�r	rIrJr�rKrurrr
�_pick_rounding_functionrtr�r�rr)r7r8rfr��exp_max�new_exp�exp_minrN�self_is_subnormalr��rounding_method�changedr�r�s              r/rE�Decimal._fix&s�������{�{�}�}��}�}�W�-�-��t�}�$��
�
����|�|�~����|�|�T�*�7�=�=�9�G��#�d�i�i��/��9�G��)�)�#��$�$�W�-�'��
�
�C��A�A��t�}�$��d�i�i�.�4�9�9�,�w�|�|�;���>��&�&�x��t�z�z�J�C�� � ��)�� � ��)��J�#�O����G��9�9�w������^�d�i�i�/�'�9�F���z�'��
�
�C����C����"�:�:�7�;K�;K�L�O�%�d�3�G��I�I�g�v�&�-�#�E���{��C��J�q�L�)���u�:����,�!�#�2�J�E��q�L�G��~��*�*�8�\�4�:�:�N��&�t�z�z�5�B���,��$�$�Y�/� ��$�$�Y�/���$�$�W�-�� � ��)���$�$�W�-��J��� � ��+��=�=�A��$�)�)�d�"2�� � ��)��)�)�c�4�9�9�t�+;�&<�<�K�#�D�J�J��B�B��t�}�r1c�<�[URU5(agg)Nr(r�)�
_all_zerosrK�r7rus  r/�_round_down�Decimal._round_down�s���d�i�i��&�&��r1c�&�URU5*$r,)r�r�s  r/�	_round_up�Decimal._round_up�s��� � ��&�&�&r1c�d�URUS;ag[URU5(agg)N�56789r2r(r�)rKr�r�s  r/�_round_half_up�Decimal._round_half_up�s,���9�9�T�?�g�%��
��	�	�4�
(�
(��r1c�\�[URU5(agURU5$)Nr���_exact_halfrKr�r�s  r/�_round_half_down�Decimal._round_half_down�s'���t�y�y�$�'�'���&�&�t�,�,r1c��[URU5(aUS:XdURUS-
S;agURU5$)Nr(r2�02468r�r�r�s  r/�_round_half_even�Decimal._round_half_even�sB���t�y�y�$�'�'����d�i�i��Q��/�7�:���&�&�t�,�,r1c�j�UR(aURU5$URU5*$r,�rJr�r�s  r/�_round_ceiling�Decimal._round_ceiling�s.���:�:��#�#�D�)�)��$�$�T�*�*�*r1c�j�UR(dURU5$URU5*$r,r�r�s  r/�_round_floor�Decimal._round_floor�s.���z�z��#�#�D�)�)��$�$�T�*�*�*r1c��U(a'URUS-
S;aURU5$URU5*$)Nr2�05)rKr�r�s  r/�_round_05up�Decimal._round_05up�s>���D�I�I�d�1�f�%�T�1��#�#�D�)�)��$�$�T�*�*�*r1)rrrrrrrrc�<�Ub?[U[5(d[S5e[SSU*5nUR	U5$UR
(a+UR
5(a[S5e[S5e[URS[55$)Nz+Second argument to round should be integralr(r`�cannot round a NaN�cannot round an infinity)r�r�r�rI�quantizer�rr�r(rRr)r7rHr�s   r/�	__round__�Decimal.__round__�s���^
�=��a��%�%�� M�N�N�"�1�c�A�2�.�C��=�=��%�%�����{�{�}�}� �!5�6�6�#�$>�?�?��4�=�=��O�4�5�5r1c��UR(a+UR5(a[S5e[S5e[	URS[55$�Nr�r�r()r�rr�r(r�rRrr�s r/�	__floor__�Decimal.__floor__
sF������{�{�}�}� �!5�6�6�#�$>�?�?��4�=�=��K�0�1�1r1c��UR(a+UR5(a[S5e[S5e[	URS[55$r�)r�rr�r(r�rRrr�s r/�__ceil__�Decimal.__ceil__sF������{�{�}�}� �!5�6�6�#�$>�?�?��4�=�=��M�2�3�3r1c	��[USS9n[USS9nUR(dUR(GaUc
[5nURS:XaUR	[
SU5$URS:XaUR	[
SU5$URS:XaUnGOURS:XaUnGO	URS:Xa>U(dUR	[
S5$[URUR-nO�URS:Xa=U(dUR	[
S5$[URUR-nOm[URUR-[[UR5[UR5-5URUR-5nWRX#5$)	NTrr�r�rHr�zINF * 0 in fmaz0 * INF in fma)
rr�rr�r�r
rYrJrIr�r�rKrW)r7r��thirdr8�products     r/�fma�Decimal.fma+s~���u�d�3���u�d�3�����u�0�0�0���$�,���y�y�C���+�+�,<�f�d�K�K��z�z�S� ��+�+�,<�f�e�L�L��y�y�C�������s�"������c�!��"�/�/�0@�0@�B�B�)�$�*�*�u�{�{�*B�C�����s�"��"�/�/�0@�0@�B�B�)�$�*�*�u�{�{�*B�C���&�t�z�z�E�K�K�'?�'*�3�t�y�y�>�C��
�
�O�+K�'L�'+�y�y�5�:�:�'=�?�G����u�.�.r1c���[U5nU[LaU$[U5nU[LaU$Uc
[5nUR5nUR5nUR5nU(dU(dU(a�US:XaUR	[
SU5$US:XaUR	[
SU5$US:XaUR	[
SU5$U(aUR
U5$U(aUR
U5$UR
U5$UR5(a*UR5(aUR5(dUR	[
S5$US:aUR	[
S5$U(dUR	[
S5$UR5UR:�aUR	[
S5$U(dU(dUR	[
S5$UR5(aSnOURn[[U55n[UR55n[UR55n	URU-[!S	UR"U5-U-n[%U	R"5Hn
[!US	U5nM [!X�RU5n['U[)U5S5$)
Nr�r�z@pow() 3rd argument not allowed unless all arguments are integersr(zApow() 2nd argument cannot be negative when 3rd argument specifiedzpow() 3rd argument cannot be 0zSinsufficient precision: pow() 3rd argument must not have more than precision digitszXat least one of pow() 1st argument and 2nd argument must be nonzero; 0**0 is not definedr)rr�rr�r�r
rL�
_isintegerr�ru�_isevenrJr�r�r��to_integral_valuerr��rangerIr�)r7r��modulor8r�r��
modulo_is_nanr[�base�exponent�is           r/�
_power_modulo�Decimal._power_moduloWs����u�%���N�"��L���'���^�#��M��?� �l�G��k�k�m���|�|�~���
�
��
��,�-��a���+�+�,<�f�(,�.�.��q� ��+�+�,<�f�(-�/�/���!��+�+�,<�f�(.�0�0���}�}�W�-�-���~�~�g�.�.��?�?�7�+�+����!�!�� � �"�"��!�!�#�#��'�'�(8�)L�M�
M��1�9��'�'�(8�)O�P�
P���'�'�(8�(H�J�
J�
�?�?�����,��'�'�(8�);�<�
<��T��'�'�(8�)>�?�
?��=�=�?�?��D��:�:�D��S��[�!����.�.�0�1���E�3�3�5�6�����6�!�C��D�H�H�f�$=�=��G���x�|�|�$�A��t�R��(�D�%��4���v�.����c�$�i��3�3r1c�	�[U5nURURpTUS-S:XaUS-nUS-
nUS-S:XaM[U5nURURp�US-S:XaUS-nUS-
nUS-S:XaMUS:Xa�XW-nUS-S:XaUS-nUS-
nUS-S:XaMUS:agUSU--n	URS:XaU	*n	UR	5(a:UR
S:Xa*UR[U5-n
[X�-
US-
5nOSn[SSSU--X�-
5$URS:XGa@US-nUS;ahXD*-U:wag[U5S-
n
US-S-nU[[U55:�ag[X�-U5n
[XW-U5nU
bUcgX�:�agS	U
-nO�US	:Xa�[U5S
-S-n
[S	U
-U5upOU(agUS	-S:XaUS	-nU
S-n
US	-S:XaMUS-S-nU[[U55:�ag[X�-U5n
[XW-U5nU
bUcgX�:�agSU
-nOg[U5n[U5U:�agU
*U-
n[SUU5$US:�aUSU--SnnO�US:wa%[[[Xu-555U*::ag[U5n[[[U5U-55U*::agUSU*-nnUS-US-s=:XaS:Xa$O O!US-nUS-nUS-US-s=:XaS:XaMO US	-US	-s=:XaS:Xa$O O!US	-nUS	-nUS	-US	-s=:XaS:XaMO US:�alWU::ag[UU5unnUS:wagS[U5*U-*-n[UUUS-
-5unnUU::aOUUS-
-U-U-nM,UU:XaUS:XdgUnUS:�aUUS
-[U5-:�agUU-nUU-n[U5n[U5U:�agUR	5(aCUR
S:Xa3UR[U5-n
[XZ-
U[U5-
5nOSn[SUSU--X[-
5$)Nrr(r2r`r�)r�����]�Ar��r�r��d)r�r�r�r[r�rJr�r)rI�_nbitsr�r��_decimal_lshift_exactrgr��	_log10_lb)r7r��p�x�xc�xe�y�yc�yer�r��zeros�
last_digitr6�emaxri�strxcr�rH�xc_bits�rem�arorp�str_xcs                         r/�_power_exact�Decimal._power_exact�s��t
�T�N��������B��2�g��l��2�I�B��!�G�B��2�g��l�
�U�O��������B��2�g��l��2�I�B��!�G�B��2�g��l���7��H�B��r�'�Q�,��r�	���a����r�'�Q�,��A�v���B��F�{�H��v�v��{�$�9�����!�!�e�k�k�Q�&6�!%���3�u�:�!5���H�3�Q�q�S�9����#�A�s�S��Y����G�G�
�6�6�Q�;��b��J��Y�&���8�r�>���2�J�q�L��6��t�R�x����S��Y��'��*�!�&�"�5��*�2�7�B�7���9��
���8����T���q���2�J�r�M�2�%�� &�q�!�t�R� 0�
�����1�f��k��1�H�B���F�A��1�f��k���t�Q�w����S��Y��'��)�!�&�"�5��*�2�7�B�7���9��
���8����T�����G�E��5�z�A�~����B��B�#�A�u�b�1�1���7��b�"�f�9�a�q�A�q��Q�w�3�s�3�r�u�:��/�B�3�6���R�j�G��3�s�2�w�w��'�(�R�C�/���r�R�C�y�q�A��a�%�1�q�5�%�A�%��a����a����a�%�1�q�5�%�A�%��a�%�1�q�5�%�A�%��a����a����a�%�1�q�5�%�A�%�

�q�5��!�|���R��m�G�B���a�x����r�
�{�A�~�&�&�A���b�!�a��c�(�+���1���6���A�a�C��1��q�(�A����F�q�A�v���B���6�a�!�C�%��2��.�.��
��U��
�a����R����v�;��?��
�����%�+�+��"2�!�Y�Y�s�5�z�1�N���)�1�S��[�=�9�E��E���6�#�e�)�#3�R�X�>�>r1c�"�UbURXU5$[U5nU[LaU$Uc
[5nUR	X5nU(aU$U(d#U(dUR[S5$[$SnURS:XaZUR5(aUR5(dSnOU(aUR[S5$UR5nU(d&URS:Xa
[USS5$[U$UR5(a&URS:Xa	[U$[USS5$U[:Xa�UR5(a�URS:XaSnO'XR:�a
URnO[!U5nUR"U-nUSUR-
:a$SUR-
nUR[$5 O9UR[&5 UR[$5 SUR-
n[USSU*--U5$UR)5nUR5(a,URS:HUS::Xa
[USS5$[U$SnSn	UR+5UR)5-n
US:�URS:H:Xa=U
[-[/UR055:�a[USUR0S-5nO9UR35nU
[-[/U*55:�a[USUS-
5nUcJUR5XRS-5nUb)US:Xa![SUR6UR"5nSn	Uc�URn[9U5n
U
R U
R:p�[9U5nUR UR:nnUR<S:XaU*nS	n[?X�UUUU-5unnUS
S[-[/U55U-
S-
---(aOUS	-
nMD[U[/U5U5nU	(Ga�UR5(Gd�[-UR65UR::aYURS-[-UR65-
n[URUR6SU--UR"U-
5nURA5nURC5 [DHnSURFU'M URIU5nUR[&5 URJ[L(aUR[N5 URJ[P(a!UR[PSUR5 [N[L[&[$[R4H*nURJU(dMURU5 M, U$URIU5nU$)
Nz0 ** 0r(r2z+x ** y with x negative and y not an integerr�r`FTr�r�rr�)*r�rr�rr�r�r
�_OnerJr�r�rDrIrYr�rur�r�r
rr��_log10_exp_boundr�r�rvrfrrKr�r�r[�_dpowerr�r��_signalsrrEr~rrrr	)r7r�r�r8rN�result_sign�
multiplierr��self_adj�exact�boundrfrrrrrrr�extrar�rn�
newcontext�	exceptions                        r/�__pow__�Decimal.__pow__�sI��0���%�%�e�W�=�=��u�%���N�"��L��?� �l�G����u�.����J����+�+�,<�h�G�G������:�:��?����!�!��}�}���"#�K���"�/�/�0@�E�G�G��#�#�%�D���{�{�a��'��S�!�<�<�&�{�3�3�������{�{�a��&�{�3�3�'��S�!�<�<�
�4�<����!�!�
�;�;�!�#�!"�J��\�\�)�!(���J�!$�U��J��i�i�*�,����7�<�<��'��G�L�L�.�C��(�(��1���$�$�W�-��$�$�W�-�����n��#�K��S�#��X��s�C�C��=�=�?����������q� �h��l�3�'��S�!�<�<�&�{�3�3������%�%�'�%�.�.�*:�:����M�u�{�{�a�/�0���C����-�.�.�&�{�C����a��H����M�M�O�E���C���K�(�(�&�{�C��q��A���;��#�#�E�<�<�!�+;�<�C����!�#�*�1�c�h�h����A�C����;����A����A��U�U�A�E�E�����A��U�U�A�E�E��B��v�v��{��S���E��$�R�R��Q�u�W�=�
��s��A�b�3�s�5�z�?�1�#4�Q�#6�7�7�8����
��	�#�;��E�
�C�@�C���)�)�+�+��3�8�8�}����,�!�,�,��*�S����]�:��&�s�y�y�#�(�(�3�w�;�2F�'*�x�x��'7�9��!����J��"�"�$�%�	�./�
� � ��+�&��(�(�:�&�C�
�#�#�G�,����	�*��'�'�	�2�����)��$�$�X�|�S�Y�Y�G�&�	�7�G�W�L�	��#�#�I�.�.��(�(��3�M��
��(�(�7�#�C��
r1c�L�[U5nU[LaU$URXS9$rB)rr�rr�s   r/�__rpow__�Decimal.__rpow__|	r�r1c�Z�Uc
[5nUR(aURUS9nU(aU$URU5nUR	5(aU$U(d[URSS5$URUR5/URn[UR5nURnURUS-
S:Xa,Xd:a'US-
nUS-nURUS-
S:XaXd:aM'[URURSUU5$)Nr�r�r(r2)
rr�r�rEr�rIrJrvr�r}r�rKr�)r7r8rN�dupr��endr�s       r/�	normalize�Decimal.normalize�	s���?� �l�G�����"�"�7�"�3�C���
��i�i�� ���?�?����J��#�C�I�I�s�A�6�6��<�<�����0����?���#�(�(�m���h�h���h�h�s�1�u�o��$����1�H�C��1�H�C��h�h�s�1�u�o��$��� ��	�	�3�8�8�D�S�>�3�?�?r1c���[USS9nUc
[5nUcURnUR(dUR(a�UR	X5nU(aU$UR5(dUR5(aKUR5(a UR5(a[
U5$UR[S5$UR5URs=::aUR::dO UR[S5$U(d2[URSUR5nURU5$UR5nXSR:�aUR[S5$XQR-
S-UR :�aUR[S5$UR#URU5nUR5UR:�aUR[S5$[%UR&5UR :�aUR[S5$U(a3UR5UR(:aUR[*5 URUR:�a/X@:waUR[,5 UR[.5 URU5nU$)	NTrzquantize with one INFz)target exponent out of bounds in quantizer�z9exponent of quantize result too large for current contextr2z7quantize result has too many digits for current context)rrrtr�r�r�rr�r
rfr�rvrIrJrEr�rurRr�rKr{rrr
)r7r�rtr8rNr�s      r/r��Decimal.quantize�	sP��
�S�$�/���?� �l�G����'�'�H����s����"�"�3�0�C���
���� � �D�$4�$4�$6�$6��?�?�$�$��)9�)9�);�);�"�4�=�(��+�+�,<�(?�A�A��
�
��3�8�8�;�w�|�|�;��'�'�(8�>�@�
@��"�4�:�:�s�C�H�H�=�C��8�8�G�$�$��
�
��
��<�<�'��'�'�(8�(c�e�
e��8�8�#�a�'�'�,�,�6��'�'�(8�(a�c�
c��m�m�C�H�H�h�/���<�<�>�G�L�L�(��'�'�(8�(c�e�
e��s�x�x�=�7�<�<�'��'�'�(8�(a�c�
c��3�<�<�>�G�L�L�0�� � ��+��8�8�d�i�i���{��$�$�W�-�� � ��)��h�h�w����
r1c�6�[USS9nUR(dUR(aUUR5=(a UR5=(d' UR5=(a UR5$URUR:H$r)rr�r�is_infiniter�r�s   r/�same_quantum�Decimal.same_quantum�	sm���u�d�3�����u�0�0��K�K�M�4�e�l�l�n�?��$�$�&�>�5�+<�+<�+>�
@��y�y�E�J�J�&�&r1c�P�UR(a[U5$U(d[URSU5$URU:�a4[URUR
SURU-
--U5$[
UR
5UR-U-
nUS:a[URSUS-
5nSnURUnU"X5nUR
SU=(d SnUS:Xa[[U5S-5n[URXa5$)Nr�r(r`r2)
r�rrIrJr�rKr�r�r�r�)r7r�rtr��
this_functionr�r�s       r/rR�Decimal._rescale�	s������4�=� ��#�D�J�J��S�9�9��9�9���#�D�J�J�(,�	�	�C����S��4I�(I�3�P�
P�
�T�Y�Y��$�)�)�+�c�1���A�:�#�D�J�J��S��U�;�D��F��4�4�X�>�
���-���	�	�'�6�"�)�c���a�<���E�
�1��%�E���
�
�E�7�7r1c�J�US::a[S5eUR(dU(d[U5$URUR	5S-U-
U5nUR	5UR	5:wa&URUR	5S-U-
U5nU$)Nr(z'argument should be at least 1 in _roundr2)r�r�rrRr�)r7�placesrtrNs    r/�_round�Decimal._round

s����Q�;��F�G�G����4��4�=� ��m�m�D�M�M�O�A�-�f�4�h�?��
�<�<�>�T�]�]�_�,��,�,�s�|�|�~�a�/��6��A�C��
r1c��UR(a#URUS9nU(aU$[U5$URS:�a[U5$U(d[	UR
SS5$Uc
[
5nUcURnURSU5nX0:waUR[5 UR[5 U$)Nr�r(r�)r�r�rr�rIrJrrtrRr�rr
�r7rtr8rNs    r/�to_integral_exact�Decimal.to_integral_exact!
s�������"�"�7�"�3�C���
��4�=� ��9�9��>��4�=� ��#�D�J�J��Q�7�7��?� �l�G����'�'�H��m�m�A�x�(���;�� � ��)����W�%��
r1c��Uc
[5nUcURnUR(a#URUS9nU(aU$[	U5$UR
S:�a[	U5$UR
SU5$)Nr�r()rrtr�r�rr�rRr7s    r/r��Decimal.to_integral_value>
ss���?� �l�G����'�'�H�����"�"�7�"�3�C���
��4�=� ��9�9��>��4�=� ��=�=��H�-�-r1c�r�Uc
[5nUR(aHURUS9nU(aU$UR5(aURS:Xa[U5$U(d5[
URSURS-5nURU5$URS:XaUR[S5$URS-n[U5nURS-	nURS-(a+URS-n[UR 5S-	S-nO'URn[UR 5S-S-	nX7-
nUS:�aUSU--nS	n	O[#USU*-5upjU
(+n	XX-nSU-nXk-nX�::aO	X�-S-	nMU	=(a X�-U:Hn	U	(aUS:�a	USU--nO	USU*--nXX-
nOUS
-S:XaUS-
n[
S[%U5U5nUR'5nUR)[*5n
URU5nX�lU$)Nr�r(r�r�r2zsqrt(-x), x > 0rr�Tr�)rr�r�r�rJrrIr�rEr�r
rur�r�r�r�rKrgr��
_shallow_copy�
_set_roundingrrt)r7r8rNru�opr6�c�lrhrrirHrorts              r/�sqrt�Decimal.sqrtQ
s(���?� �l�G�����"�"�7�"�3�C���
����!�!�d�j�j�A�o��t�}�$��"�4�:�:�s�D�I�I��N�C�C��8�8�G�$�$��:�:��?��'�'�(8�:K�L�L�,�|�|�A�~���d�^���F�F�a�K��
�6�6�A�:������A��T�Y�Y��1�$��)�A����A��D�I�I��q� �A�%�A�����A�:�
��e��O�A��E�!�!�S�5�&�[�1�L�A�!�M�E�	�
��
��H�����A��v���E�Q�J����"�!�#��(�����z��b�%�i����R�%��Z���
�J�A��1�u��z��Q����q�#�a�&�!�,���'�'�)���(�(��9���h�h�w���#���
r1c���[USS9nUc
[5nUR(dUR(ayUR5nUR5nU(dU(aKUS:XaUS:XaUR	U5$US:XaUS:XaUR	U5$URX5$UR
U5nUS:XaURU5nUS:XaUnOUnUR	U5$�NTrr2r(r��rrr�r�rEr�r��
compare_total�r7r�r8�sn�onr@rNs       r/rQ�Decimal.max�
s����u�d�3���?� �l�G����u�0�0�����B�����B��R���7�r�Q�w��9�9�W�-�-���7�r�Q�w� �:�:�g�.�.��'�'��7�7��I�I�e�����6��"�"�5�)�A���7��C��C��x�x�� � r1c���[USS9nUc
[5nUR(dUR(ayUR5nUR5nU(dU(aKUS:XaUS:XaUR	U5$US:XaUS:XaUR	U5$URX5$UR
U5nUS:XaURU5nUS:XaUnOUnUR	U5$rErFrHs       r/r)�Decimal.min�
s����u�d�3���?� �l�G����u�0�0�����B�����B��R���7�r�Q�w��9�9�W�-�-���7�r�Q�w� �:�:�g�.�.��'�'��7�7��I�I�e�����6��"�"�5�)�A���7��C��C��x�x�� � r1c��UR(agURS:�agURURSnUS[U5-:H$)NFr(Tr�)r�r�rKr�)r7�rests  r/r��Decimal._isintegersC�������9�9��>���y�y�����$���s�3�t�9�}�$�$r1c�p�U(aURS:�agURSUR-S;$)Nr(Tr�r�)r�rKr�s r/r��Decimal._iseven	s.���t�y�y�1�}���y�y��D�I�I��&�'�1�1r1c�n�UR[UR5-S-
$![a gf=f)Nr2r()r�r�rKr�r�s r/r��Decimal.adjusteds5��	��9�9�s�4�9�9�~�-��1�1���	��	�s�$'�
4�4c��U$r,r-r�s r/�	canonical�Decimal.canonicals	���r1c�h�[USS9nURX5nU(aU$URXS9$�NTrr�)rr�rrs    r/�compare_signal�Decimal.compare_signals9���u��5���&�&�u�6����J��|�|�E�|�3�3r1c���[USS9nUR(aUR(d[$UR(dUR(a[$URnUR	5nUR	5nU(dU(a�XE:Xax[UR5UR4n[UR5UR4nXg:aU(a[$[$Xg:�aU(a[$[$[$U(a1US:Xa[$US:Xa[$US:Xa[$US:Xa[$O0US:Xa[$US:Xa[$US:Xa[$US:Xa[$X:a[$X:�a[$URUR:aU(a[$[$URUR:�aU(a[$[$[$)NTrr2r�)	rrJ�_NegativeOnerr�r�rK�_Zeror�)r7r�r8r[�self_nan�	other_nan�self_key�	other_keys        r/rG�Decimal.compare_total+s����u�d�3���:�:�e�k�k����z�z�e�k�k��K��z�z���;�;�=���L�L�N�	��y��$��t�y�y�>�4�9�9�4����
�
�O�U�Z�Z�7�	��'��#��+�+��'��+�+�#������q�=�'�'���>��K��q�=�'�'���>��K�"��q�=��K���>�'�'��q�=��K���>�'�'��<����<��K��9�9�u�z�z�!����#�#��9�9�u�z�z�!��#�#����r1c�x�[USS9nUR5nUR5nURU5$r)rrCrG)r7r�r8r��os     r/�compare_total_mag�Decimal.compare_total_magts6��
�u�d�3���M�M�O���N�N������q�!�!r1c�Z�[SURURUR5$r�)rIrKr�r�r�s r/rC�Decimal.copy_abss!����4�9�9�d�i�i��9I�9I�J�Jr1c���UR(a,[SURURUR5$[SURURUR5$)Nr(r2)rJrIrKr�r�r�s r/rD�Decimal.copy_negate�sG���:�:�#�A�t�y�y�$�)�)�T�=M�=M�N�N�#�A�t�y�y�$�)�)�T�=M�=M�N�Nr1c��[USS9n[URURURUR
5$r)rrIrJrKr�r�r�s   r/�	copy_sign�Decimal.copy_sign�s6���u�d�3������T�Y�Y� $�	�	�4�+;�+;�=�	=r1c���Uc
[5nURUS9nU(aU$UR5S:Xa[$U(d[$UR5S:Xa[U5$URnUR5nURS:XaDU[[URS-S-55:�a[SSURS-5nGOLURS:XaLU[[UR5*S-S-55:�a[SSUR5S-
5nO�URS:Xa!XC*:a[SSSUS-
--S-U*5nO�URS:Xa!XC*S-
:a[SSUS--U*S-
5nO�[U5nURUR pvUR"S:XaU*nSn[%XgX8-5up�U	S	S
[[U	55U-
S-
---(aOUS-
nM@[S[U	5U
5nUR'5nUR)[*5nUR-U5nX�lU$)Nr�r�r2r(r�r`r�rsr�r)rr�r�r^rrrur�rJr�r�rvrIrfr�r�r�r[�_dexpr=r>rrErt)r7r8rNr�adjr?r@r6rr�r�rts            r/r��Decimal.exp�s6���?� �l�G����w��/����J������#��L���K������"��4�=� �
�L�L���m�m�o���:�:��?�s�S��g�l�l�1�n�a�-?�)@�%A�A�"�1�c�7�<�<��>�:�C�
�Z�Z�1�_��s�3�����0@��0B�A�/E�+F�'G�!G�"�1�c�7�=�=�?�1�+<�=�C�
�Z�Z�1�_��r��"�1�c�C��1��I�o��&;�a�R�@�C�
�Z�Z�1�_��r�!�t��"�1�c�1�Q�3�i�!��A��6�C��$��B��6�6�2�6�6�q��w�w�!�|��B��
�E��"�1���1�
���A�b�3�s�5�z�?�1�#4�Q�#6�7�7�8����
��	�#�1�c�%�j�#�6�C��'�'�)���(�(��9���h�h�w���#���
r1c��g)NTr-r�s r/�is_canonical�Decimal.is_canonical�s��r1c�$�UR(+$r,)r�r�s r/�	is_finite�Decimal.is_finite�s���#�#�#�#r1c� �URS:H$)Nr��r�r�s r/r,�Decimal.is_infinite�����y�y�C��r1c� �URS;$)Nr�rzr�s r/r�Decimal.is_nan�s���y�y�J�&�&r1c��UR(dU(dgUc
[5nURUR5:*$�NF)r�rr{r�r>s  r/�	is_normal�Decimal.is_normal�s1�����4���?� �l�G��|�|�t�}�}��.�.r1c� �URS:H$)NrHrzr�s r/r��Decimal.is_qnan�r|r1c� �URS:H$�Nr2)rJr�s r/�	is_signed�Decimal.is_signed�s���z�z�Q��r1c� �URS:H$)Nr�rzr�s r/r��Decimal.is_snanr|r1c��UR(dU(dgUc
[5nUR5UR:$r�)r�rr�r{r>s  r/�is_subnormal�Decimal.is_subnormals1�����4���?� �l�G��}�}�����-�-r1c�P�UR(+=(a URS:H$r�r�r�s r/�is_zero�Decimal.is_zeros���#�#�#�8��	�	�S�(8�8r1c���UR[UR5-S-
nUS:�a[[US-S-55S-
$US::a [[SU-
S-S-55S-
$[	U5nUR
URpCUS:Xa9[USU*--
5n[U5n[U5[U5-
XV:-
$U[[SU*-U-
55-S-
$)Nr2�rrr�r(�r�r�rKr�r�r�r��r7rqr?r@r6�num�dens       r/�
_ln_exp_bound�Decimal._ln_exp_bounds����i�i�#�d�i�i�.�(�1�,���!�8��s�3�r�6�2�:��'�!�+�+��"�9��s�B�s�F�B�;��?�+�,�q�0�0�
�d�^���v�v�r�v�v�1��!�8��a��Q�B��h�-�C��a�&�C��s�8�c�#�h�&�#�)�4�4��3�s�2��r�6�A�:��'�'�!�+�+r1c
���Uc
[5nURUS9nU(aU$U(d[$UR5S:Xa[$U[
:Xa[$URS:XaUR[S5$[U5nURURpTURnX`R5-
S-n[XEU5nUSS[![#[%U555U-
S-
---(aOUS-
nME['[US:5[#[%U55U*5nUR)5nUR+[,5n	UR/U5nX�lU$)	Nr�r2zln of a negative valuer�r�rr�r()rr��_NegativeInfinityr��	_Infinityrr^rJr�r
r�r�r�rur��_dlogr�r�r�rIr=r>rrErt�
r7r8rNr?r@r6rr3r�rts
          r/�ln�
Decimal.ln,sd���?� �l�G����w��/����J��$�$������"����4�<��L��:�:��?��'�'�(8�(@�B�
B��d�^���v�v�r�v�v�1��L�L���'�'�)�)�A�-����!��'�E���"�s�3�s�5�z�?�3�A�5�a�7�8�8�9���a�K�F���s�5��7�|�S��U��_�v�g�F���'�'�)���(�(��9���h�h�w���#���
r1c���UR[UR5-S-
nUS:�a[[U55S-
$US::a[[SU-
55S-
$[	U5nUR
URpCUS:Xa?[USU*--
5n[SU-5n[U5[U5-
XV:-
S-$[SU*-U-
5n[U5U-US:-
S-
$)	Nr2rr�r(r��r��231r�r�s       r/r�Decimal._log10_exp_bound^s����i�i�#�d�i�i�.�(�1�,���!�8��s�3�x�=��?�"��"�9��s�2�c�6�{�#�A�%�%�
�d�^���v�v�r�v�v�1��!�8��a��Q�B��h�-�C��c�!�e�*�C��s�8�c�#�h�&�#�)�4�q�8�8��"�q�b�&��(�m���3�x�!�|�s�U�{�+�a�/�/r1c
��Uc
[5nURUS9nU(aU$U(d[$UR5S:Xa[$UR
S:XaUR
[S5$URSS:Xa[URSSS[UR5S-
-:Xa/[UR[UR5-S-
5nO�[U5nURURpTURnX`R!5-
S-n[#XEU5nUSS	[[%['U555U-
S-
---(aOUS
-
nME[)[US:5[%['U55U*5nUR+5nUR-[.5n	UR1U5nX�lU$)Nr�r2zlog10 of a negative valuer(r`r�r�r�rr�)rr�r�r�r�rJr�r
rKr�rr�r�r�r�rur�_dlog10r�r�rIr=r>rrErtr�s
          r/�log10�
Decimal.log10|s����?� �l�G����w��/����J��$�$������"����:�:��?��'�'�(8�(C�E�
E��9�9�Q�<�3��4�9�9�Q�R�=�C��T�Y�Y��!�9K�4L�#L��$�)�)�c�$�)�)�n�4�q�8�9�C��$��B��6�6�2�6�6�q����A��,�,�.�.�q�0�F����f�-���A�b�3�s�3�u�:��#7��#9�!�#;�<�<�=���!����#�3�u�Q�w�<��S��Z��6�'�J�C��'�'�)���(�(��9���h�h�w���#���
r1c��URUS9nU(aU$Uc
[5nUR5(a[$U(dUR	[
SS5$[
UR55nURU5$)Nr�zlogb(0)r2)	r�rr�r�r�rrr�rErFs   r/�logb�Decimal.logb�s}�����w��/����J��?� �l�G����������'�'��	�1�E�E�
�d�m�m�o�&���x�x�� � r1c�|�URS:wdURS:wagURHnUS;dM g g)Nr(F�01T)rJr�rK)r7�digs  r/�
_islogical�Decimal._islogical�s9���:�:��?�d�i�i�1�n���9�9�C��$����r1c��UR[U5-
nUS:�a	SU-U-nOUS:aX!R*SnUR[U5-
nUS:�aSU-U-nX#4$US:aX1R*SnX#4$)Nr(r�)rur�)r7r8�opa�opb�difs     r/�
_fill_logical�Decimal._fill_logical�s����l�l�S��X�%����7��c�'�C�-�C�
�1�W��|�|�m�n�%�C��l�l�S��X�%����7��c�'�C�-�C��x���1�W��|�|�m�n�%�C��x�r1c���Uc
[5n[USS9nUR5(aUR5(dUR[5$URX RUR5up4SR[X45VVs/sH%upV[[U5[U5-5PM' snn5n[SURS5=(d SS5$s snnf�NTrr�r(r��
rrr�r�r
r�rKr��zipr�r�rIr��r7r�r8r�r�r�br�s        r/�logical_and�Decimal.logical_and�����?� �l�G��u�d�3����� � ��(8�(8�(:�(:��'�'�(8�9�9��'�'����E�J�J�G�
������C��E����#�c�!�f�S��V�m�,��E�F����6�=�=��#5�#<��a�@�@��F��,C1
c�p�Uc
[5nUR[SSUR-S5U5$)Nr(r`)r�logical_xorrIrur>s  r/�logical_invert�Decimal.logical_invert�s9���?� �l�G���� 0��3�w�|�|�3C�A� F� '�)�	)r1c���Uc
[5n[USS9nUR5(aUR5(dUR[5$URX RUR5up4SR[X45VVs/sH%upV[[U5[U5-5PM' snn5n[SURS5=(d SS5$s snnfr�r�r�s        r/�
logical_or�Decimal.logical_or
r�r�c���Uc
[5n[USS9nUR5(aUR5(dUR[5$URX RUR5up4SR[X45VVs/sH%upV[[U5[U5-5PM' snn5n[SURS5=(d SS5$s snnfr�r�r�s        r/r��Decimal.logical_xor
r�r�c�&�[USS9nUc
[5nUR(dUR(ayUR5nUR5nU(dU(aKUS:XaUS:XaUR	U5$US:XaUS:XaUR	U5$URX5$UR
5RUR
55nUS:XaURU5nUS:XaUnOUnUR	U5$rE�	rrr�r�rEr�rCr�rGrHs       r/�max_mag�Decimal.max_mag"
s����u�d�3���?� �l�G����u�0�0�����B�����B��R���7�r�Q�w��9�9�W�-�-���7�r�Q�w� �:�:�g�.�.��'�'��7�7��M�M�O� � ����!1�2����6��"�"�5�)�A���7��C��C��x�x�� � r1c�&�[USS9nUc
[5nUR(dUR(ayUR5nUR5nU(dU(aKUS:XaUS:XaUR	U5$US:XaUS:XaUR	U5$URX5$UR
5RUR
55nUS:XaURU5nUS:XaUnOUnUR	U5$rEr�rHs       r/�min_mag�Decimal.min_mag@
s����u�d�3���?� �l�G����u�0�0�����B�����B��R���7�r�Q�w��9�9�W�-�-���7�r�Q�w� �:�:�g�.�.��'�'��7�7��M�M�O� � ����!1�2����6��"�"�5�)�A���7��C��C��x�x�� � r1c���Uc
[5nURUS9nU(aU$UR5S:Xa[$UR5S:Xa([	SSUR
-UR
55$UR5nUR[5 UR5 URU5nX0:waU$UR[	SSUR5S-
5U5$)Nr�r�r2r(rsr`)rr�r�r�rIrur�r�r>r�_ignore_all_flagsrErZrf�r7r8rN�new_selfs    r/�
next_minus�Decimal.next_minus^
s����?� �l�G����w��/����J������#�$�$������"�#�A�s�7�<�<�'7�����H�H��,�,�.�����k�*��!�!�#��9�9�W�%�����O��|�|�,�Q��W�]�]�_�Q�5F�G�#�%�	%r1c���Uc
[5nURUS9nU(aU$UR5S:Xa[$UR5S:Xa([	SSUR
-UR
55$UR5nUR[5 UR5 URU5nX0:waU$UR[	SSUR5S-
5U5$)Nr�r2r�rsr(r`)rr�r�r�rIrur�r�r>rr�rErWrfr�s    r/�	next_plus�Decimal.next_plusu
s����?� �l�G����w��/����J������"��������#�#�A�s�7�<�<�'7�����H�H��,�,�.�����m�,��!�!�#��9�9�W�%�����O��|�|�,�Q��W�]�]�_�Q�5F�G�#�%�	%r1c���[USS9nUc
[5nURX5nU(aU$URU5nUS:XaUR	U5$US:XaURU5nOUR
U5nUR5(aMUR[SUR5 UR[5 UR[5 U$UR5UR:apUR[5 UR[ 5 UR[5 UR[5 U(dUR["5 U$)NTrr(r�z Infinite result from next_toward)rrr�r�rmr�r�r�r�rrJrr
r�r{rrr	)r7r�r8rN�
comparisons     r/�next_toward�Decimal.next_toward�
s.���u�d�3���?� �l�G����u�.����J��Y�Y�u�%�
���?��>�>�%�(�(�����.�.��)�C��/�/�'�*�C��?�?���� � ��!C�!$���
,�
� � ��)�� � ��)��
��\�\�^�g�l�l�
*�� � ��+�� � ��+�� � ��)�� � ��)���$�$�W�-��
r1c�t�UR5(agUR5(agUR5nUS:XagUS:XagUR5(aUR(aggUc
[5nUR
US	9(aUR(ag
gUR(agg
)Nr�r3r2z	+Infinityr�z	-Infinityz-Zeroz+Zeror�z
-Subnormalz
+Subnormalz-Normalz+Normal)r�r�r�r�rJrr�)r7r8�infs   r/�number_class�Decimal.number_class�
s����<�<�>�>���<�<�>�>����� ���!�8���"�9���<�<�>�>��z�z����?� �l�G����W��-��z�z�#�#��:�:��r1c��[S5$�Nrr�r�s r/�radix�
Decimal.radix�
s���r�{�r1c��Uc
[5n[USS9nURX5nU(aU$URS:waUR	[
5$UR*[U5s=::aUR::dO UR	[
5$UR5(a[U5$[U5nURnUR[U5-
nUS:�a	SU-U-nOUS:aXV*SnXTSUSU-n[URURS5=(d SUR5$�NTrr(r��rrr�r�r�r
rur�r�rrKr�rIrJr�)r7r�r8rN�torot�rotdig�topad�rotateds        r/�rotate�Decimal.rotate�
s$���?� �l�G��u�d�3�����u�.����J��:�:��?��'�'�(8�9�9����
��U��;�w�|�|�;��'�'�(8�9�9�������4�=� ��E�
���������s�6�{�*���1�9���Y��'�F�
�Q�Y��F�G�_�F���.�6�&�5�>�1����
�
� '���s� 3� :�s�D�I�I�G�	Gr1c�L�Uc
[5n[USS9nURX5nU(aU$URS:waUR	[
5$SURUR--nSURUR--nU[U5s=::aU::dO UR	[
5$UR5(a[U5$[URURUR[U5-5nURU5nU$)NTrr(rr�)rrr�r�r�r
rvrur�r�rrIrJrKrE)r7r�r8rN�liminf�limsupr�s       r/�scaleb�Decimal.scaleb	s����?� �l�G��u�d�3�����u�.����J��:�:��?��'�'�(8�9�9��w�|�|�g�l�l�2�3���w�|�|�g�l�l�2�3���#�e�*�.��.��'�'�(8�9�9�������4�=� ��T�Z�Z����D�I�I��E�
�4J�K��
�F�F�7�O���r1c��Uc
[5n[USS9nURX5nU(aU$URS:waUR	[
5$UR*[U5s=::aUR::dO UR	[
5$UR5(a[U5$[U5nURnUR[U5-
nUS:�a	SU-U-nOUS:aXV*SnUS:aUSUnOUSU--nXrR*Sn[URURS5=(d SUR5$r�r�)r7r�r8rNr�r�r��shifteds        r/rh�
Decimal.shift"s@���?� �l�G��u�d�3�����u�.����J��:�:��?��'�'�(8�9�9����
��U��;�w�|�|�;��'�'�(8�9�9�������4�=� ��E�
���������s�6�{�*���1�9���Y��'�F�
�Q�Y��F�G�_�F��1�9��V�e�n�G��s�5�y�(�G��|�|�m�n�-�G���
�
�$+�N�N�3�$7�$>�3��	�	�K�	Kr1c�2�UR[U544$r,)�	__class__r�r�s r/�
__reduce__�Decimal.__reduce__Is������T���-�-r1c�^�[U5[LaU$UR[U55$r,��typerr�r�r�s r/�__copy__�Decimal.__copy__L�&����:�� ��K��~�~�c�$�i�(�(r1c�^�[U5[LaU$UR[U55$r,r�)r7�memos  r/�__deepcopy__�Decimal.__deepcopy__Qr�r1c�\�Uc
[5n[XS9nUR(aI[URU5n[UR
55nUSS:XaUS-
n[XVU5$UScSS/URUS'USS:Xa.[URURURS-5nURnUSnUboUSS;aURUS	-U5nOPUSS
;aURU*U5nO3USS;a*[UR5U:�aURX�5nU(d+URS:�aUSS
;aURSU5nU(dUS
(aUR(aSn	OURn	UR[UR5-n
USS;aU(d	UbS	U-
nO3S	nO0USS
;aU
nO$USS;aURS::a	U
S:�aU
nOS	nWS:aSnSU*-UR-n
OkU[UR5:�a+URSU[UR5-
--nSn
O'URSU=(d SnURUSn
X�-
n[!X�X�U5$)N)�_localeconvr��%�g�Gr��	precision�eEr2zfF%�gGr(�no_neg_0r4r�r�)r�_parse_format_specifierr��_format_signrJr�rC�
_format_alignr|rIrKr�rtr4rRr��_format_number)r7�	specifierr8r�specr[�bodyrtr	�
adjusted_signr9r:r�r�r�s               r/�
__format__�Decimal.__format__Xs����?� �l�G�&�y�J�������
�
�D�1�D��t�}�}��'�D��F�|�s�"����� ��T�2�2���<����:�g�&6�&6�7�D��L���<�3��#�D�J�J��	�	�4�9�9�Q�;�G�D��#�#����%�	�� ��F�|�t�#��{�{�9�Q�;��9���f���&��}�}�i�Z��:���f���%�#�d�i�i�.�9�*D��{�{�9�7����	�	�A�
�$�v�,�%�*?��=�=��H�-�D���Z�(�T�Z�Z��M� �J�J�M��Y�Y��T�Y�Y��/�
���<�4���I�1��y�=����
�&�\�U�
"�!�H�
�&�\�T�
!��y�y�A�~�*�r�/�%�����a�<��G��X�I�����2�H�
��D�I�I��
&��i�i�#�x��D�I�I��'>�"?�?�G��H��i�i�	��*�1�c�G��y�y���+�H��!���m�h�T�J�Jr1)r�rKr�rJ)r�N)NNr,)FN)TN)�r<r=r>r?�	__slots__r��classmethodr�r�r�r�r�r�r�r�rrrrrrr%r�r/r;r?rGrJrNrW�__radd__rZr]rc�__rmul__rkrqrtr{r~r�r�r�r�r�r�r��	__trunc__�propertyr�r�r�r�rLrEr�r�r�r�r�r�r�r��dictr�r�r�r�r�r�rrr"r'r�r-rRr4r8r��to_integralrBrQr)r�r�r�rVrZrGrfrCrDrmr�rtrwr,rr�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rhr�r�rrr@r-r1r/rr�s���7�I�T@�l�*��*�X
���@�B4�-'�@%�$�%�$�%�)�$(�4O�0�d+�
2/�h7�!�,!�*�,T�l�H�B�4�6�n�H�9!�v�B8�"#�H7��64�I!�V/�89��7��I�
���������$�
�Z�L�'��-�-�+�+�+�#� ��&�*�*�&�"� �	��<6�|
2�
4�*/�XS4�jv?�pV�p4�@�2;�z
'� 8�D�.�:.�"$�K�a�F(!�T !�D%�2���
4�F�R	"�K�O�=�I�V�$� �'�/� �� �.�9�,�20�d0�<1�f!�<��A�")�A�"A�"!�<!�<%�.%�.,�\(�T�G�B�2$K�N.�)�
)�TKr1rc�h�[R[5nXlXlX$lX4lU$r,)r�r�rrJrKr�r�)r[�coefficientr��specialr7s     r/rIrI�s,���>�>�'�"�D��J��I��I����Kr1c�&�\rSrSrSrSrSrSrg)r�i�c�.�UR5Ulgr,)r�r�)r7r�s  r/�__init__�_ContextManager.__init__�s��&�+�+�-��r1c�b�[5Ul[UR5 UR$r,)r�
saved_contextrr�r�s r/�	__enter__�_ContextManager.__enter__�s&��'�\����4�#�#�$����r1c�.�[UR5 gr,)rr')r7�t�v�tbs    r/�__exit__�_ContextManager.__exit__�s���4�%�%�&r1)r�r'N)r<r=r>r?r$r(r.r@r-r1r/r�r��s��.� �'r1r�c��\rSrSrSUSjrSrSrSrSrSr	S	r
S
rSrSr
S
r\rSVSjrSrSrSrSrSrSrSrSWSjrSrSrSrSrSrSrSrSr Sr!Sr"S r#S!r$S"r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S+r.S,r/S-r0S.r1S/r2S0r3S1r4S2r5S3r6S4r7S5r8S6r9S7r:S8r;S9r<S:r=S;r>S<r?S=r@S>rAS?rBS@rCSArDSBrESCrFSDrGSVSEjrHSFrISGrJSHrKSIrLSJrMSKrNSLrOSMrPSNrQSOrRSPrSSQrTSRrUSSrV\VrWSTrXg)Xri�Nc
��^^�[n
UbUOW
RUlUbUOW
RUlUbUOW
RUlUbUOW
R
UlUbUOW
RUlUbUOW
RUlU	c/UlOX�lTc W
RR5Ul	O>[T[5(d"[U4Sj[T-55Ul	OTUl	Tc [R[S5Ulg[T[5(d"[U4Sj[T-55UlgTUlg![a GNef=f)Nc3�B># �UHo[UT;54v� M g7fr,�r�)�.0r�rs  �r/�	<genexpr>�#Context.__init__.<locals>.<genexpr>�����M�<L�q�#�a�5�j�/�2�<L���r(c3�B># �UHo[UT;54v� M g7fr,r3)r4r�r~s  �r/r5r6r7r8)r�	NameErrorrurtr{rvr|r}�_ignored_flagsrr�r�rr�fromkeysr~)r7rurtr{rvr|r}r~rr;�dcs       ``  r/r$�Context.__init__�s&���
	��B�!�,�D�"�'�'��	�$,�$8��b�k�k��
� �,�D�"�'�'��	� �,�D�"�'�'��	�$,�$8��b�k�k��
�#�/�U�R�X�X��
��!�"$�D��"0���=�������D�J��E�4�(�(��M�H�u�<L�M�M�D�J��D�J��=����x��3�D�J��E�4�(�(��M�H�u�<L�M�M�D�J��D�J��7�	��	�s�E"�"
E0�/E0c��[U[5(d[SU-5eUS:XaX$:�a[SXXB4-5eO6US:XaX#:a[SXXB4-5eOX#:dX$:�a[SXXB4-5e[RXU5$)Nz%s must be an integer�-infz%s must be in [%s, %d]. got: %sr�z%s must be in [%d, %s]. got: %sz%s must be in [%d, %d]. got %s)r�r�r�r�r��__setattr__)r7�namer��vmin�vmaxs     r/�_set_integer_check�Context._set_integer_checks����%��%�%��3�d�:�;�;��6�>��|� �!B�d�RV�E^�!^�_�_��
�U�]��|� �!B�d�RV�E^�!^�_�_���|�u�|� �!A�T�QU�D]�!]�^�^��!�!�$�e�4�4r1c��[U[5(d[SU-5eUHnU[;dM[	SU-5e [HnX2;dM
[	SU-5e [
R
XU5$)Nz%s must be a signal dictz%s is not a valid signal dict)r�rr�r�KeyErrorr�rA)r7rBr�r�s    r/�_set_signal_dict�Context._set_signal_dictsy���!�T�"�"��6��:�;�;��C��(�?��>��B�C�C���C��8��>��B�C�C���!�!�$�a�0�0r1c���US:XaURXSS5$US:XaURXSS5$US:XaURXSS5$US:XaURXSS5$US	:XaURXSS5$US
:Xa.U[;a[SU-5e[R	XU5$US:XdUS
:XaURX5$US:Xa[R	XU5$[
SU-5e)Nrur2r�r{r@r(rvr|r}rtz%s: invalid rounding moder~rr;z.'decimal.Context' object has no attribute '%s')rE�_rounding_modesr�r�rArI�AttributeError)r7rBr�s   r/rA�Context.__setattr__%s���6�>��*�*�4��5�A�A�
�V�^��*�*�4���B�B�
�V�^��*�*�4��5�A�A�
�Z�
��*�*�4��1�=�=�
�W�_��*�*�4��1�=�=�
�Z�
��O�+� � ;�e� C�D�D��%�%�d�%�8�8�
�W�_�����(�(��5�5�
�%�
%��%�%�d�%�8�8� �@�4�G�I�
Ir1c��[SU-5e)Nz%s cannot be deleted)rM)r7rBs  r/�__delattr__�Context.__delattr__>s���3�d�:�;�;r1c	��URR5VVs/sHupU(dMUPM nnnURR5VVs/sHupU(dMUPM nnnURURUR
URURURURX444$s snnfs snnfr,)
r~r�rr�rurtr{rvr|r})r7�sigr,r~rs     r/r��Context.__reduce__Bs���#'�:�:�#3�#3�#5�;�#5�����#5��;�#'�:�:�#3�#3�#5�;�#5�����#5��;�������D�M�M�4�9�9�d�i�i�����
�
�E�:�;�	;��<��;s�
C�C�
C�&Cc��/nURS[U5-5 URR5VVs/sHup#U(dMURPM nnnURSSRU5-S-5 URR5VVs/sHupSU(dMURPM nnnURSSRU5-S-5 SRU5S-$s snnfs snnf)NzrContext(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d, clamp=%(clamp)dzflags=[�, �]ztraps=[�))r��varsr~r�r<r�r)r7r�r�r,�namesr+s      r/r/�Context.__repr__Is�����	���#���:��	�)-�
�
�(8�(8�(:�@�(:���a�����(:��@�	����T�Y�Y�u�-�-��3�4�(,�
�
�(8�(8�(:�@�(:���a�����(:��@�	����T�Y�Y�u�-�-��3�4��y�y��|�c�!�!��	A��@s�
D�D�$
D�5Dc�H�URHnSURU'M gr�)r~�r7�flags  r/r��Context.clear_flagsV����J�J�D� �D�J�J�t��r1c�H�URHnSURU'M gr�)rr]s  r/�clear_traps�Context.clear_traps[r`r1c���[URURURURUR
URURURUR5	nU$r,)
rrurtr{rvr|r}r~rr;�r7�ncs  r/r=�Context._shallow_copy`sM��
�T�Y�Y��
�
�t�y�y�$�)�)��]�]�D�J�J��
�
�D�J�J��(�(�*���	r1c��[URURURURUR
URURR5URR5UR5	nU$r,)rrurtr{rvr|r}r~r�rr;res  r/r��Context.copygs\��
�T�Y�Y��
�
�t�y�y�$�)�)��]�]�D�J�J��Z�Z�_�_�&��
�
���(9��(�(�*���	r1c��[RX5nX@R;aU"5R"U/UQ76$SURU'UR
U(dU"5R"U/UQ76$U"U5er�)�_condition_mapr�r;r9r~r)r7�	condition�explanationr.�errors     r/r��Context._raise_errorpsu���"�"�9�8���'�'�'��7�>�>�$�.��.�.���
�
�5���z�z�%� ��;�%�%�d�2�T�2�2��K� � r1c�(�UR"[6$r,)�
_ignore_flagsrr�s r/r��Context._ignore_all_flags�s���!�!�8�,�,r1c�R�UR[U5-Ul[U5$r,)r;r�)r7r~s  r/rq�Context._ignore_flags�s%�� $�2�2�T�%�[�@����E�{�r1c��U(a#[US[[45(aUSnUHnURR	U5 M  gr�)r�r�r�r;�remove)r7r~r^s   r/�
_regard_flags�Context._regard_flags�s@���Z��a��5��,�7�7��!�H�E��D����&�&�t�,�r1c�L�[URUR-
S-5$r�)r�r{rur�s r/rf�
Context.Etiny�����4�9�9�t�y�y�(�1�,�-�-r1c�L�[URUR-
S-5$r�)r�rvrur�s r/r��Context.Etop�r{r1c�*�URnXlU$r,)rt)r7r�rts   r/r>�Context._set_rounding�s���=�=���
��r1c�t�[U[5(a/XR5:wdSU;aUR[S5$[XS9nUR
5(aF[UR5URUR-
:�aUR[S5$URU5$)Nr�zAtrailing or leading whitespace and underscores are not permitted.r�zdiagnostic info too long in NaN)r�r�r�r�rrr�r�rKrur}rE)r7r�r�s   r/�create_decimal�Context.create_decimal�s����c�3���S�I�I�K�%7�3�#�:��$�$�%5�&F�G�
G�
�C�&���8�8�:�:�#�a�f�f�+��	�	�D�J�J�(>�>��$�$�%5�%F�H�
H��v�v�d�|�r1c�N�[RU5nURU5$r,)rr�rE)r7r�r�s   r/�create_decimal_from_float�!Context.create_decimal_from_float�s"��
���q�!���v�v�d�|�r1c�4�[USS9nURUS9$rY)rrN�r7rs  r/r��Context.abs�s!��$
�1�d�+���y�y��y�&�&r1c�f�[USS9nURX S9nU[La[SU-5eU$�NTrr��Unable to convert %s to Decimal)rrWr�r��r7rr�rps    r/�add�Context.add�s>��
�1�d�+��
�I�I�a�I�&������=��A�B�B��Hr1c�6�[URU55$r,)r�rEr�s  r/�_apply�Context._applys���1�6�6�$�<� � r1c�b�[U[5(d[S5eUR5$)Nz,canonical requires a Decimal as an argument.)r�rr�rVr�s  r/rV�Context.canonicals)���!�W�%�%��J�K�K��{�{�}�r1c�4�[USS9nURX S9$rY)rr�r7rr�s   r/r�Context.compares"��B
�1�d�+���y�y��y�)�)r1c�4�[USS9nURX S9$rY)rrZr�s   r/rZ�Context.compare_signal7s%��@
�1�d�+�������0�0r1c�8�[USS9nURU5$r)rrGr�s   r/rG�Context.compare_totalZs��4
�1�d�+�����q�!�!r1c�8�[USS9nURU5$r)rrfr�s   r/rf�Context.compare_total_magws!��

�1�d�+���"�"�1�%�%r1c�6�[USS9nUR5$r)rrCr�s  r/rC�Context.copy_abss��
�1�d�+���z�z�|�r1c�,�[USS9n[U5$r)rrr�s  r/�copy_decimal�Context.copy_decimal�s��
�1�d�+���q�z�r1c�6�[USS9nUR5$r)rrDr�s  r/rD�Context.copy_negate�s��
�1�d�+���}�}��r1c�8�[USS9nURU5$r)rrmr�s   r/rm�Context.copy_sign�s��*
�1�d�+���{�{�1�~�r1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rrkr�r�r�s    r/�divide�Context.divide�s>��<
�1�d�+��
�M�M�!�M�*������=��A�B�B��Hr1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rr�r�r�r�s    r/�
divide_int�Context.divide_int�s>�� 
�1�d�+��
�N�N�1�N�+������=��A�B�B��Hr1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rr{r�r�r�s    r/rg�Context.divmod�s>��
�1�d�+��
�L�L��L�)������=��A�B�B��Hr1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.exps!��*�!�T�*���u�u�T�u�"�"r1c�6�[USS9nURX#US9$rY)rr�)r7rr�r@s    r/r��Context.fma's#��(
�1�d�+���u�u�Q�4�u�(�(r1c�b�[U[5(d[S5eUR5$)Nz/is_canonical requires a Decimal as an argument.)r�rr�rtr�s  r/rt�Context.is_canonical>s*���!�W�%�%��M�N�N��~�~��r1c�6�[USS9nUR5$r)rrwr�s  r/rw�Context.is_finiteKs��&
�1�d�+���{�{�}�r1c�6�[USS9nUR5$r)rr,r�s  r/r,�Context.is_infiniteas��
�1�d�+���}�}��r1c�6�[USS9nUR5$r)rrr�s  r/r�Context.is_nanps��
�1�d�+���x�x�z�r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.is_normal�s!��(
�1�d�+���{�{�4�{�(�(r1c�6�[USS9nUR5$r)rr�r�s  r/r��Context.is_qnan�s��
�1�d�+���y�y�{�r1c�6�[USS9nUR5$r)rr�r�s  r/r��Context.is_signed�s��
�1�d�+���{�{�}�r1c�6�[USS9nUR5$r)rr�r�s  r/r��Context.is_snan�s��
�1�d�+���y�y�{�r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.is_subnormal�s!��&
�1�d�+���~�~�d�~�+�+r1c�6�[USS9nUR5$r)rr�r�s  r/r��Context.is_zero�s��
�1�d�+���y�y�{�r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��
Context.ln�s!��&
�1�d�+���t�t�D�t�!�!r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��
Context.log10s!��2
�1�d�+���w�w�t�w�$�$r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.logb s!��.
�1�d�+���v�v�d�v�#�#r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.logical_and:�!��0
�1�d�+���}�}�Q�}�-�-r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.logical_invertUs$�� 
�1�d�+�������-�-r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.logical_orhs!��0
�1�d�+���|�|�A�|�,�,r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.logical_xor�r�r1c�4�[USS9nURX S9$rY)rrQr�s   r/rQ�Context.max��!��0
�1�d�+���u�u�Q�u�%�%r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.max_mag��!��
�1�d�+���y�y��y�)�)r1c�4�[USS9nURX S9$rY)rr)r�s   r/r)�Context.min�r�r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.min_mag�r�r1c�4�[USS9nURUS9$rY)rrGr�s  r/�minus�
Context.minus��!��
�1�d�+���y�y��y�&�&r1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rrcr�r�r�s    r/�multiply�Context.multiplys>��2
�1�d�+��
�I�I�a�I�&������=��A�B�B��Hr1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.next_minus's!��"
�1�d�+���|�|�D�|�)�)r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.next_plus;s!��"
�1�d�+���{�{�4�{�(�(r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.next_towardOs"��@
�1�d�+���}�}�Q�}�-�-r1c�4�[USS9nURUS9$rY)rr'r�s  r/r'�Context.normalizers!��*
�1�d�+���{�{�4�{�(�(r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.number_class�s"��^
�1�d�+���~�~�d�~�+�+r1c�4�[USS9nURUS9$rY)rrJr�s  r/�plus�Context.plus�r�r1c�h�[USS9nURX#US9nU[La[SU-5eU$r�)rrr�r�)r7rr�r�rps     r/�power�
Context.power�sA��R
�1�d�+��
�I�I�a��I�.������=��A�B�B��Hr1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.quantizes"��n
�1�d�+���z�z�!�z�*�*r1c��[S5$r�r�r�s r/r��
Context.radixWs���r�{�r1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rr�r�r�r�s    r/ri�Context.remainder_s>��>
�1�d�+��
�I�I�a�I�&������=��A�B�B��Hr1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.remainder_near�s$��>
�1�d�+�������0�0r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.rotate�s!��4
�1�d�+���x�x��x�(�(r1c�8�[USS9nURU5$r)rr-r�s   r/r-�Context.same_quantum�s��*
�1�d�+���~�~�a� � r1c�4�[USS9nURX S9$rY)rr�r�s   r/r��Context.scaleb�s!�� 
�1�d�+���x�x��x�(�(r1c�4�[USS9nURX S9$rY)rrhr�s   r/rh�
Context.shift�s!��6
�1�d�+���w�w�q�w�'�'r1c�4�[USS9nURUS9$rY)rrBr�s  r/rB�Context.sqrt
s!��:
�1�d�+���v�v�d�v�#�#r1c�f�[USS9nURX S9nU[La[SU-5eU$r�)rrZr�r�r�s    r/�subtract�Context.subtract-s>�� 
�1�d�+��
�I�I�a�I�&������=��A�B�B��Hr1c�4�[USS9nURUS9$rY)rr?r�s  r/r?�Context.to_eng_stringDs!��2
�1�d�+�����t��,�,r1c�4�[USS9nURUS9$rY)rr;r�s  r/�
to_sci_string�Context.to_sci_string`s!��

�1�d�+���y�y��y�&�&r1c�4�[USS9nURUS9$rY)rr8r�s  r/r8�Context.to_integral_exacths$��6
�1�d�+���"�"�4�"�0�0r1c�4�[USS9nURUS9$rY)rr�r�s  r/r��Context.to_integral_value�s$��4
�1�d�+���"�"�4�"�0�0r1)	rvr{r;r|r}r~rurtr)	NNNNNNNNNr,)r�)Yr<r=r>r?r$rErIrArPr�r/r�rbr=r�r�r�r�rqrwrrfr�r>r�r�r�r�r�rVrrZrGrfrCr�rDrmr�r�rgr�r�rtrwr,rr�r�r�r�r�r�r�r�r�r�r�r�r�rQr�r)r�r�r�r�r�r�r'r�r�r�r�r�rir�r�r-r�rhrBr	r?rr8r�rr@r-r1r/rr�s���&BF�DH�&*�"�H5�	1�I�2<�;�"�!�
!�
���H�!�,-��-��H�.�.��&�"�$'�*�*!��"*�H!1�F"�:&�����0#�J�.�*#�0)�. ��,
�� )�.
��"� ,�,�""�,%�8$�4.�6.�&-�6.�6&�6*�"&�6*�"'�"�@*�()�(!.�F)�00,�d'�"N�`8+�t�$�L 1�D)�:!�0)�&(�<$�@�.-�8'�1�<1�<$�Kr1rc�(�\rSrSrSrSSjrSrSrg)r�i��r[r�r�Nc��UcSUlSUlSUlg[U[5(a=UR
Ul[UR5UlURUlgUSUlUSUlUSUlg)Nr(r2r�)r[r�r�r�rrJrKr�)r7r�s  r/r$�_WorkRep.__init__�sq���=��D�I��D�H��D�H�
��w�
'�
'����D�I��5�:�:��D�H��z�z�D�H��a��D�I��Q�x�D�H��Q�x�D�Hr1c�\�SUR<SUR<SUR<S3$)N�(rVrXrr�s r/r/�_WorkRep.__repr__�s��!%���D�H�H�d�h�h�?�?r1)r�r�r[r,)r<r=r>r?rr$r/r@r-r1r/r�r��s��$�I�

 �@r1r�c���URUR:aUnUnOUnUn[[UR55n[[UR55nUR[	SXR-
S-
5-nXdR-S-
U:a
SUlXtlU=RSURUR-
--slURUlX4$)Nr�r�r2r)r�r�r�r�r))rUrVru�tmpr��tmp_len�	other_lenr�s        r/rSrS�s���
�w�w��������������#�c�g�g�,��G��C��	�	�N�#�I�

�'�'�C��G�N�Q�.�/�
/�C��9�9��q� �3�&���	��	��G�G�r�c�g�g��	�	�)�*�*�G��i�i�C�G��8�Or1c���US:XagUS:�aUSU--$[[U55n[U5[URS55-
nX1*:aS$USU*--$)Nr(rr�)r�r�r��rstrip)rHr6�str_n�val_ns    r/r�r��si��	�A�v��	
�a���2�q�5�y���C��F����E�
�S����c�!2�3�3���r�z�t�2�q�B���F�{�2r1c�h�US::dUS::a[S5eSnX:waXU*U--
S-	pX:waMU$)Nr(z3Both arguments to _sqrt_nearest should be positive.r2)r�)rHrr�s   r/�
_sqrt_nearestr$�sF��	�A�v��a���N�O�O��A�
�&��Q�B��E�'�1�*�1��&��Hr1c�>�SU-X-	p2USXS-
--US--U:�-$)Nr2r�r-)rrhr�ros    r/�_rshift_nearestr&s4��

��:�q�z�q���1�!��9�
��1��%��)�*�*r1c�>�[X5up#USU-US--U:�-$)Nr�r2)rg)rr�rorps    r/�_div_nearestr(s*��
�!�<�D�A���!��q��s��a�� � r1c�8�X-
nSnXB::a[U5X$-
-U:�dXB:�a{[U5XB-
-	U:�ag[X-S-U[X[X45--U5-5nUS-
nXB::a[U5X$-
-U:�aMLXB:�a[U5XB-
-	U:�aMg[	S[[
U55-SU--5*n[X45n[X5n[US-
SS5Hn[X5[Xg-U5-
nM [Xs-U5$)Nr(r2���r�r�)r�r(r$r&r�r�r�r�)	r�M�Lr�R�T�yshift�wr�s	         r/�_ilogr1s��<	
��A�	�A��6�c�!�f���m�q�(��5�S��V�q�s�]�a�'��!�#�!���]�1���0E�.E�+F��J�J�
L��	�Q���	
�6�c�!�f���m�q�(��5�S��V�q�s�]�a�'�

�S��S��V��_�q��s�
#�	$�$�A�
�Q�
"�F��Q��A�
�1�Q�3��2�
������f�h��!:�:������Q��r1c�@�US-
n[[U55nX-X-S:�-
nUS:�aTSU-nX-U-
nUS:�a	USU--nO[USU*-5n[X5n[	U5n[Xu-U5nXE-n	OSn[USU*-5n	[X�-S5$�Nr�r2r(rr�)r�r�r(r1�
_log10_digits)
r@r6rrAr�r+r��log_d�log_10�log_tenpowers
          r/r�r�Ds�����F�A�	�C��F��A�	��q�s�a�x��A��1�u���E��
�C��E����6�
��Q��J�A��Q��Q�B��'�A��a����q�!���U�W�f�-���s����#�A�r�A�2�v�.����*�C�0�0r1c��US-
n[[U55nX-X-S:�-
nUS:�a6X-U-
nUS:�a	USU--nO[USU*-5n[USU-5nOSnU(aI[[[	U555S-
nX'-S:�a[U[X'-5-SU-5nOSnOSn[X�-S5$r3)r�r�r(r1r�r4)	r@r6rrAr�r�r5r�	f_log_tens	         r/r�r�fs�����F�A�
	�C��F��A�	��q�s�a�x��A�	�1�u�
�C��E����6�
��Q��J�A��Q��Q�B��'�A��a��Q������	��C��A��K� ��"���9��>�%�Q�}�Q�W�'=�%=�r�5�y�I�I��I��	��	�)�3�/�/r1c� �\rSrSrSrSrSrg)�
_Log10Memoizei�c��SUlg)N�/23025850929940456840179914546843642076011014886�r�r�s r/r$�_Log10Memoize.__init__�s	��G��r1c�D�US:a[S5eU[UR5:�a\SnSX-S--n[[	[SU-U5S55nXB*SSU-:waOUS-
nM@UR
S5SSUl[URSUS	-5$)
Nr(zp should be nonnegativer�rr�r�r�r�r2)r�r�r�r�r(r1r r�)r7rrr+r�s     r/�	getdigits�_Log10Memoize.getdigits�s���
�q�5��6�7�7���D�K�K� � ��E�������O���\�%��1��a�.�#�>�?���&�'�?�c�%�i�/����
��
�!�-�-��,�S�b�1�D�K��4�;�;�t��!��$�%�%r1r>N)r<r=r>r?r$rAr@r-r1r/r;r;�s
��H�&r1r;c�H�[X-U-5n[S[[U55-SU--5*n[	X5nX-n[US-
SS5Hn[	XU--Xg-5nM [US-
SS5HnXS--n[	XUU--U5nM X-$)Nr*r�r2r(r�r�)r�r�r�r�r(r�)	rr+r,r-r.r�Mshiftr�r�s	         r/�_iexprE�s���*	���q�y��A�

�S��S��V��_�q��s�
#�	$�$�A��Q��A�
�T�F�
�1�Q�3��2�
����Q�J����4����1�Q�3��B�
���q�S�����f�H��v�.�� �
�3�Jr1c	� �US-
n[SU[[U55-S-
5nX#-nX-nUS:�a	USU--nO	USU*--n[U[	U55upx[USU-5n[[
USU-5S5Xr-
S-4$)Nr�r(r2ri�r�)rQr�r�rgr4r(rE)	r@r6rrrorh�cshift�quotr
s	         r/rprp�s�����F�A�
��1�s�3�q�6�{�?�Q�&�'�E�	�	�A�
�C�E���z��2�u�9����B���J����v�}�Q�/�0�I�D��s�B��I�
&�C���c�2�q�5�)�4�0�$�(�Q�,�>�>r1c��[[[U555U-n[XXE-S-5nX5-
nUS:�aXb-SU--nO[	Xb-SU*-5nUS:XaA[[U55U-S:�US:�:XaSUS-
-S-SU-
p�X�4$SU-S-
U*p�X�4$[X�S-*US-5up�[	U	S5n	U
S-
n
X�4$)Nr2r(r)r�r�r�r�r(rp)rrrrrr��lxcrh�pcr�r�s           r/rrs��� 	�C��B��L��B��A�����A��
�C�
�D�E���z�
�V�B��I�
��
�#�&�"�u�f�*�
-��	�Q�w���R��\�B�
�!�
#��a��0��a��c��1��a��c�3��:��
�Q��q��1�"�3��:��	�2�1��v�q��s�+�
���U�B�'���q����:�r1r��F�5�(�r��rr�)	r`�2�3�4�5�6�7�8rsc�f�US::a[S5e[U5nS[U5-XS-
$)Nr(z0The argument to _log10_lb should be nonnegative.r�)r�r�r�)r@�
correction�str_cs   r/rr*s:��	�A�v��K�L�L���F�E��s�5�z�>�J�Q�x�0�0�0r1c��[U[5(aU$[U[5(a[U5$U(a*[U[5(a[R	U5$U(a[SU-5e[$)Nr�)r�rr�r�r�r�r�)r�r�allow_floats   r/rr5sg���%��!�!����%�����u�~���z�%��/�/��!�!�%�(�(���9�E�A�B�B��r1c��[U[5(aX4$[U[R5(arUR(dJ[UR[[UR5UR-5UR5nU[UR54$U(a;[U[R5(aURS:XaURn[U[ 5(aR[#5nU(aSUR$[&'OUR)[&S5 U[R+U54$[,[,4$)Nr(r2r�)r�r�_numbers�Rationalr�rIrJr�r�rK�denominatorr��	numerator�Complexr�r�r�rr~rr�r�r�)r7r�r�r8s    r/r�r�Hs���%��!�!��{���%��*�*�+�+����#�D�J�J�$'��D�I�I���9J�9J�(J�$K�$(�I�I�/�D��W�U�_�_�-�-�-�
�z�%��)9�)9�:�:�u�z�z�Q���
�
���%�����,���,-�G�M�M�.�)�� � ��M�
O��W�'�'��.�.�.��>�)�)r1r�i?Bi���)rurtrr~rvr{r|r}r�)rurtrr~a�        # A numeric string consists of:
#    \s*
    (?P<sign>[-+])?              # an optional sign, followed by either...
    (
        (?=\d|\.\d)              # ...a number (with at least one digit)
        (?P<int>\d*)             # having a (possibly empty) integer part
        (\.(?P<frac>\d*))?       # followed by an optional fractional part
        (E(?P<exp>[-+]?\d+))?    # followed by an optional exponent, or...
    |
        Inf(inity)?              # ...an infinity, or...
    |
        (?P<signal>s)?           # ...an (optionally signaling)
        NaN                      # NaN
        (?P<diag>\d*)            # with (possibly empty) diagnostic info.
    )
#    \s*
    \Z
z0*$z50*$z�\A
(?:
   (?P<fill>.)?
   (?P<align>[<>=^])
)?
(?P<sign>[-+ ])?
(?P<no_neg_0>z)?
(?P<alt>\#)?
(?P<zeropad>0)?
(?P<minimumwidth>(?!0)\d+)?
(?P<thousands_sep>,)?
(?:\.(?P<precision>0|(?!0)\d+))?
(?P<type>[eEfFgGn%])?
\Z
c��[RU5nUc[SU-5eUR5nUSnUSnUSSLUS'US(a"Ub[SU-5eUb[SU-5eU=(d SUS'U=(d SUS'US	cS
US	'[	US=(d S5US'US
b[	US
5US
'US
S:XaUSb	USS;aSUS
'USS:XaKSUS'Uc[
R"5nUSb[SU-5eUSUS'USUS'USUS'U$UScSUS'SS/US'SUS'U$)NzInvalid format specifier: �fill�align�zeropadz7Fill character conflicts with '0' in format specifier: z2Alignment conflicts with '0' in format specifier: � �>r[r��minimumwidthr�r	r(r��gGnr2rHr�
thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: �grouping�
decimal_pointr�r�r5)�_parse_format_specifier_regex�matchr��	groupdictr��_locale�
localeconv)�format_specrr��format_dictrdres      r/r
r
�s
��&	&�+�+�K�8�A��y��5��C�D�D��+�+�-�K��v��D��� �E�)�)�4�D�@�K�	���9�����6�8C�D�E�
E����2�4?�@�A�
A��+�#�K���!�<�C�K����6��"�!��F��#&�k�.�&A�&H�S�"I�K����;��+�#&�{�;�'?�#@��K� ��;��1�$��v��&�+�f�*=��*F�'(�K��$��6��c�!�!��F����!�,�,�.�K���'�3��>�@K�L�M�
M�'2�?�'C��O�$�"-�j�"9��J��'2�?�'C��O�$�����'�/�+-�K��(�#$�a�&��J��'*��O�$��r1c��USnUSnXC[U5-
[U5-
-nUSnUS:Xa	X-U-nU$US:Xa	XP-U-nU$US:Xa	X-U-nU$US:Xa [U5S-nUSUU-U-XXS-nU$[S	5e)
Nrirdre�<rh�=�^r�zUnrecognised alignment field)r�r�)	r[rrrird�paddingrer��halfs	         r/rr&s�����'�L���<�D��3�t�9�,�s�4�y�8�9�G���M�E���|���w�&���M�
�#����$�&���M�
�#����$�&���M�

�#���7�|�Q�����$��$�&��-����>���M��7�8�8r1c���SSKJnJn U(d/$USS:Xa$[U5S:�aU"USSU"US55$US[R
:XaUSS$[
S5e)Nr()�chain�repeatr�r�rz unrecognised format for grouping)�	itertoolsr|r}r�rq�CHAR_MAXr�)rlr|r}s   r/�_group_lengthsr�Asl��(���	�	�"���	�s�8�}��1��X�c�r�]�F�8�B�<�$8�9�9�	�"���)�)�	)����}���;�<�<r1c���USnUSn/n[U5H�nUS::a[S5e[[[	U5US5U5nURSU[	U5-
-X*S-5 USU*nX&-nU(dUS::a ONU[	U5-nM� [[	U5US5nURSU[	U5-
-X*S-5 UR
[U55$)Nrkrlr(zgroup length should be positiver2r�)r�r�r)rQr�r�r��reversed)r�r�	min_width�seprl�groupsrAs       r/�_insert_thousands_sepr�Xs���"��
�C��J��H�
�F�
�H�
%����6��>�?�?���C��K��A�.��2���
�
�c�1�s�6�{�?�+�f�R�S�k�9�:���!������	��)�q�.���S��X��	�&�
��F��Y��*���
�
�c�1�s�6�{�?�+�f�R�S�k�9�:��8�8�H�V�$�%�%r1c�0�U(agUSS;aUS$g)Nr�r[z +r�r-)�is_negativers  r/rr}s#����	
�f���	��F�|��r1c�P�[X5nU(d
US(aUSU-nUS:wd	USS;a!SSSSS.USnUS	RXc5-
nUSS
:XaUS
-
nUS(aUS[U5-
[U5-
nOSn[XU5n[	XQU-U5$)
N�altrmr(r�r
r7r6)r7r6rrz{0}{1:+}rrfri)r�formatr�r�r)r�r�r�r�rr[�echarr�s        r/rr�s���$��*�D��4��;���(�8�3��
�a�x�4��<�4�'���#�C�8��f��F���J�%�%�e�1�1���F�|�s���C����I����(�3�x�=�8�3�t�9�D�	��	�#�G�9�=�G���x�/��6�6r1�Infz-Infr3r�r�r,)F)r()r�)FF)r2){�__all__r<�	__xname__�__version__�__libmpdec_version__�mathr��numbersr^�sys�collectionsr)�_namedtupler�ImportErrorrrrrrrrrr%r&�maxsizer!r"r#r$�ArithmeticErrorrr	r
r�ZeroDivisionErrorrrrrrr
rrrr�rrrkrL�contextvars�
ContextVarr��	frozensetr�rrr r�rrI�Number�registerr�rr�rSr�r�r�r�r$r&r(r1r�r�r;rAr4rErprrrr�rrr�re�compile�VERBOSE�
IGNORECASEror�r�r��DOTALLrn�localerqr
rr�r�rrr�r�rMr^rr]rY�	hash_info�modulusrr�rr��_PyHASH_NANrr r-r1r/�<module>r�s���$!��F
�	���������
�&�5��~�/E�i�X�L�
�
��
�#���
�����#��
�
������;�;�'��!�H�!�H�"�H��H��H��H����
�#�	�
��
�.
��
��'��:�'��%�%�'8�%� 	�)�	�	�(�*;�	�
��
��%��
��
�	� �	�#:�w��#:�L
���)�
�
�%�y�
� 
�^�W�h���'��N�D��#�#3�$�%5�#�$4� �!1�3���}�o�}���/�:�G���"�-�-�.?�@���O����&��+�hB4K�f�B4K�Hh�&	������!�

'�f�
'�O$�f�O$�b6@�v�@�4�<

����3�*

�+�!�. �` 1�D*0�X!&�F�!&�F��)�)�
�#�J"?�H(�V�r���"�
�b�r��+�1��&"*�T�
�/��x�)9�:��
�
������
���x�)9�7�I�N�����
������*
�
�*�*��"�Z�Z�"�-�-��#!�""'��#�&�Z�Z��
�
$�
$�
��j�j�� �&�&��!#�
�
�,��Z�Z��	�	��!�� �
	��N�`�6=�.#&�J�#7�R
�E�N�	��F�O���u�~����
���q�z���r�{���/�0���-�-�'�'���m�m�����m�m�����B��!�+�_�=�
���CD�&�%�L�&��b|�	��	�s#�M#�M3�#	M0�/M0�3M<�;M<

?>