o
    ¨"`   ã                   @   s  d dl Z d dlZdZdZdZejd  dk rdZndZdZes*eZ	e
Z
eZddd„ZneZ	eZ
eZd dlZeedƒZejd	krNejjZejjd
krKdZndZndZdZde jvr‰z-zd dlZW n eyw   zd dlZW n	 eyt   e‚w Y nw e ¡ dkrƒdZejZ	W n   Y de jvr“de jv s˜de jv r¹zd dlZd dlm  m  m Z! ej"Ze!ZdZej#Z	W n   Y de jv rÁdZ$ndZ$e%e	d ƒƒZ&e	d ƒZ'e	dƒZ(e	dƒZ)e	dƒZ*e	dƒZ+zedkréeefZ,W dS eee&fZ,W dS  e-y
   edkrefZ,Y dS ee&fZ,Y dS w )é    Né   FTZpythonc                 C   sB   |du rt  d¡}|j}|du r|j}~n|du r|}tdƒ dS )zExecute code in a namespace.Né   zexec _code_ in _globs_, _locs_)ÚsysÚ	_getframeÚ	f_globalsÚf_localsÚexec)Z_code_Z_globs_Z_locs_Úframe© r
   ú6/usr/lib/python3/dist-packages/mpmath/libmp/backend.pyÚexec_%   s   
r   r   )r   é   é    é   é=   ZMPMATH_NOGMPYz1.03ÚgmpyZMPMATH_NOSAGEZ	SAGE_ROOTZMPMATH_SAGEÚsageZMPMATH_STRICTr   r   é   )NN).Úosr   r   r   Z
sage_utilsÚversion_infoÚpython3ZBACKENDZlongZMPZZxrangeZ
basestringr   ÚintÚrangeÚstrÚbuiltinsÚgetattrÚ	hash_infoÚmodulusZHASH_MODULUSÚwidthZ	HASH_BITSÚenvironZgmpy2ÚImportErrorÚversionZmpzZsage.allZsage.libs.mpmath.utilsZlibsZmpmathZutilsZ_sage_utilsÚallZIntegerZSTRICTÚtypeZMPZ_TYPEZMPZ_ZEROZMPZ_ONEZMPZ_TWOZ	MPZ_THREEZMPZ_FIVEZ	int_typesÚ	NameErrorr
   r
   r
   r   Ú<module>   s”    


ÿÿþ€ÿ


ü