curve25519-dalek 4.0.0-rc.0

A pure-Rust implementation of group operations on ristretto255 and Curve25519
// -*- mode: rust; -*-
//
// This file is part of curve25519-dalek.
// Copyright (c) 2016-2021 isis lovecruft
// Copyright (c) 2016-2019 Henry de Valence
// See LICENSE for licensing information.
//
// Authors:
// - isis agora lovecruft <isis@patternsinthevoid.net>
// - Henry de Valence <hdevalence@hdevalence.ca>

//! This module contains backend-specific constant values, such as the 64-bit limbs of curve constants.

use super::field::FieldElement51;
use super::scalar::Scalar52;
use crate::edwards::EdwardsPoint;

#[cfg(feature = "precomputed-tables")]
use crate::{
    backend::serial::curve_models::AffineNielsPoint,
    edwards::EdwardsBasepointTable,
    window::{LookupTable, NafLookupTable8},
};

/// The value of minus one, equal to `-&FieldElement::ONE`
pub(crate) const MINUS_ONE: FieldElement51 = FieldElement51([
    2251799813685228,
    2251799813685247,
    2251799813685247,
    2251799813685247,
    2251799813685247,
]);

/// Edwards `d` value, equal to `-121665/121666 mod p`.
pub(crate) const EDWARDS_D: FieldElement51 = FieldElement51([
    929955233495203,
    466365720129213,
    1662059464998953,
    2033849074728123,
    1442794654840575,
]);

/// Edwards `2*d` value, equal to `2*(-121665/121666) mod p`.
pub(crate) const EDWARDS_D2: FieldElement51 = FieldElement51([
    1859910466990425,
    932731440258426,
    1072319116312658,
    1815898335770999,
    633789495995903,
]);

/// One minus edwards `d` value squared, equal to `(1 - (-121665/121666) mod p) pow 2`
pub(crate) const ONE_MINUS_EDWARDS_D_SQUARED: FieldElement51 = FieldElement51([
    1136626929484150,
    1998550399581263,
    496427632559748,
    118527312129759,
    45110755273534,
]);

/// Edwards `d` value minus one squared, equal to `(((-121665/121666) mod p) - 1) pow 2`
pub(crate) const EDWARDS_D_MINUS_ONE_SQUARED: FieldElement51 = FieldElement51([
    1507062230895904,
    1572317787530805,
    683053064812840,
    317374165784489,
    1572899562415810,
]);

/// `= sqrt(a*d - 1)`, where `a = -1 (mod p)`, `d` are the Edwards curve parameters.
pub(crate) const SQRT_AD_MINUS_ONE: FieldElement51 = FieldElement51([
    2241493124984347,
    425987919032274,
    2207028919301688,
    1220490630685848,
    974799131293748,
]);

/// `= 1/sqrt(a-d)`, where `a = -1 (mod p)`, `d` are the Edwards curve parameters.
pub(crate) const INVSQRT_A_MINUS_D: FieldElement51 = FieldElement51([
    278908739862762,
    821645201101625,
    8113234426968,
    1777959178193151,
    2118520810568447,
]);

/// Precomputed value of one of the square roots of -1 (mod p)
pub(crate) const SQRT_M1: FieldElement51 = FieldElement51([
    1718705420411056,
    234908883556509,
    2233514472574048,
    2117202627021982,
    765476049583133,
]);

/// `APLUS2_OVER_FOUR` is (A+2)/4. (This is used internally within the Montgomery ladder.)
pub(crate) const APLUS2_OVER_FOUR: FieldElement51 = FieldElement51([121666, 0, 0, 0, 0]);

/// `MONTGOMERY_A` is equal to 486662, which is a constant of the curve equation
/// for Curve25519 in its Montgomery form. (This is used internally within the
/// Elligator map.)
pub(crate) const MONTGOMERY_A: FieldElement51 = FieldElement51([486662, 0, 0, 0, 0]);

/// `MONTGOMERY_A_NEG` is equal to -486662. (This is used internally within the
/// Elligator map.)
pub(crate) const MONTGOMERY_A_NEG: FieldElement51 = FieldElement51([
    2251799813198567,
    2251799813685247,
    2251799813685247,
    2251799813685247,
    2251799813685247,
]);

/// `L` is the order of base point, i.e. 2^252 + 27742317777372353535851937790883648493
pub(crate) const L: Scalar52 = Scalar52([
    0x0002631a5cf5d3ed,
    0x000dea2f79cd6581,
    0x000000000014def9,
    0x0000000000000000,
    0x0000100000000000,
]);

/// `L` * `LFACTOR` = -1 (mod 2^52)
pub(crate) const LFACTOR: u64 = 0x51da312547e1b;

/// `R` = R % L where R = 2^260
pub(crate) const R: Scalar52 = Scalar52([
    0x000f48bd6721e6ed,
    0x0003bab5ac67e45a,
    0x000fffffeb35e51b,
    0x000fffffffffffff,
    0x00000fffffffffff,
]);

/// `RR` = (R^2) % L where R = 2^260
pub(crate) const RR: Scalar52 = Scalar52([
    0x0009d265e952d13b,
    0x000d63c715bea69f,
    0x0005be65cb687604,
    0x0003dceec73d217f,
    0x000009411b7c309a,
]);

/// The Ed25519 basepoint, as an `EdwardsPoint`.
///
/// This is called `_POINT` to distinguish it from
/// `ED25519_BASEPOINT_TABLE`, which should be used for scalar
/// multiplication (it's much faster).
pub const ED25519_BASEPOINT_POINT: EdwardsPoint = EdwardsPoint {
    X: FieldElement51([
        1738742601995546,
        1146398526822698,
        2070867633025821,
        562264141797630,
        587772402128613,
    ]),
    Y: FieldElement51([
        1801439850948184,
        1351079888211148,
        450359962737049,
        900719925474099,
        1801439850948198,
    ]),
    Z: FieldElement51([1, 0, 0, 0, 0]),
    T: FieldElement51([
        1841354044333475,
        16398895984059,
        755974180946558,
        900171276175154,
        1821297809914039,
    ]),
};

/// The 8-torsion subgroup \\(\mathcal E \[8\]\\).
///
/// In the case of Curve25519, it is cyclic; the \\(i\\)-th element of
/// the array is \\(\[i\]P\\), where \\(P\\) is a point of order \\(8\\)
/// generating \\(\mathcal E\[8\]\\).
///
/// Thus \\(\mathcal E\[4\]\\) is the points indexed by `0,2,4,6`, and
/// \\(\mathcal E\[2\]\\) is the points indexed by `0,4`.
pub const EIGHT_TORSION: [EdwardsPoint; 8] = EIGHT_TORSION_INNER_DOC_HIDDEN;

