grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026U iÛf:}ã%@s¶dddddddddd d d d d ddddddddddddddddddd d!d"d#d$g%ZeZd%Zd&Zd'Zd(d)lZd(d)lZd(d)l Z zd(d*l m Z e dd+ƒZ Wnek r¬d,d-„Z YnXdZdZdZdZdZdZdZdZd.Zd.Ze jd/krîd0Zd0Zd1Zn d2Zd2Zd3Zeed4ZGd5d„deƒZGd6d„deƒZ Gd7d„deƒZ!Gd8d„de!ƒZ"Gd9d „d ee#ƒZ$Gd:d„de!ƒZ%Gd;d„de!e#ƒZ&Gdd „d eƒZ)Gd?d „d eƒZ*Gd@d „d e'e)ƒZ+GdAd„de'e)e*ƒZ,GdBd„dee-ƒZ.e e$e'e+e)e,e!e*e.g Z/e"e!e%e!e&e!e(e!iZ0eeeeeeeefZ1d(d)l2Z2e2 3dC¡Z4dDd„Z5dEd„Z6[2d”dFd„Z7GdGd„de8ƒZ9d•dIdJ„Z:ej; GdNdO„dOe8ƒZ?d–dPdQ„Z@eAjBZCdRdS„ZDdTdU„ZEdVdW„ZFdXdY„ZGd—d[d\„ZHd]d^„ZId_d`„ZJGdadb„dbe8ƒZKeKƒjLZMd˜dcdd„ZNdedf„ZOdgdh„ZPdidjdkdldmdndodpdqdrœ fdsdt„ZQd™dudv„ZRdšdwdx„ZSe>dyee$e+e!ggdzd{d4d(d|�ZTe>d}ee$e+e!e e,ggd~�ZUe>d}eggd~�ZVd(d)lWZWeW XdeWjYeWjZB¡j[Z\eW Xd€¡j[Z]eW Xd�¡j[Z^eW Xd‚eWjYeWj_B¡Z`[Wz d(d)laZbWnek �rYnXd›dƒd„„Zcd…d†„Zdd‡dˆ„Zedœd‰dŠ„Zfd‹dŒ„Zgd�dŽ„Zhe9d�ƒZie9d�ƒZje9d‘ƒZke9d(ƒZle9d4ƒZme9d’ƒZneiejfZoe jpjqZre jpjsZte jpjuZvewdperd“erƒZx[ d)S)�Ú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)Ú namedtuplezsign digits exponentcGs|S©N©)Úargsr*r*ú//opt/alt/python38/lib64/python3.8/_pydecimal.pyÚ¤ór-TlÿÿÿÿlÿÇNÎZolüÿÿÿÿÇNÎZoi@üTiÀ«æéc@seZdZdd„ZdS)rcGsdSr)r*©ÚselfÚcontextr+r*r*r,ÚhandleÓszDecimalException.handleN©Ú__name__Ú __module__Ú __qualname__r3r*r*r*r,rÀsc@s eZdZdS)rN©r5r6r7r*r*r*r,r×sc@seZdZdd„ZdS)r cGs,|r(t|dj|djddƒ}| |¡StS)Nr'ÚnT)Ú_dec_from_tripleÚ_signÚ_intÚ_fix_nanÚ_NaN)r1r2r+Úansr*r*r,r3ús zInvalidOperation.handleNr4r*r*r*r,r ãsc@seZdZdd„ZdS)rcGstSr)©r>r0r*r*r,r3szConversionSyntax.handleNr4r*r*r*r,rsc@seZdZdd„ZdS)r cGst|Sr))Ú_SignedInfinity©r1r2Úsignr+r*r*r,r3szDivisionByZero.handleNr4r*r*r*r,r s c@seZdZdd„ZdS)rcGstSr)r@r0r*r*r,r3"szDivisionImpossible.handleNr4r*r*r*r,rsc@seZdZdd„ZdS)rcGstSr)r@r0r*r*r,r3-szDivisionUndefined.handleNr4r*r*r*r,r%sc@s eZdZdS)r Nr8r*r*r*r,r 0sc@seZdZdd„ZdS)rcGstSr)r@r0r*r*r,r3GszInvalidContext.handleNr4r*r*r*r,r<s c@s eZdZdS)r Nr8r*r*r*r,r Jsc@s eZdZdS)r Nr8r*r*r*r,r Vsc@seZdZdd„ZdS)rcGsŽ|jttttfkrt|S|dkrR|jtkr4t|St|d|j|j |jdƒS|dkrŠ|jt krlt|St|d|j|j |jdƒSdS)Nr'Ú9r/) ÚroundingrrrrrArr:ÚprecÚEmaxrrBr*r*r,r3ws"ÿ  ÿ  ÿzOverflow.handleNr4r*r*r*r,rasc@s eZdZdS)rNr8r*r*r*r,r‡sc@s eZdZdS)rNr8r*r*r*r,r–sZdecimal_contextcCs8z t ¡WStk r2tƒ}t |¡|YSXdSr))Ú_current_context_varÚgetÚ LookupErrorrÚset©r2r*r*r,r¼s   cCs,|tttfkr| ¡}| ¡t |¡dSr))rrrÚcopyÚ clear_flagsrHrKrLr*r*r,rÊscCs|dkrtƒ}t|ƒSr))rÚ_ContextManager)Zctxr*r*r,rÓs$c @sÊeZdZdZdñdd„Zedd„ƒZdd „Zd d „Zdòd d „Z dd„Z dd„Z dd„Z dódd„Z dôdd„Zdõdd„Zdödd„Zd÷dd„Zdødd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zdùd)d*„Zdúd+d,„Zdûd-d.„Zdüd/d0„Zdýd2d3„Zdþd4d5„ZeZdÿd6d7„Z�dd8d9„Z�dd:d;„Z e Z!�ddd?„Z#�dd@dA„Z$�ddBdC„Z%�ddDdE„Z&�ddFdG„Z'�ddHdI„Z(�ddJdK„Z)�d dLdM„Z*�d dNdO„Z+dPdQ„Z,dRdS„Z-e-Z.e/dTdU„ƒZ0e/dVdW„ƒZ1dXdY„Z2dZd[„Z3d\d]„Z4d^d_„Z5d`da„Z6dbdc„Z7ddde„Z8dfdg„Z9dhdi„Z:djdk„Z;dldm„Ze6e7e8e9e:e;etƒ}| td¡t |¡}|j|_|j |_ |j |_ |j|_|St d|ƒ‚dS)NÚ_ÚzInvalid literal for Decimal: %rrCú-r/r'ÚintZfracÚexprRFÚdiagÚsignalÚNr9ÚFTéztInvalid tuple size in creation of Decimal from list or tuple. The list or tuple should have exactly three elements.©r'r/z|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.©r9rZzUThe 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Úgroupr;rVr<ÚlenrPrQÚlstripÚabsrÚ_WorkReprCrWÚlistÚtupleÚ ValueErrorÚappendÚjoinÚmapÚfloatrÚ from_floatÚ TypeError) ÚclsÚvaluer2r1ÚmÚintpartÚfracpartrWrXÚdigitsÚdigitr*r*r,rc s°  ÿ             (      ÿ zDecimal.__new__cCsÌt|tƒr,|dkrdnd}d}tt|ƒƒ}nzt|tƒržt |¡sJt |¡rV|t|ƒƒSt  d|¡dkrld}nd}t|ƒ  ¡\}}|  ¡d}t|d|ƒ}nt dƒ‚t ||| ƒ}|tkrÀ|S||ƒSdS)Nr'r/gð?ézargument must be int or float.)rdrVrermruÚ_mathZisinfZisnanÚreprZcopysignÚas_integer_ratioÚ bit_lengthrwr:r)rxÚfrCÚkÚcoeffr9ÚdÚresultr*r*r,rv s$    zDecimal.from_floatcCs(|jr$|j}|dkrdS|dkr$dSdS)Nr9r/rZr^r')rQrP)r1rWr*r*r,Ú_isnanÍszDecimal._isnancCs|jdkr|jrdSdSdS)Nr[éÿÿÿÿr/r')rPr;©r1r*r*r,Ú _isinfinityÜs  zDecimal._isinfinitycCs|| ¡}|dkrd}n| ¡}|s&|rx|dkr4tƒ}|dkrJ| td|¡S|dkr`| td|¡S|rn| |¡S| |¡SdS)NFr^ÚsNaNr')r‰rrir r=)r1Úotherr2Ú self_is_nanÚ other_is_nanr*r*r,Ú _check_nansés& ÿÿ  zDecimal._check_nanscCsv|dkrtƒ}|js|jrr| ¡r0| td|¡S| ¡rF| td|¡S| ¡r\| td|¡S| ¡rr| td|¡SdS)Nzcomparison involving sNaNzcomparison involving NaNr')rrQÚis_snanrir Úis_qnan©r1rŽr2r*r*r,Ú_compare_check_nans s0  þþþþzDecimal._compare_check_nanscCs|jp|jdkS©NrR©rQr<r‹r*r*r,Ú__bool__*szDecimal.__bool__cCs|js |jr8| ¡}| ¡}||kr(dS||kr4dSdS|sP|sDdSd|j S|s^d|jS|j|jkrndS|j|jkr~dS| ¡}| ¡}||krî|jd|j|j}|jd|j|j}||krÎdS||krâd|j Sd|jSn ||k�rd|jSd|j SdS)Nr'rŠr/rR)rQrŒr;Úadjustedr<rP)r1rŽZself_infZ other_infÚ self_adjustedZother_adjustedÚ self_paddedZ other_paddedr*r*r,Ú_cmp1s>         z Decimal._cmpcCs<t||dd�\}}|tkr|S| ||¡r.dS| |¡dkS)NT)Ú equality_opFr')Ú_convert_for_comparisonÚNotImplementedr‘rœr”r*r*r,Ú__eq__qs  zDecimal.__eq__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkS©NFr'©ržrŸr•rœ©r1rŽr2r?r*r*r,Ú__lt__ys zDecimal.__lt__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkSr¡r¢r£r*r*r,Ú__le__‚s zDecimal.__le__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkSr¡r¢r£r*r*r,Ú__gt__‹s zDecimal.__gt__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkSr¡r¢r£r*r*r,Ú__ge__”s zDecimal.__ge__cCs>t|dd�}|js|r0|jr0| ||¡}|r0|St| |¡ƒS©NT©Úraiseit)Ú_convert_otherrQr‘rrœr£r*r*r,Úcompare�s   zDecimal.comparecCs’|jr4| ¡rtdƒ‚n| ¡r$tS|jr0t StS|jdkrNtd|jt ƒ}ntt |j t ƒ}t |j ƒ|t }|dkr||n| }|dkrŽdS|S)Nz"Cannot hash a signaling NaN value.r'é rŠéþÿÿÿ) rQr’rwÚis_nanÚ _PyHASH_NANr;Ú _PyHASH_INFrPÚpowÚ_PyHASH_MODULUSÚ _PyHASH_10INVrVr<)r1Zexp_hashZhash_r?r*r*r,Ú__hash__¯s  zDecimal.__hash__cCst|jttt|jƒƒ|jƒSr))rr;rprtrVr<rPr‹r*r*r,Úas_tupleÉszDecimal.as_tuplecCsÔ|jr | ¡rtdƒ‚ntdƒ‚|s(dSt|jƒ}|jdkrR|d|jd}}nn|j }|dkr€|ddkr€|d}|d8}qZ|j }t|| @ ¡d|ƒ}|r´||L}||8}d||>}|j rÌ| }||fS)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratior]r'r­r/r) rQr¯rqÚ OverflowErrorrVr<rPÚminrƒr;)r1r9r‡Zd5Zd2Zshift2r*r*r,r‚Ðs,     zDecimal.as_integer_ratiocCs dt|ƒS)Nz Decimal('%s'))rer‹r*r*r,Ú__repr__szDecimal.__repr__Fc Csbddg|j}|jrL|jdkr&|dS|jdkr>|d|jS|d|jS|jt|jƒ}|jdkrt|d krt|}n6|s~d }n,|jd krš|d d d }n|d d d }|dkrÌd }d d | |j}nL|t|jƒkrø|jd |t|jƒ}d}n |jd|…}d |j|d…}||k�r(d}n*|dk�r8tƒ}ddg|jd||}||||S)NrTrUr[ZInfinityr9ÚNaNr�r'éúÿÿÿr/rRr\Ú.ÚeÚEz%+d)r;rQrPr<rkrÚcapitals) r1Úengr2rCÚ leftdigitsÚdotplacer{r|rWr*r*r,Ú__str__s:     zDecimal.__str__cCs|jd|d�S)NT)rÀr2)rér1r2r*r*r,Ú to_eng_string;szDecimal.to_eng_stringcCsR|jr|j|d�}|r|S|dkr(tƒ}|s@|jtkr@| ¡}n| ¡}| |¡S©NrL)rQr‘rrErÚcopy_absÚ copy_negateÚ_fix©r1r2r?r*r*r,Ú__neg__Ds  zDecimal.__neg__cCsR|jr|j|d�}|r|S|dkr(tƒ}|s@|jtkr@| ¡}nt|ƒ}| |¡SrÆ)rQr‘rrErrÇrrÉrÊr*r*r,Ú__pos__Zs  zDecimal.__pos__TcCsJ|s | ¡S|jr&|j|d�}|r&|S|jr:|j|d�}n |j|d�}|SrÆ)rÇrQr‘r;rËrÌ)r1Úroundr2r?r*r*r,Ú__abs__os  zDecimal.__abs__c Csht|ƒ}|tkr|S|dkr"tƒ}|js.|jr‚| ||¡}|rB|S| ¡rr|j|jkrj| ¡rj| td¡St |ƒS| ¡r‚t |ƒSt |j |j ƒ}d}|j t kr®|j|jkr®d}|sæ|sæt |j|jƒ}|rÌd}t|d|ƒ}| |¡}|S|�st||j |jdƒ}| ||j ¡}| |¡}|S|�sVt||j |jdƒ}| ||j ¡}| |¡}|St|ƒ}t|ƒ}t|||jƒ\}}tƒ} |j|jk�rú|j|jk�r´t|d|ƒ}| |¡}|S|j|jk�rÌ||}}|jdk�ròd| _|j|j|_|_nd| _n&|jdk�rd| _d\|_|_nd| _|jdk�r<|j|j| _n|j|j| _|j| _t | ƒ}| |¡}|S)Nz -INF + INFr'r/rR)r'r')r«rŸrrQr‘rŒr;rir rr¸rPrErr:rÉÚmaxrFÚ_rescalernÚ _normalizerCrVrW) r1rŽr2r?rWZ negativezerorCÚop1Úop2rˆr*r*r,Ú__add__…s|              zDecimal.__add__cCsHt|ƒ}|tkr|S|js |jr6|j||d�}|r6|S|j| ¡|d�SrÆ)r«rŸrQr‘rÔrÈr£r*r*r,Ú__sub__Ýs zDecimal.__sub__cCs"t|ƒ}|tkr|S|j||d�SrÆ)r«rŸrÕr”r*r*r,Ú__rsub__ëszDecimal.__rsub__cCs@t|ƒ}|tkr|S|dkr"tƒ}|j|jA}|js:|jrŽ| ||¡}|rN|S| ¡rn|sf| td¡St |S| ¡rŽ|s†| td¡St |S|j |j }|r¢|s¼t |d|ƒ}|  |¡}|S|j dkrât ||j |ƒ}|  |¡}|S|j dk�r t ||j |ƒ}|  |¡}|St|ƒ}t|ƒ}t |t|j|jƒ|ƒ}|  |¡}|S)Nz (+-)INF * 0z 0 * (+-)INFrRÚ1)r«rŸrr;rQr‘rŒrir rArPr:rÉr<rnrerV)r1rŽr2Z resultsignr?Z resultexprÒrÓr*r*r,Ú__mul__ósH             zDecimal.__mul__c CsÆt|ƒ}|tkrtS|dkr"tƒ}|j|jA}|js:|jrž| ||¡}|rN|S| ¡rj| ¡rj| td¡S| ¡rzt |S| ¡rž| t d¡t |d|  ¡ƒS|sÀ|s²| t d¡S| td|¡S|sÖ|j|j}d}nÖt|jƒt|jƒ|jd}|j|j|}t|ƒ}t|ƒ} |dk�r:t|jd|| jƒ\}} nt|j| jd| ƒ\}} | �rt|d dk�r¬|d7}n8|j|j} || k�r¬|ddk�r¬|d}|d7}�q€t |t|ƒ|ƒ}| |¡S) Nz(+-)INF/(+-)INFzDivision by infinityrRz0 / 0zx / 0r'r/r­r)r«rŸrr;rQr‘rŒrir rArr:ÚEtinyrr rPrkr<rFrnÚdivmodrVrerÉ) r1rŽr2rCr?rWr†ÚshiftrÒrÓÚ remainderÚ ideal_expr*r*r,Ú __truediv__,sP           zDecimal.__truediv__c Cs|j|jA}| ¡r|j}nt|j|jƒ}| ¡| ¡}|rN| ¡sN|dkrht|ddƒ| ||j¡fS||jk�r t |ƒ}t |ƒ}|j |j kr¬|j d|j |j 9_ n|j d|j |j 9_ t |j |j ƒ\}} |d|jk�r t|t |ƒdƒt|jt | ƒ|ƒfS| td¡} | | fS)Nr®rRr'r­z%quotient too large in //, % or divmod)r;rŒrPr¸r™r:rÐrErFrnrWrVrÚrerir) r1rŽr2rCrÝÚexpdiffrÒrÓÚqÚrr?r*r*r,Ú_dividegs0   ÿ  ÿÿzDecimal._dividecCs"t|ƒ}|tkr|S|j||d�SrÆ)r«rŸrÞr”r*r*r,Ú __rtruediv__ˆszDecimal.__rtruediv__cCsÖt|ƒ}|tkr|S|dkr"tƒ}| ||¡}|r:||fS|j|jA}| ¡r~| ¡rj| td¡}||fSt|| td¡fS|s´|sš| t d¡}||fS| t d|¡| td¡fS|  ||¡\}}|  |¡}||fS)Nzdivmod(INF, INF)úINF % xz divmod(0, 0)úx // 0úx % 0) r«rŸrr‘r;rŒrir rArr rârÉ)r1rŽr2r?rCZquotientrÜr*r*r,Ú __divmod__�s4    ÿ   ÿ zDecimal.__divmod__cCs"t|ƒ}|tkr|S|j||d�SrÆ)r«rŸrçr”r*r*r,Ú __rdivmod__³szDecimal.__rdivmod__cCsˆt|ƒ}|tkr|S|dkr"tƒ}| ||¡}|r6|S| ¡rJ| td¡S|sj|r^| td¡S| td¡S| ||¡d}|  |¡}|S)Nräræz0 % 0r/) r«rŸrr‘rŒrir rrârÉ)r1rŽr2r?rÜr*r*r,Ú__mod__ºs"     zDecimal.__mod__cCs"t|ƒ}|tkr|S|j||d�SrÆ)r«rŸrér”r*r*r,Ú__rmod__ÕszDecimal.__rmod__c CsÐ|dkrtƒ}t|dd�}| ||¡}|r.|S| ¡rB| td¡S|sb|rV| td¡S| td¡S| ¡r|t|ƒ}| |¡St |j |j ƒ}|s¦t |j d|ƒ}| |¡S|  ¡|  ¡}||jdkrÎ| t¡S|dkrî| ||j¡}| |¡St|ƒ}t|ƒ}|j|jk�r(|jd |j|j9_n|jd |j|j9_t|j|jƒ\}} d | |d@|jk�r~| |j8} |d7}|d |jk�r˜| t¡S|j } | d k�r¶d| } | } t | t| ƒ|ƒ}| |¡S) NTr©zremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)rRr/r®r­r^r')rr«r‘rŒrir rrrÉr¸rPr:r;r™rFrrÐrErnrWrVrÚre) r1rŽr2r?Úideal_exponentrßrÒrÓràrárCr*r*r,Úremainder_nearÜs`  ÿÿÿ       zDecimal.remainder_nearcCsœt|ƒ}|tkr|S|dkr"tƒ}| ||¡}|r6|S| ¡rb| ¡rR| td¡St|j|jAS|sŒ|r€| t d|j|jA¡S| t d¡S|  ||¡dS)Nz INF // INFråz0 // 0r') r«rŸrr‘rŒrir rAr;r rrâr£r*r*r,Ú __floordiv__'s&   ÿ zDecimal.__floordiv__cCs"t|ƒ}|tkr|S|j||d�SrÆ)r«rŸrír”r*r*r,Ú __rfloordiv__CszDecimal.__rfloordiv__cCs8| ¡r(| ¡rtdƒ‚|jr"dnd}nt|ƒ}t|ƒS)Nz%Cannot convert signaling NaN to floatz-nanÚnan)r‰r’rqr;reru©r1Úsr*r*r,Ú __float__Js zDecimal.__float__cCst|jr(| ¡rtdƒ‚n| ¡r(tdƒ‚d|j}|jdkrT|t|jƒd|jS|t|jd|j…pjdƒSdS)NzCannot convert NaN to integerz"Cannot convert infinity to integerrŠr'r­rR) rQr‰rqrŒr·r;rPrVr<rðr*r*r,Ú__int__Ts   zDecimal.__int__cCs|Sr)r*r‹r*r*r,Úrealcsz Decimal.realcCstdƒS©Nr'©rr‹r*r*r,Úimaggsz Decimal.imagcCs|Sr)r*r‹r*r*r,Ú conjugatekszDecimal.conjugatecCs tt|ƒƒSr))Úcomplexrur‹r*r*r,Ú __complex__nszDecimal.__complex__cCsR|j}|j|j}t|ƒ|krJ|t|ƒ|d… d¡}t|j||jdƒSt|ƒS)NrRT) r<rFÚclamprkrlr:r;rPr)r1r2ZpayloadZmax_payload_lenr*r*r,r=qs   zDecimal._fix_nancCsX|jr | ¡r| |¡St|ƒS| ¡}| ¡}|s€|j|g|j}tt |j |ƒ|ƒ}||j krx|  t ¡t |jd|ƒSt|ƒSt|jƒ|j |j}||krÆ|  td|j¡}|  t¡|  t¡|S||k}|rÖ|}|j |k�rüt|jƒ|j |} | dk�rt |jd|dƒ}d} |j|j} | || ƒ} |jd| …�p>d} | dk�r~tt| ƒdƒ} t| ƒ|jk�r~| dd…} |d7}||k�rš|  td|j¡}nt |j| |ƒ}| �r¾|�r¾|  t¡|�rÎ|  t¡| �rÞ|  t¡|  t¡|�sø|  t ¡|S|�r |  t¡|jdk�rP|j |k�rP|  t ¡|jd|j |} t |j| |ƒSt|ƒS)NrRú above Emaxr'r×r/rŠ)rQr‰r=rrÙÚEtoprGrûr¸rÏrPrirr:r;rkr<rFrr r Ú_pick_rounding_functionrErerVrr )r1r2rÙrýÚexp_maxZnew_expZexp_minr?Zself_is_subnormalr}Zrounding_methodÚchangedr†r›r*r*r,rÉ}sn                     z Decimal._fixcCst|j|ƒrdSdSdS)Nr'rŠ)Ú _all_zerosr<©r1rFr*r*r,Ú _round_downãs zDecimal._round_downcCs | |¡ Sr))rrr*r*r,Ú _round_upêszDecimal._round_upcCs*|j|dkrdSt|j|ƒr"dSdSdS)NZ56789r/r'rŠ)r<rrr*r*r,Ú_round_half_upîs  zDecimal._round_half_upcCst|j|ƒrdS| |¡SdS)NrŠ©Ú _exact_halfr<rrr*r*r,Ú_round_half_down÷s zDecimal._round_half_downcCs8t|j|ƒr*|dks&|j|ddkr*dS| |¡SdS)Nr'r/Ú02468rŠrrr*r*r,Ú_round_half_evenþs ÿÿzDecimal._round_half_evencCs |jr| |¡S| |¡ SdSr)©r;rrr*r*r,Ú_round_ceilings zDecimal._round_ceilingcCs |js| |¡S| |¡ SdSr)r rr*r*r,Ú _round_floor s zDecimal._round_floorcCs0|r |j|ddkr | |¡S| |¡ SdS)Nr/Z05)r<rrr*r*r,Ú _round_05ups zDecimal._round_05up)rrrrrrrrcCsb|dk r2t|tƒstdƒ‚tdd| ƒ}| |¡S|jrR| ¡rJtdƒ‚ntdƒ‚t|  dt ¡ƒS)Nz+Second argument to round should be integralr'r×úcannot round a NaNúcannot round an infinity) rdrVrwr:ÚquantizerQr¯rqr·rÐr)r1r9rWr*r*r,Ú __round__&s/   zDecimal.__round__cCs0|jr | ¡rtdƒ‚ntdƒ‚t| dt¡ƒS©Nrrr')rQr¯rqr·rVrÐrr‹r*r*r,Ú __floor__ds  zDecimal.__floor__cCs0|jr | ¡rtdƒ‚ntdƒ‚t| dt¡ƒSr)rQr¯rqr·rVrÐrr‹r*r*r,Ú__ceil__ss  zDecimal.__ceil__cCst|dd�}t|dd�}|js$|jrÚ|dkr2tƒ}|jdkrJ| td|¡S|jdkrb| td|¡S|jdkrr|}nf|jdkr‚|}nV|jdkr®|sœ| td¡St|j|jA}n*|jdkrØ|sÈ| td¡St|j|jA}n0t|j|jAt t |j ƒt |j ƒƒ|j|jƒ}|  ||¡S) NTr©rZr�r9r[zINF * 0 in fmaz0 * INF in fma) r«rQrrPrir rAr;r:rerVr<rÔ)r1rŽZthirdr2Úproductr*r*r,Úfma‚s<        ÿ ÿ  þz Decimal.fmac CsÒt|ƒ}|tkr|St|ƒ}|tkr(|S|dkr6tƒ}| ¡}| ¡}| ¡}|sZ|sZ|rÂ|dkrp| td|¡S|dkr†| td|¡S|dkrœ| td|¡S|rª| |¡S|r¸| |¡S| |¡S| ¡rÚ| ¡rÚ| ¡sæ| td¡S|dkrú| td¡S|�s | td¡S| ¡|j k�r(| td¡S|�s@|�s@| td¡S|  ¡�rPd}n|j }t t |ƒƒ}t| ¡ƒ}t| ¡ƒ} |j |td |j|ƒ|}t| jƒD]} t|d |ƒ}�q t|| j |ƒ}t|t|ƒdƒS) 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­)r«rŸrr‰rir r=Ú _isintegerr™rFÚ_isevenr;rmrVrnÚto_integral_valuer²rWÚranger:re) r1rŽÚmodulor2r�r�Z modulo_is_nanrCÚbaseÚexponentÚir*r*r,Ú _power_modulo®s€ ÿÿÿ   ÿþÿÿÿÿ ÿ    zDecimal._power_modulocCsþt|ƒ}|j|j}}|ddkr4|d}|d7}qt|ƒ}|j|j}}|ddkrh|d}|d7}qJ|dk�r||9}|ddkr˜|d}|d7}qz|dkr¤dS|d|} |jdkrÀ| } | ¡rô|jdkrô|jt|ƒ} t| | |dƒ} nd} tddd| | | ƒS|jdk�r²|d} | dk�r¼|| @|k�rBdSt |ƒd} |dd}|t t |ƒƒk�rpdSt | ||ƒ} t |||ƒ}| dk�s |dk�r¤dS| |k�r²dSd | }nÊ| d k�r‚t |ƒd d} t d | |ƒ\}}|�ròdS|d dk�r|d }| d8} �qò|dd }|t t |ƒƒk�r6dSt | ||ƒ} t |||ƒ}| dk�sf|dk�rjdS| |k�rxdSd | }ndS|d|k�r˜dS| |}tdt |ƒ|ƒS|dk�rÐ|d|d}}nÜ|dk�rút t t||ƒƒƒ| k�rúdSt |ƒ}|dk�r,t t t|ƒ|ƒƒ| k�r,dS|d| }}|d |d k�r\dk�rtnn|d }|d }�q<|d |d k�r”dk�r¬nn|d }|d }�qt|dk�rX|dk�rÎ||k�rÎdSt ||ƒ\}}|dk�rêdSdt |ƒ | >}t |||dƒ\}}||k�r$�q|S|sPt|jddƒS|j| ¡g|j }t |j ƒ}|j }|j |ddkr ||kr |d7}|d8}qtt|j|j d|…|ƒS)NrLrRr'r/) rrQr‘rÉrŒr:r;rGrýrûrkr<rP)r1r2r?ÚduprÿÚendrWr*r*r,Ú normalizeÏ s$    zDecimal.normalizecCs¦t|dd�}|dkrtƒ}|dkr(|j}|js4|jr|| ||¡}|rH|S| ¡sX| ¡r|| ¡rp| ¡rpt|ƒS| td¡S|  ¡|j kr˜|j ks¦n| td¡S|sÄt |j d|j ƒ}| |¡S| ¡}||j krâ| td¡S||j d|jk�r| td¡S| |j |¡}| ¡|j k�r.| td¡St|jƒ|jk�rL| td¡S|�rl| ¡|jk�rl| t¡|j |j k�r˜||k�rŽ| t¡| t¡| |¡}|S) NTr©zquantize with one INFz)target exponent out of bounds in quantizerRz9exponent of quantize result too large for current contextr/z7quantize result has too many digits for current context)r«rrErQr‘rŒrrir rÙrPrGr:r;rÉr™rFrÐrkr<ÚEminr r r )r1rWrEr2r?ršr*r*r,rè s`   ÿÿ  ÿÿÿÿ     zDecimal.quantizecCsDt|dd�}|js|jr8| ¡r(| ¡p6| ¡o6| ¡S|j|jkSr¨)r«rQr¯Ú is_infiniterPr”r*r*r,Ú same_quantum% s  ÿzDecimal.same_quantumcCsÆ|jrt|ƒS|s t|jd|ƒS|j|krHt|j|jd|j||ƒSt|jƒ|j|}|dkrzt|jd|dƒ}d}|j|}|||ƒ}|jd|…pžd}|dkr¸tt |ƒdƒ}t|j||ƒS)NrRr'r×r/) rQrr:r;rPr<rkrþrerV)r1rWrEr}Z this_functionrr†r*r*r,rÐ4 s&  ÿ  zDecimal._rescalecCsf|dkrtdƒ‚|js|s"t|ƒS| | ¡d||¡}| ¡| ¡krb| | ¡d||¡}|S)Nr'z'argument should be at least 1 in _roundr/)rqrQrrÐr™)r1ÚplacesrEr?r*r*r,Ú_roundV s  zDecimal._roundcCsŽ|jr"|j|d�}|r|St|ƒS|jdkr4t|ƒS|sFt|jddƒS|dkrTtƒ}|dkrb|j}| d|¡}||kr€|  t ¡|  t ¡|S)NrLr'rR) rQr‘rrPr:r;rrErÐrir r ©r1rEr2r?r*r*r,Úto_integral_exactm s$      zDecimal.to_integral_exactcCs`|dkrtƒ}|dkr|j}|jr>|j|d�}|r6|St|ƒS|jdkrPt|ƒS| d|¡SdS)NrLr')rrErQr‘rrPrÐrGr*r*r,rŠ s  zDecimal.to_integral_valuecCsÞ|dkrtƒ}|jrB|j|d�}|r(|S| ¡rB|jdkrBt|ƒS|sdt|jd|jdƒ}| |¡S|jdkrz|  t d¡S|j d}t |ƒ}|j d?}|j d@r¾|jd}t|jƒd?d}n|j}t|jƒdd?}||}|dkrø|d|9}d } nt|d| ƒ\}} | } ||8}d|} || } | | k�r:�qJn | | d?} �q"| �oZ| | |k} | �r’|dk�rz| d|} n| d| 9} ||7}n| d dk�r¨| d7} tdt| ƒ|ƒ}| ¡}| t¡} | |¡}| |_|S) NrLr'rRr^r/zsqrt(-x), x > 0r­r'Tr)rrQr‘rŒr;rr:rPrÉrir rFrnrWrVrkr<rÚreÚ _shallow_copyÚ _set_roundingrrE)r1r2r?rFÚopr½ÚcÚlrÛr;rÜr9ràrEr*r*r,Úsqrt� s^              z Decimal.sqrtcCs¶t|dd�}|dkrtƒ}|js&|jr~| ¡}| ¡}|s>|r~|dkrX|dkrX| |¡S|dkrr|dkrr| |¡S| ||¡S| |¡}|dkrš| |¡}|dkr¨|}n|}| |¡S©NTr©r/r'rŠ©r«rrQr‰rÉr‘rœÚ compare_total©r1rŽr2ZsnZonrLr?r*r*r,rÏ s&       z Decimal.maxcCs¶t|dd�}|dkrtƒ}|js&|jr~| ¡}| ¡}|s>|r~|dkrX|dkrX| |¡S|dkrr|dkrr| |¡S| ||¡S| |¡}|dkrš| |¡}|dkr¨|}n|}| |¡SrOrPrRr*r*r,r¸* s&       z Decimal.mincCs8|jr dS|jdkrdS|j|jd…}|dt|ƒkS)NFr'TrR)rQrPr<rk)r1Úrestr*r*r,rL s  zDecimal._isintegercCs&|r|jdkrdS|jd|jdkS)Nr'TrŠr )rPr<r‹r*r*r,rU szDecimal._isevencCs2z|jt|jƒdWStk r,YdSXdS)Nr/r')rPrkr<rwr‹r*r*r,r™[ szDecimal.adjustedcCs|Sr)r*r‹r*r*r,Ú canonicalc szDecimal.canonicalcCs.t|dd�}| ||¡}|r |S|j||d�S©NTr©rL)r«r•r¬r£r*r*r,Úcompare_signalk s   zDecimal.compare_signalcCs`t|dd�}|jr|jstS|js,|jr,tS|j}| ¡}| ¡}|sL|�r||kr t|jƒ|jf}t|jƒ|jf}||krˆ|r„tStS||krœ|r˜tStStS|rÖ|dkr°tS|dkr¼tS|dkrÈtS|dkrÔtSn2|dkrâtS|dkrîtS|dkrútS|dk�rtS||k�rtS||k�r$tS|j|jk�r@|�rB sz'Decimal.logical_and..r'rR© rr«rvrir ryr<rsÚzipr:rl©r1rŽr2rwrxrˆr*r*r,Ú logical_and4 s  zDecimal.logical_andcCs(|dkrtƒ}| tdd|jdƒ|¡S)Nr'r×)rÚ logical_xorr:rFrÄr*r*r,Úlogical_invertE s ÿzDecimal.logical_invertcCsz|dkrtƒ}t|dd�}| ¡r*| ¡s4| t¡S| ||j|j¡\}}d dd„t||ƒDƒ¡}t d|  d¡ptddƒS)NTr©rTcSs$g|]\}}tt|ƒt|ƒBƒ‘qSr*rzr{r*r*r,r~Z sz&Decimal.logical_or..r'rRrr�r*r*r,Ú logical_orL s  zDecimal.logical_orcCsz|dkrtƒ}t|dd�}| ¡r*| ¡s4| t¡S| ||j|j¡\}}d dd„t||ƒDƒ¡}t d|  d¡ptddƒS)NTr©rTcSs$g|]\}}tt|ƒt|ƒAƒ‘qSr*rzr{r*r*r,r~k sz'Decimal.logical_xor..r'rRrr�r*r*r,rƒ] s  zDecimal.logical_xorcCs¾t|dd�}|dkrtƒ}|js&|jr~| ¡}| ¡}|s>|r~|dkrX|dkrX| |¡S|dkrr|dkrr| |¡S| ||¡S| ¡ | ¡¡}|dkr¢| |¡}|dkr°|}n|}| |¡SrO© r«rrQr‰rÉr‘rÇrœrQrRr*r*r,Úmax_magn s&      zDecimal.max_magcCs¾t|dd�}|dkrtƒ}|js&|jr~| ¡}| ¡}|s>|r~|dkrX|dkrX| |¡S|dkrr|dkrr| |¡S| ||¡S| ¡ | ¡¡}|dkr¢| |¡}|dkr°|}n|}| |¡SrOr†rRr*r*r,Úmin_magŒ s&      zDecimal.min_magcCs |dkrtƒ}|j|d�}|r"|S| ¡dkr2tS| ¡dkrTtdd|j| ¡ƒS| ¡}| t ¡|  ¡|  |¡}||kr„|S|  tdd|  ¡dƒ|¡S)NrLrŠr/r'rDr×)rr‘rŒrlr:rFrýrMrJrÚ_ignore_all_flagsrÉrÕrÙ©r1r2r?Znew_selfr*r*r,Ú next_minusª s$     ÿzDecimal.next_minuscCs |dkrtƒ}|j|d�}|r"|S| ¡dkr2tS| ¡dkrTtdd|j| ¡ƒS| ¡}| t ¡|  ¡|  |¡}||kr„|S|  tdd|  ¡dƒ|¡S)NrLr/rŠrDr'r×)rr‘rŒrmr:rFrýrMrJrr‰rÉrÔrÙrŠr*r*r,Ú next_plusÁ s$     ÿzDecimal.next_pluscCsÞt|dd�}|dkrtƒ}| ||¡}|r.|S| |¡}|dkrJ| |¡S|dkr^| |¡}n | |¡}| ¡r–| t d|j ¡| t ¡| t ¡nD|  ¡|jkrÚ| t¡| t¡| t ¡| t ¡|sÚ| t¡|S)NTr©r'rŠz Infinite result from next_toward)r«rr‘rœr[rŒr‹rŒrirr;r r r™rBrr r)r1rŽr2r?Z comparisonr*r*r,Ú next_towardØ s6      þ       zDecimal.next_towardcCsˆ| ¡r dS| ¡rdS| ¡}|dkr,dS|dkr8dS| ¡rN|jrJdSdS|dkr\tƒ}|j|d �rv|jrrd Sd S|jr€d Sd SdS)Nr�rºr/z +InfinityrŠz -Infinityz-Zeroz+ZerorLz -Subnormalz +Subnormalz-Normalz+Normal)r’r“rŒrfr;rre)r1r2Úinfr*r*r,Ú number_classs, zDecimal.number_classcCstdƒS©Nr­rör‹r*r*r,Úradix0sz Decimal.radixcCsö|dkrtƒ}t|dd�}| ||¡}|r.|S|jdkrB| t¡S|j t|ƒkr`|jksln| t¡S| ¡r|t |ƒSt|ƒ}|j }|jt |ƒ}|dkr®d||}n|dkrÄ|| d…}||d…|d|…}t |j | d¡pîd|jƒS©NTr©r'rR©rr«r‘rPrir rFrVrŒrr<rkr:r;rl)r1rŽr2r?ÚtorotÚrotdigÚtopadZrotatedr*r*r,Úrotate4s0       ÿzDecimal.rotatecCs¾|dkrtƒ}t|dd�}| ||¡}|r.|S|jdkrB| t¡Sd|j|j}d|j|j}|t|ƒkrz|ks†n| t¡S|  ¡r–t |ƒSt |j |j |jt|ƒƒ}| |¡}|S)NTr©r'r®r^)rr«r‘rPrir rGrFrVrŒrr:r;r<rÉ)r1rŽr2r?ZliminfZlimsupr‡r*r*r,ÚscalebUs"      zDecimal.scalebcCs|dkrtƒ}t|dd�}| ||¡}|r.|S|jdkrB| t¡S|j t|ƒkr`|jksln| t¡S| ¡r|t |ƒSt|ƒ}|j }|jt |ƒ}|dkr®d||}n|dkrÄ|| d…}|dkrÚ|d|…}n|d|}||j d…}t |j | d¡�p d|jƒSr’r“)r1rŽr2r?r”r•r–Zshiftedr*r*r,rÛns6       ÿz Decimal.shiftcCs|jt|ƒffSr))Ú __class__rer‹r*r*r,Ú __reduce__•szDecimal.__reduce__cCst|ƒtkr|S| t|ƒ¡Sr)©Útyperr™rer‹r*r*r,Ú__copy__˜s zDecimal.__copy__cCst|ƒtkr|S| t|ƒ¡Sr)r›)r1Zmemor*r*r,Ú __deepcopy__�s zDecimal.__deepcopy__cCsJ|dkrtƒ}t||d�}|jrXt|j|ƒ}t| ¡ƒ}|ddkrL|d7}t|||ƒS|ddkrvddg|j|d<|ddkr˜t |j|j |j dƒ}|j }|d}|dk �r|ddkrÎ|  |d |¡}nF|dd krê| | |¡}n*|dd k�rt|j ƒ|k�r|  ||¡}|�s@|j d k�r@|dd k�r@| d |¡}|j t|j ƒ} |ddk�r~|�sx|dk �rxd |} nd } nB|dd k�r’| } n.|dd k�rÀ|j d k�r¼| d k�r¼| } nd } | d k�ràd} d| |j } nP| t|j ƒk�r|j d| t|j ƒ} d} n"|j d| …�p d} |j | d…} | | } t|j| | | |ƒS)N)Ú _localeconvrœú%ÚgÚGr^Ú precisionÚeEr/zfF%ZgGr'r»rRrT)rÚ_parse_format_specifierrQÚ _format_signr;rerÇÚ _format_alignr¿r:r<rPrErFrÐrkÚ_format_number)r1Z specifierr2rŸÚspecrCÚbodyrEr£rÁrÂr{r|rWr*r*r,Ú __format__¤sZ               zDecimal.__format__)rRN)NN)N)N)N)N)N)N)FN)N)N)N)TN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)NN)N)N)NN)N)NN)NN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)NN)�r5r6r7Ú __slots__rcÚ classmethodrvr‰rŒr‘r•r˜rœr r¤r¥r¦r§r¬rµr¶r‚r¹rÃrÅrËrÌrÎrÔÚ__radd__rÕrÖrØÚ__rmul__rÞrârãrçrèrérêrìrírîròróÚ __trunc__Úpropertyrôr÷rørúr=rÉrrrrr r r rÚdictrþrrrrr r4r=r>rArrDrÐrFrHrÚ to_integralrNrÏr¸rrr™rTrVrQrZrÇrÈr[rWr^r_rCr¯rbr“rdr’rerfrkrpr6rsrtrvryr‚r„r…rƒr‡rˆr‹rŒr�r�r‘r—r˜rÛršr�ržr«r*r*r*r,rs  , !@  2 4    V   7 ;!  $    K       f ø > , Un Y   = "   c * "  I   K   2 3          . * !  'FcCs&t t¡}||_||_||_||_|Sr))rbrcrr;r<rPrQ)rCZ coefficientrZspecialr1r*r*r,r:ös  r:c@s$eZdZdd„Zdd„Zdd„ZdS)rOcCs| ¡|_dSr))rMÚ new_context)r1r´r*r*r,Ú__init__sz_ContextManager.__init__cCstƒ|_t|jƒ|jSr))rÚ saved_contextrr´r‹r*r*r,Ú __enter__s z_ContextManager.__enter__cCst|jƒdSr))rr¶)r1ÚtÚvÚtbr*r*r,Ú__exit__sz_ContextManager.__exit__N)r5r6r7rµr·r»r*r*r*r,rOsrOc @s¨eZdZd¥dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z e Zd¦dd„Zdd„Zdd„Zdd„ZdZd d!„Zd"d#„Zd$d%„Zd§d'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Z d;d<„Z!d=d>„Z"d?d@„Z#dAdB„Z$dCdD„Z%dEdF„Z&dGdH„Z'dIdJ„Z(dKdL„Z)dMdN„Z*dOdP„Z+dQdR„Z,dSdT„Z-dUdV„Z.dWdX„Z/dYdZ„Z0d[d\„Z1d]d^„Z2d_d`„Z3dadb„Z4dcdd„Z5dedf„Z6dgdh„Z7didj„Z8dkdl„Z9dmdn„Z:dodp„Z;dqdr„Zdwdx„Z?dydz„Z@d{d|„ZAd}d~„ZBdd€„ZCd�d‚„ZDdƒd„„ZEd…d†„ZFd¨d‡dˆ„ZGd‰dŠ„ZHd‹dŒ„ZId�dŽ„ZJd�d�„ZKd‘d’„ZLd“d”„ZMd•d–„ZNd—d˜„ZOd™dš„ZPd›dœ„ZQd�dž„ZRdŸd „ZSd¡d¢„ZTd£d¤„ZUeUZVdS)©rNc s>zt} Wntk rYnX|dk r*|n| j|_|dk r>|n| j|_|dk rR|n| j|_|dk rf|n| j|_|dk rz|n| j|_|dk rŽ|n| j|_| dkr¦g|_n| |_ˆdkrÂ| j   ¡|_ n.t ˆt ƒsêt ‡fdd„t ˆDƒƒ|_ nˆ|_ ˆdk�r t  t d¡|_n0t ˆt ƒ�s4t ‡fdd„t ˆDƒƒ|_nˆ|_dS)Nc3s|]}|t|ˆkƒfVqdSr)©rV©r|rñ©r9r*r,Ú Isz#Context.__init__..r'c3s|]}|t|ˆkƒfVqdSr)r¼r½©r:r*r,r¿Ps)rÚ NameErrorrFrErBrGr¿rûÚ_ignored_flagsr9rMrdr²r8Úfromkeysr:) r1rFrErBrGr¿rûr:r9rÂZdcr*)r:r9r,rµ0s.   zContext.__init__cCs”t|tƒstd|ƒ‚|dkr<||kr†td||||fƒ‚nJ|dkrb||kr†td||||fƒ‚n$||ksr||kr†td||||fƒ‚t |||¡S)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)rdrVrwrqrbÚ __setattr__)r1ÚnameryZvminZvmaxr*r*r,Ú_set_integer_checkTs  zContext._set_integer_checkcCs`t|tƒstd|ƒ‚|D]}|tkrtd|ƒ‚qtD]}||kr8td|ƒ‚q8t |||¡S)Nz%s must be a signal dictz%s is not a valid signal dict)rdr²rwr8ÚKeyErrorrbrÅ)r1rÆr‡Úkeyr*r*r,Ú_set_signal_dictbs  zContext._set_signal_dictcCsä|dkr| ||dd¡S|dkr0| ||dd¡S|dkrH| ||dd¡S|dkr`| ||dd¡S|d krx| ||dd¡S|d kr¢|tkr”td |ƒ‚t |||¡S|d ks²|d kr¾| ||¡S|dkrÔt |||¡Std|ƒ‚dS)NrFr/rŽrBrÄr'rGr¿rûrEz%s: invalid rounding moder:r9rÂz.'decimal.Context' object has no attribute '%s')rÇÚ_rounding_modesrwrbrÅrÊÚAttributeError)r1rÆryr*r*r,rÅms*  ÿzContext.__setattr__cCstd|ƒ‚dS)Nz%s cannot be deleted)rÌ)r1rÆr*r*r,Ú __delattr__†szContext.__delattr__c CsNdd„|j ¡Dƒ}dd„|j ¡Dƒ}|j|j|j|j|j|j|j ||ffS)NcSsg|]\}}|r|‘qSr*r*©r|Zsigr¹r*r*r,r~‹sz&Context.__reduce__..cSsg|]\}}|r|‘qSr*r*rÎr*r*r,r~Œs) r:Úitemsr9r™rFrErBrGr¿rû)r1r:r9r*r*r,ršŠsÿÿzContext.__reduce__cCs|g}| dt|ƒ¡dd„|j ¡Dƒ}| dd |¡d¡dd„|j ¡Dƒ}| dd |¡d¡d |¡d S) NzrContext(prec=%(prec)d, rounding=%(rounding)s, Emin=%(Emin)d, Emax=%(Emax)d, capitals=%(capitals)d, clamp=%(clamp)dcSsg|]\}}|r|j‘qSr*©r5)r|r„r¹r*r*r,r~˜sz$Context.__repr__..zflags=[z, ú]cSsg|]\}}|r|j‘qSr*rÐ)r|r¸r¹r*r*r,r~šsztraps=[ú))rrÚvarsr:rÏrsr9)r1rñÚnamesr*r*r,r¹‘sýzContext.__repr__cCs|jD]}d|j|<qdSrõrÀ©r1Úflagr*r*r,rNžs zContext.clear_flagscCs|jD]}d|j|<qdSrõr¾rÕr*r*r,Ú clear_traps£s zContext.clear_trapsc Cs.t|j|j|j|j|j|j|j|j|j ƒ }|Sr)) rrFrErBrGr¿rûr:r9r©r1Zncr*r*r,rI¨sþzContext._shallow_copyc Cs6t|j|j|j|j|j|j|j ¡|j  ¡|j ƒ }|Sr)) rrFrErBrGr¿rûr:rMr9rÂrØr*r*r,rM¯sýz Context.copycGsZt ||¡}||jkr(|ƒj|f|žŽSd|j|<|j|sN|ƒj|f|žŽS||ƒ‚dSrc)Ú_condition_maprIrÂr3r:r9)r1Z conditionZ explanationr+Úerrorr*r*r,ri¸s    zContext._raise_errorcCs |jtŽSr))Ú _ignore_flagsr8r‹r*r*r,r‰ÎszContext._ignore_all_flagscGs|jt|ƒ|_t|ƒSr))rÂro)r1r:r*r*r,rÛÒszContext._ignore_flagscGs8|rt|dttfƒr|d}|D]}|j |¡q"dSrõ)rdrprorÂÚremove)r1r:rÖr*r*r,Ú _regard_flagsÙszContext._regard_flagscCst|j|jdƒSrc)rVrBrFr‹r*r*r,rÙãsz Context.EtinycCst|j|jdƒSrc)rVrGrFr‹r*r*r,rýçsz Context.EtopcCs|j}||_|Sr))rE)r1rœrEr*r*r,rJëszContext._set_roundingrRcCsjt|tƒr*|| ¡ksd|kr*| td¡St||d�}| ¡r`t|jƒ|j |j kr`| td¡S|  |¡S)NrSzAtrailing or leading whitespace and underscores are not permitted.rLzdiagnostic info too long in NaN) rdrergrirrr‰rkr<rFrûrÉ)r1rjr‡r*r*r,Úcreate_decimalþsÿ ÿzContext.create_decimalcCst |¡}| |¡Sr))rrvrÉ)r1r„r‡r*r*r,Úcreate_decimal_from_floats z!Context.create_decimal_from_floatcCst|dd�}|j|d�SrU)r«rΩr1r3r*r*r,rm!s z Context.abscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS©NTr©rLúUnable to convert %s to Decimal)r«rÔrŸrw©r1r3r}rár*r*r,Úadd6s  z Context.addcCst| |¡ƒSr))rerÉràr*r*r,Ú_applyKszContext._applycCst|tƒstdƒ‚| ¡S)Nz,canonical requires a Decimal as an argument.)rdrrwrTràr*r*r,rTNs zContext.canonicalcCst|dd�}|j||d�SrU)r«r¬©r1r3r}r*r*r,r¬[s! zContext.comparecCst|dd�}|j||d�SrU)r«rVrær*r*r,rVs zContext.compare_signalcCst|dd�}| |¡Sr¨)r«rQrær*r*r,rQ¢s zContext.compare_totalcCst|dd�}| |¡Sr¨)r«rZrær*r*r,rZ¿s zContext.compare_total_magcCst|dd�}| ¡Sr¨)r«rÇràr*r*r,rÇÇs zContext.copy_abscCst|dd�}t|ƒSr¨)r«rràr*r*r,Ú copy_decimalÔs zContext.copy_decimalcCst|dd�}| ¡Sr¨)r«rÈràr*r*r,rÈás zContext.copy_negatecCst|dd�}| |¡Sr¨)r«r[rær*r*r,r[îs zContext.copy_signcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rÞrŸrwrãr*r*r,Údivides  zContext.dividecCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rírŸrwrãr*r*r,Ú divide_int+s  zContext.divide_intcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rçrŸrwrãr*r*r,rÚBs  zContext.divmodcCst|dd�}|j|d�SrU)r«rWràr*r*r,rWWs z Context.expcCst|dd�}|j|||d�SrU)r«r)r1r3r}rLr*r*r,ros z Context.fmacCst|tƒstdƒ‚| ¡S)Nz/is_canonical requires a Decimal as an argument.)rdrrwr^ràr*r*r,r^†s zContext.is_canonicalcCst|dd�}| ¡Sr¨)r«r_ràr*r*r,r_“s zContext.is_finitecCst|dd�}| ¡Sr¨)r«rCràr*r*r,rC©s zContext.is_infinitecCst|dd�}| ¡Sr¨)r«r¯ràr*r*r,r¯¸s zContext.is_nancCst|dd�}|j|d�SrU)r«rbràr*r*r,rbÈs zContext.is_normalcCst|dd�}| ¡Sr¨)r«r“ràr*r*r,r“ßs zContext.is_qnancCst|dd�}| ¡Sr¨)r«rdràr*r*r,rdîs zContext.is_signedcCst|dd�}| ¡Sr¨)r«r’ràr*r*r,r’ÿs zContext.is_snancCst|dd�}|j|d�SrU)r«reràr*r*r,res zContext.is_subnormalcCst|dd�}| ¡Sr¨)r«rfràr*r*r,rf%s zContext.is_zerocCst|dd�}|j|d�SrU)r«rpràr*r*r,rp6s z Context.lncCst|dd�}|j|d�SrU)r«rsràr*r*r,rsLs z Context.log10cCst|dd�}|j|d�SrU)r«rtràr*r*r,rths z Context.logbcCst|dd�}|j||d�SrU)r«r‚rær*r*r,r‚‚s zContext.logical_andcCst|dd�}|j|d�SrU)r«r„ràr*r*r,r„�s zContext.logical_invertcCst|dd�}|j||d�SrU)r«r…rær*r*r,r…°s zContext.logical_orcCst|dd�}|j||d�SrU)r«rƒrær*r*r,rƒËs zContext.logical_xorcCst|dd�}|j||d�SrU)r«rÏrær*r*r,rÏæs z Context.maxcCst|dd�}|j||d�SrU)r«r‡rær*r*r,r‡s zContext.max_magcCst|dd�}|j||d�SrU)r«r¸rær*r*r,r¸s z Context.mincCst|dd�}|j||d�SrU)r«rˆrær*r*r,rˆ-s zContext.min_magcCst|dd�}|j|d�SrU)r«rËràr*r*r,Úminus>s z Context.minuscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rØrŸrwrãr*r*r,ÚmultiplyOs  zContext.multiplycCst|dd�}|j|d�SrU)r«r‹ràr*r*r,r‹os zContext.next_minuscCst|dd�}|j|d�SrU)r«rŒràr*r*r,rŒƒs zContext.next_pluscCst|dd�}|j||d�SrU)r«r�rær*r*r,r�—s zContext.next_towardcCst|dd�}|j|d�SrU)r«rAràr*r*r,rAºs zContext.normalizecCst|dd�}|j|d�SrU)r«r�ràr*r*r,r�Òs/ zContext.number_classcCst|dd�}|j|d�SrU)r«rÌràr*r*r,Úpluss z Context.pluscCs:t|dd�}|j|||d�}|tkr2td|ƒ‚n|SdSrá)r«r=rŸrw)r1r3r}rrár*r*r,Úpowers I z Context.powercCst|dd�}|j||d�SrU)r«rrær*r*r,res7 zContext.quantizecCstdƒSr�rör‹r*r*r,r‘Ÿsz Context.radixcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rérŸrwrãr*r*r,rܧs  zContext.remaindercCst|dd�}|j||d�SrU)r«rìrær*r*r,rìÍs zContext.remainder_nearcCst|dd�}|j||d�SrU)r«r—rær*r*r,r—ïs zContext.rotatecCst|dd�}| |¡Sr¨)r«rDrær*r*r,rD s zContext.same_quantumcCst|dd�}|j||d�SrU)r«r˜rær*r*r,r˜$s zContext.scalebcCst|dd�}|j||d�SrU)r«rÛrær*r*r,rÛ7s z Context.shiftcCst|dd�}|j|d�SrU)r«rNràr*r*r,rNUs z Context.sqrtcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdSrá)r«rÕrŸrwrãr*r*r,Úsubtractus  zContext.subtractcCst|dd�}|j|d�SrU)r«rÅràr*r*r,rÅŒs zContext.to_eng_stringcCst|dd�}|j|d�SrU)r«rÃràr*r*r,Ú to_sci_string¨s zContext.to_sci_stringcCst|dd�}|j|d�SrU)r«rHràr*r*r,rH°s zContext.to_integral_exactcCst|dd�}|j|d�SrU)r«rràr*r*r,rÎs zContext.to_integral_value) NNNNNNNNN)N)rR)N)Wr5r6r7rµrÇrÊrÅrÍršr¹rNr×rIrMr�rir‰rÛrÝrµrÙrýrJrÞrßrmrärårTr¬rVrQrZrÇrçrÈr[rèrérÚrWrr^r_rCr¯rbr“rdr’rerfrprsrtr‚r„r…rƒrÏr‡r¸rˆrêrër‹rŒr�rAr�rìrírr‘rÜrìr—rDr˜rÛrNrîrÅrïrHrr³r*r*r*r,rs´þ $     $#   %  #2 P:&" c@s"eZdZdZddd„Zdd„ZdS)rn©rCrVrWNcCsf|dkrd|_d|_d|_nFt|tƒrD|j|_t|jƒ|_|j|_n|d|_|d|_|d|_dS)Nr'r/r^)rCrVrWrdrr;r<rP)r1ryr*r*r,rµôs     z_WorkRep.__init__cCsd|j|j|jfS)Nz (%r, %r, %r)rðr‹r*r*r,r¹sz_WorkRep.__repr__)N)r5r6r7r¬rµr¹r*r*r*r,rnîs rncCsš|j|jkr|}|}n|}|}tt|jƒƒ}tt|jƒƒ}|jtd||dƒ}||jd|krpd|_||_|jd|j|j9_|j|_||fS)NrŠr^r/r­)rWrkrerVr¸)rÒrÓrFZtmprŽZtmp_lenZ other_lenrWr*r*r,rÑs rÑcCsb|dkr dS|dkr |d|Stt|ƒƒ}t|ƒt| d¡ƒ}|| krPdS|d| SdS)Nr'r­rR)rermrkÚrstrip)r9r½Zstr_nZval_nr*r*r,r)(s   r)cCsB|dks|dkrtdƒ‚d}||kr>||| |d?}}q|S)Nr'z3Both arguments to _sqrt_nearest should be positive.r/)rq)r9r3r}r*r*r,Ú _sqrt_nearest=s ròcCs2d|>||?}}|d||d@|d@|kS)Nr/r^r*)r,rÛr}ràr*r*r,Ú_rshift_nearestLsrócCs&t||ƒ\}}|d||d@|kS)Nr^r/)rÚ)r3r}ràrár*r*r,Ú _div_nearestTsrôr#c Csæ||}d}||kr(t|ƒ||>|ksD||krxt|ƒ||?|krxt||d>|t||t||ƒ|ƒƒ}|d7}q tdtt|ƒƒd|ƒ }t||ƒ}t||ƒ}t|dddƒD]}t||ƒt|||ƒ}qºt|||ƒS)Nr'r/éöÿÿÿr\rŠ)rmrôròrórVrkrer) r,ÚMÚLr/ÚRÚTZyshiftÚwr…r*r*r,Ú_ilog\s"ÿÿ ÿ   rûc Cs¶|d7}tt|ƒƒ}||||dk}|dkr”d|}|||}|dkrZ|d|9}nt|d| ƒ}t||ƒ}t|ƒ}t|||ƒ}||} nd}t|d| ƒ} t| |dƒS©Nr^r/r'r­r')rkrerôrûÚ _log10_digits) rLr½r+rMr„rör…Úlog_dZlog_10Z log_tenpowerr*r*r,rrŒs     rrc CsÎ|d7}tt|ƒƒ}||||dk}|dkrr|||}|dkrR|d|9}nt|d| ƒ}t|d|ƒ}nd}|r¼ttt|ƒƒƒd}||dkr¶t|t||ƒd|ƒ}qÀd}nd}t||dƒSrü)rkrerôrûrmrý) rLr½r+rMr„r…rþr<Z f_log_tenr*r*r,rn®s"   rnc@seZdZdd„Zdd„ZdS)Ú _Log10MemoizecCs d|_dS)NZ/23025850929940456840179914546843642076011014886)r}r‹r*r*r,rµÞsz_Log10Memoize.__init__cCs–|dkrtdƒ‚|t|jƒkr€d}d||d}tttd||ƒdƒƒ}|| d…d|krbql|d7}q"| d¡dd…|_t|jd|d …ƒS) Nr'zp should be nonnegativer\r­r^r'rRrŠr/)rqrkr}rerôrûrñrV)r1r+r<rör}r*r*r,Ú getdigitsás  z_Log10Memoize.getdigitsN)r5r6r7rµrr*r*r*r,rÿÚsrÿc Cs¨t||>|ƒ}tdtt|ƒƒd|ƒ }t||ƒ}||>}t|dddƒD]}t|||||ƒ}qPt|dddƒD]"}||d>}t||||ƒ}q|||S)Nrõr\r/r'rŠr^)r(rVrkrerôr) r,rör÷rørùr/ZMshiftrr…r*r*r,Ú_iexpÿs  rc Cs–|d7}td|tt|ƒƒdƒ}||}||}|dkrH|d|}n|d| }t|t|ƒƒ\}}t|d|ƒ}tt|d|ƒdƒ||dfS)Nr^r'r/r­ièr\)rÏrkrerÚrýrôr) rLr½r+r<ràrÛZcshiftZquotr2r*r*r,r\$sr\c Csèttt|ƒƒƒ|}t||||dƒ}||}|dkrJ||d|}nt||d| ƒ}|dkr´tt|ƒƒ|dk|dkkržd|ddd|} } qàd|d| } } n,t||d |dƒ\} } t| dƒ} | d7} | | fS)Nr/r'r­)rkrermrnrôr\) r-r.r0r1r+r}ZlxcrÛZpcr†rWr*r*r,r7Hs r7r'éFé5é(érgér­r) r×Ú2Ú3Ú4Ú5Ú6Ú7Ú8rDcCs0|dkrtdƒ‚t|ƒ}dt|ƒ||dS)Nr'z0The argument to _log10_lb should be nonnegative.r')rqrerk)rLZ correctionZstr_cr*r*r,r*rsr*cCsLt|tƒr|St|tƒr t|ƒS|r8t|tƒr8t |¡S|rHtd|ƒ‚tS)Nrâ)rdrrVrurvrwrŸ)rŽrªZ allow_floatr*r*r,r«}s    r«cCs´t|tƒr||fSt|tjƒrR|jsDt|jtt|j ƒ|j ƒ|j ƒ}|t|j ƒfS|rrt|tj ƒrr|jdkrr|j}t|tƒr¬tƒ}|r’d|jt<n | td¡|t |¡fSttfS)Nr'r/ra)rdrÚ_numbersZRationalrQr:r;rerVr<Ú denominatorrPÚ numeratorZComplexr÷rôrurr:rrirvrŸ)r1rŽr�r2r*r*r,rž�s(  þ  ÿržr&i?BiÁ½ðÿ)rFrEr9r:rGrBr¿rûr_)rFrEr9r:a· # A numeric string consists of: # \s* (?P[-+])? # an optional sign, followed by either... ( (?=\d|\.\d) # ...a number (with at least one digit) (?P\d*) # having a (possibly empty) integer part (\.(?P\d*))? # followed by an optional fractional part (E(?P[-+]?\d+))? # followed by an optional exponent, or... | Inf(inity)? # ...an infinity, or... | (?Ps)? # ...an (optionally signaling) NaN # NaN (?P\d*) # with (possibly empty) diagnostic info. ) # \s* \Z z0*$z50*$zÉ\A (?: (?P.)? (?P[<>=^]) )? (?P[-+ ])? (?P\#)? (?P0)? (?P(?!0)\d+)? (?P,)? (?:\.(?P0|(?!0)\d+))? (?P[eEfFgGn%])? \Z cCs”t |¡}|dkrtd|ƒ‚| ¡}|d}|d}|ddk |d<|drv|dk rbtd|ƒ‚|dk rvtd|ƒ‚|p|d|d<|pˆd|d<|d dkr¢d |d <t|d p®d ƒ|d <|d dk rÒt|d ƒ|d <|d dkrþ|ddksö|ddkrþd|d <|ddk�rfd|d<|dk�r&t ¡}|ddk �r@td|ƒ‚|d|d<|d|d<|d|d<n*|ddk�r|d|d<ddg|d<d|d<|S)NzInvalid format specifier: ÚfillÚalignÚzeropadz7Fill character conflicts with '0' in format specifier: z2Alignment conflicts with '0' in format specifier: ú ú>rCrUÚ minimumwidthrRr£r'rœZgGnr/r9r¡Ú thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: ÚgroupingÚ decimal_pointrTr\r¼)Ú_parse_format_specifier_regexÚmatchrqÚ groupdictrVÚ_localeÚ localeconv)Ú format_specrŸrzZ format_dictrrr*r*r,r¥sT  ÿÿ      ÿ   r¥c Cs´|d}|d}||t|ƒt|ƒ}|d}|dkrF|||}nj|dkr\|||}nT|dkrr|||}n>|dkr¨t|ƒd}|d|…||||d…}ntd ƒ‚|S) NrrrúrXr5rWrAÚ hash_infoÚmodulusr³rŽr±rïr°r²r´r*r*r*r,ÚusÐà#          & ÿýÿ  .  ^  0",# %$+þ  *ù ýý ï   ó  P % )