úÎ!jśaœ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › None"#.7=?EHMSX_k đpairingISum all the elements of some container according to its group structure.None"#.7=?EHMSX_kL pairingElliptic curve coefficent pairingElliptic curve coefficent pairingEmbedding degreeœpairing&BN parameter that determines the prime pairing0Characteristic of the finite fields we work with pairingxOrder of elliptic curve E(Fq) G1, and therefore also the characteristic of the prime field we choose our exponents frompairingNParameter used to define the twisted curve over Fq, with xi = xi_a + xi_b * ipairingNParameter used to define the twisted curve over Fq, with xi = xi_a + xi_b * ipairingQuadratic nonresidue in Fq   None"#.7=?EHMSX_k:žŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹNone"#.7=?EHMSX_kpairing Prime field with characteristic _qpairingUse new instead of this constructorpairingTurn an integer into an Fq( number, should be used instead of the Fq constructor.pairingQuadratic non-residuepairingMultiplicative inversepairingAdditive identitypairingMultiplicative identitypairing=Euclidean algorithm to compute inverse in an integral domain a  None"#.7=?EHMSX_klm#l$pairing Prime field with characteristic _r%pairingUse new instead of this constructor&pairingTurn an integer into an Fr( number, should be used instead of the Fr constructor.+pairingÁCompute primitive roots of unity for 2^0, 2^1, ..., 2^28. (2^28 is the largest power of two that divides _r - 1, therefore there are no primitive roots of unity for higher powers of 2 in Fr.)+pairingCexponent of 2 for which we want to get the primitive root of unity $%&'()*+, $%&'()*+,None"#.79=?EHMSX_klm+0 6pairingQuadratic extension of Fq defined as  Fq[u]/x^2 + 17pairingUse new instead of this contructor:pairingnew x y creates a value representing  x + y * u ;pairingCubic non-residue in Fq2<pairingMultiplicative identity=pairingAdditive identity>pairingMultiplication by a scalar in Fq?pairing Multiply by xi@pairing Divide by xiApairingSquaring operationBpairingMultiplicative inverseCpairing Conjugation6789:;<=>?@ABCD6789:>B<=CA?@;DNone"#.7=?EHMSX_klm1¸Kpairing/Field extension defined as Fq2[v]/v^3 - (9 + u)PpairingCreate a new value in Fq6 , should be used instead of the Fq6 constructor.QpairingAdditive identityRpairingMultiplicative identitySpairingSquaring operationTpairing Multiply by xi (cubic nonresidue in Fq2) and reorder coefficientsUpairingMultiplicative inverse KLMNOPQRSTUV KLMNOPURQSTVNone"#.7=?EHMSX_klm:6 [pairing)Field extension defined as Fq6[w]/w^2 - v\pairingUse new instead of this constructor_pairingCreate a new value in Fq120 by providing a list of twelve coefficients in Fq , should be used instead of the Fq12 constructor.`pairingDeconstruct a value in Fq12' into a list of twelve coefficients in Fq.apairingMultiplicative identitybpairingAdditive identitycpairingMultiplicative inversedpairing ConjugationepairingIterated Frobenius automorphism [\]^_`abcdef [\]^_`cabdefNone"#.479=?EHMSX_kA9kpairingPoints on a curve over a field aE represented as either affine coordinates or as a point at infinity.lpairing Affine pointmpairingPoint at infinitynpairinghPoint addition, provides a group structure on an elliptic curve with the point at infinity as its unit.opairingPoint doublingppairing#Negation (flipping the y component)qpairingMultiplication by a scalarklmnopqklmonpq None"#.7=?EHMSX_kE<xpairingCJacobian coordinates for points on an elliptic curve over a field a.ypairing2Convert affine coordinates to Jacobian coordinateszpairing2Convert Jacobian coordinates to affine coordinatesxyzxyz None"#.7=?EHMSX_kMv­pairing%Picks the postive square root only |{pairing˙¤Encodes a given byte string to a point on the BN curve. The implemenation uses the Shallue van de Woestijne encoding to BN curves as specifed in Section 6 of Indifferentiable Hashing to Barreto Naehrig Curves by Pierre-Alain Fouque and Mehdi Tibouchi. This function evaluates an empty bytestring or one that contains NUL to zero which according to Definiton 2 of the paper is sent to an arbitrary point on the curve{{ None"#.7=?EHMSX_kVl |pairingKGT is subgroup of _r-th roots of unity of the multiplicative group of Fq12}pairing+G2 is E'(Fq2) defined by y^2 = x^3 + b / xi~pairing$G1 is E(Fq) defined by y^2 = x^3 + bpairingGenerator for G1€pairingGenerator for G2pairingFTest whether a value in G1 satisfies the corresponding curve equation‚pairingFTest whether a value in G2 satisfies the corresponding curve equationƒpairing.Test whether a value is an _r-th root of unity„pairingParameter for curve on Fq…pairing$Parameter for twisted curve over Fq2|}~€‚ƒ„…†‡ˆ~}|‚ƒ€„…†‡ˆ None"#.7=?EHMSX_k`č”pairing9Optimal Ate pairing (including final exponentiation step)•pairing9Optimal Ate pairing without the final exponentiation step–pairingXBinary expansion (missing the most-significant bit) representing the number 6 * _t + 2. Z29793968203157093288 = 0b11001110101111001011100000011100110111110011101100011101110101000Žpairing*Miller loop with precomputed values for G2—pairingQIterated frobenius morphisms on fields of characteristic _q, implemented naively˜pairing5Naive implementation of the final exponentiation step™pairing8A faster way of performing the final exponentiation step”•–—˜™”•™˜—–Ż !"#$%&'()*+,-./011 2&3456789:;<=>?@@AB CDEFGHIJK&LMNOPQRRSTU VWXGY&Z[\]^^_` abcdef&ghijkklmnopqrstuv w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š› œ  ž Ÿ   Ą ˘ Ł ¤ Ľ Ś § ¨ Š Ş ' Ť Ź­"pairing-0.2-I50PwP2iyzj4H1q118vmVaPairing.CyclicGroupPairing.Params Pairing.Fq Pairing.Fr Pairing.Fq2 Pairing.Fq6 Pairing.Fq12 Pairing.PointPairing.Jacobian Pairing.Hash Pairing.GroupPairing.PairingPairing.Modular CyclicGroup generatororderexpninverse AsInteger asIntegersumG$fAsIntegerInt_b_a_k_q_r_xiA_xiB_nqrFqnewfqNqrfqInvfqZerofqOne euclideanrandom fromBytes$fFractionalFq$fNumFq $fAsIntegerFq$fShowFq$fEqFq$fBitsFq $fGenericFq $fNFDataFq$fOrdFqFrfrInv isRootOfUnityisPrimitiveRootOfUnityprimitiveRootOfUnityprecompRootOfUnity $fPrettyFr$fFractionalFr$fNumFr $fAsIntegerFr$fShowFr$fEqFr$fOrdFr$fBitsFr $fNFDataFrFq2fq2xfq2yxifq2onefq2zero fq2scalarMulmulXidivXifq2sqrfq2invfq2conj$fFractionalFq2$fNumFq2$fEqFq2 $fShowFq2 $fGenericFq2 $fNFDataFq2Fq6fq6xfq6yfq6zfq6zerofq6onefq6sqrfq6inv$fFractionalFq6$fNumFq6$fEqFq6 $fShowFq6Fq12fq12xfq12y deconstructfq12onefq12zerofq12invfq12conj fq12frobenius$fFractionalFq12 $fNumFq12$fEqFq12 $fShowFq12PointInfinitygAddgDoublegNeggMul $fEqPoint $fOrdPoint $fShowPoint$fFunctorPoint$fGenericPoint $fNFDataPointJPoint toJacobian fromJacobianswEncBNGTG2G1g1g2 isOnCurveG1 isOnCurveG2isInGTb1b2hashToG1randomG1randomG2$fArbitraryPoint$fArbitraryPoint0$fCyclicGroupPoint $fMonoidPoint$fSemigroupPoint$fCyclicGroupPoint0$fMonoidPoint0$fSemigroupPoint0$fCyclicGroupFq12 $fMonoidFq12$fSemigroupFq12reducedPairing atePairingateLoopCountBinaryfrobeniusNaivefinalExponentiationNaivefinalExponentiation$fShowEllCoeffs $fEqEllCoeffs_twithQwithQMnewMod toIntegermodUnOpmodBinOp multInversemodUnOpMmodPowmodSqrtthreeModFourCongruenceisSquareisSquareIn3Mod4legendre randomModsqrtOf ateMillerLoop