/// Inner item used to hide limb constants from cargo doc output.
#[doc(hidden)]
pub const EIGHT_TORSION_INNER_DOC_HIDDEN: [EdwardsPoint; 8] = [
    EdwardsPoint {
        X: FieldElement51([0, 0, 0, 0, 0]),
        Y: FieldElement51([1, 0, 0, 0, 0]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([0, 0, 0, 0, 0]),
    },
    EdwardsPoint {
        X: FieldElement51([
            358744748052810,
            1691584618240980,
            977650209285361,
            1429865912637724,
            560044844278676,
        ]),
        Y: FieldElement51([
            84926274344903,
            473620666599931,
            365590438845504,
            1028470286882429,
            2146499180330972,
        ]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([
            1448326834587521,
            1857896831960481,
            1093722731865333,
            1677408490711241,
            1915505153018406,
        ]),
    },
    EdwardsPoint {
        X: FieldElement51([
            533094393274173,
            2016890930128738,
            18285341111199,
            134597186663265,
            1486323764102114,
        ]),
        Y: FieldElement51([0, 0, 0, 0, 0]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([0, 0, 0, 0, 0]),
    },
    EdwardsPoint {
        X: FieldElement51([
            358744748052810,
            1691584618240980,
            977650209285361,
            1429865912637724,
            560044844278676,
        ]),
        Y: FieldElement51([
            2166873539340326,
            1778179147085316,
            1886209374839743,
            1223329526802818,
            105300633354275,
        ]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([
            803472979097708,
            393902981724766,
            1158077081819914,
            574391322974006,
            336294660666841,
        ]),
    },
    EdwardsPoint {
        X: FieldElement51([0, 0, 0, 0, 0]),
        Y: FieldElement51([
            2251799813685228,
            2251799813685247,
            2251799813685247,
            2251799813685247,
            2251799813685247,
        ]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([0, 0, 0, 0, 0]),
    },
    EdwardsPoint {
        X: FieldElement51([
            1893055065632419,
            560215195444267,
            1274149604399886,
            821933901047523,
            1691754969406571,
        ]),
        Y: FieldElement51([
            2166873539340326,
            1778179147085316,
            1886209374839743,
            1223329526802818,
            105300633354275,
        ]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([
            1448326834587521,
            1857896831960481,
            1093722731865333,
            1677408490711241,
            1915505153018406,
        ]),
    },
    EdwardsPoint {
        X: FieldElement51([
            1718705420411056,
            234908883556509,
            2233514472574048,
            2117202627021982,
            765476049583133,
        ]),
        Y: FieldElement51([0, 0, 0, 0, 0]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([0, 0, 0, 0, 0]),
    },
    EdwardsPoint {
        X: FieldElement51([
            1893055065632419,
            560215195444267,
            1274149604399886,
            821933901047523,
            1691754969406571,
        ]),
        Y: FieldElement51([
            84926274344903,
            473620666599931,
            365590438845504,
            1028470286882429,
            2146499180330972,
        ]),
        Z: FieldElement51([1, 0, 0, 0, 0]),
        T: FieldElement51([
            803472979097708,
            393902981724766,
            1158077081819914,
            574391322974006,
            336294660666841,
        ]),
    },
];

/// Table containing precomputed multiples of the Ed25519 basepoint \\(B = (x, 4/5)\\).
#[cfg(feature = "precomputed-tables")]
pub static ED25519_BASEPOINT_TABLE: &'static EdwardsBasepointTable =
    &ED25519_BASEPOINT_TABLE_INNER_DOC_HIDDEN;

/// Inner constant, used to avoid filling the docs with precomputed points.
#[doc(hidden)]
#[cfg(feature = "precomputed-tables")]
static ED25519_BASEPOINT_TABLE_INNER_DOC_HIDDEN: EdwardsBasepointTable = EdwardsBasepointTable([
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3540182452943730,
                2497478415033846,
                2521227595762870,
                1462984067271729,
                2389212253076811,
            ]),
            y_minus_x: FieldElement51([
                62697248952638,
                204681361388450,
                631292143396476,
                338455783676468,
                1213667448819585,
            ]),
            xy2d: FieldElement51([
                301289933810280,
                1259582250014073,
                1422107436869536,
                796239922652654,
                1953934009299142,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3632771708514775,
                790832306631235,
                2067202295274102,
                1995808275510000,
                1566530869037010,
            ]),
            y_minus_x: FieldElement51([
                463307831301544,
                432984605774163,
                1610641361907204,
                750899048855000,
                1894842303421586,
            ]),
            xy2d: FieldElement51([
                748439484463711,
                1033211726465151,
                1396005112841647,
                1611506220286469,
                1972177495910992,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1601611775252272,
                1720807796594148,
                1132070835939856,
                3512254832574799,
                2147779492816910,
            ]),
            y_minus_x: FieldElement51([
                316559037616741,
                2177824224946892,
                1459442586438991,
                1461528397712656,
                751590696113597,
            ]),
            xy2d: FieldElement51([
                1850748884277385,
                1200145853858453,
                1068094770532492,
                672251375690438,
                1586055907191707,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                934282339813791,
                1846903124198670,
                1172395437954843,
                1007037127761661,
                1830588347719256,
            ]),
            y_minus_x: FieldElement51([
                1694390458783935,
                1735906047636159,
                705069562067493,
                648033061693059,
                696214010414170,
            ]),
            xy2d: FieldElement51([
                1121406372216585,
                192876649532226,
                190294192191717,
                1994165897297032,
                2245000007398739,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                769950342298400,
                2384754244604994,
                3095885746880802,
                3225892188161580,
                2977876099231263,
            ]),
            y_minus_x: FieldElement51([
                425251763115706,
                608463272472562,
                442562545713235,
                837766094556764,
                374555092627893,
            ]),
            xy2d: FieldElement51([
                1086255230780037,
                274979815921559,
                1960002765731872,
                929474102396301,
                1190409889297339,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1388594989461809,
                316767091099457,
                2646098655878230,
                1230079486801004,
                1440737038838979,
            ]),
            y_minus_x: FieldElement51([
                7380825640100,
                146210432690483,
                304903576448906,
                1198869323871120,
                997689833219095,
            ]),
            xy2d: FieldElement51([
                1181317918772081,
                114573476638901,
                262805072233344,
                265712217171332,
                294181933805782,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2916800678241215,
                2065379846933858,
                2622030924071124,
                2602788184473875,
                1233371373142984,
            ]),
            y_minus_x: FieldElement51([
                2019367628972465,
                676711900706637,
                110710997811333,
                1108646842542025,
                517791959672113,
            ]),
            xy2d: FieldElement51([
                965130719900578,
                247011430587952,
                526356006571389,
                91986625355052,
                2157223321444601,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4320419353804412,
                4218074731744053,
                957728544705548,
                729906502578991,
                2411634706750414,
            ]),
            y_minus_x: FieldElement51([
                2073601412052185,
                31021124762708,
                264500969797082,
                248034690651703,
                1030252227928288,
            ]),
            xy2d: FieldElement51([
                551790716293402,
                1989538725166328,
                801169423371717,
                2052451893578887,
                678432056995012,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1368953770187805,
                3042147450398169,
                2689308289352409,
                2142576377050579,
                1932081720066286,
            ]),
            y_minus_x: FieldElement51([
                953638594433374,
                1092333936795051,
                1419774766716690,
                805677984380077,
                859228993502513,
            ]),
            xy2d: FieldElement51([
                1200766035879111,
                20142053207432,
                1465634435977050,
                1645256912097844,
                295121984874596,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1735718747031538,
                1248237894295956,
                1204753118328107,
                976066523550493,
                2317743583219840,
            ]),
            y_minus_x: FieldElement51([
                1060098822528990,
                1586825862073490,
                212301317240126,
                1975302711403555,
                666724059764335,
            ]),
            xy2d: FieldElement51([
                1091990273418756,
                1572899409348578,
                80968014455247,
                306009358661350,
                1520450739132526,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3732317023121341,
                1511153322193951,
                3496143672676420,
                2556587964178488,
                2620936670181690,
            ]),
            y_minus_x: FieldElement51([
                2151330273626164,
                762045184746182,
                1688074332551515,
                823046109005759,
                907602769079491,
            ]),
            xy2d: FieldElement51([
                2047386910586836,
                168470092900250,
                1552838872594810,
                340951180073789,
                360819374702533,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1982622644432037,
                2014393600336956,
                2380709022489462,
                3869592437614438,
                2357094095599062,
            ]),
            y_minus_x: FieldElement51([
                980234343912898,
                1712256739246056,
                588935272190264,
                204298813091998,
                841798321043288,
            ]),
            xy2d: FieldElement51([
                197561292938973,
                454817274782871,
                1963754960082318,
                2113372252160468,
                971377527342673,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2416499262514576,
                2254927265442919,
                3451304785234000,
                1766155447043651,
                1899238924683527,
            ]),
            y_minus_x: FieldElement51([
                732262946680281,
                1674412764227063,
                2182456405662809,
                1350894754474250,
                558458873295247,
            ]),
            xy2d: FieldElement51([
                2103305098582922,
                1960809151316468,
                715134605001343,
                1454892949167181,
                40827143824949,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1239289043050193,
                1744654158124578,
                758702410031698,
                4048562808759936,
                2253402870349013,
            ]),
            y_minus_x: FieldElement51([
                2232056027107988,
                987343914584615,
                2115594492994461,
                1819598072792159,
                1119305654014850,
            ]),
            xy2d: FieldElement51([
                320153677847348,
                939613871605645,
                641883205761567,
                1930009789398224,
                329165806634126,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3232730304159378,
                1242488692177892,
                1251446316964684,
                1086618677993530,
                1961430968465772,
            ]),
            y_minus_x: FieldElement51([
                276821765317453,
                1536835591188030,
                1305212741412361,
                61473904210175,
                2051377036983058,
            ]),
            xy2d: FieldElement51([
                833449923882501,
                1750270368490475,
                1123347002068295,
                185477424765687,
                278090826653186,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                794524995833413,
                1849907304548286,
                2305148486158393,
                1272368559505216,
                1147304168324779,
            ]),
            y_minus_x: FieldElement51([
                1504846112759364,
                1203096289004681,
                562139421471418,
                274333017451844,
                1284344053775441,
            ]),
            xy2d: FieldElement51([
                483048732424432,
                2116063063343382,
                30120189902313,
                292451576741007,
                1156379271702225,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3180171966714267,
                2147692869914563,
                1455665844462196,
                1986737809425946,
                2437006863943337,
            ]),
            y_minus_x: FieldElement51([
                137732961814206,
                706670923917341,
                1387038086865771,
                1965643813686352,
                1384777115696347,
            ]),
            xy2d: FieldElement51([
                481144981981577,
                2053319313589856,
                2065402289827512,
                617954271490316,
                1106602634668125,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2948097833334040,
                3145099472726142,
                1148636718636008,
                2278533891034865,
                2203955659340680,
            ]),
            y_minus_x: FieldElement51([
                657390353372855,
                998499966885562,
                991893336905797,
                810470207106761,
                343139804608786,
            ]),
            xy2d: FieldElement51([
                791736669492960,
                934767652997115,
                824656780392914,
                1759463253018643,
                361530362383518,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2022541353055578,
                4346500076272714,
                3802807888710933,
                2494585331103411,
                2947785218648809,
            ]),
            y_minus_x: FieldElement51([
                1287487199965223,
                2215311941380308,
                1552928390931986,
                1664859529680196,
                1125004975265243,
            ]),
            xy2d: FieldElement51([
                677434665154918,
                989582503122485,
                1817429540898386,
                1052904935475344,
                1143826298169798,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2619066141993637,
                2570231002607651,
                2947429167440602,
                2885885471266079,
                2276381426249673,
            ]),
            y_minus_x: FieldElement51([
                773360688841258,
                1815381330538070,
                363773437667376,
                539629987070205,
                783280434248437,
            ]),
            xy2d: FieldElement51([
                180820816194166,
                168937968377394,
                748416242794470,
                1227281252254508,
                1567587861004268,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2730575372268893,
                2062896624554806,
                2951191072970647,
                2609899222113120,
                1277310261461760,
            ]),
            y_minus_x: FieldElement51([
                1984740906540026,
                1079164179400229,
                1056021349262661,
                1659958556483663,
                1088529069025527,
            ]),
            xy2d: FieldElement51([
                580736401511151,
                1842931091388998,
                1177201471228238,
                2075460256527244,
                1301133425678027,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1515728832059163,
                1575261009617579,
                1510246567196186,
                2442877836294952,
                2368461529974388,
            ]),
            y_minus_x: FieldElement51([
                1295295738269652,
                1714742313707026,
                545583042462581,
                2034411676262552,
                1513248090013606,
            ]),
            xy2d: FieldElement51([
                230710545179830,
                30821514358353,
                760704303452229,
                390668103790604,
                573437871383156,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3421179921230875,
                2514967047430861,
                4274701112739695,
                3071700566936367,
                4275698278559832,
            ]),
            y_minus_x: FieldElement51([
                2102254323485823,
                1570832666216754,
                34696906544624,
                1993213739807337,
                70638552271463,
            ]),
            xy2d: FieldElement51([
                894132856735058,
                548675863558441,
                845349339503395,
                1942269668326667,
                1615682209874691,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3539470031223082,
                1222355136884919,
                1846481788678694,
                1150426571265110,
                1613523400722047,
            ]),
            y_minus_x: FieldElement51([
                793388516527298,
                1315457083650035,
                1972286999342417,
                1901825953052455,
                338269477222410,
            ]),
            xy2d: FieldElement51([
                550201530671806,
                778605267108140,
                2063911101902983,
                115500557286349,
                2041641272971022,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                717255318455100,
                519313764361315,
                2080406977303708,
                541981206705521,
                774328150311600,
            ]),
            y_minus_x: FieldElement51([
                261715221532238,
                1795354330069993,
                1496878026850283,
                499739720521052,
                389031152673770,
            ]),
            xy2d: FieldElement51([
                1997217696294013,
                1717306351628065,
                1684313917746180,
                1644426076011410,
                1857378133465451,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3727234538477877,
                2328731709971226,
                3368528843456914,
                2002544139318041,
                2977347647489186,
            ]),
            y_minus_x: FieldElement51([
                2022306639183567,
                726296063571875,
                315345054448644,
                1058733329149221,
                1448201136060677,
            ]),
            xy2d: FieldElement51([
                1710065158525665,
                1895094923036397,
                123988286168546,
                1145519900776355,
                1607510767693874,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2813405189107769,
                1071733543815036,
                2383296312486238,
                1946868434569998,
                3079937947649451,
            ]),
            y_minus_x: FieldElement51([
                1548495173745801,
                442310529226540,
                998072547000384,
                553054358385281,
                644824326376171,
            ]),
            xy2d: FieldElement51([
                1445526537029440,
                2225519789662536,
                914628859347385,
                1064754194555068,
                1660295614401091,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3451490036797185,
                2275827949507588,
                2318438102929588,
                2309425969971222,
                2816893781664854,
            ]),
            y_minus_x: FieldElement51([
                876926774220824,
                554618976488214,
                1012056309841565,
                839961821554611,
                1414499340307677,
            ]),
            xy2d: FieldElement51([
                703047626104145,
                1266841406201770,
                165556500219173,
                486991595001879,
                1011325891650656,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1622861044480487,
                1156394801573634,
                4120932379100752,
                2578903799462977,
                2095342781472283,
            ]),
            y_minus_x: FieldElement51([
                334886927423922,
                489511099221528,
                129160865966726,
                1720809113143481,
                619700195649254,
            ]),
            xy2d: FieldElement51([
                1646545795166119,
                1758370782583567,
                714746174550637,
                1472693650165135,
                898994790308209,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2585203586724508,
                2547572356138185,
                1693106465353609,
                912330357530760,
                2723035471635610,
            ]),
            y_minus_x: FieldElement51([
                1811196219982022,
                1068969825533602,
                289602974833439,
                1988956043611592,
                863562343398367,
            ]),
            xy2d: FieldElement51([
                906282429780072,
                2108672665779781,
                432396390473936,
                150625823801893,
                1708930497638539,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                925664675702309,
                2273216662253932,
                4083236455546587,
                601157008940112,
                2623617868729744,
            ]),
            y_minus_x: FieldElement51([
                1479786007267725,
                1738881859066675,
                68646196476567,
                2146507056100328,
                1247662817535471,
            ]),
            xy2d: FieldElement51([
                52035296774456,
                939969390708103,
                312023458773250,
                59873523517659,
                1231345905848899,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2895154920100990,
                2541986621181021,
                2013561737429022,
                2571447883196794,
                2645536492181409,
            ]),
            y_minus_x: FieldElement51([
                129358342392716,
                1932811617704777,
                1176749390799681,
                398040349861790,
                1170779668090425,
            ]),
            xy2d: FieldElement51([
                2051980782668029,
                121859921510665,
                2048329875753063,
                1235229850149665,
                519062146124755,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3859970785658325,
                2667608874045675,
                1350468408164765,
                2038620059057678,
                3278704299674360,
            ]),
            y_minus_x: FieldElement51([
                1837656083115103,
                1510134048812070,
                906263674192061,
                1821064197805734,
                565375124676301,
            ]),
            xy2d: FieldElement51([
                578027192365650,
                2034800251375322,
                2128954087207123,
                478816193810521,
                2196171989962750,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1633188840273120,
                3104586986058956,
                1548762607215795,
                1266275218902681,
                3359018017010381,
            ]),
            y_minus_x: FieldElement51([
                462189358480054,
                1784816734159228,
                1611334301651368,
                1303938263943540,
                707589560319424,
            ]),
            xy2d: FieldElement51([
                1038829280972848,
                38176604650029,
                753193246598573,
                1136076426528122,
                595709990562434,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3660251634545082,
                2194984964010832,
                2198361797561729,
                1061962440055713,
                1645147963442934,
            ]),
            y_minus_x: FieldElement51([
                4701053362120,
                1647641066302348,
                1047553002242085,
                1923635013395977,
                206970314902065,
            ]),
            xy2d: FieldElement51([
                1750479161778571,
                1362553355169293,
                1891721260220598,
                966109370862782,
                1024913988299801,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2464498862816952,
                1117950018299774,
                1873945661751056,
                3655602735669306,
                2382695896337945,
            ]),
            y_minus_x: FieldElement51([
                636808533673210,
                1262201711667560,
                390951380330599,
                1663420692697294,
                561951321757406,
            ]),
            xy2d: FieldElement51([
                520731594438141,
                1446301499955692,
                273753264629267,
                1565101517999256,
                1019411827004672,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3178327305714638,
                3443653291096626,
                734233225181170,
                2435838701226518,
                4042225960010590,
            ]),
            y_minus_x: FieldElement51([
                1464651961852572,
                1483737295721717,
                1519450561335517,
                1161429831763785,
                405914998179977,
            ]),
            xy2d: FieldElement51([
                996126634382301,
                796204125879525,
                127517800546509,
                344155944689303,
                615279846169038,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2990523894660505,
                2188666632415295,
                1961313708559162,
                1506545807547587,
                3403101452654988,
            ]),
            y_minus_x: FieldElement51([
                622917337413835,
                1218989177089035,
                1284857712846592,
                970502061709359,
                351025208117090,
            ]),
            xy2d: FieldElement51([
                2067814584765580,
                1677855129927492,
                2086109782475197,
                235286517313238,
                1416314046739645,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2838644076315587,
                2559244195637442,
                458399356043425,
                2853867838192310,
                3280348017100490,
            ]),
            y_minus_x: FieldElement51([
                678489922928203,
                2016657584724032,
                90977383049628,
                1026831907234582,
                615271492942522,
            ]),
            xy2d: FieldElement51([
                301225714012278,
                1094837270268560,
                1202288391010439,
                644352775178361,
                1647055902137983,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1210746697896459,
                1416608304244708,
                2938287290903104,
                3496931005119382,
                3303038150540984,
            ]),
            y_minus_x: FieldElement51([
                1135604073198207,
                1683322080485474,
                769147804376683,
                2086688130589414,
                900445683120379,
            ]),
            xy2d: FieldElement51([
                1971518477615628,
                401909519527336,
                448627091057375,
                1409486868273821,
                1214789035034363,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1364039144731711,
                1897497433586190,
                2203097701135459,
                2397261210496499,
                1349844460790698,
            ]),
            y_minus_x: FieldElement51([
                1045230323257973,
                818206601145807,
                630513189076103,
                1672046528998132,
                807204017562437,
            ]),
            xy2d: FieldElement51([
                439961968385997,
                386362664488986,
                1382706320807688,
                309894000125359,
                2207801346498567,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3480804500082836,
                3172443782216110,
                2375775707596425,
                2933223806901024,
                1400559197080972,
            ]),
            y_minus_x: FieldElement51([
                2003766096898049,
                170074059235165,
                1141124258967971,
                1485419893480973,
                1573762821028725,
            ]),
            xy2d: FieldElement51([
                729905708611432,
                1270323270673202,
                123353058984288,
                426460209632942,
                2195574535456672,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1271140255321216,
                2044363183174497,
                2303925201319937,
                3696920060379952,
                3194341800024331,
            ]),
            y_minus_x: FieldElement51([
                1761608437466135,
                583360847526804,
                1586706389685493,
                2157056599579261,
                1170692369685772,
            ]),
            xy2d: FieldElement51([
                871476219910823,
                1878769545097794,
                2241832391238412,
                548957640601001,
                690047440233174,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2548994545820755,
                1366347803776819,
                3552985325930849,
                561849853336293,
                1533554921345731,
            ]),
            y_minus_x: FieldElement51([
                999628998628371,
                1132836708493400,
                2084741674517453,
                469343353015612,
                678782988708035,
            ]),
            xy2d: FieldElement51([
                2189427607417022,
                699801937082607,
                412764402319267,
                1478091893643349,
                2244675696854460,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3964091869651792,
                2456213404310121,
                3657538451018088,
                2660781114515010,
                3112882032961968,
            ]),
            y_minus_x: FieldElement51([
                508561155940631,
                966928475686665,
                2236717801150132,
                424543858577297,
                2089272956986143,
            ]),
            xy2d: FieldElement51([
                221245220129925,
                1156020201681217,
                491145634799213,
                542422431960839,
                828100817819207,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2405556784925632,
                1299874139923976,
                2644898978945750,
                1058234455773021,
                996989038681183,
            ]),
            y_minus_x: FieldElement51([
                559086812798481,
                573177704212711,
                1629737083816402,
                1399819713462595,
                1646954378266038,
            ]),
            xy2d: FieldElement51([
                1887963056288059,
                228507035730124,
                1468368348640282,
                930557653420194,
                613513962454686,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1224529808187534,
                1577022856702685,
                2206946542980843,
                625883007765001,
                2531730607197406,
            ]),
            y_minus_x: FieldElement51([
                1076287717051609,
                1114455570543035,
                187297059715481,
                250446884292121,
                1885187512550540,
            ]),
            xy2d: FieldElement51([
                902497362940219,
                76749815795675,
                1657927525633846,
                1420238379745202,
                1340321636548352,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1129576631190765,
                3533793823712575,
                996844254743017,
                2509676177174497,
                3402650555740265,
            ]),
            y_minus_x: FieldElement51([
                628740660038789,
                1943038498527841,
                467786347793886,
                1093341428303375,
                235413859513003,
            ]),
            xy2d: FieldElement51([
                237425418909360,
                469614029179605,
                1512389769174935,
                1241726368345357,
                441602891065214,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3988217766743784,
                726531315520507,
                1833335034432527,
                1629442561574747,
                2876218732971333,
            ]),
            y_minus_x: FieldElement51([
                1960754663920689,
                497040957888962,
                1909832851283095,
                1271432136996826,
                2219780368020940,
            ]),
            xy2d: FieldElement51([
                1537037379417136,
                1358865369268262,
                2130838645654099,
                828733687040705,
                1999987652890901,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                629042105241795,
                1098854999137608,
                887281544569320,
                3674901833560025,
                2259711072636808,
            ]),
            y_minus_x: FieldElement51([
                1811562332665373,
                1501882019007673,
                2213763501088999,
                359573079719636,
                36370565049116,
            ]),
            xy2d: FieldElement51([
                218907117361280,
                1209298913016966,
                1944312619096112,
                1130690631451061,
                1342327389191701,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1369976867854685,
                1396479602419169,
                4017456468084104,
                2203659200586298,
                3250127649802489,
            ]),
            y_minus_x: FieldElement51([
                2230701885562825,
                1348173180338974,
                2172856128624598,
                1426538746123771,
                444193481326151,
            ]),
            xy2d: FieldElement51([
                784210426627951,
                918204562375674,
                1284546780452985,
                1324534636134684,
                1872449409642708,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2571438643225542,
                2848082470493653,
                2037902696412607,
                1557219121643918,
                341938082688094,
            ]),
            y_minus_x: FieldElement51([
                1901860206695915,
                2004489122065736,
                1625847061568236,
                973529743399879,
                2075287685312905,
            ]),
            xy2d: FieldElement51([
                1371853944110545,
                1042332820512553,
                1949855697918254,
                1791195775521505,
                37487364849293,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                687200189577836,
                1082536651125675,
                2896024754556794,
                2592723009743198,
                2595381160432643,
            ]),
            y_minus_x: FieldElement51([
                2082717129583892,
                27829425539422,
                145655066671970,
                1690527209845512,
                1865260509673478,
            ]),
            xy2d: FieldElement51([
                1059729620568824,
                2163709103470266,
                1440302280256872,
                1769143160546397,
                869830310425069,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3861316033464273,
                777277757338816,
                2101121130363987,
                550762194946473,
                1905542338659364,
            ]),
            y_minus_x: FieldElement51([
                2024821921041576,
                426948675450149,
                595133284085473,
                471860860885970,
                600321679413000,
            ]),
            xy2d: FieldElement51([
                598474602406721,
                1468128276358244,
                1191923149557635,
                1501376424093216,
                1281662691293476,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1721138489890688,
                1264336102277790,
                2684864359106535,
                1359988423149465,
                3813671107094695,
            ]),
            y_minus_x: FieldElement51([
                719520245587143,
                393380711632345,
                132350400863381,
                1543271270810729,
                1819543295798660,
            ]),
            xy2d: FieldElement51([
                396397949784152,
                1811354474471839,
                1362679985304303,
                2117033964846756,
                498041172552279,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1812471844975748,
                1856491995543149,
                126579494584102,
                3288044672967868,
                1975108050082549,
            ]),
            y_minus_x: FieldElement51([
                650623932407995,
                1137551288410575,
                2125223403615539,
                1725658013221271,
                2134892965117796,
            ]),
            xy2d: FieldElement51([
                522584000310195,
                1241762481390450,
                1743702789495384,
                2227404127826575,
                1686746002148897,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                427904865186293,
                1703211129693455,
                1585368107547509,
                3688784302429584,
                3012988348299225,
            ]),
            y_minus_x: FieldElement51([
                318101947455002,
                248138407995851,
                1481904195303927,
                309278454311197,
                1258516760217879,
            ]),
            xy2d: FieldElement51([
                1275068538599310,
                513726919533379,
                349926553492294,
                688428871968420,
                1702400196000666,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3313663849950481,
                3213411074010628,
                2573659446386085,
                3297400443644764,
                1985130202504037,
            ]),
            y_minus_x: FieldElement51([
                1558816436882417,
                1962896332636523,
                1337709822062152,
                1501413830776938,
                294436165831932,
            ]),
            xy2d: FieldElement51([
                818359826554971,
                1862173000996177,
                626821592884859,
                573655738872376,
                1749691246745455,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1988022651432119,
                3333911312271288,
                1834020786104820,
                3706626690108935,
                692929915223121,
            ]),
            y_minus_x: FieldElement51([
                2146513703733331,
                584788900394667,
                464965657279958,
                2183973639356127,
                238371159456790,
            ]),
            xy2d: FieldElement51([
                1129007025494441,
                2197883144413266,
                265142755578169,
                971864464758890,
                1983715884903702,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1291366624493056,
                2633256531874362,
                1711482489312443,
                1815233647702022,
                3144079596677715,
            ]),
            y_minus_x: FieldElement51([
                444548969917454,
                1452286453853356,
                2113731441506810,
                645188273895859,
                810317625309512,
            ]),
            xy2d: FieldElement51([
                2242724082797924,
                1373354730327868,
                1006520110883049,
                2147330369940688,
                1151816104883620,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3997520014069025,
                4163522956860564,
                2056329390702073,
                2607026987995097,
                3131032608056347,
            ]),
            y_minus_x: FieldElement51([
                163723479936298,
                115424889803150,
                1156016391581227,
                1894942220753364,
                1970549419986329,
            ]),
            xy2d: FieldElement51([
                681981452362484,
                267208874112496,
                1374683991933094,
                638600984916117,
                646178654558546,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2265178468539480,
                2358037120714814,
                1944412051589650,
                4093776581610705,
                2482502633520820,
            ]),
            y_minus_x: FieldElement51([
                260683893467075,
                854060306077237,
                913639551980112,
                4704576840123,
                280254810808712,
            ]),
            xy2d: FieldElement51([
                715374893080287,
                1173334812210491,
                1806524662079626,
                1894596008000979,
                398905715033393,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2751826223412909,
                3848231101880618,
                1420380351989369,
                3237011375206737,
                392444930785632,
            ]),
            y_minus_x: FieldElement51([
                2096421546958141,
                1922523000950363,
                789831022876840,
                427295144688779,
                320923973161730,
            ]),
            xy2d: FieldElement51([
                1927770723575450,
                1485792977512719,
                1850996108474547,
                551696031508956,
                2126047405475647,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2112099158080129,
                2994370617594963,
                2258284371762679,
                1951119898618915,
                2344890196388664,
            ]),
            y_minus_x: FieldElement51([
                383905201636970,
                859946997631870,
                855623867637644,
                1017125780577795,
                794250831877809,
            ]),
            xy2d: FieldElement51([
                77571826285752,
                999304298101753,
                487841111777762,
                1038031143212339,
                339066367948762,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2926794589205781,
                2517835660016036,
                826951213393477,
                1405007746162285,
                1781791018620876,
            ]),
            y_minus_x: FieldElement51([
                1001412661522686,
                348196197067298,
                1666614366723946,
                888424995032760,
                580747687801357,
            ]),
            xy2d: FieldElement51([
                1939560076207777,
                1409892634407635,
                552574736069277,
                383854338280405,
                190706709864139,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2177087163428741,
                1439255351721944,
                3459870654068041,
                2230616362004768,
                1396886392021913,
            ]),
            y_minus_x: FieldElement51([
                676962063230039,
                1880275537148808,
                2046721011602706,
                888463247083003,
                1318301552024067,
            ]),
            xy2d: FieldElement51([
                1466980508178206,
                617045217998949,
                652303580573628,
                757303753529064,
                207583137376902,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3762856566592150,
                2357202940576524,
                2745234706458093,
                1091943425335975,
                1802717338077427,
            ]),
            y_minus_x: FieldElement51([
                1853982405405128,
                1878664056251147,
                1528011020803992,
                1019626468153565,
                1128438412189035,
            ]),
            xy2d: FieldElement51([
                1963939888391106,
                293456433791664,
                697897559513649,
                985882796904380,
                796244541237972,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2668570812315008,
                2641455366112301,
                1314476859406755,
                1749382513022778,
                3413705412424739,
            ]),
            y_minus_x: FieldElement51([
                1428358296490651,
                1027115282420478,
                304840698058337,
                441410174026628,
                1819358356278573,
            ]),
            xy2d: FieldElement51([
                204943430200135,
                1554861433819175,
                216426658514651,
                264149070665950,
                2047097371738319,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1934415182909015,
                1393285083565062,
                2768209145458208,
                3409490548679139,
                2372839480279515,
            ]),
            y_minus_x: FieldElement51([
                662035583584445,
                286736105093098,
                1131773000510616,
                818494214211439,
                472943792054479,
            ]),
            xy2d: FieldElement51([
                665784778135882,
                1893179629898606,
                808313193813106,
                276797254706413,
                1563426179676396,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                945205108984213,
                2778077376644543,
                1324180513733565,
                1666970227868664,
                2405347422974421,
            ]),
            y_minus_x: FieldElement51([
                2031433403516252,
                203996615228162,
                170487168837083,
                981513604791390,
                843573964916831,
            ]),
            xy2d: FieldElement51([
                1476570093962618,
                838514669399805,
                1857930577281364,
                2017007352225784,
                317085545220047,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1461557121912823,
                1600674043318359,
                2157134900399597,
                1670641601940616,
                2379565397488531,
            ]),
            y_minus_x: FieldElement51([
                1293543509393474,
                2143624609202546,
                1058361566797508,
                214097127393994,
                946888515472729,
            ]),
            xy2d: FieldElement51([
                357067959932916,
                1290876214345711,
                521245575443703,
                1494975468601005,
                800942377643885,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2817916472785262,
                820247422481739,
                994464017954148,
                2578957425371613,
                2344391131796991,
            ]),
            y_minus_x: FieldElement51([
                617256647603209,
                1652107761099439,
                1857213046645471,
                1085597175214970,
                817432759830522,
            ]),
            xy2d: FieldElement51([
                771808161440705,
                1323510426395069,
                680497615846440,
                851580615547985,
                1320806384849017,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1219260086131896,
                2898968820282063,
                2331400938444953,
                2161724213426747,
                2656661710745446,
            ]),
            y_minus_x: FieldElement51([
                1327968293887866,
                1335500852943256,
                1401587164534264,
                558137311952440,
                1551360549268902,
            ]),
            xy2d: FieldElement51([
                417621685193956,
                1429953819744454,
                396157358457099,
                1940470778873255,
                214000046234152,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1268047918491954,
                2172375426948536,
                1533916099229249,
                1761293575457130,
                3842422480712013,
            ]),
            y_minus_x: FieldElement51([
                1627072914981959,
                2211603081280073,
                1912369601616504,
                1191770436221309,
                2187309757525860,
            ]),
            xy2d: FieldElement51([
                1149147819689533,
                378692712667677,
                828475842424202,
                2218619146419342,
                70688125792186,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3551539230764990,
                3690416477138006,
                3788528892189659,
                2053896748919837,
                3260220846276494,
            ]),
            y_minus_x: FieldElement51([
                2040723824657366,
                399555637875075,
                632543375452995,
                872649937008051,
                1235394727030233,
            ]),
            xy2d: FieldElement51([
                2211311599327900,
                2139787259888175,
                938706616835350,
                12609661139114,
                2081897930719789,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1324994503390431,
                2588782144267879,
                1183998925654176,
                3343454479598522,
                2300527487656566,
            ]),
            y_minus_x: FieldElement51([
                1845522914617879,
                1222198248335542,
                150841072760134,
                1927029069940982,
                1189913404498011,
            ]),
            xy2d: FieldElement51([
                1079559557592645,
                2215338383666441,
                1903569501302605,
                49033973033940,
                305703433934152,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2346453219102138,
                3637921163538246,
                3313930291577009,
                2288353761164521,
                3085469462634093,
            ]),
            y_minus_x: FieldElement51([
                1432015813136298,
                440364795295369,
                1395647062821501,
                1976874522764578,
                934452372723352,
            ]),
            xy2d: FieldElement51([
                1296625309219774,
                2068273464883862,
                1858621048097805,
                1492281814208508,
                2235868981918946,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1490330266465551,
                1858795661361448,
                3688040948655011,
                2546373032584894,
                3459939824714180,
            ]),
            y_minus_x: FieldElement51([
                1282462923712748,
                741885683986255,
                2027754642827561,
                518989529541027,
                1826610009555945,
            ]),
            xy2d: FieldElement51([
                1525827120027511,
                723686461809551,
                1597702369236987,
                244802101764964,
                1502833890372311,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2365421849929742,
                3485539881431101,
                2925909765963743,
                2114345180342964,
                2418564326541511,
            ]),
            y_minus_x: FieldElement51([
                2041668749310338,
                2184405322203901,
                1633400637611036,
                2110682505536899,
                2048144390084644,
            ]),
            xy2d: FieldElement51([
                503058759232932,
                760293024620937,
                2027152777219493,
                666858468148475,
                1539184379870952,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1916168475367211,
                3167426246226591,
                883217071712574,
                363427871374304,
                1976029821251593,
            ]),
            y_minus_x: FieldElement51([
                678039535434506,
                570587290189340,
                1605302676614120,
                2147762562875701,
                1706063797091704,
            ]),
            xy2d: FieldElement51([
                1439489648586438,
                2194580753290951,
                832380563557396,
                561521973970522,
                584497280718389,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2439789269177838,
                681223515948274,
                1933493571072456,
                1872921007304880,
                2739962177820919,
            ]),
            y_minus_x: FieldElement51([
                1413466089534451,
                410844090765630,
                1397263346404072,
                408227143123410,
                1594561803147811,
            ]),
            xy2d: FieldElement51([
                2102170800973153,
                719462588665004,
                1479649438510153,
                1097529543970028,
                1302363283777685,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3193865531532443,
                3321113493038208,
                2007341951411050,
                2322773230131539,
                1419433790163705,
            ]),
            y_minus_x: FieldElement51([
                1146565545556377,
                1661971299445212,
                406681704748893,
                564452436406089,
                1109109865829139,
            ]),
            xy2d: FieldElement51([
                2214421081775077,
                1165671861210569,
                1890453018796184,
                3556249878661,
                442116172656317,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3005630360306059,
                1666955059895018,
                1530775289309243,
                3371786842789394,
                2164156153857579,
            ]),
            y_minus_x: FieldElement51([
                615171919212796,
                1523849404854568,
                854560460547503,
                2067097370290715,
                1765325848586042,
            ]),
            xy2d: FieldElement51([
                1094538949313667,
                1796592198908825,
                870221004284388,
                2025558921863561,
                1699010892802384,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1951351290725195,
                1916457206844795,
                2449824998123274,
                1909076887557594,
                1938542290318919,
            ]),
            y_minus_x: FieldElement51([
                1014323197538413,
                869150639940606,
                1756009942696599,
                1334952557375672,
                1544945379082874,
            ]),
            xy2d: FieldElement51([
                764055910920305,
                1603590757375439,
                146805246592357,
                1843313433854297,
                954279890114939,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                80113526615731,
                764536758732259,
                3306939158785481,
                2721052465444637,
                2869697326116762,
            ]),
            y_minus_x: FieldElement51([
                74497112547268,
                740094153192149,
                1745254631717581,
                727713886503130,
                1283034364416928,
            ]),
            xy2d: FieldElement51([
                525892105991110,
                1723776830270342,
                1476444848991936,
                573789489857760,
                133864092632978,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2794411533877810,
                1986812262899320,
                1162535242465837,
                2733298779828712,
                2796400347268869,
            ]),
            y_minus_x: FieldElement51([
                64123227344372,
                1239927720647794,
                1360722983445904,
                222610813654661,
                62429487187991,
            ]),
            xy2d: FieldElement51([
                1793193323953132,
                91096687857833,
                70945970938921,
                2158587638946380,
                1537042406482111,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1895854577604590,
                3646695522634664,
                1728548428495943,
                3392664713925397,
                2815445147288308,
            ]),
            y_minus_x: FieldElement51([
                141358280486863,
                91435889572504,
                1087208572552643,
                1829599652522921,
                1193307020643647,
            ]),
            xy2d: FieldElement51([
                1611230858525381,
                950720175540785,
                499589887488610,
                2001656988495019,
                88977313255908,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3440880315164906,
                2184348804772596,
                3292618539427567,
                2018318290311833,
                1712060030915354,
            ]),
            y_minus_x: FieldElement51([
                873966876953756,
                1090638350350440,
                1708559325189137,
                672344594801910,
                1320437969700239,
            ]),
            xy2d: FieldElement51([
                1508590048271766,
                1131769479776094,
                101550868699323,
                428297785557897,
                561791648661744,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3008217384184691,
                2489682092917849,
                2136263418594015,
                1701968045454886,
                2955512998822720,
            ]),
            y_minus_x: FieldElement51([
                1781187809325462,
                1697624151492346,
                1381393690939988,
                175194132284669,
                1483054666415238,
            ]),
            xy2d: FieldElement51([
                2175517777364616,
                708781536456029,
                955668231122942,
                1967557500069555,
                2021208005604118,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3366935780292116,
                2476017186636029,
                915967306279221,
                593866251291540,
                2813546907893254,
            ]),
            y_minus_x: FieldElement51([
                1443163092879439,
                391875531646162,
                2180847134654632,
                464538543018753,
                1594098196837178,
            ]),
            xy2d: FieldElement51([
                850858855888869,
                319436476624586,
                327807784938441,
                740785849558761,
                17128415486016,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2132756334090048,
                2788047633840893,
                2300706964962114,
                2860273011285942,
                3513489358708031,
            ]),
            y_minus_x: FieldElement51([
                1525176236978354,
                974205476721062,
                293436255662638,
                148269621098039,
                137961998433963,
            ]),
            xy2d: FieldElement51([
                1121075518299410,
                2071745529082111,
                1265567917414828,
                1648196578317805,
                496232102750820,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2374121042985030,
                3274721891178932,
                2001275453369483,
                2017441881607947,
                3245005694463250,
            ]),
            y_minus_x: FieldElement51([
                654925550560074,
                1168810995576858,
                575655959430926,
                905758704861388,
                496774564663534,
            ]),
            xy2d: FieldElement51([
                1954109525779738,
                2117022646152485,
                338102630417180,
                1194140505732026,
                107881734943492,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1714785840001267,
                4288299832366837,
                1876380234251965,
                2056717182974196,
                1645855254384642,
            ]),
            y_minus_x: FieldElement51([
                106431476499341,
                62482972120563,
                1513446655109411,
                807258751769522,
                538491469114,
            ]),
            xy2d: FieldElement51([
                2002850762893643,
                1243624520538135,
                1486040410574605,
                2184752338181213,
                378495998083531,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                922510868424903,
                1089502620807680,
                402544072617374,
                1131446598479839,
                1290278588136533,
            ]),
            y_minus_x: FieldElement51([
                1867998812076769,
                715425053580701,
                39968586461416,
                2173068014586163,
                653822651801304,
            ]),
            xy2d: FieldElement51([
                162892278589453,
                182585796682149,
                75093073137630,
                497037941226502,
                133871727117371,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4166396390264918,
                1608999621851577,
                1987629837704609,
                1519655314857977,
                1819193753409464,
            ]),
            y_minus_x: FieldElement51([
                1949315551096831,
                1069003344994464,
                1939165033499916,
                1548227205730856,
                1933767655861407,
            ]),
            xy2d: FieldElement51([
                1730519386931635,
                1393284965610134,
                1597143735726030,
                416032382447158,
                1429665248828629,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                360275475604546,
                2799635544748326,
                2467160717872776,
                2848446553564254,
                2584509464110332,
            ]),
            y_minus_x: FieldElement51([
                47602113726801,
                1522314509708010,
                437706261372925,
                814035330438027,
                335930650933545,
            ]),
            xy2d: FieldElement51([
                1291597595523886,
                1058020588994081,
                402837842324045,
                1363323695882781,
                2105763393033193,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2361321796251793,
                3967057562270386,
                1112231216891515,
                2046641005101484,
                2386048970842261,
            ]),
            y_minus_x: FieldElement51([
                2156991030936798,
                2227544497153325,
                1869050094431622,
                754875860479115,
                1754242344267058,
            ]),
            xy2d: FieldElement51([
                1846089562873800,
                98894784984326,
                1412430299204844,
                171351226625762,
                1100604760929008,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2335972195815721,
                2751510784385293,
                425749630620777,
                1762872794206857,
                2864642415813208,
            ]),
            y_minus_x: FieldElement51([
                868309334532756,
                1703010512741873,
                1952690008738057,
                4325269926064,
                2071083554962116,
            ]),
            xy2d: FieldElement51([
                523094549451158,
                401938899487815,
                1407690589076010,
                2022387426254453,
                158660516411257,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                612867287630009,
                2700012425789062,
                2823428891104443,
                1466796750919375,
                1728478129663858,
            ]),
            y_minus_x: FieldElement51([
                1723848973783452,
                2208822520534681,
                1718748322776940,
                1974268454121942,
                1194212502258141,
            ]),
            xy2d: FieldElement51([
                1254114807944608,
                977770684047110,
                2010756238954993,
                1783628927194099,
                1525962994408256,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2484263871921055,
                1948628555342433,
                1835348780427694,
                1031609499437291,
                2316271920603621,
            ]),
            y_minus_x: FieldElement51([
                767338676040683,
                754089548318405,
                1523192045639075,
                435746025122062,
                512692508440385,
            ]),
            xy2d: FieldElement51([
                1255955808701983,
                1700487367990941,
                1166401238800299,
                1175121994891534,
                1190934801395380,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2600943821853521,
                1337012557669161,
                1475912332999108,
                3573418268585706,
                2299411105589567,
            ]),
            y_minus_x: FieldElement51([
                877519947135419,
                2172838026132651,
                272304391224129,
                1655143327559984,
                886229406429814,
            ]),
            xy2d: FieldElement51([
                375806028254706,
                214463229793940,
                572906353144089,
                572168269875638,
                697556386112979,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1168827102357825,
                823864273033637,
                4323338565789945,
                788062026895923,
                2851378154428610,
            ]),
            y_minus_x: FieldElement51([
                1948116082078088,
                2054898304487796,
                2204939184983900,
                210526805152138,
                786593586607626,
            ]),
            xy2d: FieldElement51([
                1915320147894736,
                156481169009469,
                655050471180417,
                592917090415421,
                2165897438660879,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1726336468579724,
                1119932070398949,
                1929199510967666,
                2285718602008207,
                1836837863503149,
            ]),
            y_minus_x: FieldElement51([
                829996854845988,
                217061778005138,
                1686565909803640,
                1346948817219846,
                1723823550730181,
            ]),
            xy2d: FieldElement51([
                384301494966394,
                687038900403062,
                2211195391021739,
                254684538421383,
                1245698430589680,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1247567493562669,
                4229981908141095,
                2435671288478202,
                806570235643434,
                2540261331753164,
            ]),
            y_minus_x: FieldElement51([
                1449077384734201,
                38285445457996,
                2136537659177832,
                2146493000841573,
                725161151123125,
            ]),
            xy2d: FieldElement51([
                1201928866368855,
                800415690605445,
                1703146756828343,
                997278587541744,
                1858284414104014,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2608268623334125,
                3034173730618399,
                1718002439402869,
                3644022065904502,
                663171266061950,
            ]),
            y_minus_x: FieldElement51([
                759628738230460,
                1012693474275852,
                353780233086498,
                246080061387552,
                2030378857679162,
            ]),
            xy2d: FieldElement51([
                2040672435071076,
                888593182036908,
                1298443657189359,
                1804780278521327,
                354070726137060,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1894938527423184,
                3715012855162525,
                2726210319182898,
                2499094776718546,
                877975941029127,
            ]),
            y_minus_x: FieldElement51([
                207937160991127,
                12966911039119,
                820997788283092,
                1010440472205286,
                1701372890140810,
            ]),
            xy2d: FieldElement51([
                218882774543183,
                533427444716285,
                1233243976733245,
                435054256891319,
                1509568989549904,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4140638349397055,
                3303977572025869,
                3465353617009382,
                2420981822812579,
                2715174081801119,
            ]),
            y_minus_x: FieldElement51([
                299137589460312,
                1594371588983567,
                868058494039073,
                257771590636681,
                1805012993142921,
            ]),
            xy2d: FieldElement51([
                1806842755664364,
                2098896946025095,
                1356630998422878,
                1458279806348064,
                347755825962072,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1402334161391744,
                3811883484731547,
                1008585416617746,
                1147797150908892,
                1420416683642459,
            ]),
            y_minus_x: FieldElement51([
                665506704253369,
                273770475169863,
                799236974202630,
                848328990077558,
                1811448782807931,
            ]),
            xy2d: FieldElement51([
                1468412523962641,
                771866649897997,
                1931766110147832,
                799561180078482,
                524837559150077,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2223212657821831,
                2882216061048914,
                2144451165500327,
                3068710944633039,
                3276150872095279,
            ]),
            y_minus_x: FieldElement51([
                1266603897524861,
                156378408858100,
                1275649024228779,
                447738405888420,
                253186462063095,
            ]),
            xy2d: FieldElement51([
                2022215964509735,
                136144366993649,
                1800716593296582,
                1193970603800203,
                871675847064218,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1862751661970309,
                851596246739884,
                1519315554814041,
                3794598280232697,
                3669775149586767,
            ]),
            y_minus_x: FieldElement51([
                1228168094547481,
                334133883362894,
                587567568420081,
                433612590281181,
                603390400373205,
            ]),
            xy2d: FieldElement51([
                121893973206505,
                1843345804916664,
                1703118377384911,
                497810164760654,
                101150811654673,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2710146069631716,
                2542709749304591,
                1452768413850678,
                2802722688939463,
                1537286854336537,
            ]),
            y_minus_x: FieldElement51([
                584322311184395,
                380661238802118,
                114839394528060,
                655082270500073,
                2111856026034852,
            ]),
            xy2d: FieldElement51([
                996965581008991,
                2148998626477022,
                1012273164934654,
                1073876063914522,
                1688031788934939,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3175286832534829,
                2085106799623354,
                2779882615305384,
                1606206360876187,
                2987706905397772,
            ]),
            y_minus_x: FieldElement51([
                1697697887804317,
                1335343703828273,
                831288615207040,
                949416685250051,
                288760277392022,
            ]),
            xy2d: FieldElement51([
                1419122478109648,
                1325574567803701,
                602393874111094,
                2107893372601700,
                1314159682671307,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2201150872731785,
                2180241023425241,
                2349463270108411,
                1633405770247823,
                3100744856129234,
            ]),
            y_minus_x: FieldElement51([
                1173339555550611,
                818605084277583,
                47521504364289,
                924108720564965,
                735423405754506,
            ]),
            xy2d: FieldElement51([
                830104860549448,
                1886653193241086,
                1600929509383773,
                1475051275443631,
                286679780900937,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3828911108518224,
                3282698983453994,
                2396700729978777,
                4216472406664814,
                2820189914640497,
            ]),
            y_minus_x: FieldElement51([
                278388655910247,
                487143369099838,
                927762205508727,
                181017540174210,
                1616886700741287,
            ]),
            xy2d: FieldElement51([
                1191033906638969,
                940823957346562,
                1606870843663445,
                861684761499847,
                658674867251089,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1875032594195527,
                1427106132796197,
                2976536204647406,
                3153660325729987,
                2887068310954007,
            ]),
            y_minus_x: FieldElement51([
                622869792298357,
                1903919278950367,
                1922588621661629,
                1520574711600434,
                1087100760174640,
            ]),
            xy2d: FieldElement51([
                25465949416618,
                1693639527318811,
                1526153382657203,
                125943137857169,
                145276964043999,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2466539671654587,
                920212862967914,
                4191701364657517,
                3463662605460468,
                2336897329405367,
            ]),
            y_minus_x: FieldElement51([
                2006245852772938,
                734762734836159,
                254642929763427,
                1406213292755966,
                239303749517686,
            ]),
            xy2d: FieldElement51([
                1619678837192149,
                1919424032779215,
                1357391272956794,
                1525634040073113,
                1310226789796241,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3292563523447371,
                1704449869235351,
                2857062884141577,
                1998838089036354,
                1312142911487502,
            ]),
            y_minus_x: FieldElement51([
                1996723311435669,
                1844342766567060,
                985455700466044,
                1165924681400960,
                311508689870129,
            ]),
            xy2d: FieldElement51([
                43173156290518,
                2202883069785309,
                1137787467085917,
                1733636061944606,
                1394992037553852,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                670078326344559,
                2807454838744604,
                2723759199967685,
                2141455487356408,
                849015953823125,
            ]),
            y_minus_x: FieldElement51([
                2197214573372804,
                794254097241315,
                1030190060513737,
                267632515541902,
                2040478049202624,
            ]),
            xy2d: FieldElement51([
                1812516004670529,
                1609256702920783,
                1706897079364493,
                258549904773295,
                996051247540686,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1540374301420565,
                1764656898914615,
                1810104162020396,
                3175608592848336,
                2916189887881826,
            ]),
            y_minus_x: FieldElement51([
                1323460699404750,
                1262690757880991,
                871777133477900,
                1060078894988977,
                1712236889662886,
            ]),
            xy2d: FieldElement51([
                1696163952057966,
                1391710137550823,
                608793846867416,
                1034391509472039,
                1780770894075012,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1367603834210822,
                4383788460268472,
                890353773628143,
                1908908219165595,
                2522636708938139,
            ]),
            y_minus_x: FieldElement51([
                597536315471731,
                40375058742586,
                1942256403956049,
                1185484645495932,
                312666282024145,
            ]),
            xy2d: FieldElement51([
                1919411405316294,
                1234508526402192,
                1066863051997083,
                1008444703737597,
                1348810787701552,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2102881477513865,
                3822074379630609,
                1573617900503707,
                2270462449417831,
                2232324307922097,
            ]),
            y_minus_x: FieldElement51([
                1853931367696942,
                8107973870707,
                350214504129299,
                775206934582587,
                1752317649166792,
            ]),
            xy2d: FieldElement51([
                1417148368003523,
                721357181628282,
                505725498207811,
                373232277872983,
                261634707184480,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2186733281493248,
                2250694917008620,
                1014829812957440,
                2731797975137637,
                2335366007561721,
            ]),
            y_minus_x: FieldElement51([
                1268116367301224,
                560157088142809,
                802626839600444,
                2210189936605713,
                1129993785579988,
            ]),
            xy2d: FieldElement51([
                615183387352312,
                917611676109240,
                878893615973325,
                978940963313282,
                938686890583575,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                522024729211672,
                3296859129001056,
                1892245413707789,
                1907891107684253,
                2059998109500714,
            ]),
            y_minus_x: FieldElement51([
                1799679152208884,
                912132775900387,
                25967768040979,
                432130448590461,
                274568990261996,
            ]),
            xy2d: FieldElement51([
                98698809797682,
                2144627600856209,
                1907959298569602,
                811491302610148,
                1262481774981493,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1791451399743152,
                1713538728337276,
                2370149810942738,
                1882306388849953,
                158235232210248,
            ]),
            y_minus_x: FieldElement51([
                1217809823321928,
                2173947284933160,
                1986927836272325,
                1388114931125539,
                12686131160169,
            ]),
            xy2d: FieldElement51([
                1650875518872272,
                1136263858253897,
                1732115601395988,
                734312880662190,
                1252904681142109,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2624786269799113,
                2777230729143418,
                2116279931702134,
                2753222527273063,
                1907002872974924,
            ]),
            y_minus_x: FieldElement51([
                803147181835288,
                868941437997146,
                316299302989663,
                943495589630550,
                571224287904572,
            ]),
            xy2d: FieldElement51([
                227742695588364,
                1776969298667369,
                628602552821802,
                457210915378118,
                2041906378111140,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                815000523470260,
                3164885502413555,
                3303859931956420,
                1345536665214222,
                541623413135555,
            ]),
            y_minus_x: FieldElement51([
                1580216071604333,
                1877997504342444,
                857147161260913,
                703522726778478,
                2182763974211603,
            ]),
            xy2d: FieldElement51([
                1870080310923419,
                71988220958492,
                1783225432016732,
                615915287105016,
                1035570475990230,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2982787564515398,
                857613889540279,
                1083813157271766,
                1002817255970169,
                1719228484436074,
            ]),
            y_minus_x: FieldElement51([
                377616581647602,
                1581980403078513,
                804044118130621,
                2034382823044191,
                643844048472185,
            ]),
            xy2d: FieldElement51([
                176957326463017,
                1573744060478586,
                528642225008045,
                1816109618372371,
                1515140189765006,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1888911448245718,
                3638910709296328,
                4176303607751676,
                1731539523700948,
                2230378382645454,
            ]),
            y_minus_x: FieldElement51([
                443392177002051,
                233793396845137,
                2199506622312416,
                1011858706515937,
                974676837063129,
            ]),
            xy2d: FieldElement51([
                1846351103143623,
                1949984838808427,
                671247021915253,
                1946756846184401,
                1929296930380217,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                849646212451983,
                1410198775302919,
                2325567699868943,
                1641663456615811,
                3014056086137659,
            ]),
            y_minus_x: FieldElement51([
                692017667358279,
                723305578826727,
                1638042139863265,
                748219305990306,
                334589200523901,
            ]),
            xy2d: FieldElement51([
                22893968530686,
                2235758574399251,
                1661465835630252,
                925707319443452,
                1203475116966621,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3053098849470395,
                3985092410411378,
                1664508947088595,
                2719548934677170,
                3899298398220870,
            ]),
            y_minus_x: FieldElement51([
                903105258014366,
                427141894933047,
                561187017169777,
                1884330244401954,
                1914145708422219,
            ]),
            xy2d: FieldElement51([
                1344191060517578,
                1960935031767890,
                1518838929955259,
                1781502350597190,
                1564784025565682,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2925523165433334,
                1979969272514922,
                3427087126180756,
                1187589090978665,
                1881897672213940,
            ]),
            y_minus_x: FieldElement51([
                1917185587363432,
                1098342571752737,
                5935801044414,
                2000527662351839,
                1538640296181569,
            ]),
            xy2d: FieldElement51([
                2495540013192,
                678856913479236,
                224998292422872,
                219635787698590,
                1972465269000940,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                271413961212179,
                3604851875156899,
                2596511104968730,
                2014925838520661,
                2006221033113941,
            ]),
            y_minus_x: FieldElement51([
                194583029968109,
                514316781467765,
                829677956235672,
                1676415686873082,
                810104584395840,
            ]),
            xy2d: FieldElement51([
                1980510813313589,
                1948645276483975,
                152063780665900,
                129968026417582,
                256984195613935,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1860190562533083,
                1936576191345085,
                2712900106391212,
                1811043097042829,
                3209286562992083,
            ]),
            y_minus_x: FieldElement51([
                796664815624365,
                1543160838872951,
                1500897791837765,
                1667315977988401,
                599303877030711,
            ]),
            xy2d: FieldElement51([
                1151480509533204,
                2136010406720455,
                738796060240027,
                319298003765044,
                1150614464349587,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1731069268103131,
                2987442261301335,
                1364750481334267,
                2669032653668119,
                3178908082812908,
            ]),
            y_minus_x: FieldElement51([
                1017222050227968,
                1987716148359,
                2234319589635701,
                621282683093392,
                2132553131763026,
            ]),
            xy2d: FieldElement51([
                1567828528453324,
                1017807205202360,
                565295260895298,
                829541698429100,
                307243822276582,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                249079270936229,
                1501514259790706,
                3199709537890096,
                944551802437486,
                2804458577667728,
            ]),
            y_minus_x: FieldElement51([
                2089966982947227,
                1854140343916181,
                2151980759220007,
                2139781292261749,
                158070445864917,
            ]),
            xy2d: FieldElement51([
                1338766321464554,
                1906702607371284,
                1519569445519894,
                115384726262267,
                1393058953390992,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3616421371950629,
                3764188048593604,
                1926731583198685,
                2041482526432505,
                3172200936019022,
            ]),
            y_minus_x: FieldElement51([
                1884844597333588,
                601480070269079,
                620203503079537,
                1079527400117915,
                1202076693132015,
            ]),
            xy2d: FieldElement51([
                840922919763324,
                727955812569642,
                1303406629750194,
                522898432152867,
                294161410441865,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2605560604520539,
                1598361541848742,
                3374705511887547,
                4174333403844152,
                2670907514351827,
            ]),
            y_minus_x: FieldElement51([
                359856369838236,
                180914355488683,
                861726472646627,
                218807937262986,
                575626773232501,
            ]),
            xy2d: FieldElement51([
                755467689082474,
                909202735047934,
                730078068932500,
                936309075711518,
                2007798262842972,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1609384177904054,
                2614544999293875,
                1335318541768200,
                3052765584121496,
                2799677792952659,
            ]),
            y_minus_x: FieldElement51([
                984339177776787,
                815727786505884,
                1645154585713747,
                1659074964378553,
                1686601651984156,
            ]),
            xy2d: FieldElement51([
                1697863093781930,
                599794399429786,
                1104556219769607,
                830560774794755,
                12812858601017,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1168737550514982,
                897832437380552,
                463140296333799,
                2554364413707795,
                2008360505135500,
            ]),
            y_minus_x: FieldElement51([
                1856930662813910,
                678090852002597,
                1920179140755167,
                1259527833759868,
                55540971895511,
            ]),
            xy2d: FieldElement51([
                1158643631044921,
                476554103621892,
                178447851439725,
                1305025542653569,
                103433927680625,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2176793111709008,
                3828525530035639,
                2009350167273522,
                2012390194631546,
                2125297410909580,
            ]),
            y_minus_x: FieldElement51([
                825403285195098,
                2144208587560784,
                1925552004644643,
                1915177840006985,
                1015952128947864,
            ]),
            xy2d: FieldElement51([
                1807108316634472,
                1534392066433717,
                347342975407218,
                1153820745616376,
                7375003497471,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3234860815484973,
                2683011703586488,
                2201903782961092,
                3069193724749589,
                2214616493042166,
            ]),
            y_minus_x: FieldElement51([
                228567918409756,
                865093958780220,
                358083886450556,
                159617889659320,
                1360637926292598,
            ]),
            xy2d: FieldElement51([
                234147501399755,
                2229469128637390,
                2175289352258889,
                1397401514549353,
                1885288963089922,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3363562226636810,
                2504649386192636,
                3300514047508588,
                2397910909286693,
                1237505378776769,
            ]),
            y_minus_x: FieldElement51([
                1113790697840279,
                1051167139966244,
                1045930658550944,
                2011366241542643,
                1686166824620755,
            ]),
            xy2d: FieldElement51([
                1054097349305049,
                1872495070333352,
                182121071220717,
                1064378906787311,
                100273572924182,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3558210666856834,
                1627717417672446,
                2302783034773665,
                1109249951172249,
                3122001602766640,
            ]),
            y_minus_x: FieldElement51([
                104233794644221,
                1548919791188248,
                2224541913267306,
                2054909377116478,
                1043803389015153,
            ]),
            xy2d: FieldElement51([
                216762189468802,
                707284285441622,
                190678557969733,
                973969342604308,
                1403009538434867,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3530824104723725,
                2596576648903557,
                2525521909702446,
                4086000250496689,
                634517197663803,
            ]),
            y_minus_x: FieldElement51([
                343805853118335,
                1302216857414201,
                566872543223541,
                2051138939539004,
                321428858384280,
            ]),
            xy2d: FieldElement51([
                470067171324852,
                1618629234173951,
                2000092177515639,
                7307679772789,
                1117521120249968,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2529951391976704,
                1810282338562946,
                1771599529530998,
                3635459223356879,
                2937173228157088,
            ]),
            y_minus_x: FieldElement51([
                577009397403102,
                1791440261786291,
                2177643735971638,
                174546149911960,
                1412505077782326,
            ]),
            xy2d: FieldElement51([
                893719721537457,
                1201282458018197,
                1522349501711173,
                58011597740583,
                1130406465887139,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                412607348255434,
                1280455764199780,
                2233277987330768,
                2265979894086913,
                2583384512102412,
            ]),
            y_minus_x: FieldElement51([
                262483770854550,
                990511055108216,
                526885552771698,
                571664396646158,
                354086190278723,
            ]),
            xy2d: FieldElement51([
                1820352417585487,
                24495617171480,
                1547899057533253,
                10041836186225,
                480457105094042,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2023310314989233,
                2889705151211129,
                2106474638900686,
                2809620524769320,
                1687858215057825,
            ]),
            y_minus_x: FieldElement51([
                1144168702609745,
                604444390410187,
                1544541121756138,
                1925315550126027,
                626401428894002,
            ]),
            xy2d: FieldElement51([
                1922168257351784,
                2018674099908659,
                1776454117494445,
                956539191509034,
                36031129147635,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2796444352433270,
                1039872944430373,
                3128550222815858,
                2962457525011798,
                3468752501170219,
            ]),
            y_minus_x: FieldElement51([
                58242421545916,
                2035812695641843,
                2118491866122923,
                1191684463816273,
                46921517454099,
            ]),
            xy2d: FieldElement51([
                272268252444639,
                1374166457774292,
                2230115177009552,
                1053149803909880,
                1354288411641016,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1857910905368338,
                1754729879288912,
                3137745277795125,
                1516096106802165,
                1602902393369811,
            ]),
            y_minus_x: FieldElement51([
                1193437069800958,
                901107149704790,
                999672920611411,
                477584824802207,
                364239578697845,
            ]),
            xy2d: FieldElement51([
                886299989548838,
                1538292895758047,
                1590564179491896,
                1944527126709657,
                837344427345298,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3006358179063534,
                1712186480903617,
                3955456640022779,
                3002110732175033,
                2770795853936147,
            ]),
            y_minus_x: FieldElement51([
                1309847803895382,
                1462151862813074,
                211370866671570,
                1544595152703681,
                1027691798954090,
            ]),
            xy2d: FieldElement51([
                803217563745370,
                1884799722343599,
                1357706345069218,
                2244955901722095,
                730869460037413,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2941099284981214,
                1831210565161070,
                3626987155270686,
                3358084791231418,
                1893781834054268,
            ]),
            y_minus_x: FieldElement51([
                696351368613042,
                1494385251239250,
                738037133616932,
                636385507851544,
                927483222611406,
            ]),
            xy2d: FieldElement51([
                1949114198209333,
                1104419699537997,
                783495707664463,
                1747473107602770,
                2002634765788641,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1607325776830197,
                2782683755100581,
                1451089452727894,
                3833490970768671,
                496100432831153,
            ]),
            y_minus_x: FieldElement51([
                1068900648804224,
                2006891997072550,
                1134049269345549,
                1638760646180091,
                2055396084625778,
            ]),
            xy2d: FieldElement51([
                2222475519314561,
                1870703901472013,
                1884051508440561,
                1344072275216753,
                1318025677799069,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                155711679280637,
                681100400509288,
                389811735211209,
                2135723811340709,
                2660533024889373,
            ]),
            y_minus_x: FieldElement51([
                7813206966729,
                194444201427550,
                2071405409526507,
                1065605076176312,
                1645486789731291,
            ]),
            xy2d: FieldElement51([
                16625790644959,
                1647648827778410,
                1579910185572704,
                436452271048548,
                121070048451050,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3289062842237779,
                2820185594063076,
                2549752917829677,
                3810384325616458,
                2238221839292470,
            ]),
            y_minus_x: FieldElement51([
                190565267697443,
                672855706028058,
                338796554369226,
                337687268493904,
                853246848691734,
            ]),
            xy2d: FieldElement51([
                1763863028400139,
                766498079432444,
                1321118624818005,
                69494294452268,
                858786744165651,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3543856582248253,
                1456632109855637,
                3352431060735432,
                1386133165675320,
                3484698163879000,
            ]),
            y_minus_x: FieldElement51([
                366253102478259,
                525676242508811,
                1449610995265438,
                1183300845322183,
                185960306491545,
            ]),
            xy2d: FieldElement51([
                28315355815982,
                460422265558930,
                1799675876678724,
                1969256312504498,
                1051823843138725,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2408714813047231,
                3857948219405196,
                1665208410108429,
                2569443092377519,
                1383783705665319,
            ]),
            y_minus_x: FieldElement51([
                54684536365732,
                2210010038536222,
                1194984798155308,
                535239027773705,
                1516355079301361,
            ]),
            xy2d: FieldElement51([
                1484387703771650,
                198537510937949,
                2186282186359116,
                617687444857508,
                647477376402122,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2147715541830533,
                2751832352131065,
                2898179830570073,
                2604027669016369,
                1488268620408051,
            ]),
            y_minus_x: FieldElement51([
                159386186465542,
                1877626593362941,
                618737197060512,
                1026674284330807,
                1158121760792685,
            ]),
            xy2d: FieldElement51([
                1744544377739822,
                1964054180355661,
                1685781755873170,
                2169740670377448,
                1286112621104591,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2333777063470241,
                3919742931398333,
                3920783633320113,
                1605016835177614,
                1353960708075544,
            ]),
            y_minus_x: FieldElement51([
                1602253788689063,
                439542044889886,
                2220348297664483,
                657877410752869,
                157451572512238,
            ]),
            xy2d: FieldElement51([
                1029287186166717,
                65860128430192,
                525298368814832,
                1491902500801986,
                1461064796385400,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2660016802414475,
                2121095722306988,
                913562102267595,
                1879708920318308,
                2492861262121979,
            ]),
            y_minus_x: FieldElement51([
                1185483484383269,
                1356339572588553,
                584932367316448,
                102132779946470,
                1792922621116791,
            ]),
            xy2d: FieldElement51([
                1966196870701923,
                2230044620318636,
                1425982460745905,
                261167817826569,
                46517743394330,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2358877405280588,
                3136759755857592,
                2279106683482647,
                2224911448949389,
                3216151871930471,
            ]),
            y_minus_x: FieldElement51([
                1730194207717538,
                431790042319772,
                1831515233279467,
                1372080552768581,
                1074513929381760,
            ]),
            xy2d: FieldElement51([
                1450880638731607,
                1019861580989005,
                1229729455116861,
                1174945729836143,
                826083146840706,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1899935429242705,
                1602068751520477,
                940583196550370,
                2334230882739107,
                1540863155745695,
            ]),
            y_minus_x: FieldElement51([
                2136688454840028,
                2099509000964294,
                1690800495246475,
                1217643678575476,
                828720645084218,
            ]),
            xy2d: FieldElement51([
                765548025667841,
                462473984016099,
                998061409979798,
                546353034089527,
                2212508972466858,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2298375097456408,
                3144370785258318,
                1281983193144089,
                1491520128287375,
                75847005908304,
            ]),
            y_minus_x: FieldElement51([
                1801436127943107,
                1734436817907890,
                1268728090345068,
                167003097070711,
                2233597765834956,
            ]),
            xy2d: FieldElement51([
                1997562060465113,
                1048700225534011,
                7615603985628,
                1855310849546841,
                2242557647635213,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1161017320376250,
                2744424393854291,
                2169815802355236,
                3228296595417790,
                1770879511019628,
            ]),
            y_minus_x: FieldElement51([
                1357044908364776,
                729130645262438,
                1762469072918979,
                1365633616878458,
                181282906404941,
            ]),
            xy2d: FieldElement51([
                1080413443139865,
                1155205815510486,
                1848782073549786,
                622566975152580,
                124965574467971,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1184526762066993,
                247622751762817,
                2943928830891604,
                3071818503097743,
                2188697339828084,
            ]),
            y_minus_x: FieldElement51([
                2020536369003019,
                202261491735136,
                1053169669150884,
                2056531979272544,
                778165514694311,
            ]),
            xy2d: FieldElement51([
                237404399610207,
                1308324858405118,
                1229680749538400,
                720131409105291,
                1958958863624906,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2767383321724075,
                2269456792542436,
                1717918437373988,
                1568052070792483,
                2298775616809171,
            ]),
            y_minus_x: FieldElement51([
                281527309158085,
                36970532401524,
                866906920877543,
                2222282602952734,
                1289598729589882,
            ]),
            xy2d: FieldElement51([
                1278207464902042,
                494742455008756,
                1262082121427081,
                1577236621659884,
                1888786707293291,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                353042527954210,
                1830056151907359,
                1111731275799225,
                2426760769524072,
                404312815582674,
            ]),
            y_minus_x: FieldElement51([
                2064251142068628,
                1666421603389706,
                1419271365315441,
                468767774902855,
                191535130366583,
            ]),
            xy2d: FieldElement51([
                1716987058588002,
                1859366439773457,
                1767194234188234,
                64476199777924,
                1117233614485261,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3236091949205521,
                2386938060636506,
                2220652137473166,
                1722843421165029,
                2442282371698157,
            ]),
            y_minus_x: FieldElement51([
                298845952651262,
                1166086588952562,
                1179896526238434,
                1347812759398693,
                1412945390096208,
            ]),
            xy2d: FieldElement51([
                1143239552672925,
                906436640714209,
                2177000572812152,
                2075299936108548,
                325186347798433,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2972824668060020,
                2936287674948563,
                3625238557779406,
                2193186935276994,
                1387043709851261,
            ]),
            y_minus_x: FieldElement51([
                418098668140962,
                715065997721283,
                1471916138376055,
                2168570337288357,
                937812682637044,
            ]),
            xy2d: FieldElement51([
                1043584187226485,
                2143395746619356,
                2209558562919611,
                482427979307092,
                847556718384018,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1248731221520740,
                1465200936117687,
                2792603306395388,
                2304778448366139,
                2513234303861356,
            ]),
            y_minus_x: FieldElement51([
                1057329623869501,
                620334067429122,
                461700859268034,
                2012481616501857,
                297268569108938,
            ]),
            xy2d: FieldElement51([
                1055352180870759,
                1553151421852298,
                1510903185371259,
                1470458349428097,
                1226259419062731,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3744788603986897,
                3042126439258578,
                3441906842094992,
                3641194565844440,
                3872208010289441,
            ]),
            y_minus_x: FieldElement51([
                47000654413729,
                1004754424173864,
                1868044813557703,
                173236934059409,
                588771199737015,
            ]),
            xy2d: FieldElement51([
                30498470091663,
                1082245510489825,
                576771653181956,
                806509986132686,
                1317634017056939,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2672107869436803,
                3745154677001249,
                2417006535213335,
                4136645508605033,
                2065456951573058,
            ]),
            y_minus_x: FieldElement51([
                1115636332012334,
                1854340990964155,
                83792697369514,
                1972177451994021,
                457455116057587,
            ]),
            xy2d: FieldElement51([
                1698968457310898,
                1435137169051090,
                1083661677032510,
                938363267483709,
                340103887207182,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1995325341336555,
                911500251774648,
                2415810569088940,
                855378419194761,
                3825401211214090,
            ]),
            y_minus_x: FieldElement51([
                241719380661528,
                310028521317150,
                1215881323380194,
                1408214976493624,
                2141142156467363,
            ]),
            xy2d: FieldElement51([
                1315157046163473,
                727368447885818,
                1363466668108618,
                1668921439990361,
                1398483384337907,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2326829491984875,
                3267188020145720,
                1849729037055211,
                4191614430138232,
                2696204044080201,
            ]),
            y_minus_x: FieldElement51([
                2053597130993710,
                2024431685856332,
                2233550957004860,
                2012407275509545,
                872546993104440,
            ]),
            xy2d: FieldElement51([
                1217269667678610,
                599909351968693,
                1390077048548598,
                1471879360694802,
                739586172317596,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3970118453066023,
                1560510726633957,
                3156262694845170,
                1418028351780051,
                2346204163137185,
            ]),
            y_minus_x: FieldElement51([
                2132502667405250,
                214379346175414,
                1502748313768060,
                1960071701057800,
                1353971822643138,
            ]),
            xy2d: FieldElement51([
                319394212043702,
                2127459436033571,
                717646691535162,
                663366796076914,
                318459064945314,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2657789238608841,
                1960452633787082,
                2919148848086913,
                3744474074452359,
                1451061489880786,
            ]),
            y_minus_x: FieldElement51([
                947085906234007,
                323284730494107,
                1485778563977200,
                728576821512394,
                901584347702286,
            ]),
            xy2d: FieldElement51([
                1575783124125742,
                2126210792434375,
                1569430791264065,
                1402582372904727,
                1891780248341114,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3090232019245924,
                4249503325136911,
                3270591693593114,
                1662001808174330,
                2330127946643001,
            ]),
            y_minus_x: FieldElement51([
                739152638255629,
                2074935399403557,
                505483666745895,
                1611883356514088,
                628654635394878,
            ]),
            xy2d: FieldElement51([
                1822054032121349,
                643057948186973,
                7306757352712,
                577249257962099,
                284735863382083,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3618358370049178,
                1448606567552085,
                3730680834630016,
                2417602993041145,
                1115718458123497,
            ]),
            y_minus_x: FieldElement51([
                204146226972102,
                1630511199034723,
                2215235214174763,
                174665910283542,
                956127674017216,
            ]),
            xy2d: FieldElement51([
                1562934578796716,
                1070893489712745,
                11324610642270,
                958989751581897,
                2172552325473805,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1770564423056008,
                2987323445349813,
                1326060113795288,
                1509650369341127,
                2317692235267932,
            ]),
            y_minus_x: FieldElement51([
                623682558650637,
                1337866509471512,
                990313350206649,
                1314236615762469,
                1164772974270275,
            ]),
            xy2d: FieldElement51([
                223256821462517,
                723690150104139,
                1000261663630601,
                933280913953265,
                254872671543046,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1969087237026022,
                2876595539132372,
                1335555107635968,
                2069986355593023,
                3963899963027150,
            ]),
            y_minus_x: FieldElement51([
                1236103475266979,
                1837885883267218,
                1026072585230455,
                1025865513954973,
                1801964901432134,
            ]),
            xy2d: FieldElement51([
                1115241013365517,
                1712251818829143,
                2148864332502771,
                2096001471438138,
                2235017246626125,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3551068012286861,
                2047148477845620,
                2165648650132450,
                1612539282026145,
                2765997725314138,
            ]),
            y_minus_x: FieldElement51([
                118352772338543,
                1067608711804704,
                1434796676193498,
                1683240170548391,
                230866769907437,
            ]),
            xy2d: FieldElement51([
                1850689576796636,
                1601590730430274,
                1139674615958142,
                1954384401440257,
                76039205311,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1723387471374172,
                3249101280723658,
                2785727448808904,
                2272728458379212,
                1756575222802512,
            ]),
            y_minus_x: FieldElement51([
                2146711623855116,
                503278928021499,
                625853062251406,
                1109121378393107,
                1033853809911861,
            ]),
            xy2d: FieldElement51([
                571005965509422,
                2005213373292546,
                1016697270349626,
                56607856974274,
                914438579435146,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1346698876211176,
                2076651707527589,
                3336561384795453,
                2517134292513653,
                1068954492309670,
            ]),
            y_minus_x: FieldElement51([
                1769967932677654,
                1695893319756416,
                1151863389675920,
                1781042784397689,
                400287774418285,
            ]),
            xy2d: FieldElement51([
                1851867764003121,
                403841933237558,
                820549523771987,
                761292590207581,
                1743735048551143,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                410915148140008,
                2107072311871739,
                3256167275561751,
                2351484709082008,
                1180818713503223,
            ]),
            y_minus_x: FieldElement51([
                285945406881439,
                648174397347453,
                1098403762631981,
                1366547441102991,
                1505876883139217,
            ]),
            xy2d: FieldElement51([
                672095903120153,
                1675918957959872,
                636236529315028,
                1569297300327696,
                2164144194785875,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1902708175321798,
                3287143344600686,
                1178560808893262,
                2552895497743394,
                1280977479761117,
            ]),
            y_minus_x: FieldElement51([
                1615357281742403,
                404257611616381,
                2160201349780978,
                1160947379188955,
                1578038619549541,
            ]),
            xy2d: FieldElement51([
                2013087639791217,
                822734930507457,
                1785668418619014,
                1668650702946164,
                389450875221715,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2705718263383616,
                2358206633614248,
                2072540975937134,
                308588860670238,
                1304394580755385,
            ]),
            y_minus_x: FieldElement51([
                1295082798350326,
                2091844511495996,
                1851348972587817,
                3375039684596,
                789440738712837,
            ]),
            xy2d: FieldElement51([
                2083069137186154,
                848523102004566,
                993982213589257,
                1405313299916317,
                1532824818698468,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3747761112537659,
                1397203457344778,
                4026750030752190,
                2391102557240943,
                2318403398028034,
            ]),
            y_minus_x: FieldElement51([
                1782411379088302,
                1096724939964781,
                27593390721418,
                542241850291353,
                1540337798439873,
            ]),
            xy2d: FieldElement51([
                693543956581437,
                171507720360750,
                1557908942697227,
                1074697073443438,
                1104093109037196,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                345288228393400,
                3351443383432420,
                2386681722088990,
                1740551994106739,
                2500011992985018,
            ]),
            y_minus_x: FieldElement51([
                231429562203065,
                1526290236421172,
                2021375064026423,
                1520954495658041,
                806337791525116,
            ]),
            xy2d: FieldElement51([
                1079623667189886,
                872403650198613,
                766894200588288,
                2163700860774109,
                2023464507911816,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                854645372543796,
                1936406001954827,
                2403260476226501,
                3077125552956802,
                1554306377287555,
            ]),
            y_minus_x: FieldElement51([
                1497138821904622,
                1044820250515590,
                1742593886423484,
                1237204112746837,
                849047450816987,
            ]),
            xy2d: FieldElement51([
                667962773375330,
                1897271816877105,
                1399712621683474,
                1143302161683099,
                2081798441209593,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2378947665252234,
                1936114012888109,
                1704424366552046,
                3108474694401560,
                2968403435020606,
            ]),
            y_minus_x: FieldElement51([
                1072409664800960,
                2146937497077528,
                1508780108920651,
                935767602384853,
                1112800433544068,
            ]),
            xy2d: FieldElement51([
                333549023751292,
                280219272863308,
                2104176666454852,
                1036466864875785,
                536135186520207,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2625466093568366,
                2398257055215356,
                2555916080813104,
                2667888562832962,
                3510376944868638,
            ]),
            y_minus_x: FieldElement51([
                1186115062588401,
                2251609796968486,
                1098944457878953,
                1153112761201374,
                1791625503417267,
            ]),
            xy2d: FieldElement51([
                1870078460219737,
                2129630962183380,
                852283639691142,
                292865602592851,
                401904317342226,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1361070124828016,
                815664541425524,
                3278598711049919,
                1951790935390646,
                2807674705520038,
            ]),
            y_minus_x: FieldElement51([
                1546301003424277,
                459094500062839,
                1097668518375311,
                1780297770129643,
                720763293687608,
            ]),
            xy2d: FieldElement51([
                1212405311403990,
                1536693382542438,
                61028431067459,
                1863929423417129,
                1223219538638038,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1294303766540260,
                3435357279640341,
                3134071170918340,
                2315654383110622,
                2213283684565086,
            ]),
            y_minus_x: FieldElement51([
                339050984211414,
                601386726509773,
                413735232134068,
                966191255137228,
                1839475899458159,
            ]),
            xy2d: FieldElement51([
                235605972169408,
                2174055643032978,
                1538335001838863,
                1281866796917192,
                1815940222628465,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1632352921721536,
                1833328609514701,
                2092779091951987,
                4175756015558474,
                2210068022482918,
            ]),
            y_minus_x: FieldElement51([
                35271216625062,
                1712350667021807,
                983664255668860,
                98571260373038,
                1232645608559836,
            ]),
            xy2d: FieldElement51([
                1998172393429622,
                1798947921427073,
                784387737563581,
                1589352214827263,
                1589861734168180,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1733739258725305,
                2283515530744786,
                2453769758904107,
                3243892858242237,
                1194308773174555,
            ]),
            y_minus_x: FieldElement51([
                846415389605137,
                746163495539180,
                829658752826080,
                592067705956946,
                957242537821393,
            ]),
            xy2d: FieldElement51([
                1758148849754419,
                619249044817679,
                168089007997045,
                1371497636330523,
                1867101418880350,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2578433797894864,
                2513559319756263,
                1700682323676192,
                1577907266349064,
                3469447477068264,
            ]),
            y_minus_x: FieldElement51([
                1714182387328607,
                1477856482074168,
                574895689942184,
                2159118410227270,
                1555532449716575,
            ]),
            xy2d: FieldElement51([
                853828206885131,
                998498946036955,
                1835887550391235,
                207627336608048,
                258363815956050,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2392941288336925,
                3488528558590503,
                2894901233585134,
                1646615130509172,
                1208239602291765,
            ]),
            y_minus_x: FieldElement51([
                1501663228068911,
                1354879465566912,
                1444432675498247,
                897812463852601,
                855062598754348,
            ]),
            xy2d: FieldElement51([
                714380763546606,
                1032824444965790,
                1774073483745338,
                1063840874947367,
                1738680636537158,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1640635546696233,
                2884968766877360,
                2212651044092395,
                2282390772269100,
                2620315074574625,
            ]),
            y_minus_x: FieldElement51([
                1171650314802029,
                1567085444565577,
                1453660792008405,
                757914533009261,
                1619511342778196,
            ]),
            xy2d: FieldElement51([
                420958967093237,
                971103481109486,
                2169549185607107,
                1301191633558497,
                1661514101014240,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3158923465503550,
                1332556122804145,
                4075855067109735,
                3619414031128206,
                1982558335973171,
            ]),
            y_minus_x: FieldElement51([
                1121533090144639,
                1021251337022187,
                110469995947421,
                1511059774758394,
                2110035908131662,
            ]),
            xy2d: FieldElement51([
                303213233384524,
                2061932261128138,
                352862124777736,
                40828818670255,
                249879468482660,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                856559257852200,
                2760317478634258,
                3629993581580163,
                3975258940632376,
                1962275756614520,
            ]),
            y_minus_x: FieldElement51([
                1445691340537320,
                40614383122127,
                402104303144865,
                485134269878232,
                1659439323587426,
            ]),
            xy2d: FieldElement51([
                20057458979482,
                1183363722525800,
                2140003847237215,
                2053873950687614,
                2112017736174909,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2228654250927986,
                3735391177100515,
                1368661293910955,
                3328311098862539,
                526650682059607,
            ]),
            y_minus_x: FieldElement51([
                709481497028540,
                531682216165724,
                316963769431931,
                1814315888453765,
                258560242424104,
            ]),
            xy2d: FieldElement51([
                1053447823660455,
                1955135194248683,
                1010900954918985,
                1182614026976701,
                1240051576966610,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1957943897155478,
                1788667368028035,
                2389492723714354,
                2252839333292309,
                3078204576998275,
            ]),
            y_minus_x: FieldElement51([
                1848942433095597,
                1582009882530495,
                1849292741020143,
                1068498323302788,
                2001402229799484,
            ]),
            xy2d: FieldElement51([
                1528282417624269,
                2142492439828191,
                2179662545816034,
                362568973150328,
                1591374675250271,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2411826493119617,
                2484141002903963,
                2149181472355544,
                598041771119831,
                2435658815595421,
            ]),
            y_minus_x: FieldElement51([
                2013278155187349,
                662660471354454,
                793981225706267,
                411706605985744,
                804490933124791,
            ]),
            xy2d: FieldElement51([
                2051892037280204,
                488391251096321,
                2230187337030708,
                930221970662692,
                679002758255210,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1530723630438670,
                875873929577927,
                2593359947955236,
                2701702933216000,
                1055551308214178,
            ]),
            y_minus_x: FieldElement51([
                1461835919309432,
                1955256480136428,
                180866187813063,
                1551979252664528,
                557743861963950,
            ]),
            xy2d: FieldElement51([
                359179641731115,
                1324915145732949,
                902828372691474,
                294254275669987,
                1887036027752957,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4295071423139571,
                2038225437857463,
                1317528426475850,
                1398989128982787,
                2027639881006861,
            ]),
            y_minus_x: FieldElement51([
                2072902725256516,
                312132452743412,
                309930885642209,
                996244312618453,
                1590501300352303,
            ]),
            xy2d: FieldElement51([
                1397254305160710,
                695734355138021,
                2233992044438756,
                1776180593969996,
                1085588199351115,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2692366865016258,
                2506694600041928,
                2745669038615469,
                1556322069683365,
                3819256354004466,
            ]),
            y_minus_x: FieldElement51([
                1950722461391320,
                1907845598854797,
                1822757481635527,
                2121567704750244,
                73811931471221,
            ]),
            xy2d: FieldElement51([
                387139307395758,
                2058036430315676,
                1220915649965325,
                1794832055328951,
                1230009312169328,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1765973779329498,
                2911143873132225,
                2271621715291913,
                3553728154996461,
                3368065817761132,
            ]),
            y_minus_x: FieldElement51([
                1127572801181483,
                1224743760571696,
                1276219889847274,
                1529738721702581,
                1589819666871853,
            ]),
            xy2d: FieldElement51([
                2181229378964934,
                2190885205260020,
                1511536077659137,
                1246504208580490,
                668883326494241,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2689666469258543,
                2920826224880015,
                2333696811665585,
                523874406393177,
                2496851874620484,
            ]),
            y_minus_x: FieldElement51([
                1975438052228868,
                1071801519999806,
                594652299224319,
                1877697652668809,
                1489635366987285,
            ]),
            xy2d: FieldElement51([
                958592545673770,
                233048016518599,
                851568750216589,
                567703851596087,
                1740300006094761,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2014540178270324,
                192672779514432,
                2465676996326778,
                2194819933853410,
                1716422829364835,
            ]),
            y_minus_x: FieldElement51([
                1540769606609725,
                2148289943846077,
                1597804156127445,
                1230603716683868,
                815423458809453,
            ]),
            xy2d: FieldElement51([
                1738560251245018,
                1779576754536888,
                1783765347671392,
                1880170990446751,
                1088225159617541,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2911103727614740,
                1956447718227572,
                1830568515922666,
                3092868863429656,
                1669607124206367,
            ]),
            y_minus_x: FieldElement51([
                1143465490433355,
                1532194726196059,
                1093276745494697,
                481041706116088,
                2121405433561163,
            ]),
            xy2d: FieldElement51([
                1686424298744462,
                1451806974487153,
                266296068846582,
                1834686947542675,
                1720762336132256,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3141016840074207,
                3295090436969907,
                3107924901237156,
                1669272323124635,
                1603340330827879,
            ]),
            y_minus_x: FieldElement51([
                1206396181488998,
                333158148435054,
                1402633492821422,
                1120091191722026,
                1945474114550509,
            ]),
            xy2d: FieldElement51([
                766720088232571,
                1512222781191002,
                1189719893490790,
                2091302129467914,
                2141418006894941,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2671463460991841,
                1998875112167986,
                3678399683938955,
                3406728169064757,
                2738338345823434,
            ]),
            y_minus_x: FieldElement51([
                938160078005954,
                1421776319053174,
                1941643234741774,
                180002183320818,
                1414380336750546,
            ]),
            xy2d: FieldElement51([
                398001940109652,
                1577721237663248,
                1012748649830402,
                1540516006905144,
                1011684812884559,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1653276489969611,
                2257881638852872,
                1921777941170835,
                1604139841794531,
                3113010867325889,
            ]),
            y_minus_x: FieldElement51([
                996661541407379,
                1455877387952927,
                744312806857277,
                139213896196746,
                1000282908547789,
            ]),
            xy2d: FieldElement51([
                1450817495603008,
                1476865707053229,
                1030490562252053,
                620966950353376,
                1744760161539058,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2811528223687828,
                2288856475326432,
                2038622963352005,
                1637244893271723,
                3278365165924196,
            ]),
            y_minus_x: FieldElement51([
                962165956135846,
                1116599660248791,
                182090178006815,
                1455605467021751,
                196053588803284,
            ]),
            xy2d: FieldElement51([
                796863823080135,
                1897365583584155,
                420466939481601,
                2165972651724672,
                932177357788289,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                877047233620613,
                1375632631944375,
                2895573425567369,
                2911822552533124,
                2271153746017078,
            ]),
            y_minus_x: FieldElement51([
                2216943882299338,
                394841323190322,
                2222656898319671,
                558186553950529,
                1077236877025190,
            ]),
            xy2d: FieldElement51([
                801118384953213,
                1914330175515892,
                574541023311511,
                1471123787903705,
                1526158900256288,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3201417702772463,
                2207116611267330,
                3164719852826535,
                2752958352884036,
                2314162374456719,
            ]),
            y_minus_x: FieldElement51([
                1474518386765335,
                1760793622169197,
                1157399790472736,
                1622864308058898,
                165428294422792,
            ]),
            xy2d: FieldElement51([
                1961673048027128,
                102619413083113,
                1051982726768458,
                1603657989805485,
                1941613251499678,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1401939116319247,
                2587106153588320,
                2323846009771033,
                862423201496005,
                3102318568216632,
            ]),
            y_minus_x: FieldElement51([
                1234706593321979,
                1083343891215917,
                898273974314935,
                1640859118399498,
                157578398571149,
            ]),
            xy2d: FieldElement51([
                1143483057726416,
                1992614991758919,
                674268662140796,
                1773370048077526,
                674318359920189,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1835401379538542,
                173900035308392,
                818247630716732,
                4013900225838034,
                1021506399448290,
            ]),
            y_minus_x: FieldElement51([
                1506632088156630,
                2127481795522179,
                513812919490255,
                140643715928370,
                442476620300318,
            ]),
            xy2d: FieldElement51([
                2056683376856736,
                219094741662735,
                2193541883188309,
                1841182310235800,
                556477468664293,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3566819241596075,
                1049075855992602,
                4318372866671791,
                2518704280870781,
                2040482348591519,
            ]),
            y_minus_x: FieldElement51([
                94096246544434,
                922482381166992,
                24517828745563,
                2139430508542503,
                2097139044231004,
            ]),
            xy2d: FieldElement51([
                537697207950515,
                1399352016347350,
                1563663552106345,
                2148749520888918,
                549922092988516,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1747985413252415,
                680511052635695,
                1809559829982725,
                2846074064615302,
                2453472984431229,
            ]),
            y_minus_x: FieldElement51([
                323583936109569,
                1973572998577657,
                1192219029966558,
                79354804385273,
                1374043025560347,
            ]),
            xy2d: FieldElement51([
                213277331329947,
                416202017849623,
                1950535221091783,
                1313441578103244,
                2171386783823658,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2440888617915079,
                993969372859109,
                3147669935222235,
                3799101348983503,
                1477373024911349,
            ]),
            y_minus_x: FieldElement51([
                1620578418245010,
                541035331188469,
                2235785724453865,
                2154865809088198,
                1974627268751826,
            ]),
            xy2d: FieldElement51([
                1346805451740245,
                1350981335690626,
                942744349501813,
                2155094562545502,
                1012483751693409,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2107080134091762,
                1132567062788208,
                1824935377687210,
                769194804343737,
                1857941799971888,
            ]),
            y_minus_x: FieldElement51([
                1074666112436467,
                249279386739593,
                1174337926625354,
                1559013532006480,
                1472287775519121,
            ]),
            xy2d: FieldElement51([
                1872620123779532,
                1892932666768992,
                1921559078394978,
                1270573311796160,
                1438913646755037,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3089190001333428,
                3264053113908846,
                989780015893986,
                1351393287739814,
                2580427560230798,
            ]),
            y_minus_x: FieldElement51([
                1028328827183114,
                1711043289969857,
                1350832470374933,
                1923164689604327,
                1495656368846911,
            ]),
            xy2d: FieldElement51([
                1900828492104143,
                430212361082163,
                687437570852799,
                832514536673512,
                1685641495940794,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3094432661621646,
                605670026766215,
                290836444839585,
                2415010588577604,
                2213815011799644,
            ]),
            y_minus_x: FieldElement51([
                1176336383453996,
                1725477294339771,
                12700622672454,
                678015708818208,
                162724078519879,
            ]),
            xy2d: FieldElement51([
                1448049969043497,
                1789411762943521,
                385587766217753,
                90201620913498,
                832999441066823,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2767886146978542,
                2240508292484615,
                3603469341851756,
                3475055379001735,
                3002035638112385,
            ]),
            y_minus_x: FieldElement51([
                1263624896582495,
                1102602401673328,
                526302183714372,
                2152015839128799,
                1483839308490010,
            ]),
            xy2d: FieldElement51([
                442991718646863,
                1599275157036458,
                1925389027579192,
                899514691371390,
                350263251085160,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1689713572022124,
                2845654372939621,
                3229894858477217,
                1985127338729498,
                3927868934032873,
            ]),
            y_minus_x: FieldElement51([
                1557207018622683,
                340631692799603,
                1477725909476187,
                614735951619419,
                2033237123746766,
            ]),
            xy2d: FieldElement51([
                968764929340557,
                1225534776710944,
                662967304013036,
                1155521416178595,
                791142883466590,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1487081286167458,
                3244839255500182,
                1792378982844639,
                2950452258685122,
                2153908693179753,
            ]),
            y_minus_x: FieldElement51([
                1123181311102823,
                685575944875442,
                507605465509927,
                1412590462117473,
                568017325228626,
            ]),
            xy2d: FieldElement51([
                560258797465417,
                2193971151466401,
                1824086900849026,
                579056363542056,
                1690063960036441,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1918407319222397,
                2605567366745211,
                1930426334528098,
                1564816146005724,
                4113142195393344,
            ]),
            y_minus_x: FieldElement51([
                2131325168777276,
                1176636658428908,
                1756922641512981,
                1390243617176012,
                1966325177038383,
            ]),
            xy2d: FieldElement51([
                2063958120364491,
                2140267332393533,
                699896251574968,
                273268351312140,
                375580724713232,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2024297515263178,
                2668759143407935,
                3330814048702549,
                2423412039258430,
                1031677520051052,
            ]),
            y_minus_x: FieldElement51([
                2033900009388450,
                1744902869870788,
                2190580087917640,
                1949474984254121,
                231049754293748,
            ]),
            xy2d: FieldElement51([
                343868674606581,
                550155864008088,
                1450580864229630,
                481603765195050,
                896972360018042,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2151139328380127,
                2566545695770176,
                2311556639460451,
                1676664391494650,
                2048348075599360,
            ]),
            y_minus_x: FieldElement51([
                1528930066340597,
                1605003907059576,
                1055061081337675,
                1458319101947665,
                1234195845213142,
            ]),
            xy2d: FieldElement51([
                830430507734812,
                1780282976102377,
                1425386760709037,
                362399353095425,
                2168861579799910,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3407562046415562,
                980662895504005,
                2053766700883521,
                2742766027762854,
                2762205690726604,
            ]),
            y_minus_x: FieldElement51([
                1683750316716132,
                652278688286128,
                1221798761193539,
                1897360681476669,
                319658166027343,
            ]),
            xy2d: FieldElement51([
                618808732869972,
                72755186759744,
                2060379135624181,
                1730731526741822,
                48862757828238,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3714971784278753,
                3394840525452699,
                614590986558882,
                1409210575145591,
                1882816996436803,
            ]),
            y_minus_x: FieldElement51([
                2230133264691131,
                563950955091024,
                2042915975426398,
                827314356293472,
                672028980152815,
            ]),
            xy2d: FieldElement51([
                264204366029760,
                1654686424479449,
                2185050199932931,
                2207056159091748,
                506015669043634,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1784446333136550,
                1973746527984364,
                334856327359575,
                3408569589569858,
                3275749938360725,
            ]),
            y_minus_x: FieldElement51([
                2065270940578383,
                31477096270353,
                306421879113491,
                181958643936686,
                1907105536686083,
            ]),
            xy2d: FieldElement51([
                1496516440779464,
                1748485652986458,
                872778352227340,
                818358834654919,
                97932669284220,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2723435829455580,
                2924255216478824,
                1804995246884102,
                1842309243470804,
                3753662318666930,
            ]),
            y_minus_x: FieldElement51([
                1013216974933691,
                538921919682598,
                1915776722521558,
                1742822441583877,
                1886550687916656,
            ]),
            xy2d: FieldElement51([
                2094270000643336,
                303971879192276,
                40801275554748,
                649448917027930,
                1818544418535447,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2241737709499146,
                549397817447461,
                838180519319392,
                1725686958520781,
                3957438894582995,
            ]),
            y_minus_x: FieldElement51([
                1216074541925116,
                50120933933509,
                1565829004133810,
                721728156134580,
                349206064666188,
            ]),
            xy2d: FieldElement51([
                948617110470858,
                346222547451945,
                1126511960599975,
                1759386906004538,
                493053284802266,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1454933046815146,
                3126495827951610,
                1467170975468587,
                1432316382418897,
                2111710746366763,
            ]),
            y_minus_x: FieldElement51([
                2105387117364450,
                1996463405126433,
                1303008614294500,
                851908115948209,
                1353742049788635,
            ]),
            xy2d: FieldElement51([
                750300956351719,
                1487736556065813,
                15158817002104,
                1511998221598392,
                971739901354129,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1874648163531674,
                2124487685930551,
                1810030029384882,
                918400043048335,
                2838148440985898,
            ]),
            y_minus_x: FieldElement51([
                1235084464747900,
                1166111146432082,
                1745394857881591,
                1405516473883040,
                4463504151617,
            ]),
            xy2d: FieldElement51([
                1663810156463827,
                327797390285791,
                1341846161759410,
                1964121122800605,
                1747470312055380,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                660005247548214,
                2071860029952887,
                3610548013635355,
                911703252219106,
                3266179736709079,
            ]),
            y_minus_x: FieldElement51([
                2206641276178231,
                1690587809721504,
                1600173622825126,
                2156096097634421,
                1106822408548216,
            ]),
            xy2d: FieldElement51([
                1344788193552206,
                1949552134239140,
                1735915881729557,
                675891104100469,
                1834220014427292,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1920949492387945,
                2410685102072778,
                2322108077349280,
                2877838278583064,
                3719881539786256,
            ]),
            y_minus_x: FieldElement51([
                622221042073383,
                1210146474039168,
                1742246422343683,
                1403839361379025,
                417189490895736,
            ]),
            xy2d: FieldElement51([
                22727256592983,
                168471543384997,
                1324340989803650,
                1839310709638189,
                504999476432775,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3565040332441556,
                1721896294296941,
                2304063388272514,
                2065069734239231,
                3056710287109878,
            ]),
            y_minus_x: FieldElement51([
                1337466662091884,
                1287645354669772,
                2018019646776184,
                652181229374245,
                898011753211715,
            ]),
            xy2d: FieldElement51([
                1969792547910734,
                779969968247557,
                2011350094423418,
                1823964252907487,
                1058949448296945,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2459143550747250,
                1118176942430252,
                3010694408233412,
                806764629546265,
                1157700123092949,
            ]),
            y_minus_x: FieldElement51([
                1273565321399022,
                1638509681964574,
                759235866488935,
                666015124346707,
                897983460943405,
            ]),
            xy2d: FieldElement51([
                1717263794012298,
                1059601762860786,
                1837819172257618,
                1054130665797229,
                680893204263559,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2237039662793603,
                2249022333361206,
                2058613546633703,
                2401253908530527,
                2215176649164581,
            ]),
            y_minus_x: FieldElement51([
                79472182719605,
                1851130257050174,
                1825744808933107,
                821667333481068,
                781795293511946,
            ]),
            xy2d: FieldElement51([
                755822026485370,
                152464789723500,
                1178207602290608,
                410307889503239,
                156581253571278,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3669985309815545,
                2736319981413860,
                3898537095128197,
                3653287498355512,
                1349185550126960,
            ]),
            y_minus_x: FieldElement51([
                1495380034400429,
                325049476417173,
                46346894893933,
                1553408840354856,
                828980101835683,
            ]),
            xy2d: FieldElement51([
                1280337889310282,
                2070832742866672,
                1640940617225222,
                2098284908289951,
                450929509534434,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2659503167684029,
                2378371955168899,
                2537839641198868,
                1999255076709337,
                2030511179441770,
            ]),
            y_minus_x: FieldElement51([
                1254958221100483,
                1153235960999843,
                942907704968834,
                637105404087392,
                1149293270147267,
            ]),
            xy2d: FieldElement51([
                894249020470196,
                400291701616810,
                406878712230981,
                1599128793487393,
                1145868722604026,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3749755063888563,
                2361916158338507,
                1128535642171975,
                1900106496009660,
                2381592531146157,
            ]),
            y_minus_x: FieldElement51([
                452487513298665,
                1352120549024569,
                1173495883910956,
                1999111705922009,
                367328130454226,
            ]),
            xy2d: FieldElement51([
                1717539401269642,
                1475188995688487,
                891921989653942,
                836824441505699,
                1885988485608364,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3493583935107776,
                2439136865632830,
                3370281625921440,
                2680547565621609,
                2282158712612572,
            ]),
            y_minus_x: FieldElement51([
                2022432361201842,
                1088816090685051,
                1977843398539868,
                1854834215890724,
                564238862029357,
            ]),
            xy2d: FieldElement51([
                938868489100585,
                1100285072929025,
                1017806255688848,
                1957262154788833,
                152787950560442,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3119119231364171,
                2872271776627789,
                2477832016990963,
                2593801257642876,
                1761675818237335,
            ]),
            y_minus_x: FieldElement51([
                1295072362439987,
                931227904689414,
                1355731432641687,
                922235735834035,
                892227229410209,
            ]),
            xy2d: FieldElement51([
                1680989767906154,
                535362787031440,
                2136691276706570,
                1942228485381244,
                1267350086882274,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2617818047455756,
                2684460443440843,
                2378209521329782,
                1973842949591661,
                2897427157127624,
            ]),
            y_minus_x: FieldElement51([
                535509430575217,
                546885533737322,
                1524675609547799,
                2138095752851703,
                1260738089896827,
            ]),
            xy2d: FieldElement51([
                1159906385590467,
                2198530004321610,
                714559485023225,
                81880727882151,
                1484020820037082,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1377485731340769,
                2046328105512000,
                1802058637158797,
                2313945950453421,
                1356993908853900,
            ]),
            y_minus_x: FieldElement51([
                2013612215646735,
                1830770575920375,
                536135310219832,
                609272325580394,
                270684344495013,
            ]),
            xy2d: FieldElement51([
                1237542585982777,
                2228682050256790,
                1385281931622824,
                593183794882890,
                493654978552689,
            ]),
        },
    ]),
    LookupTable([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2299141301692989,
                1891414891220256,
                983894663308928,
                2427961581972066,
                3378060928864955,
            ]),
            y_minus_x: FieldElement51([
                1694030170963455,
                502038567066200,
                1691160065225467,
                949628319562187,
                275110186693066,
            ]),
            xy2d: FieldElement51([
                1124515748676336,
                1661673816593408,
                1499640319059718,
                1584929449166988,
                558148594103306,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1784525599998356,
                1619698033617383,
                2097300287550715,
                2510065271789004,
                1905684794832757,
            ]),
            y_minus_x: FieldElement51([
                1288941072872766,
                931787902039402,
                190731008859042,
                2006859954667190,
                1005931482221702,
            ]),
            xy2d: FieldElement51([
                1465551264822703,
                152905080555927,
                680334307368453,
                173227184634745,
                666407097159852,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2111017076203943,
                3630560299479595,
                1248583954016455,
                3604089008549670,
                1895180776543895,
            ]),
            y_minus_x: FieldElement51([
                171348223915638,
                662766099800389,
                462338943760497,
                466917763340314,
                656911292869115,
            ]),
            xy2d: FieldElement51([
                488623681976577,
                866497561541722,
                1708105560937768,
                1673781214218839,
                1506146329818807,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2412225278142205,
                950394373239688,
                2682296937026182,
                711676555398831,
                320964687779005,
            ]),
            y_minus_x: FieldElement51([
                988979367990485,
                1359729327576302,
                1301834257246029,
                294141160829308,
                29348272277475,
            ]),
            xy2d: FieldElement51([
                1434382743317910,
                100082049942065,
                221102347892623,
                186982837860588,
                1305765053501834,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2205916462268190,
                2751663643476068,
                961960554686615,
                2409862576442233,
                1841471168298304,
            ]),
            y_minus_x: FieldElement51([
                1191737341426592,
                1847042034978363,
                1382213545049056,
                1039952395710448,
                788812858896859,
            ]),
            xy2d: FieldElement51([
                1346965964571152,
                1291881610839830,
                2142916164336056,
                786821641205979,
                1571709146321039,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                787164375951248,
                2454669019058437,
                3608390234717387,
                1431233331032509,
                786341368775957,
            ]),
            y_minus_x: FieldElement51([
                492448143532951,
                304105152670757,
                1761767168301056,
                233782684697790,
                1981295323106089,
            ]),
            xy2d: FieldElement51([
                665807507761866,
                1343384868355425,
                895831046139653,
                439338948736892,
                1986828765695105,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3007896024559801,
                1721699973539148,
                2510565115413133,
                1390588532210644,
                1212530909934781,
            ]),
            y_minus_x: FieldElement51([
                852891097972275,
                1816988871354562,
                1543772755726524,
                1174710635522444,
                202129090724628,
            ]),
            xy2d: FieldElement51([
                1205281565824323,
                22430498399418,
                992947814485516,
                1392458699738672,
                688441466734558,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3302427242100220,
                1955849529137134,
                2171162376368357,
                2343545681983462,
                447733118757825,
            ]),
            y_minus_x: FieldElement51([
                1287181461435438,
                622722465530711,
                880952150571872,
                741035693459198,
                311565274989772,
            ]),
            xy2d: FieldElement51([
                1003649078149734,
                545233927396469,
                1849786171789880,
                1318943684880434,
                280345687170552,
            ]),
        },
    ]),
]);

