<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]$`                 @   s   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d d g Z d d   Z d d   Z	 e j
 j Z e j
 j Z e j d e j e j B Z Gd	 d   d e j  Z d S)
    )DecimalNFractiongcdc             C   s   d d  l  } | j d t d  t |   t k oB t |  k n rz | pP |  d k  rj t j |  |  St j |  |  St |  |  S)Nr   z6fractions.gcd() is deprecated. Use math.gcd() instead.   )warningswarnDeprecationWarningtypeintmathr   _gcd)abr    r   ./opt/alt/python35/lib64/python3.5/fractions.pyr      s    	
(c             C   s"   x | r | |  | }  } q W|  S)Nr   )r   r   r   r   r   r       s    	r   aC  
    \A\s*                      # optional whitespace at the start, then
    (?P<sign>[-+]?)            # an optional sign, then
    (?=\d|\.\d)                # lookahead for digit or .digit
    (?P<num>\d*)               # numerator (possibly empty)
    (?:                        # followed by
       (?:/(?P<denom>\d+))?    # an optional denominator
    |                          # or
       (?:\.(?P<decimal>\d*))? # an optional fractional part
       (?:E(?P<exp>[-+]?\d+))? # and optional exponent
    )
    \s*\Z                      # and optional whitespace to finish
c                   s_  e  Z d  Z dQ Z d d d   f d d  Z e d d	    Z e d
 d    Z d d d  Z e	 d d    Z
 e	 d d    Z d d   Z d d   Z d d   Z d d   Z e e e j  \ Z Z d d   Z e e e j  \ Z Z d d   Z e e e j  \ Z Z d d    Z e e e j  \ Z Z d! d"   Z  d# d$   Z! d% d&   Z" d' d(   Z# d) d*   Z$ d+ d,   Z% d- d.   Z& d/ d0   Z' d1 d2   Z( d3 d4   Z) d5 d6   Z* d7 d8   Z+ d d9 d:  Z, d; d<   Z- d= d>   Z. d? d@   Z/ dA dB   Z0 dC dD   Z1 dE dF   Z2 dG dH   Z3 dI dJ   Z4 dK dL   Z5 dM dN   Z6 dO dP   Z7   S)Rr   
_numerator_denominatorr   NTc                sU  t  t |   j |   } | d  k r+t |  t k rL | | _ d | _ | St | t j	  rz | j
 | _ | j | _ | St | t  r t j |  } | j | _ | j | _ | St | t  r t j |  } | j | _ | j | _ | St | t  rt j |  } | d  k r(t d |   t | j d  p=d  } | j d  } | rgt |  } n d } | j d  } | rd t |  }	 | |	 t |  } | |	 9} | j d  }
 |
 rt |
  }
 |
 d	 k r| d |
 9} n | d |
 9} | j d
  d k r(| } qt d   n t |  t k oNt |  k n rVnT t | t j	  rt | t j	  r| j
 | j | j
 | j } } n t d   | d	 k rt d |   | r?t |  t k ot |  k n rt j | |  } | d	 k  r+| } n t | |  } | | } | | } | | _ | | _ | S)N   z Invalid literal for Fraction: %rnum0denomdecimal
   expr   sign-z2argument should be a string or a Rational instancez+both arguments should be Rational instanceszFraction(%s, 0))superr   __new__r	   r
   r   r   
isinstancenumbersRational	numeratordenominatorfloat
from_floatr   from_decimalstr_RATIONAL_FORMATmatch
ValueErrorgrouplen	TypeErrorZeroDivisionErrorr   r   r   )clsr!   r"   
_normalizeselfvaluemr   r   Zscaler   g)	__class__r   r   r   T   s    		


((


		zFraction.__new__c             C   s   t  | t j  r |  |  St  | t  sP t d |  j | t |  j f   t j |  rx t	 d | |  j f   t j
 |  r t d | |  j f   |  | j     S)Nz.%s.from_float() only takes floats, not %r (%s)zCannot convert %r to %s.)r   r   Integralr#   r,   __name__r	   r   isnanr)   isinfOverflowErroras_integer_ratio)r.   fr   r   r   r$      s    
zFraction.from_floatc             C   s)  d d l  m } t | t j  r7 | t |   } n4 t | |  sk t d |  j | t |  j f   | j	   r t
 d | |  j f   | j   r t d | |  j f   | j   \ } } } t d j t t |    } | r | } | d k r|  | d |  S|  | d |  Sd  S)Nr   )r   z2%s.from_decimal() only takes Decimals, not %r (%s)zCannot convert %s to %s. r   )r   r   r   r   r5   r
   r,   r6   r	   Zis_infiniter9   Zis_nanr)   Zas_tuplejoinmapr&   )r.   Zdecr   r   digitsr   r   r   r   r%      s&    zFraction.from_decimali@B c             C   s%  | d k  r t  d   |  j | k r1 t |   Sd \ } } } } |  j |  j } } xd | | } | | | }	 |	 | k r~ P| | | | | |	 f \ } } } } | | | | } } qY W| | | }
 t | |
 | | |
 |  } t | |  } t | |   t | |   k r| S| Sd  S)Nr   z$max_denominator should be at least 1r   )r   r   r   r   )r)   r   r   r   abs)r0   Zmax_denominatorZp0Zq0Zp1Zq1ndr   Zq2kZbound1Zbound2r   r   r   limit_denominator   s&     

& zFraction.limit_denominatorc             C   s   |  j  S)N)r   )r   r   r   r   r!   *  s    zFraction.numeratorc             C   s   |  j  S)N)r   )r   r   r   r   r"   .  s    zFraction.denominatorc             C   s   d |  j  j |  j |  j f S)Nz
%s(%s, %s))r4   r6   r   r   )r0   r   r   r   __repr__2  s    zFraction.__repr__c             C   s4   |  j  d k r t |  j  Sd |  j |  j  f Sd  S)Nr   z%s/%s)r   r&   r   )r0   r   r   r   __str__7  s    zFraction.__str__c                st      f d d   } d   j  d | _   j | _    f d d   } d   j  d | _   j | _ | | f S)Nc                sn   t  | t t f  r"  |  |  St  | t  rD   t |   |  St  | t  rf   t |   |  St Sd  S)N)r   r
   r   r#   complexNotImplemented)r   r   )fallback_operatormonomorphic_operatorr   r   forward  s    z-Fraction._operator_fallbacks.<locals>.forward__c                s}   t  | t j  r  | |   St  | t j  rJ   t |  t |    St  | t j  ru   t |  t |    St Sd  S)N)r   r   r    ZRealr#   ComplexrG   rH   )r   r   )rI   rJ   r   r   reverse  s    z-Fraction._operator_fallbacks.<locals>.reverseZ__r)r6   __doc__)rJ   rI   rK   rN   r   )rI   rJ   r   _operator_fallbacks>  s    P	
zFraction._operator_fallbacksc             C   s6   |  j  | j  } } t |  j | | j | | |  S)N)r"   r   r!   )r   r   dadbr   r   r   _add  s    zFraction._addc             C   s6   |  j  | j  } } t |  j | | j | | |  S)N)r"   r   r!   )r   r   rQ   rR   r   r   r   _sub  s    zFraction._subc             C   s!   t  |  j | j |  j | j  S)N)r   r!   r"   )r   r   r   r   r   _mul  s    zFraction._mulc             C   s!   t  |  j | j |  j | j  S)N)r   r!   r"   )r   r   r   r   r   _div  s    zFraction._divc             C   s   t  j |  |  S)N)r   floor)r   r   r   r   r   __floordiv__  s    zFraction.__floordiv__c             C   s   t  j | |   S)N)r   rW   )r   r   r   r   r   __rfloordiv__  s    zFraction.__rfloordiv__c             C   s   |  | } |  | | S)Nr   )r   r   divr   r   r   __mod__  s    
zFraction.__mod__c             C   s   | |  } | |  | S)Nr   )r   r   rZ   r   r   r   __rmod__  s    
zFraction.__rmod__c             C   s   t  | t j  r | j d k r | j } | d k rW t |  j | |  j | d d S|  j d k r t |  j | |  j | d d St |  j | |  j | d d Sq t |   t |  Sn t |   | Sd  S)Nr   r   r/   F)	r   r   r    r"   r!   r   r   r   r#   )r   r   Zpowerr   r   r   __pow__  s     	
zFraction.__pow__c             C   sz   |  j  d k r) |  j d k r) | |  j St | t j  rR t | j | j  |  S|  j  d k rl | |  j S| t |   S)Nr   r   )	r   r   r   r   r    r   r!   r"   r#   )r   r   r   r   r   __rpow__  s    zFraction.__rpow__c             C   s   t  |  j |  j d d S)Nr/   F)r   r   r   )r   r   r   r   __pos__  s    zFraction.__pos__c             C   s   t  |  j |  j d d S)Nr/   F)r   r   r   )r   r   r   r   __neg__  s    zFraction.__neg__c             C   s   t  t |  j  |  j d d S)Nr/   F)r   r@   r   r   )r   r   r   r   __abs__  s    zFraction.__abs__c             C   s1   |  j  d k  r |  j  |  j S|  j  |  j Sd  S)Nr   )r   r   )r   r   r   r   	__trunc__  s    zFraction.__trunc__c             C   s   |  j  |  j S)N)r!   r"   )r   r   r   r   	__floor__  s    zFraction.__floor__c             C   s   |  j  |  j S)N)r!   r"   )r   r   r   r   __ceil__  s    zFraction.__ceil__c             C   s   | d  k ru t  |  j |  j  \ } } | d |  j k  r> | S| d |  j k rY | d S| d d k rm | S| d Sd t |  } | d k r t t |  |  |  St t |  |  |  Sd  S)Nr   r   r   r   )divmodr!   r"   r@   r   round)r0   ZndigitsrW   Z	remainderZshiftr   r   r   	__round__   s    zFraction.__round__c             C   sl   t  |  j t d t  } | s( t } n t |  j  | t } |  d k rQ | n | } | d k rh d S| S)Nr   r   r   )powr   _PyHASH_MODULUS_PyHASH_INFr@   r   )r0   ZdinvZhash_resultr   r   r   __hash__9  s    	zFraction.__hash__c             C   s   t  |  t k r. |  j | k o- |  j d k St | t j  rb |  j | j k oa |  j | j k St | t j	  r | j
 d k r | j } t | t  r t j |  s t j |  r d | k S|  |  j |  k Sn t Sd  S)Nr   r   g        )r	   r
   r   r   r   r   r    r!   r"   rM   imagrealr#   r   r7   r8   r$   rH   )r   r   r   r   r   __eq__O  s    !	
zFraction.__eq__c             C   s   t  | t j  r3 | |  j | j |  j | j  St  | t  r t j	 |  s` t j
 |  rm | d |  S| |  |  j |   Sn t Sd  S)Ng        )r   r   r    r   r"   r   r!   r#   r   r7   r8   r$   rH   )r0   otheropr   r   r   _richcmpd  s    zFraction._richcmpc             C   s   |  j  | t j  S)N)rt   operatorlt)r   r   r   r   r   __lt__z  s    zFraction.__lt__c             C   s   |  j  | t j  S)N)rt   ru   gt)r   r   r   r   r   __gt__~  s    zFraction.__gt__c             C   s   |  j  | t j  S)N)rt   ru   le)r   r   r   r   r   __le__  s    zFraction.__le__c             C   s   |  j  | t j  S)N)rt   ru   ge)r   r   r   r   r   __ge__  s    zFraction.__ge__c             C   s   |  j  d k S)Nr   )r   )r   r   r   r   __bool__  s    zFraction.__bool__c             C   s   |  j  t |   f f S)N)r4   r&   )r0   r   r   r   
__reduce__  s    zFraction.__reduce__c             C   s,   t  |   t k r |  S|  j |  j |  j  S)N)r	   r   r4   r   r   )r0   r   r   r   __copy__  s    zFraction.__copy__c             C   s,   t  |   t k r |  S|  j |  j |  j  S)N)r	   r   r4   r   r   )r0   memor   r   r   __deepcopy__  s    zFraction.__deepcopy__)r   r   )8r6   
__module____qualname__	__slots__r   classmethodr$   r%   rD   propertyr!   r"   rE   rF   rP   rS   ru   add__add____radd__rT   sub__sub____rsub__rU   mul__mul____rmul__rV   truediv__truediv____rtruediv__rX   rY   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   rg   rn   rq   rt   rw   ry   r{   r}   r~   r   r   r   r   r   )r4   r   r   <   sT   u7k)r   r   r   r   ru   resys__all__r   r   	hash_infomodulusrk   infrl   compileVERBOSE
IGNORECASEr'   r    r   r   r   r   r   <module>   s   