
    z%iW#                     \    	 d dl Z d dlZd Zd Zd Zd Zd ZdZd Zd	 Z	d
 Z
d Zd Zd Zy)    Nc                   	 	 t         j                   d      di 	fd		fdt        j                         5 }t         j                  |_        t         j
                  |_        t         j                  |_        d|j                  t         j                  <   | dk  rd}|  } nd} | | j                               }|r| }d d d        |S # 1 sw Y   S xY w)	N      c                     	 j                  |       x}>| k  r| z  }n.| dz
  v r| dz
     x}|z   }n| dz	  } |       | |z
        z  }|| <   |S N   get)wresulttw2BITLIMD2memw2pows       ;/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/_pylong.pyr   zint_to_decimal.<locals>.w2pow'   s}    	? ggaj F)F{QQ#"1q5z/!Q.!V
 rU1r6]2CF    c                     |k  r |       S |dz	  }| |z	  }| ||z  z
  } ||       |||z
         |      z  z   S r    )	nr   r   hilor   Dinnerr   s	        r   r   zint_to_decimal.<locals>.inner:   sW    ;Q4K!V"W"(^R}uRR059<<<r   r   r   TF)decimalDecimallocalcontextMAX_PRECprecMAX_EMAXEmaxMIN_EMINEmintrapsInexact
bit_length)
r   ctxnegater   r   r   r   r   r   r   s
       @@@@@@r   int_to_decimalr*      s    @ 	A	
1BF
C&= 
			 3######%&		'//"q5FAFq!,,.)WF M Ms   BCC"c                 ,    	 t        t        |             S )N)strr*   )r   s    r   int_to_decimal_stringr-   S   s    I~a !!r   c                 X     	 di fd fd dt                     S )Ni   c                     	 j                  |       x}<| k  rd| z  }n,| dz
  v r| dz
     dz  }n| dz	  } |       | |z
        z  }|| <   |S )N   r   r	   )r   r   r   DIGLIMr   w5pows      r   r2   z _str_to_int_inner.<locals>.w5powi   sx    	
 ggaj F)F{AQ#QUa!V
 rU1r6]2CFr   c                     || z
  k  rt        | |       S | |z   dz   dz	  } ||       | |       ||z
        z  ||z
  z  z   S r   )int)abmidr1   r   sr2   s      r   r   z _str_to_int_inner.<locals>.inner~   s]    q5F?q1v;1uqyQS!}q#q3w!?QW MNNr   r   len)r8   r1   r   r   r2   s   `@@@@r   _str_to_int_innerr;   X   s0    @ F
C*O CFr   c                 Z    	 | j                         j                  dd      } t        |       S )N_ )rstripreplacer;   )r8   s    r   int_from_stringrA      s,    4 	

3#AQr   c                     	 t        j                  d|       }|st        d      t        |j	                  d            }|j	                  d      dk(  r| }|S )Nz\s*([+-]?)([0-9_]+)\s*z&invalid literal for int() with base 10r   r   -)rematch
ValueErrorrA   group)r8   mvs      r   
str_to_intrJ      sS    L
*A.AABB
#AwwqzSBHr   i  c                 0   	 | j                         |z
  t        k  rt        | |      S |dz  }|r| dz  } |dz  }|dz  }|dz	  }d|z  dz
  }||z	  ||z  }}t        | |z	  | |z	  |z  ||||      \  }}	t        |	| |z  ||||      \  }
}	|r|	dz  }	||z  |
z  |	fS r   )r'   
_DIV_LIMITdivmod_div3n2n)r5   r6   r   padhalf_nmaskb1b2q1rq2s              r   _div2n1nrW      s     	||~Z'a|
a%C
	a	a	Q!VFK1D&[!d(BQ!Va6kT11b"fEEBQD!RV4EB
	a<"ar   c                     	 | |z	  |k(  rd|z  dz
  | ||z  z
  |z   }}nt        | ||      \  }}||z  |z  ||z  z
  }|dk  r|dz  }||z  }|dk  r||fS )Nr   r   )rW   )a12a3r6   rR   rS   r   qrU   s           r   rN   rN      s    K
ax2~Q!|SB!G_r11R#1	
a"BA
a%	Q	Q a% a4Kr   c                     	 dg| j                         z   dz
  z  z  fd| r | dt                     S )Nr   r   c                     |dz   |k(  r| |<   y ||z   dz	  }||z
  	z  }| |z	  }| ||z  z  } |||        |||       y r   r   )
xLRr7   shiftupperlowera_digitsr   r   s
          r   r   z_int2digits.<locals>.inner   sc    q5A:HQK1ulqAU
Ue^$eQeS!r   )r'   r:   )r5   r   rd   r   s    `@@r   _int2digitsre      sJ     sq||~)A-!34H	 	aCM"Or   c                 D     	  fd r dt                     S dS )Nc                 j    | dz   |k(  r|    S | |z   dz	  }|| z
  z  } ||      |z   | |      z   S r   r   )r_   r`   r7   ra   digitsr   r   s       r   r   z_digits2int.<locals>.inner   sN    q5A:!91ulqAc1&%3-77r   r   r9   )rh   r   r   s   ``@r   _digits2intri      s'    8 %+5CK 11r   c                     	 |j                         }t        | |      }d}g }t        |      D ])  }t        ||z  |z   ||      \  }}|j	                  |       + |j                          t        ||      }||fS Nr   )r'   re   reversedrW   appendreverseri   )	r5   r6   r   rd   rU   q_digitsa_digitq_digitr[   s	            r   _divmod_posrr      s     	
A1a H	AHH% !qAv0!Q7
 ! Ha Aa4Kr   c                     	 |dk(  rt         |dk  rt        |  |       \  }}|| fS | dk  rt        |  |      \  }}| || z   fS t        | |      S rk   )ZeroDivisionError
int_divmodrr   )r5   r6   r[   rU   s       r   ru   ru     st     	Av	
Q1"qb!11"u	
Q1"a 1r1r6z1a  r   )rD   r   r*   r-   r;   rA   rJ   rL   rW   rN   re   ri   rr   ru   r   r   r   <module>rv      sR   > 
 =@"
,^ 	" 
 <
>2"!r   