/// Odd multiples of the basepoint `[B, 3B, 5B, 7B, 9B, 11B, 13B, 15B, ..., 127B]`.
#[cfg(feature = "precomputed-tables")]
#[allow(dead_code)]
pub(crate) const AFFINE_ODD_MULTIPLES_OF_BASEPOINT: NafLookupTable8<AffineNielsPoint> =
    NafLookupTable8([
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3540182452943730,
                2497478415033846,
                2521227595762870,
                1462984067271729,
                2389212253076811,
            ]),
            y_minus_x: FieldElement51([
                62697248952638,
                204681361388450,
                631292143396476,
                338455783676468,
                1213667448819585,
            ]),
            xy2d: FieldElement51([
                301289933810280,
                1259582250014073,
                1422107436869536,
                796239922652654,
                1953934009299142,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1601611775252272,
                1720807796594148,
                1132070835939856,
                3512254832574799,
                2147779492816910,
            ]),
            y_minus_x: FieldElement51([
                316559037616741,
                2177824224946892,
                1459442586438991,
                1461528397712656,
                751590696113597,
            ]),
            xy2d: FieldElement51([
                1850748884277385,
                1200145853858453,
                1068094770532492,
                672251375690438,
                1586055907191707,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                769950342298400,
                2384754244604994,
                3095885746880802,
                3225892188161580,
                2977876099231263,
            ]),
            y_minus_x: FieldElement51([
                425251763115706,
                608463272472562,
                442562545713235,
                837766094556764,
                374555092627893,
            ]),
            xy2d: FieldElement51([
                1086255230780037,
                274979815921559,
                1960002765731872,
                929474102396301,
                1190409889297339,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2916800678241215,
                2065379846933858,
                2622030924071124,
                2602788184473875,
                1233371373142984,
            ]),
            y_minus_x: FieldElement51([
                2019367628972465,
                676711900706637,
                110710997811333,
                1108646842542025,
                517791959672113,
            ]),
            xy2d: FieldElement51([
                965130719900578,
                247011430587952,
                526356006571389,
                91986625355052,
                2157223321444601,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1802695059464988,
                1664899123557221,
                2845359304426105,
                2160434469266658,
                3179370264440279,
            ]),
            y_minus_x: FieldElement51([
                1725674970513508,
                1933645953859181,
                1542344539275782,
                1767788773573747,
                1297447965928905,
            ]),
            xy2d: FieldElement51([
                1381809363726107,
                1430341051343062,
                2061843536018959,
                1551778050872521,
                2036394857967624,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4222693909998302,
                2779866139518454,
                1619374932191226,
                2207306624415883,
                1169170329061080,
            ]),
            y_minus_x: FieldElement51([
                2070390218572616,
                1458919061857835,
                624171843017421,
                1055332792707765,
                433987520732508,
            ]),
            xy2d: FieldElement51([
                893653801273833,
                1168026499324677,
                1242553501121234,
                1306366254304474,
                1086752658510815,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2465253816303469,
                3191571337672685,
                1159882208056013,
                2569188183312765,
                621213314200686,
            ]),
            y_minus_x: FieldElement51([
                1971678598905747,
                338026507889165,
                762398079972271,
                655096486107477,
                42299032696322,
            ]),
            xy2d: FieldElement51([
                177130678690680,
                1754759263300204,
                1864311296286618,
                1180675631479880,
                1292726903152791,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1913163449625248,
                2712579013977241,
                2193883288642313,
                1008900146920800,
                1721983679009502,
            ]),
            y_minus_x: FieldElement51([
                1070401523076875,
                1272492007800961,
                1910153608563310,
                2075579521696771,
                1191169788841221,
            ]),
            xy2d: FieldElement51([
                692896803108118,
                500174642072499,
                2068223309439677,
                1162190621851337,
                1426986007309901,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1819621230288238,
                2735700366193240,
                1755134670739586,
                3080648199451191,
                4172807995775876,
            ]),
            y_minus_x: FieldElement51([
                992069868904071,
                799011518185730,
                1777586403832768,
                1134820506145684,
                1999461475558530,
            ]),
            xy2d: FieldElement51([
                425204543703124,
                2040469794090382,
                1651690622153809,
                1500530168597569,
                1253908377065966,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2105824306960939,
                1387520302709358,
                3633176580451016,
                2211816663841753,
                1629085891776489,
            ]),
            y_minus_x: FieldElement51([
                1485201376284999,
                1022406647424656,
                504181009209019,
                962621520820995,
                590876713147230,
            ]),
            xy2d: FieldElement51([
                265873406365287,
                1192742653492898,
                88553098803050,
                525037770869640,
                1266933811251234,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3552316659826612,
                1254279525791875,
                1609927932077699,
                3578654071679972,
                3750681296069893,
            ]),
            y_minus_x: FieldElement51([
                37186803519861,
                1404297334376301,
                578519728836650,
                1740727951192592,
                2095534282477028,
            ]),
            xy2d: FieldElement51([
                833234263154399,
                2023862470013762,
                1854137933982069,
                853924318090959,
                1589812702805850,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3679150557957763,
                1319179453661745,
                497496853611112,
                2665464286942351,
                1208137952365560,
            ]),
            y_minus_x: FieldElement51([
                1654513078530905,
                907489875842908,
                126098711296368,
                1726320004173677,
                28269495058173,
            ]),
            xy2d: FieldElement51([
                114436686957443,
                532739313025996,
                115428841215897,
                2191499400074366,
                370280402676434,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1111146849833253,
                2016430049079759,
                1860522747477948,
                3537164738290194,
                4137142824844184,
            ]),
            y_minus_x: FieldElement51([
                429069864577128,
                975327637149449,
                237881983565075,
                1654761232378630,
                2122527599091807,
            ]),
            xy2d: FieldElement51([
                2093793463548278,
                754827233241879,
                1420389751719629,
                1829952782588138,
                2011865756773717,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                676293365438898,
                2850296017886344,
                1205350322490195,
                2763699392265669,
                2133931188538142,
            ]),
            y_minus_x: FieldElement51([
                48340340349120,
                1299261101494832,
                1137329686775218,
                1534848106674340,
                1351662218216799,
            ]),
            xy2d: FieldElement51([
                1904520614137939,
                1590301001714014,
                215781420985270,
                2043534301034629,
                1970888949300424,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2365217962409710,
                2061307169694064,
                1887478590157603,
                2169639621284316,
                2373810867477200,
            ]),
            y_minus_x: FieldElement51([
                1020052624656948,
                1260412094216707,
                366721640607121,
                585331442306596,
                345876457758061,
            ]),
            xy2d: FieldElement51([
                975390299880933,
                1066555195234642,
                12651997758352,
                1184252205433068,
                1058378155074223,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1431537716602643,
                2024827957433813,
                3746434518400495,
                1087794891033550,
                2156817571680455,
            ]),
            y_minus_x: FieldElement51([
                929288033346881,
                255179964546973,
                711057989588035,
                208899572612840,
                185348357387383,
            ]),
            xy2d: FieldElement51([
                823689746424808,
                47266130989546,
                209403309368097,
                1100966895202707,
                710792075292719,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2311213117823762,
                3296668540922318,
                2004276520649823,
                1861500579441125,
                3148029033359833,
            ]),
            y_minus_x: FieldElement51([
                1563693677475261,
                1843782073741194,
                1950700654453170,
                911540858113949,
                2085151496302359,
            ]),
            xy2d: FieldElement51([
                1427880892005482,
                106216431121745,
                42608394782284,
                1217295886989793,
                1514235272796882,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3544335535746750,
                2367994491347456,
                2567261456502612,
                1854058085060971,
                2263545563461076,
            ]),
            y_minus_x: FieldElement51([
                787426011300053,
                2105981035769060,
                1130476291127206,
                1748659348100075,
                53470983013756,
            ]),
            xy2d: FieldElement51([
                553548273865386,
                5927805718390,
                65184587381926,
                633576679686953,
                576048559439973,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                993787326657446,
                3868807161609258,
                1615796046728943,
                2514644292681953,
                2059021068660907,
            ]),
            y_minus_x: FieldElement51([
                251010270518880,
                1681684095763484,
                1521949356387564,
                431593457045116,
                1855308922422910,
            ]),
            xy2d: FieldElement51([
                618490909691959,
                1257497595618257,
                202952467594088,
                35577762721238,
                1494883566841973,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1673474571932262,
                2409784519770613,
                2636095316260487,
                2761112584601925,
                3333713288149876,
            ]),
            y_minus_x: FieldElement51([
                1600640202645197,
                1019569075331823,
                1041916487915822,
                1680448171313267,
                2126903137527901,
            ]),
            xy2d: FieldElement51([
                894964745143659,
                106116880092678,
                1009869382959477,
                317866368542032,
                1986983122763912,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1765281781276487,
                2863247187455184,
                2589075472439062,
                1386435905543054,
                2182338478845320,
            ]),
            y_minus_x: FieldElement51([
                1144730936996693,
                2213315231278180,
                1489676672185125,
                665039429138074,
                1131283313040268,
            ]),
            xy2d: FieldElement51([
                2004734176670602,
                1738311085075235,
                418866995976618,
                1050782508034394,
                577747313404652,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2185209688340293,
                1309276076461009,
                2514740038571278,
                3994889904012999,
                3018098826231021,
            ]),
            y_minus_x: FieldElement51([
                1405936970888515,
                1754621155316654,
                1211862168554999,
                1813045702919083,
                997853418197172,
            ]),
            xy2d: FieldElement51([
                82037622045021,
                1646398333621944,
                613095452763466,
                1312329542583705,
                81014679202721,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2389287991277873,
                403851022333257,
                1597473361477193,
                2953351602509212,
                2135174663049062,
            ]),
            y_minus_x: FieldElement51([
                1826548187201150,
                302299893734126,
                1475477168615781,
                842617616347376,
                1438600873676130,
            ]),
            xy2d: FieldElement51([
                663049852468609,
                1649295727846569,
                1048009692742781,
                628866177992421,
                1914360327429204,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1795645928096646,
                306878154408959,
                2924901319092394,
                2801261341654799,
                1653782432983523,
            ]),
            y_minus_x: FieldElement51([
                2077597317438627,
                212642017882064,
                674844477518888,
                875487498687554,
                2060550250171182,
            ]),
            xy2d: FieldElement51([
                1420448018683809,
                1032663994771382,
                1341927003385267,
                1340360916546159,
                1988547473895228,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1082660122598844,
                2545055705583789,
                3888919679589007,
                1670283344995811,
                3403239134794618,
            ]),
            y_minus_x: FieldElement51([
                90430593339788,
                1838338032241275,
                571293238480915,
                1639938867416883,
                257378872001111,
            ]),
            xy2d: FieldElement51([
                1528535658865034,
                1516636853043960,
                787000569996728,
                1464531394704506,
                1684822625133795,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                811329918113934,
                2783463529007378,
                1769095754634835,
                2970819621866866,
                881037178164325,
            ]),
            y_minus_x: FieldElement51([
                1784566501964517,
                433890943689325,
                1186055625589419,
                1496077405487512,
                1731807117886548,
            ]),
            xy2d: FieldElement51([
                424909811816304,
                1355993963741797,
                409606483251841,
                455665350637068,
                1617009023642808,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2478728492077816,
                2780289048655501,
                2328687177473769,
                4107341333582032,
                1316147724308250,
            ]),
            y_minus_x: FieldElement51([
                1617420574301156,
                1741273341070467,
                667135503486508,
                2100436564640123,
                1032223920000865,
            ]),
            xy2d: FieldElement51([
                1753947659404033,
                247279202390193,
                1819288880178945,
                737334285670249,
                1037873664856104,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1762568490530034,
                673742465299012,
                2054571050635888,
                2040165159255111,
                3040123733327257,
            ]),
            y_minus_x: FieldElement51([
                1627187989987422,
                1686331580821752,
                1309895873498183,
                719718719104086,
                300063199808722,
            ]),
            xy2d: FieldElement51([
                238176707016164,
                1440454788877048,
                203336037573144,
                1437789888677072,
                101522256664211,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1895216760098480,
                1934324337975022,
                3677350688973167,
                2536415965456176,
                714678003308640,
            ]),
            y_minus_x: FieldElement51([
                508185358728815,
                1691320535341855,
                2168887448239256,
                1035124393070661,
                1936603999698584,
            ]),
            xy2d: FieldElement51([
                390562831571647,
                1390223890708972,
                1383183990676371,
                435998174196410,
                1882086414390730,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3747620842612921,
                2081794785291195,
                3284594056262745,
                2090090346797895,
                2581692978935809,
            ]),
            y_minus_x: FieldElement51([
                244144781251265,
                1290834426417077,
                1888701171101942,
                1233922456644870,
                241117402207491,
            ]),
            xy2d: FieldElement51([
                1266169390045455,
                1148042013187970,
                878921907853942,
                1815738019658093,
                908920199341621,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2521768507305118,
                953557056811112,
                2015863732865770,
                1358382511861315,
                2835421647899992,
            ]),
            y_minus_x: FieldElement51([
                2239837206240498,
                330928973149665,
                422268062913642,
                1481280019493032,
                619879520439841,
            ]),
            xy2d: FieldElement51([
                1360166735366017,
                1770556573948510,
                1395061284191031,
                1814003148068126,
                522781147076884,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2611794802645686,
                707234844948070,
                1314059396506491,
                2919250341703934,
                2161831667832785,
            ]),
            y_minus_x: FieldElement51([
                934831784182383,
                433734253968318,
                1660867106725771,
                1968393082772831,
                873946300968490,
            ]),
            xy2d: FieldElement51([
                26306827827554,
                430884999378685,
                1504310424376419,
                1761358720837522,
                542195685418530,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1762131062631725,
                3123952634417535,
                3619918390837537,
                2909990877347294,
                1411594230004385,
            ]),
            y_minus_x: FieldElement51([
                538272372224622,
                1425714779586199,
                588313661410172,
                1497062084392578,
                1602174047128512,
            ]),
            xy2d: FieldElement51([
                907490361939255,
                1963620338391363,
                626927432296975,
                1250748516081414,
                959901171882527,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1335066153744413,
                2887804660779657,
                2653073855954038,
                2765226981667422,
                938831784476763,
            ]),
            y_minus_x: FieldElement51([
                296699434737224,
                2047543711075683,
                2076451038937139,
                227783599906901,
                1602062110967627,
            ]),
            xy2d: FieldElement51([
                1574834773194203,
                1384279952062839,
                393652417255803,
                2166968242848859,
                1552890441390820,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1619646774410947,
                1576090644023562,
                3035228391320965,
                1735328519940543,
                2355324535937066,
            ]),
            y_minus_x: FieldElement51([
                1024074573633446,
                957088456885874,
                1690425531356997,
                2102187380180052,
                1082544623222033,
            ]),
            xy2d: FieldElement51([
                1871906170635853,
                1719383891167200,
                1584032250247862,
                823764804192117,
                2244048510084261,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                642147846489775,
                3334304977145699,
                305205716788147,
                2589176626729533,
                2224680511484174,
            ]),
            y_minus_x: FieldElement51([
                1734162377166545,
                260713621840346,
                157174591942595,
                952544272517991,
                222818702471733,
            ]),
            xy2d: FieldElement51([
                1213115494182947,
                286778704335711,
                2130189536016490,
                308349182281342,
                1217623948685491,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3360052266973635,
                1843486583624091,
                1561693837124349,
                1084041964025479,
                1866270922024009,
            ]),
            y_minus_x: FieldElement51([
                460705465481210,
                1968151453817859,
                497005926994844,
                625618055866751,
                2176893440866887,
            ]),
            xy2d: FieldElement51([
                1655800250476757,
                2036588542300609,
                666447448675243,
                1615721995750683,
                1508669225186765,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2245948203759141,
                1058306669699396,
                1452898014240582,
                3961024141962768,
                1633235287338608,
            ]),
            y_minus_x: FieldElement51([
                986647273684279,
                1507266907811370,
                1260572633649005,
                2071672342077446,
                695976026010857,
            ]),
            xy2d: FieldElement51([
                1312356620823495,
                1635278548098567,
                901946076841033,
                585120475533168,
                1240667113237384,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2313723935779695,
                1506054666773895,
                996040223525031,
                636592914999692,
                1497801917020297,
            ]),
            y_minus_x: FieldElement51([
                292042016419794,
                1158932298133044,
                2062611870323738,
                1946058478962569,
                1749165808126286,
            ]),
            xy2d: FieldElement51([
                654683942212830,
                1526897351349087,
                2006818439922838,
                2194919327350361,
                1451960776874416,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3015041017808905,
                2951823141773809,
                2584865668253675,
                2508192032998563,
                2582137700042019,
            ]),
            y_minus_x: FieldElement51([
                1628123495344283,
                2072923641214546,
                1647225812023982,
                855655925244679,
                1758126430071140,
            ]),
            xy2d: FieldElement51([
                1615895096489599,
                275295258643784,
                937665541219916,
                1313496726746346,
                1186468946422626,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1603070202850694,
                2072127623773242,
                1692648737212158,
                2493373404187852,
                1248948672117105,
            ]),
            y_minus_x: FieldElement51([
                11167836031898,
                596565174397990,
                2196351068723859,
                314744641791907,
                1102014997250781,
            ]),
            xy2d: FieldElement51([
                1409047922401191,
                69960384467966,
                688103515547600,
                1309746102488044,
                150292892873778,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1986083055103168,
                691715819340300,
                1361811659746933,
                3459052030333434,
                1063594696046061,
            ]),
            y_minus_x: FieldElement51([
                1201987338414749,
                2198784582460616,
                1203335513981498,
                489243077045066,
                2205278143582433,
            ]),
            xy2d: FieldElement51([
                2034744376624534,
                2077387101466387,
                148448542974969,
                1502697574577258,
                473186584705655,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                472016956315960,
                720786972252993,
                2840633661190043,
                3150798753357827,
                2816563335499153,
            ]),
            y_minus_x: FieldElement51([
                253464247569755,
                168314237403057,
                511780806170295,
                1058862316549135,
                1646858476817137,
            ]),
            xy2d: FieldElement51([
                595092995922219,
                1491311840717691,
                291581784452778,
                1569186646367854,
                1031385061400544,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3483137021572755,
                1526955102024322,
                2778006642704458,
                457549634924205,
                1097420237736736,
            ]),
            y_minus_x: FieldElement51([
                1246991699537710,
                81367319519439,
                530844036072196,
                163656863755855,
                1950742455979290,
            ]),
            xy2d: FieldElement51([
                191532664076407,
                539378506082089,
                1021612562876554,
                1026603384732632,
                1773368780410653,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                4144620731387879,
                590179521333342,
                4034023318016108,
                2255745030335426,
                2699746851701250,
            ]),
            y_minus_x: FieldElement51([
                2206599697359952,
                553895797384417,
                181689161933786,
                1153123447919104,
                778568064152659,
            ]),
            xy2d: FieldElement51([
                1706307000059211,
                1885601289314487,
                889758608505788,
                550131729999853,
                1006862664714268,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3210197754285058,
                2048500453422630,
                3403309827888207,
                927154428508963,
                4199813798872019,
            ]),
            y_minus_x: FieldElement51([
                992058915374933,
                476120535358775,
                1973648780784340,
                2025282643598818,
                2182318983793230,
            ]),
            xy2d: FieldElement51([
                1343440812005821,
                1316045839091795,
                1884951299078063,
                1765919609219175,
                2197567554627988,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3129247779382818,
                4415026969054274,
                1900265885969643,
                1528796215447059,
                2172730393748688,
            ]),
            y_minus_x: FieldElement51([
                1773355092297603,
                64654329538271,
                1332124041660957,
                748492100858001,
                895500006200535,
            ]),
            xy2d: FieldElement51([
                2000840647851980,
                546565968824914,
                420633283457524,
                195470736374507,
                1958689297569520,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                743138980705446,
                3411117504637167,
                2591389959690621,
                2380042066577202,
                3022267940115114,
            ]),
            y_minus_x: FieldElement51([
                165947002229363,
                115186103724967,
                1068573292121517,
                1842565776920938,
                1969395681111987,
            ]),
            xy2d: FieldElement51([
                553322266190633,
                234265665613185,
                484544650202821,
                1238773526575826,
                2017991917953668,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2581954631514051,
                1245093644265357,
                3537016673825374,
                1834216551713857,
                923978372152807,
            ]),
            y_minus_x: FieldElement51([
                1855378315339552,
                890045579230758,
                1764718173975590,
                197904186055854,
                1718129022310327,
            ]),
            xy2d: FieldElement51([
                1278162928734862,
                1894118254109862,
                987503995465517,
                177406744098996,
                781538103127693,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1996603431230215,
                1191888797552937,
                1207440075928499,
                2765853449051137,
                2525314961343288,
            ]),
            y_minus_x: FieldElement51([
                808903879370889,
                990820108751280,
                1084429472258867,
                1078562781312589,
                254514692695625,
            ]),
            xy2d: FieldElement51([
                615855140068469,
                586046731175395,
                693470779212674,
                1964537100203868,
                1350330550265229,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3344544372023708,
                720386671449874,
                2480841360702110,
                2036034126860286,
                2015744690201389,
            ]),
            y_minus_x: FieldElement51([
                1337446193390478,
                1984110761311871,
                746489405020285,
                407347127604128,
                1740475330360596,
            ]),
            xy2d: FieldElement51([
                140840424783613,
                1063284623568331,
                1136446106453878,
                372042229029799,
                442607248430694,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2330781679120937,
                376801425148230,
                2032603686676107,
                1488926293635130,
                1317278311532959,
            ]),
            y_minus_x: FieldElement51([
                1290116731380016,
                2166899563471713,
                831997001838078,
                870954980505220,
                2108537278055823,
            ]),
            xy2d: FieldElement51([
                1912719171026343,
                846194720551034,
                2043988124740726,
                993234269653961,
                421229796383281,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2651184584992902,
                2775702557638963,
                2539786009779572,
                2575974880015305,
                2122619079836732,
            ]),
            y_minus_x: FieldElement51([
                1154054290132562,
                931753998725577,
                1647742001778052,
                865765466488226,
                1083816107290025,
            ]),
            xy2d: FieldElement51([
                986341121095108,
                1522330369638573,
                1990880546211047,
                501525962272123,
                198539304862139,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1496414019192687,
                3991034436173951,
                3380311659062196,
                2854747485359158,
                3346958036643152,
            ]),
            y_minus_x: FieldElement51([
                805612068303425,
                1891790027761335,
                1587008567571549,
                722120737390201,
                378156757163816,
            ]),
            xy2d: FieldElement51([
                1588994517921951,
                977362751042302,
                1329302387067714,
                2069348224564088,
                1586007159625211,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2490539421551682,
                1985699850375015,
                2331762317128172,
                4145097393776678,
                2521049460190674,
            ]),
            y_minus_x: FieldElement51([
                615817553313996,
                2245962768078178,
                482564324326173,
                2101336843140780,
                1240914880829407,
            ]),
            xy2d: FieldElement51([
                1438242482238189,
                874267817785463,
                1620810389770625,
                866155221338671,
                1040426546798301,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                2403083624110300,
                2548561409802975,
                2492699136535911,
                2358289519456539,
                3203964320363148,
            ]),
            y_minus_x: FieldElement51([
                1913986535403097,
                1977163223054199,
                1972905914623196,
                1650122133472502,
                1905849310819035,
            ]),
            xy2d: FieldElement51([
                858174816360838,
                614595356564037,
                1099584959044836,
                636998087084906,
                1070393269058348,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3666695924830668,
                3585640662737501,
                2372994528684236,
                2628565977288995,
                3482812783469694,
            ]),
            y_minus_x: FieldElement51([
                1994161359147952,
                2198039369802658,
                62790022842537,
                1522306785848169,
                951223194802833,
            ]),
            xy2d: FieldElement51([
                852296621440717,
                431889737774209,
                370755457746189,
                437604073958073,
                627857326892757,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1794955764684156,
                2586904290013612,
                1322647643615887,
                856117964085888,
                2652432778663153,
            ]),
            y_minus_x: FieldElement51([
                933592377399646,
                78031722952813,
                926049890685253,
                1471649501316246,
                33789909190376,
            ]),
            xy2d: FieldElement51([
                1479319468832059,
                203906207621608,
                659828362330083,
                44358398435755,
                1273573524210803,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1592342143350813,
                3227219208247713,
                2345240352078765,
                2577750109932929,
                2933512841197243,
            ]),
            y_minus_x: FieldElement51([
                2184946892642995,
                1517382324576002,
                1557940277419806,
                2170635134813213,
                747314658627002,
            ]),
            xy2d: FieldElement51([
                1823193620577742,
                1135817878516419,
                1731253819308581,
                1031652967267804,
                2123506616999453,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1346190246005805,
                2052692552023851,
                1718128041785940,
                2491557332978474,
                3474370880388305,
            ]),
            y_minus_x: FieldElement51([
                424776012994573,
                281050757243423,
                626466040846420,
                990194703866532,
                38571969885982,
            ]),
            xy2d: FieldElement51([
                192408346595466,
                1054889725292349,
                584097975693004,
                1447909807397749,
                2134645004369136,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3169895788615063,
                3503097743181446,
                601598510029975,
                1422812237223371,
                2121009661378329,
            ]),
            y_minus_x: FieldElement51([
                1603348391996783,
                2066143816131699,
                1789627290363958,
                2145705961178118,
                1985578641438222,
            ]),
            xy2d: FieldElement51([
                352633958653380,
                856927627345554,
                793925083122702,
                93551575767286,
                1222010153634215,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1756866499986349,
                911731956999969,
                2707505543214075,
                4006920335263786,
                822501008147910,
            ]),
            y_minus_x: FieldElement51([
                1094036422864347,
                1897208881572508,
                1503607738246960,
                1901060196071406,
                294068411105729,
            ]),
            xy2d: FieldElement51([
                587776484399576,
                1116861711228807,
                343398777436088,
                936544065763093,
                1643746750211060,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                3477749685790410,
                267997399528836,
                2953780922004404,
                3252368924080907,
                3787792887348381,
            ]),
            y_minus_x: FieldElement51([
                2042368155872443,
                41662387210459,
                1676313264498480,
                1333968523426810,
                1765708383352310,
            ]),
            xy2d: FieldElement51([
                1453394896690938,
                1585795827439909,
                1469309456804303,
                1294645324464404,
                2042954198665899,
            ]),
        },
        AffineNielsPoint {
            y_plus_x: FieldElement51([
                1810069207599881,
                1358344669503239,
                1989371257548167,
                2316270051121225,
                3019675451276507,
            ]),
            y_minus_x: FieldElement51([
                1866114438287676,
                1663420339568364,
                1437691317033088,
                538298302628038,
                1212711449614363,
            ]),
            xy2d: FieldElement51([
                1769235035677897,
                1562012115317882,
                31277513664750,
                536198657928416,
                1976134212537183,
            ]),
        },
    ]);