grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ÂlèôjCTßã%@s¶dddddddddd d d d d ddddddddddddddddddd d!d"d#d$g%ZeZd%Zd&Zd'Zd(d)lZd(d)lZd(d)l Z yd(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`[Wy 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_CONTEXTVARZdecimalz1.70z2.4.2éN)Ú namedtuplezsign digits exponentcGs|S)N©)Úargsr(r(ú//opt/alt/python37/lib64/python3.7/_pydecimal.pyÚ¤ór+TlÿÿÿÿlÿÇNÎZolüÿÿÿÿÇNÎZoi@üTiÀ«æéc@seZdZdd„ZdS)rcGsdS)Nr()ÚselfÚcontextr)r(r(r*ÚhandleÓszDecimalException.handleN)Ú__name__Ú __module__Ú __qualname__r0r(r(r(r*rÀsc@s eZdZdS)rN)r1r2r3r(r(r(r*r×s c@seZdZdd„ZdS)r cGs,|r(t|dj|djddƒ}| |¡StS)Nr&ÚnT)Ú_dec_from_tripleÚ_signÚ_intÚ_fix_nanÚ_NaN)r.r/r)Úansr(r(r*r0ús zInvalidOperation.handleN)r1r2r3r0r(r(r(r*r ãsc@seZdZdd„ZdS)rcGstS)N)r9)r.r/r)r(r(r*r0szConversionSyntax.handleN)r1r2r3r0r(r(r(r*rsc@seZdZdd„ZdS)r cGst|S)N)Ú_SignedInfinity)r.r/Úsignr)r(r(r*r0szDivisionByZero.handleN)r1r2r3r0r(r(r(r*r s c@seZdZdd„ZdS)rcGstS)N)r9)r.r/r)r(r(r*r0"szDivisionImpossible.handleN)r1r2r3r0r(r(r(r*rsc@seZdZdd„ZdS)rcGstS)N)r9)r.r/r)r(r(r*r0-szDivisionUndefined.handleN)r1r2r3r0r(r(r(r*r%sc@s eZdZdS)r N)r1r2r3r(r(r(r*r 0s c@seZdZdd„ZdS)rcGstS)N)r9)r.r/r)r(r(r*r0GszInvalidContext.handleN)r1r2r3r0r(r(r(r*r<s c@s eZdZdS)r N)r1r2r3r(r(r(r*r Js c@s eZdZdS)r N)r1r2r3r(r(r(r*r Vs c@seZdZdd„ZdS)rcGsŽ|jttttfkrt|S|dkrR|jtkr4t|St|d|j|j |jdƒS|dkrŠ|jt krlt|St|d|j|j |jdƒSdS)Nr&Ú9r-) Úroundingrrrrr;rr5ÚprecÚEmaxr)r.r/r<r)r(r(r*r0ws     zOverflow.handleN)r1r2r3r0r(r(r(r*rasc@s eZdZdS)rN)r1r2r3r(r(r(r*r‡s c@s eZdZdS)rN)r1r2r3r(r(r(r*r–s Zdecimal_contextcCs2yt ¡Stk r,tƒ}t |¡|SXdS)N)Ú_current_context_varÚgetÚ LookupErrorrÚset)r/r(r(r*r¼s  cCs,|tttfkr| ¡}| ¡t |¡dS)N)rrrÚcopyÚ clear_flagsrArD)r/r(r(r*rÊscCs|dkrtƒ}t|ƒS)N)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;e         z Decimal._cmpcCs<t||dd�\}}|tkr|S| ||¡r.dS| |¡dkS)NT)Ú equality_opFr&)Ú_convert_for_comparisonÚNotImplementedr„rŒ)r.r�r/r(r(r*Ú__eq__qs  zDecimal.__eq__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkS)NFr&)rŽr�r‡rŒ)r.r�r/r:r(r(r*Ú__lt__ys zDecimal.__lt__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkS)NFr&)rŽr�r‡rŒ)r.r�r/r:r(r(r*Ú__le__‚s zDecimal.__le__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkS)NFr&)rŽr�r‡rŒ)r.r�r/r:r(r(r*Ú__gt__‹s zDecimal.__gt__cCs<t||ƒ\}}|tkr|S| ||¡}|r.dS| |¡dkS)NFr&)rŽr�r‡rŒ)r.r�r/r:r(r(r*Ú__ge__”s zDecimal.__ge__cCs>t|dd�}|js|r0|jr0| ||¡}|r0|St| |¡ƒS)NT)Úraiseit)Ú_convert_otherrIr„rrŒ)r.r�r/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~éþÿÿÿ) rIr…rlÚis_nanÚ _PyHASH_NANr6Ú _PyHASH_INFrHÚpowÚ_PyHASH_MODULUSÚ _PyHASH_10INVrNr7)r.Zexp_hashZhash_r:r(r(r*Ú__hash__¯s  zDecimal.__hash__cCst|jttt|jƒƒ|jƒS)N)rr6rerirNr7rH)r.r(r(r*Úas_tupleÉszDecimal.as_tuplecCsØ|jr | ¡rtdƒ‚ntdƒ‚|s(dSt|jƒ}|jdkrR|d|jd}}nr|j }x(|dkr‚|ddkr‚|d}|d8}q\W|j }t|| @ ¡d|ƒ}|r¸||L}||8}d||>}|j rÐ| }||fS)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratio)r&r-r&r˜r-rs) rIršrfÚ OverflowErrorrNr7rHÚminrwr6)r.r4r{Zd5Zd2Zshift2r(r(r*rvÐs,     zDecimal.as_integer_ratiocCs dt|ƒS)Nz Decimal('%s'))rZ)r.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)NrLrMrSZInfinityr4ÚNaNr€r&iúÿÿÿr-rJrTÚ.ÚeÚEz%+d)r6rIrHr7r`rÚcapitals) r.Úengr/r<Ú leftdigitsÚdotplacerprqrOr(r(r*Ú__str__s:     zDecimal.__str__cCs|jd|d�S)NT)rªr/)r­)r.r/r(r(r*Ú to_eng_string;szDecimal.to_eng_stringcCsR|jr|j|d�}|r|S|dkr(tƒ}|s@|jtkr@| ¡}n| ¡}| |¡S)N)r/)rIr„rr>rÚcopy_absÚ copy_negateÚ_fix)r.r/r:r(r(r*Ú__neg__Ds  zDecimal.__neg__cCsR|jr|j|d�}|r|S|dkr(tƒ}|s@|jtkr@| ¡}nt|ƒ}| |¡S)N)r/)rIr„rr>rr¯rr±)r.r/r:r(r(r*Ú__pos__Zs  zDecimal.__pos__TcCsJ|s | ¡S|jr&|j|d�}|r&|S|jr:|j|d�}n |j|d�}|S)N)r/)r¯rIr„r6r²r³)r.Úroundr/r: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-rJ)r&r&)r–r�rrIr„rr6r^r rr£rHr>rr5r±Úmaxr?Ú_rescalercÚ _normalizer<rNrO) r.r�r/r:rOZ negativezeror<Úop1Úop2r|r(r(r*Ú__add__…s|              zDecimal.__add__cCsHt|ƒ}|tkr|S|js |jr6|j||d�}|r6|S|j| ¡|d�S)N)r/)r–r�rIr„r»r°)r.r�r/r:r(r(r*Ú__sub__Ýs zDecimal.__sub__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�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 * (+-)INFrJÚ1)r–r�rr6rIr„rr^r r;rHr5r±r7rcrZrN)r.r�r/Z 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}n<|j|j} x.|| k�r®|ddk�r®|d}|d7}�q‚Wt |t|ƒ|ƒ}| |¡S) Nz(+-)INF/(+-)INFzDivision by infinityrJz0 / 0zx / 0r&r-r˜rs)r–r�rr6rIr„rr^r r;rr5ÚEtinyrr rHr`r7r?rcÚdivmodrNrZr±) r.r�r/r<r:rOrzÚ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™rJr&r˜z%quotient too large in //, % or divmod)r6rrHr£r‰r5r·r>r?rcrOrNrÁrZr^r) r.r�r/r<rÄÚexpdiffr¹rºÚqÚrr:r(r(r*Ú_dividegs*    zDecimal._dividecCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�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)zINF % xz divmod(0, 0)zx // 0zx % 0) r–r�rr„r6rr^r r;rr rÉr±)r.r�r/r:r<ZquotientrÃr(r(r*Ú __divmod__�s0      zDecimal.__divmod__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�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)NzINF % xzx % 0z0 % 0r-) r–r�rr„rr^r rrÉr±)r.r�r/r:rÃr(r(r*Ú__mod__ºs"     zDecimal.__mod__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�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) NT)r•zremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)rJr-r™r˜rUr&)rr–r„rr^r rrr±r£rHr5r6r‰r?rr·r>rcrOrNrÁrZ) r.r�r/r:Úideal_exponentrÆr¹rºrÇrÈr<r(r(r*Úremainder_nearÜsZ         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 // INFzx // 0z0 // 0r&) r–r�rr„rr^r r;r6r rrÉ)r.r�r/r:r(r(r*Ú __floordiv__'s$   zDecimal.__floordiv__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�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…rfr6rZrj)r.Ú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˜rJ) rIr}rfrr¢r6rHrNr7)r.rÔr(r(r*Ú__int__Ts   zDecimal.__int__cCs|S)Nr()r.r(r(r*Úrealcsz Decimal.realcCstdƒS)Nr&)r)r.r(r(r*Úimaggsz Decimal.imagcCs|S)Nr()r.r(r(r*Ú conjugatekszDecimal.conjugatecCs tt|ƒƒS)N)Úcomplexrj)r.r(r(r*Ú __complex__nszDecimal.__complex__cCsR|j}|j|j}t|ƒ|krJ|t|ƒ|d… d¡}t|j||jdƒSt|ƒS)NrJT) r7r?Úclampr`rar5r6rHr)r.r/ZpayloadZmax_payload_lenr(r(r*r8qs   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)NrJz above Emaxr&r¾r-r~)rIr}r8rrÀÚEtopr@rÜr£r¶rHr^rr5r6r`r7r?rr r Ú_pick_rounding_functionr>rZrNrr )r.r/rÀrÝÚexp_maxZnew_expZexp_minr:Zself_is_subnormalrrZrounding_methodÚchangedrzr‹r(r(r*r±}sn                     z Decimal._fixcCst|j|ƒrdSdSdS)Nr&r~)Ú _all_zerosr7)r.r?r(r(r*Ú _round_downãs zDecimal._round_downcCs | |¡ S)N)râ)r.r?r(r(r*Ú _round_upêszDecimal._round_upcCs*|j|dkrdSt|j|ƒr"dSdSdS)NZ56789r-r&r~)r7rá)r.r?r(r(r*Ú_round_half_upîs  zDecimal._round_half_upcCst|j|ƒrdS| |¡SdS)Nr~)Ú _exact_halfr7rä)r.r?r(r(r*Ú_round_half_down÷s zDecimal._round_half_downcCs8t|j|ƒr*|dks&|j|ddkr*dS| |¡SdS)Nr&r-Ú02468r~)rår7rä)r.r?r(r(r*Ú_round_half_evenþs zDecimal._round_half_evencCs |jr| |¡S| |¡ SdS)N)r6râ)r.r?r(r(r*Ú_round_ceilings zDecimal._round_ceilingcCs |js| |¡S| |¡ SdS)N)r6râ)r.r?r(r(r*Ú _round_floor s zDecimal._round_floorcCs0|r |j|ddkr | |¡S| |¡ SdS)Nr-Z05)r7râ)r.r?r(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¾zcannot round a NaNzcannot round an infinity) rYrNrlr5ÚquantizerIršrfr¢r·r)r.r4rOr(r(r*Ú __round__&s/   zDecimal.__round__cCs0|jr | ¡rtdƒ‚ntdƒ‚t| dt¡ƒS)Nzcannot round a NaNzcannot round an infinityr&)rIršrfr¢rNr·r)r.r(r(r*Ú __floor__ds  zDecimal.__floor__cCs0|jr | ¡rtdƒ‚ntdƒ‚t| dt¡ƒS)Nzcannot round a NaNzcannot round an infinityr&)rIršrfr¢rNr·r)r.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) NT)r•rRr€r4rSzINF * 0 in fmaz0 * INF in fma) r–rIrrHr^r r;r6r5rZrNr7r»)r.r�Zthirdr/Úproductr(r(r*Úfma‚s6          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|ƒ|}x t| jƒD]} t|d |ƒ}�q¢Wt|| j |ƒ}t|t|ƒdƒS) NrUr€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}r^r r8Ú _isintegerr‰r?Ú_isevenr6rbrNrcÚto_integral_valuer�rOÚranger5rZ) r.r�Úmodulor/r‚rƒZ modulo_is_nanr<ÚbaseÚexponentÚir(r(r*Ú _power_modulo®sl         zDecimal._power_modulocCst|ƒ}|j|j}}x |ddkr6|d}|d7}qWt|ƒ}|j|j}}x |ddkrn|d}|d7}qPW|dk�r ||9}x |ddkr¢|d}|d7}q„W|dkr°dS|d|} |jdkrÌ| } | ¡�r|jdk�r|jt|ƒ} t| | |dƒ} nd} tddd| | | ƒS|jdk�rÆ|d} | dk�rÌ|| @|k�rRdSt |ƒd} |dd}|t t |ƒƒk�r€dSt | ||ƒ} t |||ƒ}| dk�s°|dk�r´dS| |k�rÂdSd | }nÎ| d k�r–t |ƒd d} t d | |ƒ\}}|�rdSx$|d dk�r&|d }| d8} �qW|dd }|t t |ƒƒk�rJdSt | ||ƒ} t |||ƒ}| dk�sz|dk�r~dS| |k�rŒdSd | }ndS|d|k�r¬dS| |}tdt |ƒ|ƒS|dk�rä|d|d}}nä|dk�rt t t||ƒƒƒ| k�rdSt |ƒ}|dk�r@t t t|ƒ|ƒƒ| k�r@dS|d| }}x:|d |d k�rrdk�rŠnn|d }|d }�qRWx:|d |d k�r®dk�rÆnn|d }|d }�qŽW|dk�rv|dk�rê||k�rêdSt ||ƒ\}}|dk�rdSdt |ƒ | >}x>t |||dƒ\}}||k�r@Pn||d||}�qW||k�rn|dk�srdS|}|dk�rš||d t|ƒk�ršdS||}||9}|d|k�r¼dSt |ƒ}| ¡�r|jdk�r|jt|ƒ} t|| |t |ƒƒ} nd} td|d| || ƒS)Nr˜r&r-r¾rJ)rUéééé]éArsérTrUéd)rcrNrOr<ròr6rHr£r5Ú_nbitsr`rZÚ_decimal_lshift_exactrÁrbÚ _log10_lb)r.r�ÚpÚxÚxcÚxeÚyÚycÚyerørÏZzerosZ last_digitr§ZemaxrÃror4Zxc_bitsÚremÚarÇrÈZstr_xcr(r(r*Ú _power_exactsÒ:                  &&&&    zDecimal._power_exactcCs>|dk r| |||¡St|ƒ}|tkr*|S|dkr8tƒ}| ||¡}|rL|S|sd|s`| td¡StSd}|jdkr |  ¡rˆ|  ¡s˜d}n|r˜| td¡S|  ¡}|sÂ|jdkrºt |ddƒSt |S| ¡rè|jdkrÜt |St |ddƒS|tk�rŽ|  ¡�rZ|jdk�rd}n||jk�r"|j}nt|ƒ}|j|}|d|jk�rxd|j}| t¡n| t¡| t¡d|j}t |dd| |ƒS| ¡}| ¡�rÈ|jdk|dkk�rÀt |ddƒSt |Sd}d} | ¡| ¡} |dk|jdkk�r| tt|jƒƒk�rHt |d|jdƒ}n,| ¡} | tt| ƒƒk�rHt |d| dƒ}|dk�rŒ| ||jd¡}|dk �rŒ|dk�rˆt d|j|jƒ}d} |dk�r:|j} t|ƒ} | j| j}}t|ƒ}|j|j}}|jdk�rÚ| }d }xJt||||| |ƒ\}}|d d tt|ƒƒ| d�rP|d 7}�qàWt |t|ƒ|ƒ}| �r0|  ¡�s0t|jƒ|jk�rŽ|jdt|jƒ}t |j|jd||j|ƒ}|  ¡}| !¡xt"D]}d|j#|<�q¤W| $|¡}| t¡|j%t&�râ| t'¡|j%t(�rþ| t(d |j¡x:t't&ttt)fD]}|j%|�r| |¡�qWn | $|¡}|S) Nz0 ** 0r&r-z+x ** y with x negative and y not an integerrJr¾FTrTrsr˜z above Emax)*rúr–r�rr„r^r Ú_Oner6ròrór°r5r;rr?rNrHr r r‰Ú_log10_exp_boundr`rZr@rÀrr7rcrOr<Ú_dpowerrErFÚ_signalsÚtrapsr±Úflagsr rrr)r.r�rör/r:Z result_signZ multiplierrOZself_adjÚexactZboundrÀrrrrr r r ÚextrarzrÆZ newcontextZ exceptionr(r(r*Ú__pow__ðsÊ                        "         zDecimal.__pow__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)r–r�r)r.r�r/r(r(r*Ú__rpow__È szDecimal.__rpow__cCs¼|dkrtƒ}|jr(|j|d�}|r(|S| |¡}| ¡r>|S|sPt|jddƒS|j| ¡g|j }t |j ƒ}|j }x.|j |ddkr¢||kr¢|d7}|d8}qvWt|j|j d|…|ƒS)N)r/rJr&r-) rrIr„r±rr5r6r@rÝrÜr`r7rH)r.r/r:ÚduprßÚendrOr(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) NT)r•zquantize with one INFz)target exponent out of bounds in quantizerJz9exponent of quantize result too large for current contextr-z7quantize result has too many digits for current context)r–rr>rIr„rrr^r rÀrHr@r5r6r±r‰r?r·r`r7ÚEminr r r )r.rOr>r/r:rŠr(r(r*rìè sT          zDecimal.quantizecCsDt|dd�}|js|jr8| ¡r(| ¡p6| ¡o6| ¡S|j|jkS)NT)r•)r–rIršÚ is_infiniterH)r.r�r/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)NrJr&r¾r-) rIrr5r6rHr7r`rÞrZrN)r.rOr>rrZ this_functionràrzr(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-)rfrIrr·r‰)r.Úplacesr>r: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)N)r/r&rJ) rIr„rrHr5r6rr>r·r^r r )r.r>r/r:r(r(r*Úto_integral_exactm s$      zDecimal.to_integral_exactcCs`|dkrtƒ}|dkr|j}|jr>|j|d�}|r6|St|ƒS|jdkrPt|ƒS| d|¡SdS)N)r/r&)rr>rIr„rrHr·)r.r>r/r:r(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|} x(|| } | | k�r:Pn | | d?} �q$W| �o\| | |k} | �r”|dk�r|| d|} n| d| 9} ||7}n| d dk�rª| d7} tdt| ƒ|ƒ}| ¡}| t¡} | |¡}| |_|S) N)r/r&rJrUr-zsqrt(-x), x > 0r˜rTrs)rrIr„rr6rr5rHr±r^r r?rcrOrNr`r7rÁrZÚ _shallow_copyÚ _set_roundingrr>)r.r/r:r?Úopr§ÚcÚlrÂrrÃr4rÇr>r(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)NT)r•r-r&r~)r–rrIr}r±r„rŒÚ compare_total)r.r�r/ÚsnÚonr%r: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|}| |¡S)NT)r•r-r&r~)r–rrIr}r±r„rŒr()r.r�r/r)r*r%r:r(r(r*r£* s&       z Decimal.mincCs8|jr dS|jdkrdS|j|jd…}|dt|ƒkS)NFr&TrJ)rIrHr7r`)r.Úrestr(r(r*ròL s  zDecimal._isintegercCs&|r|jdkrdS|jd|jdkS)Nr&Tr~rç)rHr7)r.r(r(r*róU szDecimal._isevencCs.y|jt|jƒdStk r(dSXdS)Nr-r&)rHr`r7rl)r.r(r(r*r‰[ szDecimal.adjustedcCs|S)Nr()r.r(r(r*Ú canonicalc szDecimal.canonicalcCs.t|dd�}| ||¡}|r |S|j||d�S)NT)r•)r/)r–r‡r—)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@|�r) r.r/r:rÚadjr$r%r§rrzrOr>r(r(r*rOÜ sJ   $(  "  z Decimal.expcCsdS)NTr()r.r(r(r*Ú is_canonical' szDecimal.is_canonicalcCs|j S)N)rI)r.r(r(r*Ú is_finite/ szDecimal.is_finitecCs |jdkS)NrS)rH)r.r(r(r*r7 szDecimal.is_infinitecCs |jdkS)N)r4rR)rH)r.r(r(r*rš; szDecimal.is_nancCs*|js |sdS|dkrtƒ}|j| ¡kS)NF)rIrrr‰)r.r/r(r(r*Ú is_normal? s  zDecimal.is_normalcCs |jdkS)Nr4)rH)r.r(r(r*r†G szDecimal.is_qnancCs |jdkS)Nr-)r6)r.r(r(r*Ú is_signedK szDecimal.is_signedcCs |jdkS)NrR)rH)r.r(r(r*r…O szDecimal.is_snancCs*|js |sdS|dkrtƒ}| ¡|jkS)NF)rIrr‰r)r.r/r(r(r*Ú is_subnormalS s  zDecimal.is_subnormalcCs|j o|jdkS)NrJ)rIr7)r.r(r(r*Úis_zero[ szDecimal.is_zerocCsÆ|jt|jƒd}|dkr4tt|ddƒƒdS|dkrXttd|ddƒƒdSt|ƒ}|j|j}}|dkr¨t|d| ƒ}t|ƒ}t|ƒt|ƒ||kS|ttd| |ƒƒdS)Nr-ér˜r™r~r&)rHr`r7rZrcrNrO)r.r4r$r%r§ÚnumÚdenr(r(r*Ú _ln_exp_bound_ szDecimal._ln_exp_boundc Cs |dkrtƒ}|j|d�}|r"|S|s*tS| ¡dkr:tS|tkrFtS|jdkr\| t d¡St |ƒ}|j |j }}|j }|| ¡d}x>t|||ƒ}|ddttt|ƒƒƒ|dr¼P|d7}qŠWtt |dkƒtt|ƒƒ| ƒ}| ¡}| t¡} | |¡}| |_|S) N)r/r-zln of a negative valuerUrsr˜rTr&)rr„Ú_NegativeInfinityrÚ _Infinityrr/r6r^r rcrNrOr?r>Ú_dlogr`rZrbr5r"r#rr±r>) r.r/r:r$r%r§rrrzr>r(r(r*Úlnx s:    $   z Decimal.lncCsÊ|jt|jƒd}|dkr,tt|ƒƒdS|dkrHttd|ƒƒdSt|ƒ}|j|j}}|dkr t|d| ƒ}td|ƒ}t|ƒt|ƒ||kdStd| |ƒ}t|ƒ||dkdS) Nr-r™r~r&r˜éçrUZ231)rHr`r7rZrcrNrO)r.r4r$r%r§r<r=r(r(r*rª s  zDecimal._log10_exp_boundc CsH|dkrtƒ}|j|d�}|r"|S|s*tS| ¡dkr:tS|jdkrP| td¡S|jddkr˜|jdd…dt |jƒdkr˜t |j t |jƒdƒ}nŠt |ƒ}|j |j}}|j}|| ¡d}x>t|||ƒ}|dd t tt|ƒƒƒ|drøP|d 7}qÆWtt |dkƒtt|ƒƒ| ƒ}| ¡}| t¡} | |¡}| |_|S) N)r/r-zlog10 of a negative valuer&r¾rJrUrsr˜rT)rr„r?rr@r6r^r r7r`rrHrcrNrOr?rÚ_dlog10rZrbr5r"r#rr±r>) r.r/r:r$r%r§rrrzr>r(r(r*Úlog10È s:   . $   z Decimal.log10cCsV|j|d�}|r|S|dkr"tƒ}| ¡r.tS|s@| tdd¡St| ¡ƒ}| |¡S)N)r/zlogb(0)r-) r„rrr@r^r rr‰r±)r.r/r:r(r(r*Úlogbû s  z Decimal.logbcCs8|jdks|jdkrdSx|jD]}|dkr dSq WdS)Nr&FZ01T)r6rHr7)r.Údigr(r(r*Ú _islogical s  zDecimal._islogicalcCs€|jt|ƒ}|dkr$d||}n|dkr<||j d…}|jt|ƒ}|dkr`d||}n|dkrx||j d…}||fS)Nr&rJ)r?r`)r.r/ÚopaÚopbZdifr(r(r*Ú _fill_logical' szDecimal._fill_logicalcCsz|dkrtƒ}t|dd�}| ¡r*| ¡s4| t¡S| ||j|j¡\}}d dd„t||ƒDƒ¡}t d|  d¡ptddƒS)NT)r•rLcSs$g|]\}}tt|ƒt|ƒ@ƒ‘qSr()rZrN)Ú.0r Úbr(r(r*ú B sz'Decimal.logical_and..r&rJ) rr–rHr^r rKr7rhÚzipr5ra)r.r�r/rIrJr|r(r(r*Ú logical_and4 s  zDecimal.logical_andcCs(|dkrtƒ}| tdd|jdƒ|¡S)Nr&r¾)rÚ logical_xorr5r?)r.r/r(r(r*Úlogical_invertE szDecimal.logical_invertcCsz|dkrtƒ}t|dd�}| ¡r*| ¡s4| t¡S| ||j|j¡\}}d dd„t||ƒDƒ¡}t d|  d¡ptddƒS)NT)r•rLcSs$g|]\}}tt|ƒt|ƒBƒ‘qSr()rZrN)rLr rMr(r(r*rNZ sz&Decimal.logical_or..r&rJ) rr–rHr^r rKr7rhrOr5ra)r.r�r/rIrJr|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)NT)r•rLcSs$g|]\}}tt|ƒt|ƒAƒ‘qSr()rZrN)rLr rMr(r(r*rNk sz'Decimal.logical_xor..r&rJ) rr–rHr^r rKr7rhrOr5ra)r.r�r/rIrJr|r(r(r*rQ] s  zDecimal.logical_xorcCs¾t|dd�}|dkrtƒ}|js&|jr~| ¡}| ¡}|s>|r~|dkrX|dkrX| |¡S|dkrr|dkrr| |¡S| ||¡S| ¡ | ¡¡}|dkr¢| |¡}|dkr°|}n|}| |¡S)NT)r•r-r&r~) r–rrIr}r±r„r¯rŒr()r.r�r/r)r*r%r:r(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|}| |¡S)NT)r•r-r&r~) r–rrIr}r±r„r¯rŒr()r.r�r/r)r*r%r:r(r(r*Úmin_magŒ s&      zDecimal.min_magcCs |dkrtƒ}|j|d�}|r"|S| ¡dkr2tS| ¡dkrTtdd|j| ¡ƒS| ¡}| t ¡|  ¡|  |¡}||kr„|S|  tdd|  ¡dƒ|¡S)N)r/r~r-r&r=r¾)rr„rr?r5r?rÝrEr#rÚ_ignore_all_flagsr±r¼rÀ)r.r/r:Únew_selfr(r(r*Ú next_minusª s"     zDecimal.next_minuscCs |dkrtƒ}|j|d�}|r"|S| ¡dkr2tS| ¡dkrTtdd|j| ¡ƒS| ¡}| t ¡|  ¡|  |¡}||kr„|S|  tdd|  ¡dƒ|¡S)N)r/r-r~r=r&r¾)rr„rr@r5r?rÝrEr#rrVr±r»rÀ)r.r/r:rWr(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)NT)r•r&r~z Infinite result from next_toward)r–rr„rŒr2rYrXrr^rr6r r r‰rrr r)r.r�r/r:Z comparisonr(r(r*Ú next_towardØ s4             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+Zero)r/z -Subnormalz +Subnormalz-Normalz+Normal)r…r†rr:r6rr9)r.r/Ú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)NT)r•r&rJ)rr–r„rHr^r r?rNrrr7r`r5r6ra)r.r�r/r:ÚtorotÚrotdigÚtopadZrotatedr(r(r*Úrotate4s,      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)NT)r•r&r™rU)rr–r„rHr^r r@r?rNrrr5r6r7r±)r.r�r/r: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ƒS)NT)r•r&rJ)rr–r„rHr^r r?rNrrr7r`r5r6ra)r.r�r/r:r^r_r`Zshiftedr(r(r*rÂns2       z Decimal.shiftcCs|jt|ƒffS)N)Ú __class__rZ)r.r(r(r*Ú __reduce__•szDecimal.__reduce__cCst|ƒtkr|S| t|ƒ¡S)N)ÚtyperrcrZ)r.r(r(r*Ú__copy__˜s zDecimal.__copy__cCst|ƒtkr|S| t|ƒ¡S)N)rerrcrZ)r.Zmemor(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)Ú _localeconvreú%ÚgÚGrUÚ precisionÚeEr-zfF%ZgGr&iúÿÿÿrJrL)rÚ_parse_format_specifierrIÚ _format_signr6rZr¯Ú _format_alignr©r5r7rHr>r r·r`Ú_format_number)r.Z specifierr/rhÚspecr<Úbodyr>rlr«r¬rprqrOr(r(r*Ú __format__¤sZ               zDecimal.__format__)rJN)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)�r1r2r3Ú __slots__rXÚ classmethodrkr}rr„r‡rˆrŒr�r‘r’r“r”r—r r¡rvr¤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Ûr8r±rârãrärærèrérêrëÚdictrÞrírîrïrñrúrrrrrìrr·r r!rôÚ to_integralr'r¶r£ròrór‰r,r-r(r1r¯r°r2rOr5r6rršr7r†r8r…r9r:r>rBrrErFrHrKrPrRrSrQrTrUrXrYrZr\r]rarbrÂrdrfrgrtr(r(r(r*rs   - !@  2 4    V   7 ;!  $    K       f  > , Un Y   = "   c * "  I   K   2 3          . * !  'FcCs&t t¡}||_||_||_||_|S)N)rWrXrr6r7rHrI)r<Z coefficientrøZspecialr.r(r(r*r5ös  r5c@s$eZdZdd„Zdd„Zdd„ZdS)rGcCs| ¡|_dS)N)rEÚ new_context)r.r}r(r(r*Ú__init__sz_ContextManager.__init__cCstƒ|_t|jƒ|jS)N)rÚ saved_contextrr})r.r(r(r*Ú __enter__s z_ContextManager.__enter__cCst|jƒdS)N)rr)r.ÚtÚvÚtbr(r(r*Ú__exit__sz_ContextManager.__exit__N)r1r2r3r~r€r„r(r(r(r*rGsrGc @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>yt} 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ƒfVqdS)N)rN)rLrÔ)rr(r*ú Isz#Context.__init__..r&c3s|]}|t|ˆkƒfVqdS)N)rN)rLrÔ)rr(r*r…Ps)rÚ NameErrorr?r>rr@r©rÜÚ_ignored_flagsrrErYr{rÚfromkeysr) r.r?r>rr@r©rÜrrr‡Zdcr()rrr*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 integerz-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)rYrNrlrfrWÚ __setattr__)r.ÚnamernZvminZvmaxr(r(r*Ú_set_integer_checkTs  zContext._set_integer_checkcCsht|tƒstd|ƒ‚x |D]}|tkrtd|ƒ‚qWx tD]}||kr>td|ƒ‚q>Wt |||¡S)Nz%s must be a signal dictz%s is not a valid signal dict)rYr{rlrÚKeyErrorrWr‰)r.rŠ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)Nr?r-r[rz-infr&r@r©rÜr>z%s: invalid rounding moderrr‡z.'decimal.Context' object has no attribute '%s')r‹Ú_rounding_modesrlrWr‰rŽÚAttributeError)r.rŠrnr(r(r*r‰ms(  zContext.__setattr__cCstd|ƒ‚dS)Nz%s cannot be deleted)r�)r.rŠ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()rLÚsigr‚r(r(r*rN‹sz&Context.__reduce__..cSsg|]\}}|r|‘qSr(r()rLr’r‚r(r(r*rNŒs) rÚitemsrrcr?r>rr@r©rÜ)r.rrr(r(r*rdŠ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()r1)rLrxr‚r(r(r*rN˜sz$Context.__repr__..zflags=[z, ú]cSsg|]\}}|r|j‘qSr()r1)rLr�r‚r(r(r*rNšsztraps=[ú))rgÚvarsrr“rhr)r.rÔÚnamesr(r(r*r¤‘s zContext.__repr__cCsx|jD]}d|j|<qWdS)Nr&)r)r.Úflagr(r(r*rFžs zContext.clear_flagscCsx|jD]}d|j|<qWdS)Nr&)r)r.r˜r(r(r*Ú clear_traps£s zContext.clear_trapsc Cs.t|j|j|j|j|j|j|j|j|j ƒ }|S)N) rr?r>rr@r©rÜrrr‡)r.Úncr(r(r*r"¨szContext._shallow_copyc Cs6t|j|j|j|j|j|j|j ¡|j  ¡|j ƒ }|S)N) rr?r>rr@r©rÜrrErr‡)r.ršr(r(r*rE¯s z Context.copycGsZt ||¡}||jkr(|ƒj|f|žŽSd|j|<|j|sN|ƒj|f|žŽS||ƒ‚dS)Nr-)Ú_condition_maprBr‡r0rr)r.Z conditionZ explanationr)Úerrorr(r(r*r^¸s    zContext._raise_errorcCs |jtŽS)N)Ú _ignore_flagsr)r.r(r(r*rVÎszContext._ignore_all_flagscGs|jt|ƒ|_t|ƒS)N)r‡rd)r.rr(r(r*r�ÒszContext._ignore_flagscGs<|rt|dttfƒr|d}x|D]}|j |¡q$WdS)Nr&)rYrerdr‡Úremove)r.rr˜r(r(r*Ú _regard_flagsÙs zContext._regard_flagscCst|j|jdƒS)Nr-)rNrr?)r.r(r(r*rÀãsz Context.EtinycCst|j|jdƒS)Nr-)rNr@r?)r.r(r(r*rÝçsz Context.EtopcCs|j}||_|S)N)r>)r.rer>r(r(r*r#ëszContext._set_roundingrJcCsjt|tƒr*|| ¡ksd|kr*| td¡St||d�}| ¡r`t|jƒ|j |j kr`| td¡S|  |¡S)NrKzAtrailing or leading whitespace and underscores are not permitted.)r/zdiagnostic info too long in NaN) rYrZr\r^rrr}r`r7r?rÜr±)r.r<r{r(r(r*Úcreate_decimalþs zContext.create_decimalcCst |¡}| |¡S)N)rrkr±)r.rxr{r(r(r*Úcreate_decimal_from_floats z!Context.create_decimal_from_floatcCst|dd�}|j|d�S)NT)r•)r/)r–rµ)r.r r(r(r*rb!s z Context.abscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–r»r�rl)r.r rMrÈr(r(r*Úadd6s  z Context.addcCst| |¡ƒS)N)rZr±)r.r r(r(r*Ú_applyKszContext._applycCst|tƒstdƒ‚| ¡S)Nz,canonical requires a Decimal as an argument.)rYrrlr,)r.r r(r(r*r,Ns zContext.canonicalcCst|dd�}|j||d�S)NT)r•)r/)r–r—)r.r rMr(r(r*r—[s! zContext.comparecCst|dd�}|j||d�S)NT)r•)r/)r–r-)r.r rMr(r(r*r-s zContext.compare_signalcCst|dd�}| |¡S)NT)r•)r–r()r.r rMr(r(r*r(¢s zContext.compare_totalcCst|dd�}| |¡S)NT)r•)r–r1)r.r rMr(r(r*r1¿s zContext.compare_total_magcCst|dd�}| ¡S)NT)r•)r–r¯)r.r r(r(r*r¯Çs zContext.copy_abscCst|dd�}t|ƒS)NT)r•)r–r)r.r r(r(r*Ú copy_decimalÔs zContext.copy_decimalcCst|dd�}| ¡S)NT)r•)r–r°)r.r r(r(r*r°ás zContext.copy_negatecCst|dd�}| |¡S)NT)r•)r–r2)r.r rMr(r(r*r2îs zContext.copy_signcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–rÅr�rl)r.r rMrÈr(r(r*Údivides  zContext.dividecCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–rÑr�rl)r.r rMrÈr(r(r*Ú divide_int+s  zContext.divide_intcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–rËr�rl)r.r rMrÈr(r(r*rÁBs  zContext.divmodcCst|dd�}|j|d�S)NT)r•)r/)r–rO)r.r r(r(r*rOWs z Context.expcCst|dd�}|j|||d�S)NT)r•)r/)r–rñ)r.r rMr%r(r(r*rños z Context.fmacCst|tƒstdƒ‚| ¡S)Nz/is_canonical requires a Decimal as an argument.)rYrrlr5)r.r r(r(r*r5†s zContext.is_canonicalcCst|dd�}| ¡S)NT)r•)r–r6)r.r r(r(r*r6“s zContext.is_finitecCst|dd�}| ¡S)NT)r•)r–r)r.r r(r(r*r©s zContext.is_infinitecCst|dd�}| ¡S)NT)r•)r–rš)r.r r(r(r*rš¸s zContext.is_nancCst|dd�}|j|d�S)NT)r•)r/)r–r7)r.r r(r(r*r7Ès zContext.is_normalcCst|dd�}| ¡S)NT)r•)r–r†)r.r r(r(r*r†ßs zContext.is_qnancCst|dd�}| ¡S)NT)r•)r–r8)r.r r(r(r*r8îs zContext.is_signedcCst|dd�}| ¡S)NT)r•)r–r…)r.r r(r(r*r…ÿs zContext.is_snancCst|dd�}|j|d�S)NT)r•)r/)r–r9)r.r r(r(r*r9s zContext.is_subnormalcCst|dd�}| ¡S)NT)r•)r–r:)r.r r(r(r*r:%s zContext.is_zerocCst|dd�}|j|d�S)NT)r•)r/)r–rB)r.r r(r(r*rB6s z Context.lncCst|dd�}|j|d�S)NT)r•)r/)r–rE)r.r r(r(r*rELs z Context.log10cCst|dd�}|j|d�S)NT)r•)r/)r–rF)r.r r(r(r*rFhs z Context.logbcCst|dd�}|j||d�S)NT)r•)r/)r–rP)r.r rMr(r(r*rP‚s zContext.logical_andcCst|dd�}|j|d�S)NT)r•)r/)r–rR)r.r r(r(r*rR�s zContext.logical_invertcCst|dd�}|j||d�S)NT)r•)r/)r–rS)r.r rMr(r(r*rS°s zContext.logical_orcCst|dd�}|j||d�S)NT)r•)r/)r–rQ)r.r rMr(r(r*rQËs zContext.logical_xorcCst|dd�}|j||d�S)NT)r•)r/)r–r¶)r.r rMr(r(r*r¶æs z Context.maxcCst|dd�}|j||d�S)NT)r•)r/)r–rT)r.r rMr(r(r*rTs zContext.max_magcCst|dd�}|j||d�S)NT)r•)r/)r–r£)r.r rMr(r(r*r£s z Context.mincCst|dd�}|j||d�S)NT)r•)r/)r–rU)r.r rMr(r(r*rU-s zContext.min_magcCst|dd�}|j|d�S)NT)r•)r/)r–r²)r.r r(r(r*Úminus>s z Context.minuscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–r¿r�rl)r.r rMrÈr(r(r*ÚmultiplyOs  zContext.multiplycCst|dd�}|j|d�S)NT)r•)r/)r–rX)r.r r(r(r*rXos zContext.next_minuscCst|dd�}|j|d�S)NT)r•)r/)r–rY)r.r r(r(r*rYƒs zContext.next_pluscCst|dd�}|j||d�S)NT)r•)r/)r–rZ)r.r rMr(r(r*rZ—s zContext.next_towardcCst|dd�}|j|d�S)NT)r•)r/)r–r)r.r r(r(r*rºs zContext.normalizecCst|dd�}|j|d�S)NT)r•)r/)r–r\)r.r r(r(r*r\Òs/ zContext.number_classcCst|dd�}|j|d�S)NT)r•)r/)r–r³)r.r r(r(r*Úpluss z Context.pluscCs:t|dd�}|j|||d�}|tkr2td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–rr�rl)r.r rMrörÈr(r(r*Úpowers I z Context.powercCst|dd�}|j||d�S)NT)r•)r/)r–rì)r.r rMr(r(r*rìes7 zContext.quantizecCstdƒS)Nr˜)r)r.r(r(r*r]Ÿsz Context.radixcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–rÍr�rl)r.r rMrÈr(r(r*rçs  zContext.remaindercCst|dd�}|j||d�S)NT)r•)r/)r–rÐ)r.r rMr(r(r*rÐÍs zContext.remainder_nearcCst|dd�}|j||d�S)NT)r•)r/)r–ra)r.r rMr(r(r*raïs zContext.rotatecCst|dd�}| |¡S)NT)r•)r–r)r.r rMr(r(r*r s zContext.same_quantumcCst|dd�}|j||d�S)NT)r•)r/)r–rb)r.r rMr(r(r*rb$s zContext.scalebcCst|dd�}|j||d�S)NT)r•)r/)r–rÂ)r.r rMr(r(r*rÂ7s z Context.shiftcCst|dd�}|j|d�S)NT)r•)r/)r–r')r.r r(r(r*r'Us z Context.sqrtcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r•)r/zUnable to convert %s to Decimal)r–r¼r�rl)r.r rMrÈr(r(r*Úsubtractus  zContext.subtractcCst|dd�}|j|d�S)NT)r•)r/)r–r®)r.r r(r(r*r®Œs zContext.to_eng_stringcCst|dd�}|j|d�S)NT)r•)r/)r–r­)r.r r(r(r*Ú to_sci_string¨s zContext.to_sci_stringcCst|dd�}|j|d�S)NT)r•)r/)r–r!)r.r r(r(r*r!°s zContext.to_integral_exactcCst|dd�}|j|d�S)NT)r•)r/)r–rô)r.r r(r(r*rôÎs zContext.to_integral_value) NNNNNNNNN)N)rJ)N)Wr1r2r3r~r‹rŽr‰r‘rdr¤rFr™r"rErfr^rVr�rŸr rÀrÝr#r r¡rbr¢r£r,r—r-r(r1r¯r¤r°r2r¥r¦rÁrOrñr5r6rršr7r†r8r…r9r:rBrErFrPrRrSrQr¶rTr£rUr§r¨rXrYrZrr\r©rªrìr]rÃrÐrarrbrÂr'r«r®r¬r!rôr|r(r(r(r*rs¬ "     $#   %  #2 P:&" c@s&eZdZdZddd„Zdd„ZeZdS)rc)r<rNrONcCsf|dkrd|_d|_d|_nFt|tƒrD|j|_t|jƒ|_|j|_n|d|_|d|_|d|_dS)Nr&r-rU)r<rNrOrYrr6r7rH)r.rnr(r(r*r~ôs     z_WorkRep.__init__cCsd|j|j|jfS)Nz (%r, %r, %r))r<rNrO)r.r(r(r*r¤sz_WorkRep.__repr__)N)r1r2r3rur~r¤r­r(r(r(r*rcîs rccCsš|j|jkr|}|}n|}|}tt|jƒƒ}tt|jƒƒ}|jtd||dƒ}||jd|krpd|_||_|jd|j|j9_|j|_||fS)Nr~rUr-r˜)rOr`rZrNr£)r¹rºr?Ztmpr�Ztmp_lenZ other_lenrOr(r(r*r¸ s r¸cCsb|dkr dS|dkr |d|Stt|ƒƒ}t|ƒt| d¡ƒ}|| krPdS|d| SdS)Nr&r˜rJ)rZrbr`Úrstrip)r4r§Zstr_nZval_nr(r(r*r*s   rcCsF|dks|dkrtdƒ‚d}x$||kr@||| |d?}}qW|S)Nr&z3Both arguments to _sqrt_nearest should be positive.r-)rf)r4r rMr(r(r*Ú _sqrt_nearest?s  r®cCs2d|>||?}}|d||d@|d@|kS)Nr-rUr()rrÂrMrÇr(r(r*Ú_rshift_nearestNsr¯cCs&t||ƒ\}}|d||d@|kS)NrUr-)rÁ)r rMrÇrÈr(r(r*Ú _div_nearestVsr°rýc Csî||}d}xn||kr*t|ƒ||>|ksF||krzt|ƒ||?|krzt||d>|t||t||ƒ|ƒƒ}|d7}qWtdtt|ƒƒd|ƒ }t||ƒ}t||ƒ}x0t|dddƒD]}t||ƒt|||ƒ}qÀWt|||ƒS)Nr&r-iöÿÿÿrTr~)rbr°r®r¯rNr`rZrõ) rÚMÚLr ÚRÚTZyshiftÚwryr(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)NrUr-r&r˜r)r`rZr°r¶Ú _log10_digits) r%r§rr&rxr±ryÚlog_dZlog_10Z log_tenpowerr(r(r*rDŽs     rDc 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ƒS)NrUr-r&r˜r)r`rZr°r¶rbr·) r%r§rr&rxryr¸rZ f_log_tenr(r(r*rA°s"   rAc@seZdZdd„Zdd„ZdS)Ú _Log10MemoizecCs d|_dS)NZ/23025850929940456840179914546843642076011014886)rr)r.r(r(r*r~àsz_Log10Memoize.__init__cCsš|dkrtdƒ‚|t|jƒkr„d}xLd||d}tttd||ƒdƒƒ}|| d…d|krdP|d7}q$W| d¡dd…|_t|jd|d …ƒS) Nr&zp should be nonnegativerTr˜rUrrJr~r-)rfr`rrrZr°r¶r­rN)r.rrr±rrr(r(r*Ú getdigitsãs  z_Log10Memoize.getdigitsN)r1r2r3r~rºr(r(r(r*r¹Üsr¹c Cs°t||>|ƒ}tdtt|ƒƒd|ƒ }t||ƒ}||>}x.t|dddƒD]}t|||||ƒ}qRWx6t|dddƒD]"}||d>}t||||ƒ}q‚W||S)NiöÿÿÿrTr-r&r~rU)rrNr`rZr°rõ) rr±r²r³r´r ZMshiftrùryr(r(r*Ú_iexps  r»c Cs–|d7}td|tt|ƒƒdƒ}||}||}|dkrH|d|}n|d| }t|t|ƒƒ\}}t|d|ƒ}tt|d|ƒdƒ||dfS)NrUr&r-r˜ièrT)r¶r`rZrÁr·r°r») r%r§rrrÇrÂZcshiftZquotr r(r(r*r3&sr3c 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˜)r`rZrbrAr°r3) rrr r rrMZlxcrÂZpcrzrOr(r(r*rJs rréFé5é(ér;ér˜rs) r¾Ú2Ú3Ú4Ú5Ú6Ú7Ú8r=cCs0|dkrtdƒ‚t|ƒ}dt|ƒ||dS)Nr&z0The argument to _log10_lb should be nonnegative.r)rfrZr`)r%Z correctionZstr_cr(r(r*rtsrcCsLt|tƒr|St|tƒr t|ƒS|r8t|tƒr8t |¡S|rHtd|ƒ‚tS)NzUnable to convert %s to Decimal)rYrrNrjrkrlr�)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-z;strict semantics for mixing floats and Decimals are enabled)rYrÚ_numbersZRationalrIr5r6rZrNr7Ú denominatorrHÚ numeratorZComplexrØr×rjrrrr^rkr�)r.r�r�r/r(r(r*rŽ’s$    rŽri?BiÁ½ðÿ)r?r>rrr@rr©rÜrV)r?r>rra· # 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: ú ú>r<rMÚ minimumwidthrJrlr&reZgGnr-r4rjÚ thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: ÚgroupingÚ decimal_pointrLrTr¦)Ú_parse_format_specifier_regexÚmatchrfÚ groupdictrNÚ_localeÚ localeconv)Ú format_specrhroZ format_dictrËrÌr(r(r*rnsN           rnc Cs´|d}|d}||t|ƒt|ƒ}|d}|dkrF|||}nj|dkr\|||}nT|dkrr|||}n>|dkr¨t|ƒd}|d|…||||d…}ntd ƒ‚|S) NrÐrËrÌúusf           &     .  ^  0",# %$+   *      P % )