rust#rustc 1.66.0 (69f9c33d7 2022-12-12) -e33da769ef0fc5d8ͨ-1dc79725e6344392-0fb63777e7f87f93rustc_std_workspace_core-eb5afab0418f686f‘/-2e3b7f0ce600a8f1-86d63b23439b0a40 -22e56a2a769a0eb9cfg_if܌ռ-fd701987ba9e9f4b miniz_oxideΫܷ1-00afebe6ef29bc45rustc_std_workspace_alloc-7566ec688921bb2aadler⊗-e0530c58d9305cc2 hashbrownݮ-973b1c4de7cc0d1f std_detect䁫˄-19b5cc13cfb1dd2fٚ-0cbfd78dde2c666erustc_demangleԱۖ-e8e6c5708c3a854aʖׄ-32a15d205c9250ae poly coefficientdegscaleadditive_inverse add_poly sum_of_polys subtract_poly multiply_polyproduct_of_polys poly_powerzero_polynomialone_polynomial vec_helperremove_trailing_zeros shift_vector scale_vector## check_unique_in_1_to_nis_zero_vector permutation(((((((//n/eval/inverse/sign/ to_cycle_form/ 6 (888 (identity( transposition= (compose? ( conjugateseriesBNUM_ITERATIONSBexpsortingEEEEinsertion_sortE merge_sortEmergeE quicksortL L L L E counting_sortmatrixRRRRRRRYYentryYrowYYnum_rowsY num_columnsY scale_rowY switch_rowsYadd_scalar_multipleYto_upper_triangularY is_zero_rowYis_zero_columnY'next_row_without_zero_at_beginning_fromY next_non_zero_row_beginning_fromYdisplay_matrixIntPolyi coefficientsimodulusmoqModulusst t sw z| PolynomialErrorModulusMismatchError      ( Permutationimages((((Cycleelements((((PermutationErrorArgOutOfRangeError ImageOutOfRangeError NotBijectiveError NoValidCycleError EmptyImageVectorError DomainRangeSizeMismatchError (( ( ESortingInstanceError EEERMatrixrowsRRRRR MatrixErrorNonUniformRowLengthError RRRR 7 7 7 7 77777777777!7"7#7&7172737475767:7;7?7?7A7A7I7J7K7K7L7Q7[7\7]7^7_7`7a7b7c7d7e7f7g7h7n7n7p7p7p7r7{7{7}7}7}777777777777777777777777777777777777777zsmisqiysli~s|soi ; ;R ===buf7=7˝ԟ@@@Global ߢ  stuv wx˛ n   iijkȔĝa    ! "     r  !!""c c  c c  c c  c   c c c c c  c  c  c  " c  " c  "c  c cc  "c  c (c  c c c "cc "cccc  cc  c {c c c c c "c "c (c "c (c "c c c c (c c (c c c c ""c c "c c "c (c (c  c-cc cc c"c "c "c "c c c  __self_tagc  __arg1_tagc __self_0c__arg1_0cc ccccc"cccd d d d    ϱ9d 0e0ee0ee0ee0e e e ee  eeeeee ee ede e ed d d 0d 0d d 00d d 0d d 0d "e"e"e"ed ed "ed "ed ed "ed "e0d 0d 0d 0d d d -e__self_1e-e__arg1_1e d     ===7=7˝ԟ     b8      8    EXXIterXXXXX_markerXp888%8 9::  0  EMap8Ž::8  #  8  8 8  0;  0:  0  8  0<  0<  0:  09  amt   9     88  % :  : 9 8 8 9 x < 9 ===7=7˝ԟ@ @@   (”« A  @B   @@A   (  C BB   5555 :55 5@5755 7:  C5 C5@5C5C5c55HH  @H H HH GH HHH GH H HH GH HIHI>H @H >: G@GGHGHH@H@HH@H@HGHGHGHGH>HFGjFGHOz AOz P  AP  PP P 2PPP L@̅POzOLOtOPMPP@O @O @:JAAOGOАӐԐՐ ֐אؐ 栂݁w@MOzAOz@POP AP @PAOAO>OsigmaKAtauKAO!T !T  !T !T  !T !T !T  !T!T !T !T  !T  M!T S!T (!T S!T (!T S!T !T (!T !T (!T !T !T -!T -!T !T d@&C&@&100//// //  /M// / M:  UU/ U/U/U/U/U/U/pivot+U>//11N1U1 N: VUF1U1>112222U22 2O22 2 O:VV2V2U2U2U2U2U2V+U>2222P2U2 P:XF2U2>22? ? @? ?   ? ]? ? ? ? &===7=7˝ԟ===7=7˝ԟ&^&& ^^&&& &  Rת& `& & ^&&`&& & & (^((( ^(((^((`(`((^((`((`(((19 19 1919 19  ˛19 c19 19 19 19 393939c39c393939ccccuccccccccucccceeeeee0eeeeeeeeee0eeee @ An API to perform arithmetic operations on integer polynomials.CK Ur  7B Constructor, creates a struct instance modeling a new polynomial.E" Note that trailing zeros are cut,%B i.e. 1 + X + 0X^2 + 4X^3 + 0X^4 would become 1 + X + 0X^2 + 4X^3.E3 For a polynomial over a remainder class ring Z/qZ,65 this means that all trailing multiples of q are cut,8$ i.e. 1 + qX + 3qX^2 would become 1.' [ Any coefficients for monomials with higher degrees than the explicitly listed ones are 0. ^   7C Returns the coefficient for the monomial with the passed exponent. F 1 For polynomials over remainder class ring Z/qZ, 4O we reduce the coefficient to the standard representative system {0, ..., q-1}. R  . Computes the degree of the passed polynomial.1V Exploits the fact that trailing zeros are cut from the polynomial upon instantiation,Y= i.e. 1 + X + 0X^2 + 4X^3 + 0X^4 becomes 1 + X + 0X^2 + 4X^3.@D Note that in this library, the degree of the zero polynomial is -1,G- some literature has it as negative infinity.0 74 Scales the polynomial with the passed scale factor,7. i.e. multiplies all the coefficients with it.12 The result is returned as a new IntPoly instance,5( the original polynomial is not changed.+ /7 Returns the additive inverse of the passed polynomial.: '5 Computes a string representation of this polynomial,8" looking like "1X^0 + 2X^1 + 1X^2" %   )U/ Returns the sum of the two passed polynomials.'22 Trailing zeros of the sum are cut in the process.(5(O If the moduli of the polynomials do not match, the function returns an error. (R)) 5PL Computes the sum of n polynomials which are passed as a vector of length n.3Oy454y4R5@ If the passed vector is empty, the zero polynomial is returned.5C5 6 N If the moduli of the polynomials do not match, the function returns an error.>Q? ? STP Computes the product of n polynomials which are passed as a vector of length n.QS~R9RyRRS? If the passed vector is empty, the one polynomial is returned.SBST YV* Takes the passed polynomial to the power X-, determined by the passed positive exponent.Y/Y Y _.5 Returns the zero polynomial with the passed Modulus._8_ `-4 Returns the one polynomial with the passed Modulus.`7a %; Contains helper functions that operate on integer vectors.>- FS`r BT Removes the trailing zeros/ multiples of the passed modulus from the passed vector,W; e.g. vec![2, 3, 0, 0] over modulus None becomes vec![2, 3]>> and vec![2, 4, 5, 5] over modulus Some(5) becomes vec![2, 4].A ! ;F Shifts a vector by adding the passed number of zeros at the beginningIF i.e. vec![1, 1, 426] becomes vec![0, 0, 1, 1, 426] when shifted by 2.I   " * Scales a vector by the passed factor amt, -= i.e. vec![3, 2, 1] becomes vec![6, 5, 4] when scaled with 2. @ $$ 8 88 8 C8:  #8   #%%%%#:A$ Iterate over vector and assure that '% (i) all numbers occur at most once (. (ii) all occuring numbers are in {1, ..., n} 1 &,S Determines whether the passed vector of floating point numbers is the zero vector.V '9. An API to work with mathematical permutations19 i.e. bijective mappings from {1, ..., n} to {1, ..., n}.2<A v)(((ADQ Constructs a new permutation from S_n from the passed number vector of length n.TF Checks whether the vector defines a bijective mapping on {1, ..., n},I1 if it does not, an appropiate error is returned.4// 0K Returns the size of the set {1, ..., n} that this permutation operates on.N// 1E1 Evaluates the permutation for the passed number.4B If the number is not in the set that the permutation operates on,E an error is returned.//L*) Computes the inverse of the permutation.,// 3, Computes the sign of the permutation sigma /, which is the number of inversions in sigma./ 9 An inversion is a tuple (i, j) of numbers in {1, ..., n}<% where i < j but sigma(i) > sigma(j) (// 4#/G Computes the cycle form of some permutation sigma from its table form.!JX So instead of a vector of images, the permutation is represented as a vector of Cycles,"[J where each element from the set {1, ..., n} appears in exactly one cycle."M# /#/ 53'K Computes a string representation of this permutation using its cycle form.2N+ I.e. the result looks like "(1 5 4)(2 6)".2.3 /3/ 656Ռ77776F7 (C8HN Constructs a new cycle in S_n from the passed vector of non-negative numbers.7Q7N If the passed vector does not represent a proper cycle, an error is returned.7Q888 9; " Returns the length of the cycle, ;%- i.e. the number of elements contained in it.;0;8;8E='. Computes the string representation of a cycle<1/ (which looks like the standard cycle notation,<2 e.g. "(1 4 2 3)")== 8=8 ;BB6 Returns the identity function on the set {1, ..., n} A99 which is the neutral element of the symmetric group S_n.B<B <E[; Creates a permutation in S_n that swaps the passed i and jD>) and otherwise behaves like the identity.E,E  =H=Ռ>>>>=JJ_W Creates the composition sigma after tau of the two passed permutations sigma and tau. JZKK ?O?Ռ@@@@?OQa< Returns the composition tau after sigma after inverse(tau).Q?Q Q AN R2 How many summands of a power series are computed.5& Small number means higher efficiency 6). while many iterations yield higher precision.`1@> Computes the exponential function via power series expansion.AC WIP function, currently lacking suitable floating point precision.F D< Rust implementations of several popular sorting algorithms.?GYE' Incremental sorting algorithm."N Note that this implementation works on a mutable reference to the input arrayQM and thus changes the input array instead of creating a sorted version of it.P I+R Uses the merge sort algorithm to sort the passed vector of non-negative integers.U7 Merge sort is a classic divide-and-conquer algorithm, :N which works by splitting the instance at hand into two smaller sub-instances,Q then solving those recursively #U and combining the two individual solutions into a solution for the initial instance.XO In case of merge sort this combining means that two sorted vectors of integersRR are combined into one by iterating through them simultaneously but independently,UW and always putting the smaller one of the current two elements into the result vector.Z  J7E K(*L Uses the quicksort algorithm to sort the passed array of positive integers.%O%O Quicksort is a Divide-and-Conquer algorithm which splits up the passed array a%RQ into two shorter arrays based on a pivot element (here: the first element in a).&TO The "left" subarray contains all elements smaller/equal than the pivot element'R3 while the right one contains all greater elements.'6\ These two subarrays are then recursively sorted and "inserted" left and right of the pivot.(_( ( L/LՌMMMMLV1LՌNNNNLX2LՌOOOOLZ2LՌPPPPL\8TF Uses the counting sort algorithm to sort the vector referenced by a. 4I5; Requires an upper bound s on the elements in the vector a.5>g If there is a number above s in the vector a (invalid instance), counting sort returns an Err variant.5j6R Counting sort counts how often each number from {0, ..., s} occurs in the vector.6U^ It then creates a new vector into which it inserts all numbers as many times as they occured,7a starting with the lowest.78 8 Q A work-in-progress module 4 that allows to perform operations on real matrices.7^q R!R R`>; Constructs a matrix from the passed vector of row vectors.>7 If the passed row vectors do not have the same length,: an error variant is returned.!YY Z47 Returns the entry in row i and column j of the matrix.:YY [-0 Returns the i-th row of the matrix as a vector.3Y Y \ 03 Returns the j-th column of the matrix as a vector. 6 Y Y ] %+ Returns the number of rows of this matrix. . Y Y ^ (. Returns the number of columns of this matrix. 1 Y Y _34 Scales row i of the matrix with the scale factor c.7C Note that this operation is rank-preserving if and only if c != 0.F YY `7) Switches the rows i and j of the matrix., YY aG+ Adds a times row j to row i of the matrix.., I.e. row i is replaced by row i + a * row j/ Row j remains unchanged.YY b+4 Transforms the matrix to its upper triangular form.78 This is done by transforming each row into a pivot row.;} A pivot row is a row that starts with any number of zeros, followed by a non-zero pivot element and then arbitrary elements.) The pivot position of its pivot element.,> A pivot row is called normalized if its pivot element is a 1.Af A matrix is an upper triangular matrix if its rows are ordered by their pivot positions, ascendingly.iYY c+1= Determines whether the i-th row of the matrix is a zero row.+@+ Y+Y d-4C Determines whether the j-th column of the matrix is a zero column.,F-Y-Y e/` Beginning search from row i, -!a this method returns the index of the first row of the matrix having no 0 at position (column) j..d5 If no such row exists, the None variant is returned..8/'Y/Y f2O Beginning search from row i,1 U this method returns the index of the first row of the matrix that is not a zero row.1X283 Y3Y g6!5 Prints the matrix to the console for debug purposes.686Y6Y hV Models a polynomial a_0 + a_1 * X + ... + a_n * X^n with either integer coefficients Y. or coefficients from a remainder class ring. 1. Polynomials are stored as coefficient vectors1N and the coefficient for the highest-degree monomial is guaranteed to be != 0.Q  iiii            mm n oo p qq rc& A modulus for a remainder class ring.a)_ Implementation for the binary equals-operator is generated automatically using derived traits.bbcccss tccss uccssccssccssc c c c c c c c c c zcz {cccc c c|c| }cccc!cccc"c"cc dO Models the different error types that can occur when working with polynomials.cR d0e e e e e ee edddd#0d#dd d d d d $0d d d d $0d $d d B A struct that models a permutation from some symmetric group S_n,E: i.e. a bijective mapping from {1, ..., n} to {1, ..., n}.=  A (@&(A&     '(A    '(A '  ( Models a cycle in a permutation sigma, +* i.e. a sequence of numbers i_1, ..., i_r -0 with sigma(i_k) = i_{k+1} and sigma(i_r) = i_1.3 C (@((C(     )(C     )(C )  T' A type that models all kinds of errorsS*/ that can occur when working with permutations.S2TMUR Returned upon attempt to evaluate the permutation for a value outside {1, ..., n}TU) for the respective n of the permutation.U,UMUTUU,UMVW Returned upon attempt to create a permutation that returns a value outside {1, ..., n}UZV,VMVUZV,VMWE Returned upon attempt to create a permutation that is not bijective.VHWMWVHWMX, Returned upon attempt to construct a cycle W/* that contains numbers outside {1, ..., n}X- or the same number twice.XXMXW/X-XXMYO Occurs when attempting to create a permutation from an empty vector of images.XRYMYXRYMZT Occurs when attempting to compose two permutations from different symmetric groups.YWZMZYWZM S S S S+(M S+ S S !T !T !T !!T ,(M!T !T !T !!T ,(M!T ,!T !T @g Unit-like struct modelling any error that could occur from an unsuitable input to a sorting algorithm.?j@]@?j@]?$?$?!$?.E]?.?? ? %? %? "%? /E]? %? %? "%? /E]? /? ? - A struct describing a matrix of real numbers0& with double floating point precision.)1 The matrix is stored as a vector of row vectors.4`R^& & & "& 0R`& & & "& 0R`& 0& & '''"'1R`'1'' (((#(2R`(2(( 9- Type modelling all different kinds of errors801 that can occur when working with real matrices. 949 c::c::c19 19 19 #19 7Rc19 19 19 $19 7Rc19 719 19 292929$298Rc2982929 393939$399Rc3993939   ))6<<??TY  #3;=KKQR(8    +-/36ccccccddddd S S S!T!T?????&&'''(1919292929398Y/ (BERmaxU K  !r  "r  #r &r 'risȔĝajk n    77 7  7 pR 777 7  7QQQOROROR ORORO吢7АӐԐՐ ֐אؐ 栂݁wF ҀFr 7 7   coeff md 7 7 exponent7 7 @7 7  scale_factor 7 7  7 7   7 7 BBB 0wpoly1)poly2)77 7  7 АӐԐՐ ֐אؐ 栂݁w 0poly_vec67 7===7=7˝ԟ ܖ<<77 7  7 ܖ??77 7  7 T7 7YY7 7 @_ a ˛tuwxuvuxx{c c 77 7 7}Rcc777 7 7QQQOROROR ORORO吢7c7 7ϱ900R0dd777 70 7QQQOROROR ORORO吢7000d d 77 70 70SsFr`Mul !"#&' 7 7F < 7 7@:: < 7 7888  7 7@@ ^ &(v)(<=?A”«RA777 7A 7QQQOROROR ORORO吢7AAA  77 7A 7A RC777 7C 7QQQOROROR ORORO吢7CCC  77 7C 7C0123456 @АӐԐՐ ֐אؐ 栂݁wAM7 7A@7 7A@O7 7AA7 7A#7 7A===7=7˝ԟC37 7A9:; 8 8@@АӐԐՐ ֐אؐ 栂݁wCM;7 7C@=7 7C B@J@ EFJF@@@J@PKPK77 7A 7APQPR77 7A 7A̅RMS S777 7M 7QQQOROROR ORORO吢7MMMT !T 77 7M 7MCD>Y EGIJKLQa7 7===7=7˝ԟUFѰ7 7leftright77 7 7VVUVVUѰ(7 7Ѱ8 87 7UАӐԐՐ ֐אؐ 栂݁w]R]?$?777 7] 7QQQOROROR ORORO吢7]]]? %? 77 7] 7]q  #R^ 'R!ת``` & 77 7` 7`R`'777 7` 7QQQOROROR ORORO吢7`7 7``Z[\]^_`abcdefgh^АӐԐՐ ֐אؐ 栂݁w`cJ7 7`@@_  7 7`@^ J 7 7`@^ 7 7`@ 7 7`@F7 7`@_FJ7 7`@@FѰJ7 7`@_@F7 7`F++7 7`@-J-7 7`@/J/07 7`@@ӏՏ֏׏؏ُ ߫@337 7`@ĿѰ67 7`F˛ccc9 19 77 7c 7cRc929777 7c 7QQQOROROR ORORO吢7c97 7ccF\4b4}4444 5!5 T7w8!:>;;R<^=]>6?I@KAANBBCC#C3CQD#E*FAFFuGGHHHHIYJ5KKLMNOOPP^Q RRRSS?TNTUU#V2VHW 1Z_Z\\5]{]]_q````absbbKccvddegahhij$k|llll"mSmmmmnnn!o>o[oooopTpppp!qqqqr%rZrrrr,sss0tdtttuuuvLvvvvsw%xjxx>yyyzze{{|T||||'}[}}"~X~~~~1T&[ ?jԂ=qڃ  *4>HR\fpzʄԄބ$.8BLV`jt~ą΅؅ (2<FPZdnxȆ҆܆$/:EOYcmwԇa V^GJ҈jtގ Ə{}29MT ɖז˗җ̚ӚacjjN         #$#$$$$$$!$^4x4445577Z8:!;;5<E=D>?0@2AA;BBCCC+C8D EE\GG~HHHHI0?C@EAAHBBCCC-CKDE$F;FFoGGHHHHISJ/KKLMNNOOPXQRRRSS:THTUUV,VBW+ZYZ\\/]u]]_l`z```abmbbEccpddeg[hhijkvllllmMmmmmnnno8oUo~ooopNppppqqqqrrTrrrr&sss*t^ttttuuvFv{vvvmwxdxx8yyyzz_{{|N||||!}U}}~Q~~~~+N U9d΂7kԃރ$.8BLV`jt~Ą΄؄ (2<FPZdnxȅ҅܅",6@JT^hr|†̆ֆ(3>IS]gq{v44445 5%7H89;;#<3=2> ?@ AA)BBB CC%C&DDE,FJGGyHHHHI*JKlKLMNOOmP/QQRZSTATTUV%VWZ3Z~\_e`s```iaaDbbccGddreg2hhijjcl~lllm$mtmmmmnnn#o@o]oooo@pVpppp~qqqqrFr\rrrrsst2ttttuuvvmvvvZwxAxxyyy|zzH{t{{+|u|||})}}}C~Z~~~~@uހG]"Aւ)?܃",6@JT^hr|„̄ք&0:DNXblvƅЅڅ  *4>HR\fpzʆԆކ&1<GQ[eoy5F7i8:0;;D<R=Q>*?=@?AABBBEDEE8FFiGGHIKJ)KKLMNNOOPPQRRRySS4TUU?1@3AA|y|||}<}} ~G~n~~~ DyKp)TĂ-R5J7m8:4;;H<T=S>,??@AAADBBGDEFFkGGHIOJ-KKLMNNOOPTQRRR{SS6TUU>W'ZUZ\\-]s]]_`aaibbAcclddegWhhijkrllllmImmmmnnno6oSo|ooopLp{pppqqqqqrRrrrr!sss(tYttttuuvAvyvvviwxbxx6yyyzz]{{|L||||}P}}~O~~~~&LS7b̂5fσ87[8:";;6<F=E>?1@3AA||<}} ~n~p)TR=sЊwj@SmԐ( 6[~/.ӕݕ*l(ZT"-6AKy/rǞ*Ÿu$Vq01ϛ{ h+7N89;;)<9=8>?$@&AA/BB,DDECFPGGI0JKrKLMNNOsP5QQRR`SSTU#W Z9Z\\\7]}]_oaaJbb"ccMddxeg8hhijj*mmmncoo\ppqbrs8tt vvGxyyzz{1||/}}a~cG܂Eӈ ȏ2;MV˗ԗ̚՚cllP:F"'#%/*+,F-223 a(-.011)23&#%`(.*+,E--3U4 ").01112$*)*$Z[Vތ6I[%SvʕZP՘Jq:hܝNڈҏE`ޗ ߚvsW  &)_  &)_ &) &) &) &) &)  &)_  &)_ Çć‡\4t44444 5#7F89 ;;!<1=0> ?@AA'BBBCC#C$DDE*FAFHGGwHHHHI(JKjKLMNNOOkP-QQRRXSST?TTUV#VWZ1Z|\\\5]{]_c`q```gaaBbbccEddpeg0hhijjal|lll m"mrmmmmnnn!o>o[oooo>pTpppp|qqqqrDrZrrrrsst0ttttuuvvkvvvXwx?xxyyyzzzF{r{{)|s|||}'}}}A~X~~~~>s܀E[ ?Ԃ'=ڃ  *4>HR\fpzʄԄބ$.8BLV`jt~ą΅؅ (2<FPZdnxȆ҆܆$/:EOYcmwtlnqsukw}m\юhNݟ%,;Nbv-@GKh}%9=KO_l  $(,04;GQXgy$K`n:?GOS[_ck}  1 6 O T m r   " . 2 6 > B J N V h     ! ' - 3 9 ? E K Q W ] c i o u {     # ) 0 7 > E L S Z a h o v }     % , x@ʃϋuHx@ʃPgJx@ʃ]/)x@ʃ˨٢X Lx@ʃzNOx@ʃ~Jx@ʃˀ7x@ʃm0n&x@ʃvМn1x@ʃ,dYBrx@ʃˀ$x@ʃx@ʃˍ>ѧx@ʃx<[x@ʃu+Dx@ʃlx@ʃhСx@ʃVO3x@ʃ#Sx@ʃ9\?UuIx@ʃˀ`hZx@ʃ˟6%x@ʃӺ9Px@ʃ[6x@ʃ̫&r/x@ʃ˕JlNktx@ʃ9f ~x@ʃ˄ Jx@ʃo;;9x@ʃ@=4,x@ʃ)3\ACx@ʃɈnwx@ʃT=T/x@ʃfsg–x@ʃ˓SaՐHx@ʃОhx@ʃ@:Rp/x@ʃL(Vvxx@ʃ˂x@ʃ֥(v3x@ʃlx@ʃ0mvxJx@ʃ˖'x@ʃ8ɫ5Hx@ʃ"}~0Nx@ʃe̊"x@ʃˆ= o[x@ʃ˒:7ax@ʃː3Mpɭx@ʃbb(ax@ʃqv6x@ʃ['.Γlx@ʃ\5Xx@ʃ㉠0?x@ʃd=ŧBx@ʃ˗kޑx@ʃh UNx@ʃ_ 4]x@ʃˌKrHx@ʃ Ahgx@ʃpzȃ)x@ʃ/qj x@ʃ͞+uuox@ʃ˝'rx@ʃ#$/vCx@ʃ?- #x@ʃ?hbx@ʃˉTЬ6.x@ʃ˞N٘8x@ʃ"h_mx@ʃ񱳛=x@ʃ˂2(8`ibx@ʃiduEx@ʃ"s.x@ʃl|0rx@ʃŷC.x@ʃ=Txx@ʃPx@ʃzWb>@`x@ʃDiŏ-|x@ʃ9Tx@ʃ%|DHx@ʃ =sx@ʃU$}P@x@ʃZ|a x@ʃ^5x@ʃ˒{x@ʃˑ wx@ʃ˕sx@ʃˈGaa,x@ʃ+\x@ʃmC/o .x@ʃˑax@ʃ?%x@ʃ;x@ʃP"గYx@ʃ˺yx@ʃZhRx@ʃ,#ex@ʃ\Ax@ʃ˻Q0/x@ʃ7hLkx@ʃ|ax@ʃ%6x@ʃѦoGx@ʃHR1'x@ʃ.x@ʃPw~'x@ʃ8oMx@ʃ>N*x@ʃ{Ng_x@ʃAnxq*x@ʃyx@ʃ5E/x@ʃ\(Cޖ5x@ʃd$/x@ʃ˯!';Жx@ʃ p F&Bx@ʃLZx@ʃU8^x@ʃˣYE׽x@ʃ˨-B00x@ʃ˭%rCx@ʃ몒x@ʃ|tx@ʃ*ۯx@ʃ|4gx@ʃlVgSx@ʃ˧xFZ%Ax@ʃصAx@ʃjwx@ʃ1t$x@ʃiUex@ʃA.x@ʃ˅K\Ux@ʃ7%:2x@ʃ}DOx@ʃ {x@ʃ˧A4|x@ʃgW Onx@ʃG0@XZx@ʃU x@ʃˮ62x@ʃ_y x@ʃ8x@ʃE8z0x@ʃ 1sx@ʃ}H -x@ʃ;RaGx@ʃ{ :Ex@ʃ˙쯳p x@ʃ˰4>ȑx@ʃ˥m|7x@ʃ x@ʃM x@ʃ$Kx@ʃ˚ rx@ʃˀ$(j{x@ʃPTpx@ʃ:{;?x@ʃ˩Dl6^x@ʃ˓7yx@ʃ˹mx@ʃKF|(Tx@ʃBCSa94x@ʃ&'x@ʃO@|Fx@ʃ 2x@ʃAx\@x@ʃd,x@ʃ: x@ʃ\^mx@ʃ"7[qx@ʃ*x@ʃ˾KMx@ʃo< yx@ʃ# >4x@ʃtx@ʃ˛Jr(lx@ʃ:6BWjx@ʃ˹ϘZ ,x@ʃalx@ʃ )PQDx@ʃ^?Yx@ʃ%x@ʃˌ7x@ʃ˂Z򥝲x@ʃj졤x@ʃAi].x@ʃKOx9x@ʃ!UiF(x@ʃCלDx@ʃ˪mѶx@ʃ2ceūx@ʃ.[ Rc_>U>C>@> >>>U?U?U>>@>>>_>@>U> >^>>C>_>> >@>U>>U>_>>@>U>:_._..U..@--@.tvFw}F\\\U\@\_nnUn@n_na_a aCaa@aa^aUppp_pCp pUp@oCooo_o o@oUf f_ffCffUf@XX@XUXX_bb_bbUb@ccUcc@c_``_#_#"'!&5102436=:9;?<A     d_ahebcgfZ\[]^`JQILCCCCCCCCCC ρѤCC3ֈGFC ρѤUCܿCC Enumerate22CXX9XXXXX9Xp @@^@_@@@??_@U@@@@ @^@C@_@@TT?^?U?@?? ?C?_??U?^WW@WW W^WUW_W^WU{ {C{^{{U{_{@{MMM 0  ?UƂƂȂ ʙ@?@?Uڂڂ܂۝P@?_@? @?@@?U@?^@D @?U@?^@;_ @F  @@@@@@U?_CFUVUZU_C @^@U_  ?^?@??@?U?@?U?_ܿ=@==U=@=@=U=_ܿ=_ܿ:=@:=@:=:=@:=@=U=U==_ܿ=@=@ UU UU UU UU:  V @@F UUU @@F    UUU  @@F @@F J U @ UU @F@ @F @F UU @F@ UU @@                         @@F  UUU  @     @@FJ  UU:V  :    :               :  :     @G        L @ @@7112((/%%(# .8220&&+ )&$!9331''.$$,!!'"/9 < x@ʃGHsS/n1fmt_helpers_for_deriveRRx@ʃˣkQXfn?1RRx@ʃ7#>ȥnS1RRx@ʃWvn 1RRx@ʃ]|ic%derive_clone_copyx@ʃ7T~c < x@ʃ˧Pr8* i%x@ʃ, *39")x@ʃi?)x@ʃ"VmHx@ʃ^Wͭx@ʃzzhz8n91RRx@ʃT[{i%x@ʃRC]<? < x@ʃgӡˠBcT < x@ʃ4N<47  < x@ʃA>n 1RRx@ʃfl9n d1RRx@ʃ2*Sϖnc1RRx@ʃzixɥ < x@ʃV@o")x@ʃ)oa&S)x@ʃ˟Z/J2)x@ʃ?m\b()x@ʃˏc0Hx@ʃˣlcS}")x@ʃTirN;i9%x@ʃ˯xUK< < x@ʃR` ̃  < x@ʃXF7 d < x@ʃyɖ:kcpBx@ʃˌ SDin1RRx@ʃ(X6)x@ʃA9%hl:d)x@ʃk6ԗUUUBVVVU0VxVU'VVoVUV VfV]VUVTVUUUKV9VVVUUV>YO\[^[][Xg[X.[]XFXZd]WZ+]Z\WGZWZOWY\WYVbY\Y+\VRYp\\)^[][ Y[XW[]XoX[]6XZT]Z]WpZW7ZyWY\?WYVY\.Y?\TODHT )x@ʃ%zSx@ʃ0mvxJ)x@ʃOwNx@ʃ9f ~x@ʃ˚ rx@ʃo< yx@ʃhСx@ʃKOx9x@ʃz~:x@ʃ˄ Jx@ʃ˝.nx@ʃ˗kޑ7x@ʃ {x@ʃ8oMlx@ʃ~Jx@ʃlx@ʃ x@ʃОh#x@ʃˀ`hZx@ʃˀ$ x@ʃ=TxLx@ʃ˨-B00yx@ʃq*[x@ʃ?- #Ax@ʃ˧xFZ%Ax@ʃ-%2Ϭx@ʃ֥(v3'x@ʃ+x@ʃˑ=o0x@ʃHR1'ix@ʃˮ62x@ʃ˒:7a/x@ʃ˂2(8`ibGx@ʃӺ9Px@ʃ˓7yx@ʃ˯!';Жtx@ʃ˿<,x@ʃ˰4>ȑx@ʃ[w8A 7x@ʃs&BBZx@ʃ\(Cޖ5rx@ʃ%|DHQx@ʃ}DOx@ʃ p F&Bux@ʃ@Bex@ʃˌKrH:x@ʃ{Hbx@ʃL_)F"V'x@ʃ˾KMx@ʃzNOx@ʃ )PQDx@ʃ#Sx@ʃCW}x@ʃ˨٢X Lx@ʃ˹ϘZ ,x@ʃx<[ x@ʃJDZ x@ʃx^t=x@ʃˈGaa,Yx@ʃ?hbBx@ʃzWb>@`Nx@ʃd,x@ʃ.[ Rc<x@ʃL1ax@ʃfsg–!x@ʃZhRax@ʃ Ahg;x@ʃ/qj =x@ʃ3Кgx@ʃ˩Dl6^þx@ʃ˹mx@ʃlx@ʃѦoGhx@ʃmC/o .[x@ʃ˝'r?x@ʃ˛Jr(lx@ʃ˒{Vx@ʃZ|a Tx@ʃU$}P@Sx@ʃ"}~0N,x@ʃ˧A4|x@ʃˢi6${>0x@ʃKF|(Tx@ʃ񱳛=Fx@ʃ˖'*x@ʃF͇y`x@ʃ}H -x@ʃ^5Ux@ʃ*x@ʃ['.Γl3x@ʃ˕Mx@ʃˤYFO,Ex@ʃ|afx@ʃ x@ʃSJnhwx@ʃqY:}.Zx@ʃ6ڐr` x@ʃ@=4,x@ʃCלDx@ʃL(Vvx%x@ʃ#$/vC@x@ʃ*jr.x@ʃ)3\ACx@ʃ|4g~x@ʃcʬ8Wx@ʃ>N*mx@ʃˀ7x@ʃc x@ʃypx@ʃ˙쯳p x@ʃO@|Fx@ʃbb(a1x@ʃˑa\x@ʃXKqoܘ=x@ʃ|t|x@ʃ\5X4x@ʃm0n&x@ʃˀ$(j{x@ʃA.ݜx@ʃU x@ʃalx@ʃ㉠0?5x@ʃ˓SaՐH"x@ʃ@:Rp/$x@ʃɈnwx@ʃo;;9x@ʃ˞N٘8Dx@ʃ# >4x@ʃ9TPx@ʃw^x@ʃ8VS x@ʃE8z<x@ʃ~+.}x@ʃ˟6%x@ʃsH[x@ʃ˪.ܙضx@ʃpzȃ)<x@ʃAnxq*ox@ʃ B x@ʃˮf2x֘F!x@ʃ;RaGx@ʃ˽ x@ʃړ?`Ea x@ʃ\^mx@ʃT=T/ x@ʃ˻Q0/dx@ʃ̫&r/x@ʃ˭%rCzx@ʃ.jx@ʃRz^Dx@ʃ7hLkex@ʃl|0rJx@ʃo x@ʃAx\@x@ʃˋlTx@ʃ!}x@ʃW|LS7x@ʃAi].x@ʃBCSa94x@ʃ!UiF(x@ʃCe чx@ʃ8ɫ5H+x@ʃM x@ʃ6Շ3x@ʃ˴#x@ʃ˕sXx@ʃ{ :Ex@ʃe̊"-x@ʃ˭7" ̗x@ʃ1t$x@ʃ˼i`$oCx@ʃh&+Fx@ʃx@ʃ'Hv x@ʃ^%}Ax@ʃPw~'kx@ʃ>iUex@ʃ{acx@ʃˣƍߐs&x@ʃ"h_mEx@ʃ˪mѶx@ʃ&Ax@ʃ\Acx@ʃ˶pʸx@ʃ`ݜx@ʃD})6Hx@ʃ+\Zx@ʃ3–x@ʃ?%]x@ʃ˓!5F#x@ʃqv62x@ʃٶ8dx@ʃDiŏ-|Ox@ʃj졤x@ʃ+=꾍x@ʃjwx@ʃ˺y`x@ʃN/Qtx@ʃwx@ʃP"గY_x@ʃ7(x@ʃG{x@ʃVO3x@ʃˌ7x@ʃ: x@ʃ =sRx@ʃl(x@ʃ 1sɰx@ʃE2]x@ʃ*ۯ}x@ʃ"7[qx@ʃDG%x@ʃyr{urx@ʃˌY6O1x@ʃd=ŧB6x@ʃ2ceūx@ʃصAցx@ʃFTZۨx@ʃlVgSx@ʃˇnӴx@ʃC x@ʃR0uy9"x@ʃd$/sx@ʃ1ϙ+x@ʃPgJx@ʃˍ>ѧ x@ʃ,#ebx@ʃR,7݈x@ʃ@ȑx@ʃ 2x@ʃJ!x@ʃLZvx@ʃgW Onx@ʃ&'x@ʃ$Kx@ʃ_ 4]9x@ʃPMx@ʃ몒{x@ʃˆ= o[.x@ʃPTpx@ʃ%6gx@ʃ˶pkp(x@ʃ˥m|7x@ʃ˂&x@ʃ%x@ʃ˂Z򥝲x@ʃˌ!G4x@ʃ]/)x@ʃ˃JQ8'x@ʃ8x@ʃcx@ʃ:{;?x@ʃ5E/qx@ʃrTn6x@ʃcưx@ʃˑ wWx@ʃPA4Wjj%'vp`A {SH &`}ulxt_ gfk~01o-TQB## 0a!}"5zC aCSC$pOp"UKLRNNcP0"Iw,_g$-Z5*^K(@yuY^9"/'=e]tWh U219IO fN$.2pc_;i:ITPYm]adb#9yek^U M%dAndi-ys%op-uv JYw_1oXr5j%'vp`@C:\Users\Patrick\Documents\Rust\projects\miura\miura\src\poly.rs 5l'aO~áD'SZ22R#2-J5J*J;=,c>5* * K9W> ];Fc\ * K4 A9 6^EL5%0 YR C<6:0>_A ?6=*. U. )& 7 @90?/3 7-&36SXM(P bN$"I8B0:J#$P6SDS;3O;Ja,H=S]/7:R]R(P P8%YQ6J+aGKV7-M R#H;#.UH.:= T:SCWD2O:Ja1.0Y1B3O(1A-%R91 80 *c) S^+(  B)# 444446O0% ;;;;;>/#. T"# $Q"" $a"# $^"$ $68) W"# "+ @/ T"% "& @$ d"# "# @'! a"# "+ @ #  ,M"# "+ 7G#  ; "% +!" <"' +/"  @"  * @- 0  < "" "  "  "  93*" V#/  ;"  "# +1" ;+1"  !="  "  "  :4"  E! "(" E"+" l+ ,1  &"# =֊ѧژٱ           ! " # $ % & ' ( ) * +,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` a b c d e!f!g"h"i"j#k#l#m#n#o$p$q$r%s%t%u&v&w&x&y&z'{'|'}'~'(((()))))***++,,----.....///000001111223334444444455566778888899:::;;;;;;;<===>>>>???@AABBBBBBCCDDDDDEEFFFGGGHIIIIJJJKKKKLLLMNNNNOOPPPQQQRRRRRRRRRSSSTTUUVVVWWWWXXXYYYYZZZZZ[[[\\]]]]^^^^_____````aaaaaaabbbbcccccccdddddddeeefffggggggggggggggghhhhiiiijjjkkllllmmmmnnoopppppqqqqqrrrrsssssttttuuuuvvvvwwwwxxxxxyyyyyzzzzzz{{{|||||}}}}}}~~~~̀؀ŁƁтׄą†ކ·هڇވ͉΋Ɍ܍ΎŏΐݐӑܑȒܒ֓ĕϕ˗Șٙțݜĝ͟؟ȡǢȢףäΤϤݥǦŧߧʨը֨éª̫Ϭݬ٭ڭʯްٳȴʶǷշ͸θӹºκӻ޻߻FC:\Users\Patrick\Documents\Rust\projects\miura\miura\src\vec_helper.rs 54ǚeȰ$?>X?BE deM0"AJJ>' .A8 29()2DM?>]+ K(. W/    6%2>(2' 6#46659(43 *D.?ʟƦ綬      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GC:\Users\Patrick\Documents\Rust\projects\miura\miura\src\permutation.rs +Ca91Y2=/F>,.4YN9K O A ./8 ILD .= i  S%9JL$6;?# 116# M:H)NS.I `44 A-&  C% 1O`R6* @. W:?4.\1:8*$9-V8-B%:4;@M ?S3./FMB(+3  V VO-"5 *5'67.C&' ,*D <8:=E:=+?-^ Z',!) [b2<<DOI#1+%@d )+3Z1_1M42"W\!  (4.1 U.*5 L.*5 P&9  I!/9/E 2& /*>P 8  k N& $ L,!  4$$ Q$# J$ &5  535#! :4 2@  T$5%#  B5<Be>=7  E3!140 N'&$B '#$? G$#!740  ,8% P2+ O 2/&#7Ƅψ뤡      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvڂwxyz{|}~ÄĄ˅݇ΉӌэĎŎҒӒÓՓ֓ʕЕѕזҗӗљɚϚњҚӚԚܝž̞ҞמݟŢϢآ¨ŪߪȬݭˮ߯۱Dz޴ض޶۷ѸĺܻǼ¾Ͼ۾BC:\Users\Patrick\Documents\Rust\projects\miura\miura\src\series.rs g֦ɴK*/z1Ƌ86*2'BGJC;V!0)   T0/@#TRوђо7ł     DžɆʆ !"#$%‡&Ç'χ()*+ӈ,-./0123456ŋ7CC:\Users\Patrick\Documents\Rust\projects\miura\miura\src\sorting.rs =@w[@K#RQ*E?51Y Q%8 HT %|&:J !  [q. V;R$YSV[.2*VL@M9@;NW:*"(=O ,/ 8-/ GO(* PSUS7`-FNW$^i ^T " Gc \E**+ J?kVbWE9V1"2*G8o k!+  Q 7>W11,3,398989Ԟ❘ŊD ׎   ͏ ȐґӑޑԒޓ֔ !Ԗ"#$%&'Ҙ()*+,-ҙ./01ߛ23456789:;<=>?ҟ@ABCDEFGHI͢JKLMNOPQRSTUVWXçYZԨ[\]^_ީ`abĪcdeʫfghi٬jklmnopqrstuүvٯwxyzϰ{|}~ӱױҳܵǷݷ̻׻˼νƾBC:\Users\Patrick\Documents\Rust\projects\miura\miura\src\matrix.rs ζESrΗզQ8%'1*5#C ?&E./C  ?;84;7,,&* 3,6/ 7J ;'-34!N;$)2 "J<@1Fn2,G8'NGo-P@=D02!;FI,&.\$ ZE8$K;'&i=g&(  %]=V&&  aS=(#*. .15#  $/'%%& &T, * R !/'%%&D=GB /+*,,O'<  /+%')'K')-++  $/+ !64$%%  "/',*+F6J7I9M: 9/'%%$KXUXU 2/'%%'%%[NNNKK $/,+*)g,./. /,020h,432 /,/301g,3333 /,**)h,./- 6I,,./- ʺأl      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЁтփԆЊ֊׊؍ɎߐʑБёґӑɓΕԕ֕וؕїҗޗ٘ۙϛʝ˝Ξ۟ܟѡΣڤȥѦƧۨܨɩߩīūѫЬíѭѮկȰӰٰڰ߱Dz۳ܳݴ޴ߵŸ׸Źӹӽҿ?C:\Users\Patrick\Documents\Rust\projects\miura\miura\src\lib.rs (P+mbu ٚZ7ᙜ׉f4ϥ?Smiurax86_64-pc-windows-msvc-7e2feb8d85e1b20d֫ŕ         % %$$ ~