?,bi(SSKJr SSKrSSKrSSKrSSKrSSKrSSKrS/r\RRr \RRr \R"SS9S5r\R "S\R"\R$-5rS SjrS r\R "S \R,\R"-5R.r\R "S \R,\R"-5R.r"S S\R45rg)DecimalNFractioni@)maxsizec[US[5n[[[U55U-5nUS:aUOU*nUS:XaS$U$![a [ nN'f=f)Nr)pow_PyHASH_MODULUShashabs ValueError _PyHASH_INF) numerator denominatordinvhash_results 0/opt/alt/python313/lib64/python3.13/fractions.py_hash_algorithmrse2;O4(T#i.)D011nU5&F22)6)+ sAAAa \A\s* # optional whitespace at the start, (?P[-+]?) # an optional sign, then (?=\d|\.\d) # lookahead for digit or .digit (?P\d*|\d+(_\d+)*) # numerator (possibly empty) (?: # followed by (?:\s*/\s*(?P\d+(_\d+)*))? # an optional denominator | # or (?:\.(?P\d*|\d+(_\d+)*))? # an optional fractional part (?:E(?P[-+]?\d+(_\d+)*))? # and optional exponent ) \s*\Z # and optional whitespace to finish cUS:a USU--nO USU*--n[XS- -U5upEUS:XaUS-S:XaUS-nU(aUS:OUS:nU[U54$)Nr r )divmodr )ndexponent no_neg_zeroqrsigns r_round_to_exponentr"Jsx1} R\ R(] !Av, "DAAv!a%1* R1q5QUD Q<cUS:XaSSSU- 4$[[U55[U5pC[U5[U5- XC:*-nXR- n[XU5upx[[U55US-:Xa US-nUS- nXxU4$)NrFrr)strr lenr") rrfiguresstr_nstr_dmrr! significands r_round_to_figuresr,gs" AvaW$$s1v;A5 E SZ5>2A{H*1:D 3{ ! + A  h &&r#ay (?: (?P.)? (?P[<>=^]) )? (?P[-+ ]?) # Alt flag forces a slash and denominator in the output, even for # integer-valued Fraction objects. (?P\#)? # We don't implement the zeropad flag since there's no single obvious way # to interpret it. (?P0|[1-9][0-9]*)? (?P[,_])? a (?: (?P.)? (?P[<>=^]) )? (?P[-+ ]?) (?Pz)? (?P\#)? # A '0' that's *not* followed by another digit is parsed as a minimum width # rather than a zeropad flag. (?P0(?=[0-9]))? (?P0|[1-9][0-9]*)? (?P[,_])? (?:\.(?P0|[1-9][0-9]*))? (?P[eEfFgG%]) c^\rSrSrSrS0U4Sjjr\S5r\S5r\U4Sj5r Sr Sr S1S jr \ S 5r\ S 5rS rS rSrSrSrS2SjrSr\"\\R05urrSr\"\\R85urrSr\"\\R@5ur!r"Sr#\"\#\RH5ur%r&Sr'\"\'\RPS5ur)r*Sr+\"\+\,S5ur-r.Sr/\"\/\R`S5ur1r2Sr3Sr4Sr5Sr6Sr7\Rp4Sjr9S r:S!r;S"rS%r?S&r@S'rAS(rBS)rCS*rDS+rES,rFS-rGS.rHS/rIU=rJ$)4r _numerator _denominatorc>[[U] U5nUGc[U5[LaXlSUlU$[U[R5(a$URUlURUlU$[U[[45(aUR5uUlUlU$[U[5(Ga[ R#U5nUc[%SU-5e[ UR'S5=(d S5nUR'S5nU(a [ U5nOSnUR'S5nU(a4UR)SS5nS [+U5-nX-[ U5-nX'-nUR'S 5nU(a#[ U5nUS :a US U--nO US U*--nUR'S 5S :XaU*nO[-S5e[U5[s=La[U5LaO OO{[U[R5(aQ[U[R5(a2URUR-URUR-p!O [-S5eUS :Xa[/SU-5e[0R2"X5n US :aU *n X-nX)-nXlX#lU$)Nrz Invalid literal for Fraction: %rnum0denomdecimal_rexprr!-z2argument should be a string or a Rational instancez+both arguments should be Rational instancesFraction(%s, 0))superr__new__typeintr0r1 isinstancenumbersRationalrrfloatras_integer_ratior%_RATIONAL_FORMATmatchrgroupreplacer& TypeErrorZeroDivisionErrormathgcd) clsrrselfr*r5r6scaler9g __class__s rr=Fraction.__new__s>Xs+C0  I#%"+$%! Iw'7'788"+"5"5$-$9$9! Iw'7885>5O5O5Q2!2 Is++$**959$%G%.&/00 5#6 ("%e*K"#Kggi0G")//#r": "CL 0$-$5G $D #, ''%.C!#h!8%S0I'2t83K776?c)!* I !9::)_ 8tK'8 8 G$4$455 {G$4$4 5 5##k&=&==%% (=(==# 12 2 ! #$5 $AB B HHY , ?A  #' r#c [U[R5(aU"U5$[U[5(d4[ UR <SU<S[ U5R <S35eUR"UR56$)Nz%.from_float() only takes floats, not  ()) r@rAIntegralrCrI__name__r>_from_coprime_intsrD)rMfs r from_floatFraction.from_float4sq a)) * *q6MAu%% \\1d1g.>.>@A A%%q'9'9';<rXrD)rMdecrs r from_decimalFraction.from_decimalBsv $ c7++ , ,#c(#CC))sDI$6$689 9%%s';';'=>>r#cF>[[U] U5nXlX#lU$N)r<rr=r0r1)rMrrobjrQs rrXFraction._from_coprime_intsNs&Hc*3/"& r#c URS:H$Nrr1rNs r is_integerFraction.is_integerZs  A%%r#c2URUR4$rar/rgs rrDFraction.as_integer_ratio^s !2!233r#cUS:a [S5eURU::a [U5$Sup#pEURURpvXg-nX8U--n X:aOXEX(U--U 4up#pEXvX-- pvM'X- U-n SU-X:U---UR::a[R XE5$[R X*U--X:U--5$)Nrz$max_denominator should be at least 1)rrrr)rr1rr0rX) rNmax_denominatorp0q0p1q1rraq2ks rlimit_denominatorFraction.limit_denominatores@ Q CD D    /D> !# 1 11AbDB#R"Wb0NBBeq  " $ Q3R4=D-- -..r6 6..rB$wR4@ @r#cUR$ra)r0rss rrFraction.numerators ||r#cUR$rarfrys rrFraction.denominators ~~r#cnURR<SUR<SUR<S3$)N(z, rU)rQrWr0r1rgs r__repr__Fraction.__repr__s*#~~66#0A0AC Cr#cURS:Xa[UR5$UR<SUR<3$)Nr/)r1r%r0rgs r__str__Fraction.__str__s4    !t' '"oot/@/@A Ar#c"US=(d SnUS=(d SnUSS:XaSOUSn[US5n[US =(d S 5nUS =(d SnURURpU S :dU(a[ U5US X3n O[ U5Un US:aSOUn X&[ U 5- [ U 5- -n US:XaX-U -$US:XaX-U -$US:Xa[ U 5S-n U SU U -U -XS-$X-U -$)Nfill align>r!r:r8alt minimumwidthr4 thousands_seprrr<^rm)boolr?r0r1r r&)rNrFrrpos_signalternate_formrrrrbodyr!paddinghalfs r_format_generalFraction._format_generalsAV}#g%#v#-25=eEl+507C8 o.4"  1 11 q5N!fm_-Qq.ABD!fm_-D!esT2SY>? C<>D( ( c\;( ( c\w<1$D5D>D(4/'%.@ @>D( (r#c ^^ US=(d SnUS=(d SnUSS:XaSOUSn[US5n[US 5n[US 5n[US =(d S 5nUS m [US=(d S5n USn U S;=(a U(+n U(+n U S;aSOSn US:XaUS :XaSnU S;a7U *nU S:XaUS-n[URURX5unnSnU nOkU S;a [ U S5OU S-n[ URURU5unnnU S;=(d US:=(d UU-S:*nU(aUS- OU*nU S:XaSnOU(a U UU-S3nOSnUS US-S 3nU(aSOUnUS[U5U- mU[U5U- SnU (aURS 5nU (a U(dSOS!nUU-U-nU(a=U[U5- [U5- nTRT (a S"U-S#-S-OU5mT (aJS[T5S- S"--nTSUSRUU 4S$j[U[T5S"555-mTU-nX([U5- [U5- -nUS:XaUU-U-$US%:XaUU-U-$US&:Xa[U5S-nUSUU-U-UUS-$UU-U-$)'Nrrrrr!r:r8rrzeropadrr4r precision6presentation_typegGEFGEe=TzfF%%rmFreErz+03dr.c38># UHnTTXS--v M g7f)rN).0posleadingrs r /Fraction._format_float_style..%s&4SC C? C<T>D( ( c\$;( ( c\w<1$D5D>D(4/'$%.@ @'>D( (r#c[U5=n(aURU5$[U5=n(aUSbUScURU5$[ SU<S[ U5R <35e)NrrzInvalid format specifier z for object of type )%_GENERAL_FORMAT_SPECIFICATION_MATCHERr#_FLOAT_FORMAT_SPECIFICATION_MATCHERrrr>rW)rN format_specrFs r __format__Fraction.__format__8s:+F F5 F''. .7 D D5 DW~%y)9)A//66' 7""&t*"5"5!8 :  r#c^^^UUU4SjnSTR-S-UlTRUlUUU4SjnSTR-S-UlTRUlX44$)NcB>[U[5(aT"X5$[U[5(aT"U[U55$[U[5(aT"[U5U5$T(a'[U[5(aT"[ U5U5$[ $ra)r@rr?rCcomplexNotImplemented)rsbfallback_operatorhandle_complexmonomorphic_operators rforward-Fraction._operator_fallbacks..forwards}!X&&+A11As##+Ax{;;Au%%(q155Jq'$:$:(Q77%%r#__ch>[U[R5(aT"[U5U5$[U[R5(aT"[ U5[ U55$T(a:[U[R 5(aT"[U5[U55$[$ra) r@rArBrRealrCComplexrr)rrsrrrs rreverse-Fraction._operator_fallbacks..reverses{!W--..+HQK;;Aw||,,(q58<<Jq'//$B$B(WQZ@@%%r#__r)rW__doc__)rrrrrs``` r_operator_fallbacksFraction._operator_fallbacksIsgb & "3"<"<? HUG,,,r#cURURp2[URU-URU--X#-5$ra)rrr)rsrrrs r_mod Fraction._modOs7 Br)akkB.>?IIr#c[U[R5(Ga URS:XaURnUS:a0[ R URU-URU-5$URS:a2[ R URU*-URU*-5$URS:Xa[SURU*--5e[ R UR*U*-UR*U*-5$[U5[U5-$[U[[45(a[U5U-$[$)Nrrr;) r@rArBrrrrXr0r1rJrCrr)rsrpowers r__pow__Fraction.__pow__Vs> a)) * *}}! A:#66q||u7L78~~7NPP\\A%#66q~~%7O78||v7MOO\\Q&+,=,-NNuf,D-EFF$66UF7R9: 5&7PRR Qx58++ E7+ , ,8q= ! !r#c:URS:XaURS:aXR-$[U[R5(a#[ UR UR5U-$URS:XaXR-$U[U5-$)Nrr) r1r0r@rArBrrrrC)rrss r__rpow__Fraction.__rpow__vsz >>Q 1<<1#4 $ $ a)) * *AKK71< < >>Q  $ $E!H}r#cV[RURUR5$rarrXr0r1rys r__pos__Fraction.__pos__s**1<<HHr#cX[RUR*UR5$rarrys r__neg__Fraction.__neg__s**ALL=!..IIr#ch[R[UR5UR5$ra)rrXr r0r1rys r__abs__Fraction.__abs__s"**3q||+>1 1r#c4URUR-$rar/rys r __floor__Fraction.__floor__s||q~~--r#c8UR*UR-*$rar/rys r__ceil__Fraction.__ceil__s,,!..011r#c*UcMURn[URU5up4US-U:aU$US-U:aUS-$US-S:XaU$US-$S[U5-nUS:a[ [ X-5U5$[ [ X- 5U-5$)Nrmrrr)r1rr0r rround)rNndigitsrfloor remaindershifts r __round__Fraction.__round__s ?!!A%dooq9 E1}q  Q"qy a qy CL  Q;E$,/7 7E$,/%78 8r#cB[URUR5$ra)rr0r1rgs r__hash__Fraction.__hash__st0A0ABBr#ch[U5[La%URU:H=(a URS:H$[ U[ R 5(a9URUR:H=(a URUR:H$[ U[ R5(aURS:Xa URn[ U[5(aN[R"U5(d[R"U5(aSU:H$XR!U5:H$["$)Nrr)r>r?r0r1r@rArBrrrimagrealrCrKisnanisinfrZrrs r__eq__Fraction.__eq__s 7c><<1$<1)< < a)) * *LLAKK/4NNamm3 5 a ) )affkA a  zz!}} 1 axLLO++" !r#c[U[R5(a7U"URUR-UR UR -5$[U[5(aV[R"U5(d[R"U5(a U"SU5$U"XRU55$[$)Nr*) r@rArBr0rr1rrCrKr-r.rZr)rNotherops r_richcmpFraction._richcmps eW-- . .doo(9(99''%//9; ; eU # #zz%  DJJu$5$5#u~%$ 677! !r#cBURU[R5$ra)r4operatorltrs r__lt__Fraction.__lt__zz!X[[))r#cBURU[R5$ra)r4r7gtrs r__gt__Fraction.__gt__r;r#cBURU[R5$ra)r4r7lers r__le__Fraction.__le__r;r#cBURU[R5$ra)r4r7gers r__ge__Fraction.__ge__r;r#c,[UR5$ra)rr0rys r__bool__Fraction.__bool__sALL!!r#cJURURUR44$ra)rQr0r1rgs r __reduce__Fraction.__reduce__s $2C2C DEEr#cx[U5[:XaU$URURUR5$rar>rrQr0r1rgs r__copy__Fraction.__copy__ . : !K~~doot/@/@AAr#cx[U5[:XaU$URURUR5$rarO)rNmemos r __deepcopy__Fraction.__deepcopy__rRr#)r1r0)rN)i@B)Tra)KrW __module__ __qualname____firstlineno__ __slots__r= classmethodrZr^rXrhrDrvpropertyrrrrrrrrrr7add__add____radd__rsub__sub____rsub__rmul__mul____rmul__rtruediv __truediv__ __rtruediv__rfloordiv __floordiv__ __rfloordiv__rr __divmod__ __rdivmod__rmod__mod____rmod__rrrr rindexrrrrr$r'r/r4r9r>rBrFrIrLrPrU__static_attributes__ __classcell__)rQs@rrrs*/IgR = = ? ?  &47ArC B )Db)H $,0l d D,D(,,?GX D,D(,,?GX =,D(,,?GX1(!4D(:J:J KKN#6iARARTY"ZL-- 2'65IJ J ,D(,,FGX"@ IJN#..:2.2 94C"*",****"FB BBr#)F)r6r functoolsrKrAr7resys__all__ hash_infomodulusr infr lru_cachercompileVERBOSE IGNORECASErEr"r,DOTALL fullmatchrrrBrrr#rrs   , --''mm  w'*(*@:: ZZ"-- !":$'P)+ 4YY )'Y&$')jj2YY''Y$$` Bw` Br#