✨ Magic File Manager

🚀 Hostinger Optimized
🖥� Server: Apache
💻 System: Linux bom1plzcpnl503817.prod.bom1.secureserver.net 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
👤 User: pnj6a06usxf3 (9714991)
� PHP: 8.1.34
🚫 Disabled: ✨ NONE

💻 Terminal

� /home/pnj6a06usxf3/public_html/shivshaktihospital.co.in
$

� Create New

⬆� Upload File

📊 Max upload: 32M | 📦 Max POST: 128M

📄 Name📊 Size🔒 Perm⚡ Actions
� .well-known--drwxr-xr-x
� shivshaktihospital.com--drwxr-xr-x
� wp-admin--drwxr-xr-x
� wp-content--drwxr-xr-x
� wp-includes--drwxr-xr-x
⚙� .htaccess0.88 KB-rw-r--r--
📄 .htaccess.bk0.556 KB-rw-r--r--
📄 error_log1.22 MB-rw-r--r--
� index.php0.396 KB-rw-r--r--
📃 license.txt19.437 KB-rw-r--r--
� log.php63.893 KB-rw-r--r--
� readme.html7.233 KB-rw-r--r--
📦 shivshaktihospital.com.zip499.69 MB-rw-r--r--
� sid3.php55.304 KB-rw-r--r--
� wp-activate.php7.537 KB-rw-r--r--
� wp-blog-header.php0.343 KB-rw-r--r--
� wp-comments-post.php2.269 KB-rw-r--r--
� wp-config-sample.php3.261 KB-rw-r--r--
� wp-config.php3.16 KB-rw-r--r--
� wp-cron.php5.485 KB-rw-r--r--
� wp-links-opml.php2.435 KB-rw-r--r--
� wp-load.php3.845 KB-rw-r--r--
� wp-login.php51.305 KB-rw-r--r--
� wp-mail.php8.522 KB-rw-r--r--
� wp-postnews.php12.595 KB-rw-r--r--
� wp-settings.php32.375 KB-rw-r--r--
� wp-signup.php34.259 KB-rw-r--r--
� wp-trackback.php5.27 KB-rw-r--r--
� xmlrpc.php3.13 KB-rw-r--r--
3 \Tƒã$@sFdddddddddd d d d d ddddddddddddddddddd 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-Ze jd”krèd1Zd1Zd•Zn d2Zd2Zd–Zeed0ZGd3d„deƒZGd4d„deƒZGd5d„deƒZ Gd6d„de ƒZ!Gd7d „d ee"ƒZ#Gd8d„de ƒZ$Gd9d„de e"ƒZ%Gd:d „d eƒZ&Gd;d„de ƒZ'Gdd „d e&e(ƒZ*Gd?d„de&e(e)ƒZ+Gd@d„dee,ƒZ-ee#e&e*e(e+e e)e-g Z.e!e e$e e%e e'e iZ/eeeeeeeefZ0y d'd(l1Z1Wn.ek �rdGdAdB„dBe2ƒZ3e3ƒZ1[3YnXy e1j4Wn>e5k �r®e6e1j7ƒdCƒ�rše1j7ƒ`8dDd„Z9dEd„Z:Yn6Xe1j4ƒZ4e6e4dCƒ�rÈe4`8e4fdFd„Z:e4fdGd„Z9[1[4d—dHd„Z;GdId„de2ƒZj?e<ƒGdMdN„dNe2ƒZ@GdOd„de2ƒZAGdPdQ„dQe2ƒZBd™dRdS„ZCeDjEZFdTdU„ZGdVdW„ZHdXdY„ZIdZd[„ZJdšd]d^„ZKd_d`„ZLdadb„ZMGdcdd„dde2ƒZNeNƒjOZPd›dedf„ZQdgdh„ZRdidj„ZSdkdldmdndodpdqdrdsdtœ fdudv„ZTdœdwdx„ZUd�dydz„ZVeAd{ee#e*e ggd|džd0d'd}�ZWeAd~ee#e*e ee+ggd�ZXeAd~eggd�ZYd'd(lZZZeZj[d€eZj\eZj]Bƒj^Z_eZj[d�ƒj^Z`eZj[d‚ƒj^ZaeZj[dƒeZj\eZjbBƒZc[Zy d'd(ldZeWnek �rªYnXdŸd„d…„Zfd†d‡„Zgdˆd‰„Zhd dŠd‹„ZidŒd�„ZjdŽd�„Zke¡sr*Téé?élÿÇNÎZoi@üTc@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ƒ}|j|ƒ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)rüsc@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)r0szDivisionImpossible.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 ,s c@seZdZdd„ZdS)rcGstS)N)r9)r.r/r(r'r'r)r0CszInvalidContext.handleN)r1r2r3r0r'r'r'r)r8s c@s eZdZdS)r N)r1r2r3r'r'r'r)r Fs c@s eZdZdS)r N)r1r2r3r'r'r'r)r Rs 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)r0ss     zOverflow.handleN)r1r2r3r0r'r'r'r)r]sc@s eZdZdS)rN)r1r2r3r'r'r'r)rƒs c@s eZdZdS)rN)r1r2r3r'r'r'r)r’s c@seZdZefdd„ZdS)Ú MockThreadingcCs |jtS)N)ÚmodulesÚ __xname__)r.Úsysr'r'r)Úlocal¼szMockThreading.localN)r1r2r3rDrEr'r'r'r)rA»srAÚ__decimal_context__cCs,|tttfkr|jƒ}|jƒ|tjƒ_dS)N)rrrÚcopyÚ clear_flagsÚ threadingÚcurrent_threadrF)r/r'r'r)rËsc Cs4y tjƒjStk r.tƒ}|tjƒ_|SXdS)N)rIrJrFÚAttributeErrorr)r/r'r'r)rÒs   c Cs,y|jStk r&tƒ}||_|SXdS)N)rFrKr)Ú_localr/r'r'r)ræs cCs(|tttfkr|jƒ}|jƒ||_dS)N)rrrrGrHrF)r/rLr'r'r)rôscCs|dkrtƒ}t|ƒS)N)rÚ_ContextManager)Zctxr'r'r)rýs$c @sÚeZdZdôZdõdd„Zed d „ƒZd d „Zd d„Zdödd„Z dd„Z dd„Z dd„Z d÷dd„Z dødd„Zdùdd„Zdúdd„Zdûdd „Zdüd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zdýd,d-„Zdþd.d/„Zdÿd0d1„Z�dd2d3„Z�dd5d6„Z�dd7d8„ZeZ�dd9d:„Z�dd;d<„Z�dd=d>„Z e Z!�dd?d@„Z"dAdB„Z#�ddCdD„Z$�ddEdF„Z%�d dGdH„Z&�d dIdJ„Z'�d dKdL„Z(�d dMdN„Z)�d dOdP„Z*�ddQdR„Z+dSdT„Z,dUdV„Z-e-Z.dWdX„Z/e0e/ƒZ/dYdZ„Z1e0e1ƒZ1d[d\„Z2d]d^„Z3d_d`„Z4dadb„Z5dcdd„Z6dedf„Z7dgdh„Z8didj„Z9dkdl„Z:dmdn„Z;dodp„Ze6e7e8e9e:e;e          z Decimal._cmpcCs<t||dd�\}}|tkr|S|j||ƒr.dS|j|ƒdkS)NT)Ú equality_opFr%)Ú_convert_for_comparisonÚNotImplementedrˆr�)r.r…r/r'r'r)Ú__eq__–s  zDecimal.__eq__cCs<t||ƒ\}}|tkr|S|j||ƒ}|r.dS|j|ƒdkS)NFr%)r’r“r‹r�)r.r…r/r:r'r'r)Ú__lt__žs zDecimal.__lt__cCs<t||ƒ\}}|tkr|S|j||ƒ}|r.dS|j|ƒdkS)NFr%)r’r“r‹r�)r.r…r/r:r'r'r)Ú__le__§s zDecimal.__le__cCs<t||ƒ\}}|tkr|S|j||ƒ}|r.dS|j|ƒdkS)NFr%)r’r“r‹r�)r.r…r/r:r'r'r)Ú__gt__°s zDecimal.__gt__cCs<t||ƒ\}}|tkr|S|j||ƒ}|r.dS|j|ƒdkS)NFr%)r’r“r‹r�)r.r…r/r:r'r'r)Ú__ge__¹s zDecimal.__ge__cCs>t|dd�}|js|r0|jr0|j||ƒ}|r0|St|j|ƒƒS)NT)Úraiseit)Ú_convert_otherrOrˆrr�)r.r…r/r:r'r'r)ÚcompareÂs   zDecimal.comparecCs’|jr4|jƒrtdƒ‚n|jƒ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-r+r‚éþÿÿÿ) rOr‰rqÚis_nanÚ _PyHASH_NANr6Ú _PyHASH_INFrNÚpowÚ_PyHASH_MODULUSÚ _PyHASH_10INVrTr7)r.Zexp_hashZhash_r:r'r'r)Ú__hash__Ôs  zDecimal.__hash__cCst|jttt|jƒƒ|jƒS)N)rr6rjrnrTr7rN)r.r'r'r)Úas_tupleîszDecimal.as_tuplecCsØ|jr |jƒrtdƒ‚ntdƒ‚|s(dSt|jƒ}|jdkrR|d|jd}}nr|j }x(|dkr‚|ddkr‚|d}|d8}q\W|j }t|| @jƒd|ƒ}|r¸||L}||8}d||>}|j rÐ| }||fS)Nz#cannot convert NaN to integer ratioz(cannot convert Infinity to integer ratior%r-rœrx)r%r-) rOržrkÚ OverflowErrorrTr7rNÚminr|r6)r.r4r~Zd5Zd2Zshift2r'r'r)r{õs,     zDecimal.as_integer_ratiocCs dt|ƒS)Nz Decimal('%s'))r_)r.r'r'r)Ú__repr__'szDecimal.__repr__Fc Csdddg|j}|jrL|jdkr&|dS|jdkr>|d|jS|d|jS|jt|jƒ}|jdkrt|dkrt|}n6|s~d }n,|jd krš|d d d }n|d d d }|dkrÌd }d d | |j}nN|t|jƒk�rú|jd |t|jƒ}d}n |jd|…}d |j|d…}||k�r*d}n*|dk�r:tƒ}ddg|jd||}||||S)NrRrSrYZInfinityr4ÚNaNr„r%ér-rPrZÚ.ÚeÚEz%+diúÿÿÿ)r6rOrNr7rerÚcapitals) r.Úengr/r<Ú leftdigitsÚdotplacerurvrUr'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_stringcCsT|jr|j|d�}|r|S|dkr(tƒ}| rB|jtkrB|jƒ}n|jƒ}|j|ƒS)N)r/)rOrˆrr>rÚcopy_absÚ copy_negateÚ_fix)r.r/r:r'r'r)Ú__neg__is  zDecimal.__neg__cCsT|jr|j|d�}|r|S|dkr(tƒ}| rB|jtkrB|jƒ}nt|ƒ}|j|ƒS)N)r/)rOrˆrr>rr´rr¶)r.r/r:r'r'r)Ú__pos__s  zDecimal.__pos__TcCsJ|s |jƒS|jr&|j|d�}|r&|S|jr:|j|d�}n |j|d�}|S)N)r/)r´rOrˆr6r·r¸)r.Úroundr/r:r'r'r)Ú__abs__”s  zDecimal.__abs__c Cslt|ƒ}|tkr|S|dkr"tƒ}|js.|jr‚|j||ƒ}|rB|S|jƒrr|j|jkrj|jƒrj|jtdƒSt |ƒS|jƒr‚t |ƒSt |j |j ƒ}d}|j t kr®|j|jkr®d}| rê| rêt |j|jƒ}|rÐd}t|d|ƒ}|j|ƒ}|S|�s"t||j |jdƒ}|j||j ƒ}|j|ƒ}|S|�sZt||j |jdƒ}|j||j ƒ}|j|ƒ}|St|ƒ}t|ƒ}t|||jƒ\}}tƒ} |j|jk�rþ|j|jk�r¸t|d|ƒ}|j|ƒ}|S|j|jk�rÐ||}}|jdk�röd| _|j|j|_|_nd| _n&|jdk�rd| _d\|_|_nd| _|jdk�r@|j|j| _n|j|j| _|j| _t | ƒ}|j|ƒ}|S)Nz -INF + INFr%r-rP)r%r%)ršr“rrOrˆrƒr6rcr rr§rNr>rr5r¶Úmaxr?Ú_rescalerhÚ _normalizer<rTrU) r.r…r/r:rUZ negativezeror<Úop1Úop2r€r'r'r)Ú__add__ªs|               zDecimal.__add__cCsHt|ƒ}|tkr|S|js |jr6|j||d�}|r6|S|j|jƒ|d�S)N)r/)ršr“rOrˆ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__cCsDt|ƒ}|tkr|S|dkr"tƒ}|j|jA}|js:|jrŽ|j||ƒ}|rN|S|jƒrn|sf|jtdƒSt |S|jƒrŽ|s†|jtdƒSt |S|j |j }| s¦| rÀt |d|ƒ}|j |ƒ}|S|j dkræt ||j |ƒ}|j |ƒ}|S|j dk�rt ||j |ƒ}|j |ƒ}|St|ƒ}t|ƒ}t |t|j|jƒ|ƒ}|j |ƒ}|S)Nz (+-)INF * 0z 0 * (+-)INFrPÚ1)ršr“rr6rOrˆrƒrcr r;rNr5r¶r7rhr_rT)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ž|j||ƒ}|rN|S|jƒrj|jƒrj|jtdƒS|jƒrzt |S|jƒrž|jt dƒt |d|j ƒƒS|sÀ|s²|jt dƒS|jtd|ƒ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|ƒ|ƒ}|j|ƒS) Nz(+-)INF/(+-)INFzDivision by infinityrPz0 / 0zx / 0r%r-rœrx)ršr“rr6rOrˆrƒrcr r;rr5ÚEtinyrr rNrer7r?rhÚdivmodrTr_r¶) r.r…r/r<r:rUÚcoeffÚshiftr¾r¿Ú remainderÚ ideal_expr'r'r)Ú __truediv__QsP          zDecimal.__truediv__c Cs |j|jA}|jƒr|j}nt|j|jƒ}|jƒ|jƒ}| sP|jƒsP|dkrjt|ddƒ|j||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|jtdƒ} | | fS)Nr+rPr%rœz%quotient too large in //, % or divmodr�)r6rƒrNr§r�r5r¼r>r?rhrUrTrÆr_rcr) r.r…r/r<rÊÚexpdiffr¾r¿ÚqÚrr:r'r'r)Ú_divideŒs*    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ƒ}|j||ƒ}|r:||fS|j|jA}|jƒr~|jƒrj|jtdƒ}||fSt||jtdƒfS|s´|sš|jt dƒ}||fS|jt d|ƒ|jtdƒfS|j ||ƒ\}}|j |ƒ}||fS)Nzdivmod(INF, INF)zINF % xz divmod(0, 0)zx // 0zx % 0) ršr“rrˆr6rƒrcr 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ƒ}|j||ƒ}|r6|S|jƒrJ|jtdƒS|sj|r^|jtdƒS|jtdƒS|j||ƒd}|j |ƒ}|S)NzINF % xzx % 0z0 % 0r-) ršr“rrˆrƒrcr 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�}|j||ƒ}|r.|S|jƒrB|jtdƒS|sb|rV|jtdƒS|jtdƒS|jƒr|t|ƒ}|j|ƒSt |j |j ƒ}|s¦t |j d|ƒ}|j|ƒS|j ƒ|j ƒ}||jdkrÎ|jtƒS|d krî|j||jƒ}|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˜|jtƒS|j } | d k�r¶d| } | } t | t| ƒ|ƒ}|j|ƒS) NT)r™zremainder_near(infinity, x)zremainder_near(x, 0)zremainder_near(0, 0)rPr-r+rœr%r�)rršrˆrƒrcr rrr¶r§rNr5r6r�r?rr¼r>rhrUrTrÆr_) r.r…r/r:Úideal_exponentrÌr¾r¿rÍrÎr<r'r'r)Úremainder_nearsZ         zDecimal.remainder_nearcCsœt|ƒ}|tkr|S|dkr"tƒ}|j||ƒ}|r6|S|jƒrb|jƒrR|jtdƒSt|j|jAS|sŒ|r€|jt d|j|jAƒS|jt dƒS|j ||ƒdS)Nz INF // INFzx // 0z0 // 0r%) ršr“rrˆrƒrcr r;r6r rrÏ)r.r…r/r:r'r'r)Ú __floordiv__Ls$   zDecimal.__floordiv__cCs"t|ƒ}|tkr|S|j||d�S)N)r/)ršr“r×)r.r…r/r'r'r)Ú __rfloordiv__hszDecimal.__rfloordiv__cCs8|jƒr(|jƒrtdƒ‚|jr"dnd}nt|ƒ}t|ƒS)Nz%Cannot convert signaling NaN to floatz-nanÚnan)r�r‰rkr6r_ro)r.Úsr'r'r)Ú __float__os zDecimal.__float__cCst|jr(|jƒrtdƒ‚n|jƒ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œrPr‚) rOr�rkrƒr¦r6rNrTr7)r.rÚr'r'r)Ú__int__ys   zDecimal.__int__cCs|S)Nr')r.r'r'r)Úrealˆsz Decimal.realcCstdƒS)Nr%)r)r.r'r'r)ÚimagŒsz Decimal.imagcCs|S)Nr')r.r'r'r)Ú conjugate�szDecimal.conjugatecCs tt|ƒƒS)N)Úcomplexro)r.r'r'r)Ú __complex__“szDecimal.__complex__cCsR|j}|j|j}t|ƒ|krJ|t|ƒ|d…jdƒ}t|j||jdƒSt|ƒS)NrPT) r7r?Úclamprerfr5r6rNr)r.r/ZpayloadZmax_payload_lenr'r'r)r8–s   zDecimal._fix_nancCsX|jr |jƒr|j|ƒSt|ƒS|jƒ}|jƒ}|s€|j|g|j}tt |j |ƒ|ƒ}||j krx|j t ƒt |jd|ƒSt|ƒSt|jƒ|j |j}||krÆ|j td|jƒ}|j tƒ|j 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š|j td|jƒ}nt |j| |ƒ}| �r¾|�r¾|j tƒ|�rÎ|j tƒ| �rÞ|j tƒ|j tƒ|�sø|j t ƒ|S|�r |j tƒ|jdk�rP|j |k�rP|j t ƒ|jd|j |} t |j| |ƒSt|ƒS)NrPz above Emaxr%rÃr-r‚)rOr�r8rrÅÚEtopr@râr§r»rNrcrr5r6rer7r?rr r Ú_pick_rounding_functionr>r_rTrr )r.r/rÅrãÚexp_maxZnew_expZexp_minr:Zself_is_subnormalrwZrounding_methodÚchangedrÇr�r'r'r)r¶¢sn                     z Decimal._fixcCst|j|ƒrdSdSdS)Nr%r-r‚)Ú _all_zerosr7)r.r?r'r'r)Ú _round_downs zDecimal._round_downcCs |j|ƒ S)N)rè)r.r?r'r'r)Ú _round_upszDecimal._round_upcCs*|j|dkrdSt|j|ƒr"dSdSdS)NZ56789r-r%r‚)r7rç)r.r?r'r'r)Ú_round_half_ups  zDecimal._round_half_upcCst|j|ƒrdS|j|ƒSdS)Nr-r‚)Ú _exact_halfr7rê)r.r?r'r'r)Ú_round_half_downs zDecimal._round_half_downcCs8t|j|ƒr*|dks&|j|ddkr*dS|j|ƒSdS)Nr%r-Ú02468r‚)rër7rê)r.r?r'r'r)Ú_round_half_even#s zDecimal._round_half_evencCs |jr|j|ƒS|j|ƒ SdS)N)r6rè)r.r?r'r'r)Ú_round_ceiling+s zDecimal._round_ceilingcCs |js|j|ƒS|j|ƒ SdS)N)r6rè)r.r?r'r'r)Ú _round_floor2s zDecimal._round_floorcCs0|r |j|ddkr |j|ƒS|j|ƒ SdS)Nr-Z05)r7rè)r.r?r'r'r)Ú _round_05up9s zDecimal._round_05up)rrrrrrrrcCsb|dk r2t|tƒstdƒ‚tdd| ƒ}|j|ƒS|jrR|jƒrJtdƒ‚ntdƒ‚t|j dt ƒƒS)Nz+Second argument to round should be integralr%rÃzcannot round a NaNzcannot round an infinity) r^rTrqr5ÚquantizerOržrkr¦r¼r)r.r4rUr'r'r)Ú __round__Ks/   zDecimal.__round__cCs0|jr |jƒrtdƒ‚ntdƒ‚t|jdtƒƒS)Nzcannot round a NaNzcannot round an infinityr%)rOržrkr¦rTr¼r)r.r'r'r)Ú __floor__‰s  zDecimal.__floor__cCs0|jr |jƒrtdƒ‚ntdƒ‚t|jdtƒƒS)Nzcannot round a NaNzcannot round an infinityr%)rOržrkr¦rTr¼r)r.r'r'r)Ú__ceil__˜s  zDecimal.__ceil__cCst|dd�}t|dd�}|js$|jrÚ|dkr2tƒ}|jdkrJ|jtd|ƒS|jdkrb|jtd|ƒS|jdkrr|}nf|jdkr‚|}nV|jdkr®|sœ|jtdƒSt|j|jA}n*|jdkrØ|sÈ|jtdƒSt|j|jA}n0t|j|jAt t |j ƒt |j ƒƒ|j|jƒ}|j ||ƒS) NT)r™rXr„r4rYzINF * 0 in fmaz0 * INF in fma) ršrOrrNrcr r;r6r5r_rTr7rÀ)r.r…Zthirdr/Úproductr'r'r)Úfma§s6          z Decimal.fmac CsÚt|ƒ}|tkr|St|ƒ}|tkr(|S|dkr6tƒ}|jƒ}|jƒ}|jƒ}|sZ|sZ|rÂ|dkrp|jtd|ƒS|dkr†|jtd|ƒS|dkrœ|jtd|ƒS|rª|j|ƒS|r¸|j|ƒS|j|ƒS|jƒoØ|jƒoØ|jƒsæ|jtdƒS|dkrú|jtdƒS|�s |jtdƒS|jƒ|j k�r(|jtdƒS| �rD| �rD|jtdƒS|j ƒ�rTd}n|j }t t |ƒƒ}t|jƒƒ}t|jƒƒ} |j |td |j|ƒ|}x t| jƒD]} t|d |ƒ}�q¦Wt|| 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�rcr r8Ú _isintegerr�r?Ú_isevenr6rgrTrhÚto_integral_valuer¡rUÚranger5r_) 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Ì| } |jƒoÜ|jdk�r|jt|ƒ} t| | |dƒ} nd} tddd| | | ƒS|jdk�rÄ|d} | dk�rÊ|| @|k�rPdSt |ƒd} |d d }|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�rHdSt | ||ƒ} t |||ƒ}| dk�sx|dk�r|dS| |k�rŠdSd| }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| }}x:|d|dk�oldkn�rˆ|d}|d}�qPWx:|d |d k�o¨dkn�rÄ|d }|d }�qŒW|dk�rt|dk�rè||k�rèdSt ||ƒ\}}|dk�rdSdt |ƒ | >}x>t |||dƒ\}}||k�r>Pn||d||}�qW||k�oh|dk�spdS|}|dk�r˜||dt|ƒk�r˜dS||}||9}|d|k�rºdSt |ƒ}|jƒ�rþ|jdk�rþ|jt|ƒ} t|| |t |ƒƒ} nd} td|d| || ƒS)Nrœr%r-rÃrPr+érªéé]éArxérZéd)r+rrªr)rhrTrUr<rør6rNr§r5Ú_nbitsrer_Ú_decimal_lshift_exactrÆrgÚ _log10_lb)r.r…ÚpÚxÚxcÚxeÚyÚycÚyerþrÕZzerosZ last_digitr¬ZemaxrÉrtr4Zxc_bitsÚremÚarÍrÎZstr_xcr'r'r)Ú _power_exact(sÒ:                  &&&&    zDecimal._power_exactcCs@|dk r|j|||ƒSt|ƒ}|tkr*|S|dkr8tƒ}|j||ƒ}|rL|S|sd|s`|jtdƒStSd}|jdkr |j ƒrˆ|j ƒs˜d}n|r˜|jtdƒS|j ƒ}|sÂ|jdkrºt |ddƒSt |S|jƒrè|jdkrÜt |St |ddƒS|tk�rŽ|j ƒ�rZ|jdk�rd}n||jk�r"|j}nt|ƒ}|j|}|d|jk�rxd|j}|jtƒn|jtƒ|jtƒd|j}t |dd| |ƒS|jƒ}|jƒ�rÈ|jdk|dkk�rÀt |ddƒSt |Sd}d} |jƒ|jƒ} |dk|jdkk�r| tt|jƒƒk�rHt |d|jdƒ}n,|jƒ} | tt| ƒƒk�rHt |d| dƒ}|dk�rŒ|j||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|ƒ|ƒ}| �r2|j ƒ �r2t|jƒ|jk�r�|jdt|jƒ}t |j|jd||j|ƒ}|j ƒ}|j!ƒxt"D]}d|j#|<�q¦W|j$|ƒ}|jtƒ|j%t&�rä|jt'ƒ|j%t(�r|jt(d |jƒx:t't&ttt)fD]}|j%|�r|j|ƒ�qWn |j$|ƒ}|S) Nz0 ** 0r%r-z+x ** y with x negative and y not an integerrPrÃFTrZrxrœz above Emax)*rršr“rrˆrcr Ú_Oner6rørùrµr5r;rƒr?rTrNr r r�Ú_log10_exp_boundrer_r@rÅrr7rhrUr<Ú_dpowerrGrHÚ_signalsÚtrapsr¶Úflagsr rrr)r.r…rür/r:Z result_signZ multiplierrUZself_adjÚexactZboundrÅr r r r rrrÚextrarÇrÌ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|j|ƒ}|jƒr>|S|sPt|jddƒS|j|jƒg|j }t |j ƒ}|j }x.|j |ddkr¢||kr¢|d7}|d8}qvWt|j|j d|…|ƒS)N)r/rPr%r-) rrOrˆr¶rƒr5r6r@rãrârer7rN)r.r/r:ÚdupråÚendrUr'r'r)Ú normalizeô s$    zDecimal.normalizecCs¨t|dd�}|dkrtƒ}|dkr(|j}|js4|jr||j||ƒ}|rH|S|jƒsX|jƒr||jƒrp|jƒrpt|ƒS|jtdƒS|j ƒ|j ko–|j kns¨|jtdƒS|sÆt |j d|j ƒ}|j|ƒS|jƒ}||j krä|jtdƒS||j d|jk�r|jtdƒS|j|j |ƒ}|jƒ|j k�r0|jtdƒSt|jƒ|jk�rN|jtdƒS|�rn|jƒ|jk�rn|jtƒ|j |j k�rš||k�r�|jtƒ|jtƒ|j|ƒ}|S) NT)r™zquantize with one INFz)target exponent out of bounds in quantizerPz9exponent of quantize result too large for current contextr-z7quantize result has too many digits for current context)ršrr>rOrˆrƒrrcr rÅrNr@r5r6r¶r�r?r¼rer7ÚEminr r r )r.rUr>r/r:rŽr'r'r)rò sT           zDecimal.quantizecCsDt|dd�}|js|jr8|jƒr(|jƒp6|jƒo6|jƒS|j|jkS)NT)r™)ršrOržÚ is_infiniterN)r.r…r/r'r'r)Ú same_quantumJ 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)NrPr%rÃr-) rOrr5r6rNr7rerär_rT)r.rUr>rwZ this_functionrærÇr'r'r)r¼Y s"    zDecimal._rescalecCsh|dkrtdƒ‚|js| r$t|ƒS|j|jƒd||ƒ}|jƒ|jƒkrd|j|jƒd||ƒ}|S)Nr%z'argument should be at least 1 in _roundr-)rkrOrr¼r�)r.Úplacesr>r:r'r'r)Ú_round{ s  zDecimal._roundcCsŽ|jr"|j|d�}|r|St|ƒS|jdkr4t|ƒS|sFt|jddƒS|dkrTtƒ}|dkrb|j}|jd|ƒ}||kr€|j t ƒ|j t ƒ|S)N)r/r%rP) rOrˆrrNr5r6rr>r¼rcr r )r.r>r/r:r'r'r)Úto_integral_exact’ s$      zDecimal.to_integral_exactcCs`|dkrtƒ}|dkr|j}|jr>|j|d�}|r6|St|ƒS|jdkrPt|ƒS|jd|ƒSdS)N)r/r%)rr>rOrˆrrNr¼)r.r>r/r:r'r'r)rú¯ s  zDecimal.to_integral_valuecCsà|dkrtƒ}|jrB|j|d�}|r(|S|jƒrB|jdkrBt|ƒS|sdt|jd|jdƒ}|j|ƒS|jdkrz|j 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| ƒ|ƒ}|jƒ}|jtƒ} |j|ƒ}| |_|S) N)r/r%rPr+r-zsqrt(-x), x > 0rœrTrx)rrOrˆrƒr6rr5rNr¶rcr r?rhrUrTrer7rÆr_Ú _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~|jƒ}|jƒ}|s>|r~|dkrX|dkrX|j|ƒS|dkrr|dkrr|j|ƒS|j||ƒS|j|ƒ}|dkrš|j|ƒ}|dkr¨|}n|}|j|ƒS)NT)r™r-r%r‚)ršrrOr�r¶rˆr�Ú compare_total)r.r…r/ÚsnÚonr*r:r'r'r)r»% s&       z Decimal.maxcCs¶t|dd�}|dkrtƒ}|js&|jr~|jƒ}|jƒ}|s>|r~|dkrX|dkrX|j|ƒS|dkrr|dkrr|j|ƒS|j||ƒS|j|ƒ}|dkrš|j|ƒ}|dkr¨|}n|}|j|ƒS)NT)r™r-r%r‚)ršrrOr�r¶rˆr�r-)r.r…r/r.r/r*r:r'r'r)r§O s&       z Decimal.mincCs8|jr dS|jdkrdS|j|jd…}|dt|ƒkS)NFr%TrP)rOrNr7re)r.Úrestr'r'r)røq s  zDecimal._isintegercCs(| s|jdkrdS|jd|jdkS)Nr%Tr-rír‚)rNr7)r.r'r'r)rùz szDecimal._isevenc Cs.y|jt|jƒdStk r(dSXdS)Nr-r%)rNrer7rq)r.r'r'r)r�€ szDecimal.adjustedcCs|S)Nr')r.r'r'r)Ú canonicalˆ szDecimal.canonicalcCs.t|dd�}|j||ƒ}|r |S|j||d�S)NT)r™)r/)ršr‹r›)r.r…r/r:r'r'r)Úcompare_signal� s   zDecimal.compare_signalcCsft|dd�}|jr|j rtS|j r0|jr0tS|j}|jƒ}|jƒ}|sP|�r||kr¤t|jƒ|jf}t|jƒ|jf}||krŒ|rˆtStS||kr |rœtStStS|rÚ|dkr´tS|dkrÀtS|dkrÌtS|dkrØtSn4|dkrætS|dkròtS|dk�rtS|dk�rtS||k�rtS||k�r*tS|j|jk�rF|�rBtStS|j|jk�rb|�r^tStStS)NT)r™r-r+) ršr6Ú _NegativeOnerr�rer7Ú_ZerorN)r.r…r/r<Zself_nanZ other_nanZself_keyZ other_keyr'r'r)r-œ sf      zDecimal.compare_totalcCs&t|dd�}|jƒ}|jƒ}|j|ƒS)NT)r™)ršr´r-)r.r…r/rÚÚor'r'r)Úcompare_total_magå s zDecimal.compare_total_magcCstd|j|j|jƒS)Nr%)r5r7rNrO)r.r'r'r)r´ð szDecimal.copy_abscCs2|jrtd|j|j|jƒStd|j|j|jƒSdS)Nr%r-)r6r5r7rNrO)r.r'r'r)rµô szDecimal.copy_negatecCs"t|dd�}t|j|j|j|jƒS)NT)r™)ršr5r6r7rNrO)r.r…r/r'r'r)Ú copy_signû s  zDecimal.copy_signc Csì|dkrtƒ}|j|d�}|r"|S|jƒd kr2tS|s:tS|jƒdkrNt|ƒS|j}|jƒ}|jdkr–|t t |j ddƒƒkr–t dd|j dƒ}�n0|jdkrÔ|t t |j ƒ ddƒƒkrÔt dd|j ƒdƒ}nò|jdkoæ|| k�r t ddd|dd| ƒ}n¼|jdk�rB|| dk�rBt dd|d| dƒ}n„t|ƒ}|j|j}}|jdk�rj| }d}xFt||||ƒ\} } | dd t t | ƒƒ|d�r¨P|d7}�qpWt dt | ƒ| ƒ}|jƒ}|jtƒ} |j|ƒ}| |_|S) N)r/r-r%rZrÃrPr=rxrœr‚)rrˆrƒr4rrr?r�r6rer_r@r5rÅrhrTrUr<Ú_dexpr'r(rr¶r>) r.r/r:r Úadjr)r*r¬rrÇrUr>r'r'r)rU sJ   $(  "  z Decimal.expcCsdS)NTr')r.r'r'r)Ú is_canonicalL szDecimal.is_canonicalcCs|j S)N)rO)r.r'r'r)Ú is_finiteT szDecimal.is_finitecCs |jdkS)NrY)rN)r.r'r'r)r"\ szDecimal.is_infinitecCs |jdkS)Nr4rX)r4rX)rN)r.r'r'r)rž` szDecimal.is_nancCs,|js | rdS|dkrtƒ}|j|jƒkS)NF)rOrr!r�)r.r/r'r'r)Ú is_normald s  zDecimal.is_normalcCs |jdkS)Nr4)rN)r.r'r'r)rŠl szDecimal.is_qnancCs |jdkS)Nr-)r6)r.r'r'r)Ú is_signedp szDecimal.is_signedcCs |jdkS)NrX)rN)r.r'r'r)r‰t szDecimal.is_snancCs,|js | rdS|dkrtƒ}|jƒ|jkS)NF)rOrr�r!)r.r/r'r'r)Ú is_subnormalx s  zDecimal.is_subnormalcCs|j o|jdkS)NrP)rOr7)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�r‚)rNrer7r_rhrTrU)r.r9r)r*r¬ÚnumÚdenr'r'r)Ú _ln_exp_bound„ szDecimal._ln_exp_boundc Cs |dkrtƒ}|j|d�}|r"|S|s*tS|jƒdkr:tS|tkrFtS|jdkr\|jt dƒSt |ƒ}|j |j }}|j }||jƒd}x>t|||ƒ}|ddttt|ƒƒƒ|dr¼P|d7}qŠWtt |dkƒtt|ƒƒ| ƒ}|jƒ}|jtƒ} |j|ƒ}| |_|S) N)r/r-zln of a negative valuer+rxrœrZr%)rrˆÚ_NegativeInfinityrƒÚ _Infinityrr4r6rcr rhrTrUr?rCÚ_dlogrer_rgr5r'r(rr¶r>) r.r/r:r)r*r¬r r$rÇr>r'r'r)Úln� 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œéçZ231r�r‚)rNrer7r_rhrTrU)r.r9r)r*r¬rArBr'r'r)rÏ s  zDecimal._log10_exp_boundc CsH|dkrtƒ}|j|d�}|r"|S|s*tS|jƒdkr:tS|jdkrP|jtdƒS|jddkr˜|jdd…dt |jƒdkr˜t |j t |jƒdƒ}nŠt |ƒ}|j |j}}|j}||jƒd}x>t|||ƒ}|dd t tt|ƒƒƒ|drøP|d 7}qÆWtt |dkƒtt|ƒƒ| ƒ}|jƒ}|jtƒ} |j|ƒ}| |_|S) N)r/r-zlog10 of a negative valuer%rÃrPr+rxrœrZ)rrˆrDrƒrEr6rcr r7rerrNrhrTrUr?rÚ_dlog10r_rgr5r'r(rr¶r>) r.r/r:r)r*r¬r r$rÇr>r'r'r)Úlog10í s:   . $   z Decimal.log10cCsV|j|d�}|r|S|dkr"tƒ}|jƒr.tS|s@|jtddƒSt|jƒƒ}|j|ƒS)N)r/zlogb(0)r-) rˆrrƒrErcr rr�r¶)r.r/r:r'r'r)Úlogb s  z Decimal.logbcCs8|jdks|jdkrdSx|jD]}|dkr dSq WdS)Nr%FZ01T)r6rNr7)r.Údigr'r'r)Ú _islogical> s  zDecimal._islogicalcCs€|jt|ƒ}|dkr$d||}n|dkr<||j d…}|jt|ƒ}|dkr`d||}n|dkrx||j d…}||fS)Nr%rP)r?re)r.r/ÚopaÚopbZdifr'r'r)Ú _fill_logicalL szDecimal._fill_logicalcCs~|dkrtƒ}t|dd�}|jƒ s.|jƒ r8|jtƒS|j||j|jƒ\}}djdd„t||ƒDƒƒ}t d|j dƒpxddƒS)NT)r™rRcSs$g|]\}}tt|ƒt|ƒ@ƒ‘qSr')r_rT)Ú.0rÚbr'r'r)ú g sz'Decimal.logical_and..r%rP) rršrMrcr rPr7rmÚzipr5rf)r.r…r/rNrOr€r'r'r)Ú logical_andY s  zDecimal.logical_andcCs(|dkrtƒ}|jtdd|jdƒ|ƒS)Nr%rÃ)rÚ logical_xorr5r?)r.r/r'r'r)Úlogical_invertj szDecimal.logical_invertcCs~|dkrtƒ}t|dd�}|jƒ s.|jƒ r8|jtƒS|j||j|jƒ\}}djdd„t||ƒDƒƒ}t d|j dƒpxddƒS)NT)r™rRcSs$g|]\}}tt|ƒt|ƒBƒ‘qSr')r_rT)rQrrRr'r'r)rS sz&Decimal.logical_or..r%rP) rršrMrcr rPr7rmrTr5rf)r.r…r/rNrOr€r'r'r)Ú logical_orq s  zDecimal.logical_orcCs~|dkrtƒ}t|dd�}|jƒ s.|jƒ r8|jtƒS|j||j|jƒ\}}djdd„t||ƒDƒƒ}t d|j dƒpxddƒS)NT)r™rRcSs$g|]\}}tt|ƒt|ƒAƒ‘qSr')r_rT)rQrrRr'r'r)rS� sz'Decimal.logical_xor..r%rP) rršrMrcr rPr7rmrTr5rf)r.r…r/rNrOr€r'r'r)rV‚ s  zDecimal.logical_xorcCs¾t|dd�}|dkrtƒ}|js&|jr~|jƒ}|jƒ}|s>|r~|dkrX|dkrX|j|ƒS|dkrr|dkrr|j|ƒS|j||ƒS|jƒj|jƒƒ}|dkr¢|j|ƒ}|dkr°|}n|}|j|ƒS)NT)r™r-r%r‚) ršrrOr�r¶rˆr´r�r-)r.r…r/r.r/r*r:r'r'r)Úmax_mag“ s&      zDecimal.max_magcCs¾t|dd�}|dkrtƒ}|js&|jr~|jƒ}|jƒ}|s>|r~|dkrX|dkrX|j|ƒS|dkrr|dkrr|j|ƒS|j||ƒS|jƒj|jƒƒ}|dkr¢|j|ƒ}|dkr°|}n|}|j|ƒS)NT)r™r-r%r‚) ršrrOr�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|jƒdkr2tS|jƒdkrTtdd|j|jƒƒS|jƒ}|jt ƒ|j ƒ|j |ƒ}||kr„|S|j tdd|j ƒdƒ|ƒS)N)r/r-r%r=rÃr‚)rrˆrƒrDr5r?rãrGr(rÚ_ignore_all_flagsr¶rÁrÅ)r.r/r:Únew_selfr'r'r)Ú next_minusÏ s"     zDecimal.next_minuscCs |dkrtƒ}|j|d�}|r"|S|jƒdkr2tS|jƒdkrTtdd|j|jƒƒS|jƒ}|jt ƒ|j ƒ|j |ƒ}||kr„|S|j tdd|j ƒdƒ|ƒS)N)r/r-r=r%rÃr‚)rrˆrƒrEr5r?rãrGr(rr[r¶rÀrÅ)r.r/r:r\r'r'r)Ú next_plusæ s"     zDecimal.next_pluscCsÞt|dd�}|dkrtƒ}|j||ƒ}|r.|S|j|ƒ}|dkrJ|j|ƒS|dkr^|j|ƒ}n |j|ƒ}|jƒr–|jt d|j ƒ|jt ƒ|jt ƒnD|j ƒ|jkrÚ|jtƒ|jtƒ|jt ƒ|jt ƒ|sÚ|jtƒ|S)NT)r™r%r-z Infinite result from next_towardr‚)ršrrˆr�r7r^r]rƒrcrr6r r r�r!rr r)r.r…r/r:Z comparisonr'r'r)Ú next_towardý s4             zDecimal.next_towardcCsˆ|jƒr dS|jƒrdS|jƒ}|dkr,dS|d kr8dS|jƒrN|jrJdSdS|dkr\tƒ}|j|d�rv|jrrd Sd S|jr€d Sd SdS)Nr„r©r-z +Infinityz -Infinityz-Zeroz+Zero)r/z -Subnormalz +Subnormalz-Normalz+Normalr‚)r‰rŠrƒr?r6rr>)r.r/Úinfr'r'r)Ú number_class+s, zDecimal.number_classcCstdƒS)Nrœ)r)r.r'r'r)ÚradixUsz Decimal.radixcCsø|dkrtƒ}t|dd�}|j||ƒ}|r.|S|jdkrB|jtƒS|j t|ƒko^|jknsn|jtƒS|jƒr~t |ƒSt|ƒ}|j }|jt |ƒ}|dkr°d||}n|dkrÆ|| d…}||d…|d|…}t |j |jdƒpðd|jƒS)NT)r™r%rP)rršrˆrNrcr r?rTrƒrr7rer5r6rf)r.r…r/r:ÚtorotÚrotdigÚtopadZrotatedr'r'r)ÚrotateYs,    " zDecimal.rotatecCsÀ|dkrtƒ}t|dd�}|j||ƒ}|r.|S|jdkrB|jtƒSd|j|j}d|j|j}|t|ƒkox|knsˆ|jtƒS|j ƒr˜t |ƒSt |j |j |jt|ƒƒ}|j|ƒ}|S)NT)r™r%r+r�)rršrˆrNrcr r@r?rTrƒrr5r6r7r¶)r.r…r/r:ZliminfZlimsupr~r'r'r)Úscalebzs"      zDecimal.scalebcCs|dkrtƒ}t|dd�}|j||ƒ}|r.|S|jdkrB|jtƒS|j t|ƒko^|jknsn|jtƒS|jƒr~t |ƒSt|ƒ}|j }|jt |ƒ}|dkr°d||}n|dkrÆ|| d…}|dkrÜ|d|…}n|d|}||j d…}t |j |jdƒ�p d|jƒS)NT)r™r%rP)rršrˆrNrcr r?rTrƒrr7rer5r6rf)r.r…r/r:rcrdreZshiftedr'r'r)rÈ“s2    "  z Decimal.shiftcCs|jt|ƒffS)N)Ú __class__r_)r.r'r'r)Ú __reduce__ºszDecimal.__reduce__cCst|ƒtkr|S|jt|ƒƒS)N)Útyperrhr_)r.r'r'r)Ú__copy__½s zDecimal.__copy__cCst|ƒtkr|S|jt|ƒƒS)N)rjrrhr_)r.Úmemor'r'r)Ú __deepcopy__Âs zDecimal.__deepcopy__cCsN|dkrtƒ}t||d�}|jrXt|j|ƒ}t|jƒƒ}|ddkrL|d7}t|||ƒS|ddkrvddg|j|d<|ddkr˜t |j|j |j dƒ}|j }|d}|dk �r|ddkrÎ|j |d |ƒ}nF|dd krê|j| |ƒ}n*|dd k�rt|j ƒ|k�r|j ||ƒ}| �rB|j d k�rB|dd k�rB|jd |ƒ}|j t|j ƒ} |ddk�r‚| �r||dk �r|d |} nd } nB|dd k�r–| } n.|dd k�rÄ|j d k�rÀ| dk�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)Ú _localeconvrjú%ÚgÚGr+Ú precisionÚeEr-zfF%ZgGr%rªrPrRiúÿÿÿ)rÚ_parse_format_specifierrOÚ _format_signr6r_r´Ú _format_alignr®r5r7rNr>r%r¼reÚ_format_number)r.Z specifierr/rnÚspecr<Úbodyr>rrr°r±rurvrUr'r'r)Ú __format__ÉsZ           "   zDecimal.__format__)rNr7r6rO)rPN)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__r]Ú classmethodrpr�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__rÝÚpropertyrÞrßrár8r¶rèrérêrìrîrïrðrñÚdicträrórôrõr÷rrrrr ròr#r¼r%r&rúÚ to_integralr,r»r§rørùr�r1r2r-r6r´rµr7rUr:r;r"ržr<rŠr=r‰r>r?rCrGrrJrKrMrPrUrWrXrVrYrZr]r^r_rarbrfrgrÈrirkrmrzr'r'r'r)r+s  ( !@  2 4    V   7 ;!  $    K     f  > , Un Y   = "   c * "  I   K   2 3          . * !  'FcCs&tjtƒ}||_||_||_||_|S)N)r\r]rr6r7rNrO)r<Z coefficientrþZspecialr.r'r'r)r5s  r5c@s$eZdZdd„Zdd„Zdd„ZdS)rMcCs|jƒ|_dS)N)rGÚ new_context)r.rƒr'r'r)Ú__init__9sz_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)rM3srMc @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 j ƒ|_ n.t ˆt ƒsêt ‡fdd„t ˆDƒƒ|_ nˆ|_ ˆdk�r t jt dƒ|_n0t ˆt ƒ�s4t ‡fdd„t ˆDƒƒ|_nˆ|_dS)Nc3s|]}|t|ˆkƒfVqdS)N)rT)rQrÚ)rr'r)ú nsz#Context.__init__..r%c3s|]}|t|ˆkƒfVqdS)N)rT)rQrÚ)rr'r)r‹us)rÚ NameErrorr?r>r!r@r®râÚ_ignored_flagsrrGr^r�rÚfromkeysr) r.r?r>r!r@r®rârrr�Zdcr')rrr)r„Us.   zContext.__init__cCs”t|tƒstd|ƒ‚|dkr<||kr†td||||fƒ‚nJ|dkrb||kr†td||||fƒ‚n$||ksr||kr†td||||fƒ‚tj|||ƒ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)r^rTrqrkr\Ú __setattr__)r.ÚnamersZvminZvmaxr'r'r)Ú_set_integer_checkys  zContext._set_integer_checkcCsht|tƒstd|ƒ‚x |D]}|tkrtd|ƒ‚qWx tD]}||kr>td|ƒ‚q>Wtj|||ƒS)Nz%s must be a signal dictz%s is not a valid signal dict)r^r�rqrÚKeyErrorr\r�)r.r�r~Úkeyr'r'r)Ú_set_signal_dict‡s    zContext._set_signal_dictcCsä|dkr|j||ddƒS|dkr0|j||ddƒS|dkrH|j||ddƒS|dkr`|j||ddƒS|d krx|j||ddƒS|d kr¢|tkr”td |ƒ‚tj|||ƒS|d ks²|d kr¾|j||ƒS|dkrÔtj|||ƒStd|ƒ‚dS)Nr?r-r`r!z-infr%r@r®râr>z%s: invalid rounding moderrr�z.'decimal.Context' object has no attribute '%s')r‘Ú_rounding_modesrqr\r�r”rK)r.r�rsr'r'r)r�’s(  zContext.__setattr__cCstd|ƒ‚dS)Nz%s cannot be deleted)rK)r.r�r'r'r)Ú __delattr__«szContext.__delattr__c CsNdd„|jjƒDƒ}dd„|jjƒDƒ}|j|j|j|j|j|j|j ||ffS)NcSsg|]\}}|r|‘qSr'r')rQÚsigrˆr'r'r)rS°sz&Context.__reduce__..cSsg|]\}}|r|‘qSr'r')rQr—rˆr'r'r)rS±s) rÚitemsrrhr?r>r!r@r®râ)r.rrr'r'r)ri¯s zContext.__reduce__cCs|g}|jdt|ƒƒdd„|jjƒDƒ}|jddj|ƒdƒdd„|jjƒDƒ}|jddj|ƒdƒdj|ƒ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)rQr}rˆr'r'r)rS½sz$Context.__repr__..zflags=[z, ú]cSsg|]\}}|r|j‘qSr')r1)rQr‡rˆr'r'r)rS¿sztraps=[ú))rlÚvarsrr˜rmr)r.rÚÚnamesr'r'r)r¨¶s zContext.__repr__cCsx|jD]}d|j|<qWdS)Nr%)r)r.Úflagr'r'r)rHÃ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>r!r@r®rârrr�)r.Úncr'r'r)r'ÍszContext._shallow_copyc Cs6t|j|j|j|j|j|j|jjƒ|j jƒ|j ƒ }|S)N) rr?r>r!r@r®rârrGrr�)r.rŸr'r'r)rGÔs z Context.copycGsZtj||ƒ}||jkr(|ƒj|f|žŽSd|j|<|j|sN|ƒj|f|žŽS||ƒ‚dS)Nr-)Ú_condition_mapÚgetr�r0rr)r.Z conditionZ explanationr(Úerrorr'r'r)rcÝs    zContext._raise_errorcCs |jtŽS)N)Ú _ignore_flagsr)r.r'r'r)r[ószContext._ignore_all_flagscGs|jt|ƒ|_t|ƒS)N)r�ri)r.rr'r'r)r£÷szContext._ignore_flagscGs<|rt|dttfƒr|d}x|D]}|jj|ƒq$WdS)Nr%)r^rjrir�Úremove)r.rr�r'r'r)Ú _regard_flagsþs zContext._regard_flagscCst|j|jdƒS)Nr-)rTr!r?)r.r'r'r)rÅsz Context.EtinycCst|j|jdƒS)Nr-)rTr@r?)r.r'r'r)rã sz Context.EtopcCs|j}||_|S)N)r>)r.rjr>r'r'r)r(szContext._set_roundingrPcCsjt|tƒr*||jƒksd|kr*|jtdƒSt||d�}|jƒr`t|jƒ|j |j kr`|jtdƒS|j |ƒS)NrQzAtrailing or leading whitespace and underscores are not permitted.)r/zdiagnostic info too long in NaN) r^r_rarcrrr�rer7r?râr¶)r.rAr~r'r'r)Úcreate_decimal#s zContext.create_decimalcCstj|ƒ}|j|ƒS)N)rrpr¶)r.r}r~r'r'r)Úcreate_decimal_from_float4s z!Context.create_decimal_from_floatcCst|dd�}|j|d�S)NT)r™)r/)ršrº)r.rr'r'r)rgFs z Context.abscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrÀr“rq)r.rrRrÎr'r'r)Úadd[s  z Context.addcCst|j|ƒƒS)N)r_r¶)r.rr'r'r)Ú_applypszContext._applycCst|tƒstdƒ‚|jƒS)Nz,canonical requires a Decimal as an argument.)r^rrqr1)r.rr'r'r)r1ss zContext.canonicalcCst|dd�}|j||d�S)NT)r™)r/)ršr›)r.rrRr'r'r)r›€s! zContext.comparecCst|dd�}|j||d�S)NT)r™)r/)ršr2)r.rrRr'r'r)r2¤s zContext.compare_signalcCst|dd�}|j|ƒS)NT)r™)ršr-)r.rrRr'r'r)r-Çs zContext.compare_totalcCst|dd�}|j|ƒS)NT)r™)ršr6)r.rrRr'r'r)r6äs zContext.compare_total_magcCst|dd�}|jƒS)NT)r™)ršr´)r.rr'r'r)r´ìs zContext.copy_abscCst|dd�}t|ƒS)NT)r™)ršr)r.rr'r'r)Ú copy_decimalùs zContext.copy_decimalcCst|dd�}|jƒS)NT)r™)ršrµ)r.rr'r'r)rµs zContext.copy_negatecCst|dd�}|j|ƒS)NT)r™)ršr7)r.rrRr'r'r)r7s zContext.copy_signcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrËr“rq)r.rrRrÎr'r'r)Údivide+s  zContext.dividecCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršr×r“rq)r.rrRrÎr'r'r)Ú divide_intPs  zContext.divide_intcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrÑr“rq)r.rrRrÎr'r'r)rÆgs  zContext.divmodcCst|dd�}|j|d�S)NT)r™)r/)ršrU)r.rr'r'r)rU|s z Context.expcCst|dd�}|j|||d�S)NT)r™)r/)ršr÷)r.rrRr*r'r'r)r÷”s z Context.fmacCst|tƒstdƒ‚|jƒS)Nz/is_canonical requires a Decimal as an argument.)r^rrqr:)r.rr'r'r)r:«s zContext.is_canonicalcCst|dd�}|jƒS)NT)r™)ršr;)r.rr'r'r)r;¸s zContext.is_finitecCst|dd�}|jƒS)NT)r™)ršr")r.rr'r'r)r"Îs zContext.is_infinitecCst|dd�}|jƒS)NT)r™)ršrž)r.rr'r'r)ržÝs zContext.is_nancCst|dd�}|j|d�S)NT)r™)r/)ršr<)r.rr'r'r)r<ís zContext.is_normalcCst|dd�}|jƒS)NT)r™)ršrŠ)r.rr'r'r)rŠs zContext.is_qnancCst|dd�}|jƒS)NT)r™)ršr=)r.rr'r'r)r=s zContext.is_signedcCst|dd�}|jƒS)NT)r™)ršr‰)r.rr'r'r)r‰$s zContext.is_snancCst|dd�}|j|d�S)NT)r™)r/)ršr>)r.rr'r'r)r>4s zContext.is_subnormalcCst|dd�}|jƒS)NT)r™)ršr?)r.rr'r'r)r?Js zContext.is_zerocCst|dd�}|j|d�S)NT)r™)r/)ršrG)r.rr'r'r)rG[s z Context.lncCst|dd�}|j|d�S)NT)r™)r/)ršrJ)r.rr'r'r)rJqs z Context.log10cCst|dd�}|j|d�S)NT)r™)r/)ršrK)r.rr'r'r)rK�s z Context.logbcCst|dd�}|j||d�S)NT)r™)r/)ršrU)r.rrRr'r'r)rU§s zContext.logical_andcCst|dd�}|j|d�S)NT)r™)r/)ršrW)r.rr'r'r)rWÂs zContext.logical_invertcCst|dd�}|j||d�S)NT)r™)r/)ršrX)r.rrRr'r'r)rXÕs zContext.logical_orcCst|dd�}|j||d�S)NT)r™)r/)ršrV)r.rrRr'r'r)rVðs zContext.logical_xorcCst|dd�}|j||d�S)NT)r™)r/)ršr»)r.rrRr'r'r)r» s z Context.maxcCst|dd�}|j||d�S)NT)r™)r/)ršrY)r.rrRr'r'r)rY&s zContext.max_magcCst|dd�}|j||d�S)NT)r™)r/)ršr§)r.rrRr'r'r)r§7s z Context.mincCst|dd�}|j||d�S)NT)r™)r/)ršrZ)r.rrRr'r'r)rZRs zContext.min_magcCst|dd�}|j|d�S)NT)r™)r/)ršr·)r.rr'r'r)Úminuscs z Context.minuscCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrÄr“rq)r.rrRrÎr'r'r)Úmultiplyts  zContext.multiplycCst|dd�}|j|d�S)NT)r™)r/)ršr])r.rr'r'r)r]”s zContext.next_minuscCst|dd�}|j|d�S)NT)r™)r/)ršr^)r.rr'r'r)r^¨s zContext.next_pluscCst|dd�}|j||d�S)NT)r™)r/)ršr_)r.rrRr'r'r)r_¼s zContext.next_towardcCst|dd�}|j|d�S)NT)r™)r/)ršr )r.rr'r'r)r ßs zContext.normalizecCst|dd�}|j|d�S)NT)r™)r/)ršra)r.rr'r'r)ra÷s/ zContext.number_classcCst|dd�}|j|d�S)NT)r™)r/)ršr¸)r.rr'r'r)Úplus)s z Context.pluscCs:t|dd�}|j|||d�}|tkr2td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrr“rq)r.rrRrürÎr'r'r)Úpower:s I z Context.powercCst|dd�}|j||d�S)NT)r™)r/)ršrò)r.rrRr'r'r)ròŠs7 zContext.quantizecCstdƒS)Nrœ)r)r.r'r'r)rbÄsz Context.radixcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrÓr“rq)r.rrRrÎr'r'r)rÉÌs  zContext.remaindercCst|dd�}|j||d�S)NT)r™)r/)ršrÖ)r.rrRr'r'r)rÖòs zContext.remainder_nearcCst|dd�}|j||d�S)NT)r™)r/)ršrf)r.rrRr'r'r)rfs zContext.rotatecCst|dd�}|j|ƒS)NT)r™)ršr#)r.rrRr'r'r)r#1s zContext.same_quantumcCst|dd�}|j||d�S)NT)r™)r/)ršrg)r.rrRr'r'r)rgIs zContext.scalebcCst|dd�}|j||d�S)NT)r™)r/)ršrÈ)r.rrRr'r'r)rÈ\s z Context.shiftcCst|dd�}|j|d�S)NT)r™)r/)ršr,)r.rr'r'r)r,zs z Context.sqrtcCs8t|dd�}|j||d�}|tkr0td|ƒ‚n|SdS)NT)r™)r/zUnable to convert %s to Decimal)ršrÁr“rq)r.rrRrÎr'r'r)Úsubtractšs  zContext.subtractcCst|dd�}|j|d�S)NT)r™)r/)ršr³)r.rr'r'r)r³±s zContext.to_eng_stringcCst|dd�}|j|d�S)NT)r™)r/)ršr²)r.rr'r'r)Ú to_sci_stringÍs zContext.to_sci_stringcCst|dd�}|j|d�S)NT)r™)r/)ršr&)r.rr'r'r)r&Õs zContext.to_integral_exactcCst|dd�}|j|d�S)NT)r™)r/)ršrú)r.rr'r'r)rúós zContext.to_integral_value) NNNNNNNNN)N)rP)N)Wr1r2r3r„r‘r”r�r–rir¨rHržr'rGrkrcr[r£r¥r¤rÅrãr(r¦r§rgr¨r©r1r›r2r-r6r´rªrµr7r«r¬rÆrUr÷r:r;r"ržr<rŠr=r‰r>r?rGrJrKrUrWrXrVr»rYr§rZr­r®r]r^r_r rar¯r°ròrbrÉrÖrfr#rgrÈr,r±r³r²r&rúr‚r'r'r'r)rBs¬ "     $#   %  #2 P:&" c@s&eZdZd Zd dd„Zdd„ZeZdS) rhr<rTrUNcCsf|dkrd|_d|_d|_nFt|tƒrD|j|_t|jƒ|_|j|_n|d|_|d|_|d|_dS)Nr%r-r+)r<rTrUr^rr6r7rN)r.rsr'r'r)r„s     z_WorkRep.__init__cCsd|j|j|jfS)Nz (%r, %r, %r))r<rTrU)r.r'r'r)r¨(sz_WorkRep.__repr__)r<rTrU)N)r1r2r3r{r„r¨r²r'r'r'r)rhs rhcCsš|j|jkr|}|}n|}|}tt|jƒƒ}tt|jƒƒ}|jtd||dƒ}||jd|krpd|_||_|jd|j|j9_|j|_||fS)Nr-r+rœr‚)rUrer_rTr§)r¾r¿r?Ztmpr…Ztmp_lenZ other_lenrUr'r'r)r½/s r½cCsb|dkr dS|dkr |d|Stt|ƒƒ}t|ƒt|jdƒƒ}|| krPdS|d| SdS)Nr%rœrP)r_rgreÚrstrip)r4r¬Zstr_nZval_nr'r'r)rOs   rcCsF|dks|dkrtdƒ‚d}x$||kr@||| |d?}}qW|S)Nr%z3Both arguments to _sqrt_nearest should be positive.r-)rk)r4rrRr'r'r)Ú _sqrt_nearestds  r´cCs2d|>||?}}|d||d@|d@|kS)Nr-r+r')r rÈrRrÍr'r'r)Ú_rshift_nearestssrµcCs&t||ƒ\}}|d||d@|kS)Nr+r-)rÆ)rrRrÍrÎr'r'r)Ú _div_nearest{sr¶rc 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-rœrZiöÿÿÿr‚)rgr¶r´rµrTrer_rû) r ÚMÚLrÚRÚTZyshiftÚwrr'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)rer_r¶r¼Ú _log10_digits) r*r¬r r+r}r·rÚlog_dZlog_10Z log_tenpowerr'r'r)rI³s     rIc 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)Nr+r-r%rœr)rer_r¶r¼rgr½) r*r¬r r+r}rr¾rZ f_log_tenr'r'r)rFÕs"   rFc@seZdZdd„Zdd„ZdS)Ú _Log10MemoizecCs d|_dS)NZ/23025850929940456840179914546843642076011014886)rw)r.r'r'r)r„sz_Log10Memoize.__init__cCsš|dkrtdƒ‚|t|jƒkr„d}xLd||d}tttd||ƒdƒƒ}|| d…d|krdP|d7}q$W|jdƒdd …|_t|jd|d…ƒS) Nr%zp should be nonnegativerZrœr+rrPr-r‚)rkrerwr_r¶r¼r³rT)r.r rr·rwr'r'r)Ú getdigitss  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) NrœrZr-r%r+iöÿÿÿr‚r‚r‚)rrTrer_r¶rû) r r·r¸r¹rºrZMshiftrÿrr'r'r)Ú_iexp&s  rÁc Cs–|d7}td|tt|ƒƒdƒ}||}||}|dkrH|d|}n|d| }t|t|ƒƒ\}}t|d|ƒ}tt|d|ƒdƒ||dfS)Nr+r%r-rœièrZ)r»rer_rÆr½r¶rÁ) r*r¬r rrÍrÈZcshiftZquotrr'r'r)r8Ksr8c 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œ)rer_rgrFr¶r8) r r rrr rRZlxcrÈZpcrÇrUr'r'r)ros rréFé5é(ér@érœrx) rÃÚ2Ú3Ú4Ú5Ú6Ú7Ú8r=cCs0|dkrtdƒ‚t|ƒ}dt|ƒ||dS)Nr%z0The argument to _log10_lb should be nonnegative.r)rkr_re)r*Z correctionZstr_cr'r'r)r ™sr cCsLt|tƒr|St|tƒr t|ƒS|r8t|tƒr8tj|ƒS|rHtd|ƒ‚tS)NzUnable to convert %s to Decimal)r^rrTrorprqr“)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 |jtdƒ|tj|ƒfSttfS)Nr%r-z;strict semantics for mixing floats and Decimals are enabled)r^rÚ_numbersZRationalrOr5r6r_rTr7Ú denominatorrNÚ numeratorZComplexrÞrÝrorrrrcrpr“)r.r…r‘r/r'r'r)r’·s$    r’ri?B)r?r>rrr@r!r®râr[)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”tj|ƒ}|dkrtd|ƒ‚|jƒ}|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&tjƒ}|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<rSÚ minimumwidthrPrrr%rjZgGnr-r4rpÚ thousands_sepzJExplicit thousands separator conflicts with 'n' type in format specifier: ÚgroupingÚ decimal_pointrRrZr«)Ú_parse_format_specifier_regexÚmatchrkÚ groupdictrTÚ_localeÚ localeconv)Ú format_specrnrtZ format_dictrÑrÒr'r'r)rtDsN           rtc Cs´|d}|d}||t|ƒt|ƒ}|d}|dkrF|||}nj|dkr\|||}nT|dkrr|||}n>|dkr¨t|ƒd}|d|…||||d…}ntd ƒ‚|S) NrÖrÑrÒúus~           &         .  ^  0",# %$+   *      P % )