blob: c293e95dc86e55326e37cfdc2b91b192c1e0359a [file] [log] [blame]
// The MIT License (MIT)
//
// Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file).
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// This file is generated from
// ./make_curve25519_tables.py > curve25519_tables.h
static const fe d = {{
#if defined(BORINGSSL_CURVE25519_64BIT)
929955233495203, 466365720129213, 1662059464998953, 2033849074728123,
1442794654840575
#else
56195235, 13857412, 51736253, 6949390, 114729, 24766616, 60832955, 30306712,
48412415, 21499315
#endif
}};
static const fe sqrtm1 = {{
#if defined(BORINGSSL_CURVE25519_64BIT)
1718705420411056, 234908883556509, 2233514472574048, 2117202627021982,
765476049583133
#else
34513072, 25610706, 9377949, 3500415, 12389472, 33281959, 41962654,
31548777, 326685, 11406482
#endif
}};
static const fe d2 = {{
#if defined(BORINGSSL_CURVE25519_64BIT)
1859910466990425, 932731440258426, 1072319116312658, 1815898335770999,
633789495995903
#else
45281625, 27714825, 36363642, 13898781, 229458, 15978800, 54557047,
27058993, 29715967, 9444199
#endif
}};
#if defined(OPENSSL_SMALL)
// This block of code replaces the standard base-point table with a much smaller
// one. The standard table is 30,720 bytes while this one is just 960.
//
// This table contains 15 pairs of group elements, (x, y), where each field
// element is serialised with |fe_tobytes|. If |i| is the index of the group
// element then consider i+1 as a four-bit number: (i₀, i₁, i₂, i₃) (where i₀
// is the most significant bit). The value of the group element is then:
// (i₀×2^192 + i₁×2^128 + i₂×2^64 + i₃)G, where G is the generator.
static const uint8_t k25519SmallPrecomp[15 * 2 * 32] = {
0x1a, 0xd5, 0x25, 0x8f, 0x60, 0x2d, 0x56, 0xc9, 0xb2, 0xa7, 0x25, 0x95,
0x60, 0xc7, 0x2c, 0x69, 0x5c, 0xdc, 0xd6, 0xfd, 0x31, 0xe2, 0xa4, 0xc0,
0xfe, 0x53, 0x6e, 0xcd, 0xd3, 0x36, 0x69, 0x21, 0x58, 0x66, 0x66, 0x66,
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
0x66, 0x66, 0x66, 0x66, 0x02, 0xa2, 0xed, 0xf4, 0x8f, 0x6b, 0x0b, 0x3e,
0xeb, 0x35, 0x1a, 0xd5, 0x7e, 0xdb, 0x78, 0x00, 0x96, 0x8a, 0xa0, 0xb4,
0xcf, 0x60, 0x4b, 0xd4, 0xd5, 0xf9, 0x2d, 0xbf, 0x88, 0xbd, 0x22, 0x62,
0x13, 0x53, 0xe4, 0x82, 0x57, 0xfa, 0x1e, 0x8f, 0x06, 0x2b, 0x90, 0xba,
0x08, 0xb6, 0x10, 0x54, 0x4f, 0x7c, 0x1b, 0x26, 0xed, 0xda, 0x6b, 0xdd,
0x25, 0xd0, 0x4e, 0xea, 0x42, 0xbb, 0x25, 0x03, 0xa2, 0xfb, 0xcc, 0x61,
0x67, 0x06, 0x70, 0x1a, 0xc4, 0x78, 0x3a, 0xff, 0x32, 0x62, 0xdd, 0x2c,
0xab, 0x50, 0x19, 0x3b, 0xf2, 0x9b, 0x7d, 0xb8, 0xfd, 0x4f, 0x29, 0x9c,
0xa7, 0x91, 0xba, 0x0e, 0x46, 0x5e, 0x51, 0xfe, 0x1d, 0xbf, 0xe5, 0xe5,
0x9b, 0x95, 0x0d, 0x67, 0xf8, 0xd1, 0xb5, 0x5a, 0xa1, 0x93, 0x2c, 0xc3,
0xde, 0x0e, 0x97, 0x85, 0x2d, 0x7f, 0xea, 0xab, 0x3e, 0x47, 0x30, 0x18,
0x24, 0xe8, 0xb7, 0x60, 0xae, 0x47, 0x80, 0xfc, 0xe5, 0x23, 0xe7, 0xc2,
0xc9, 0x85, 0xe6, 0x98, 0xa0, 0x29, 0x4e, 0xe1, 0x84, 0x39, 0x2d, 0x95,
0x2c, 0xf3, 0x45, 0x3c, 0xff, 0xaf, 0x27, 0x4c, 0x6b, 0xa6, 0xf5, 0x4b,
0x11, 0xbd, 0xba, 0x5b, 0x9e, 0xc4, 0xa4, 0x51, 0x1e, 0xbe, 0xd0, 0x90,
0x3a, 0x9c, 0xc2, 0x26, 0xb6, 0x1e, 0xf1, 0x95, 0x7d, 0xc8, 0x6d, 0x52,
0xe6, 0x99, 0x2c, 0x5f, 0x9a, 0x96, 0x0c, 0x68, 0x29, 0xfd, 0xe2, 0xfb,
0xe6, 0xbc, 0xec, 0x31, 0x08, 0xec, 0xe6, 0xb0, 0x53, 0x60, 0xc3, 0x8c,
0xbe, 0xc1, 0xb3, 0x8a, 0x8f, 0xe4, 0x88, 0x2b, 0x55, 0xe5, 0x64, 0x6e,
0x9b, 0xd0, 0xaf, 0x7b, 0x64, 0x2a, 0x35, 0x25, 0x10, 0x52, 0xc5, 0x9e,
0x58, 0x11, 0x39, 0x36, 0x45, 0x51, 0xb8, 0x39, 0x93, 0xfc, 0x9d, 0x6a,
0xbe, 0x58, 0xcb, 0xa4, 0x0f, 0x51, 0x3c, 0x38, 0x05, 0xca, 0xab, 0x43,
0x63, 0x0e, 0xf3, 0x8b, 0x41, 0xa6, 0xf8, 0x9b, 0x53, 0x70, 0x80, 0x53,
0x86, 0x5e, 0x8f, 0xe3, 0xc3, 0x0d, 0x18, 0xc8, 0x4b, 0x34, 0x1f, 0xd8,
0x1d, 0xbc, 0xf2, 0x6d, 0x34, 0x3a, 0xbe, 0xdf, 0xd9, 0xf6, 0xf3, 0x89,
0xa1, 0xe1, 0x94, 0x9f, 0x5d, 0x4c, 0x5d, 0xe9, 0xa1, 0x49, 0x92, 0xef,
0x0e, 0x53, 0x81, 0x89, 0x58, 0x87, 0xa6, 0x37, 0xf1, 0xdd, 0x62, 0x60,
0x63, 0x5a, 0x9d, 0x1b, 0x8c, 0xc6, 0x7d, 0x52, 0xea, 0x70, 0x09, 0x6a,
0xe1, 0x32, 0xf3, 0x73, 0x21, 0x1f, 0x07, 0x7b, 0x7c, 0x9b, 0x49, 0xd8,
0xc0, 0xf3, 0x25, 0x72, 0x6f, 0x9d, 0xed, 0x31, 0x67, 0x36, 0x36, 0x54,
0x40, 0x92, 0x71, 0xe6, 0x11, 0x28, 0x11, 0xad, 0x93, 0x32, 0x85, 0x7b,
0x3e, 0xb7, 0x3b, 0x49, 0x13, 0x1c, 0x07, 0xb0, 0x2e, 0x93, 0xaa, 0xfd,
0xfd, 0x28, 0x47, 0x3d, 0x8d, 0xd2, 0xda, 0xc7, 0x44, 0xd6, 0x7a, 0xdb,
0x26, 0x7d, 0x1d, 0xb8, 0xe1, 0xde, 0x9d, 0x7a, 0x7d, 0x17, 0x7e, 0x1c,
0x37, 0x04, 0x8d, 0x2d, 0x7c, 0x5e, 0x18, 0x38, 0x1e, 0xaf, 0xc7, 0x1b,
0x33, 0x48, 0x31, 0x00, 0x59, 0xf6, 0xf2, 0xca, 0x0f, 0x27, 0x1b, 0x63,
0x12, 0x7e, 0x02, 0x1d, 0x49, 0xc0, 0x5d, 0x79, 0x87, 0xef, 0x5e, 0x7a,
0x2f, 0x1f, 0x66, 0x55, 0xd8, 0x09, 0xd9, 0x61, 0x38, 0x68, 0xb0, 0x07,
0xa3, 0xfc, 0xcc, 0x85, 0x10, 0x7f, 0x4c, 0x65, 0x65, 0xb3, 0xfa, 0xfa,
0xa5, 0x53, 0x6f, 0xdb, 0x74, 0x4c, 0x56, 0x46, 0x03, 0xe2, 0xd5, 0x7a,
0x29, 0x1c, 0xc6, 0x02, 0xbc, 0x59, 0xf2, 0x04, 0x75, 0x63, 0xc0, 0x84,
0x2f, 0x60, 0x1c, 0x67, 0x76, 0xfd, 0x63, 0x86, 0xf3, 0xfa, 0xbf, 0xdc,
0xd2, 0x2d, 0x90, 0x91, 0xbd, 0x33, 0xa9, 0xe5, 0x66, 0x0c, 0xda, 0x42,
0x27, 0xca, 0xf4, 0x66, 0xc2, 0xec, 0x92, 0x14, 0x57, 0x06, 0x63, 0xd0,
0x4d, 0x15, 0x06, 0xeb, 0x69, 0x58, 0x4f, 0x77, 0xc5, 0x8b, 0xc7, 0xf0,
0x8e, 0xed, 0x64, 0xa0, 0xb3, 0x3c, 0x66, 0x71, 0xc6, 0x2d, 0xda, 0x0a,
0x0d, 0xfe, 0x70, 0x27, 0x64, 0xf8, 0x27, 0xfa, 0xf6, 0x5f, 0x30, 0xa5,
0x0d, 0x6c, 0xda, 0xf2, 0x62, 0x5e, 0x78, 0x47, 0xd3, 0x66, 0x00, 0x1c,
0xfd, 0x56, 0x1f, 0x5d, 0x3f, 0x6f, 0xf4, 0x4c, 0xd8, 0xfd, 0x0e, 0x27,
0xc9, 0x5c, 0x2b, 0xbc, 0xc0, 0xa4, 0xe7, 0x23, 0x29, 0x02, 0x9f, 0x31,
0xd6, 0xe9, 0xd7, 0x96, 0xf4, 0xe0, 0x5e, 0x0b, 0x0e, 0x13, 0xee, 0x3c,
0x09, 0xed, 0xf2, 0x3d, 0x76, 0x91, 0xc3, 0xa4, 0x97, 0xae, 0xd4, 0x87,
0xd0, 0x5d, 0xf6, 0x18, 0x47, 0x1f, 0x1d, 0x67, 0xf2, 0xcf, 0x63, 0xa0,
0x91, 0x27, 0xf8, 0x93, 0x45, 0x75, 0x23, 0x3f, 0xd1, 0xf1, 0xad, 0x23,
0xdd, 0x64, 0x93, 0x96, 0x41, 0x70, 0x7f, 0xf7, 0xf5, 0xa9, 0x89, 0xa2,
0x34, 0xb0, 0x8d, 0x1b, 0xae, 0x19, 0x15, 0x49, 0x58, 0x23, 0x6d, 0x87,
0x15, 0x4f, 0x81, 0x76, 0xfb, 0x23, 0xb5, 0xea, 0xcf, 0xac, 0x54, 0x8d,
0x4e, 0x42, 0x2f, 0xeb, 0x0f, 0x63, 0xdb, 0x68, 0x37, 0xa8, 0xcf, 0x8b,
0xab, 0xf5, 0xa4, 0x6e, 0x96, 0x2a, 0xb2, 0xd6, 0xbe, 0x9e, 0xbd, 0x0d,
0xb4, 0x42, 0xa9, 0xcf, 0x01, 0x83, 0x8a, 0x17, 0x47, 0x76, 0xc4, 0xc6,
0x83, 0x04, 0x95, 0x0b, 0xfc, 0x11, 0xc9, 0x62, 0xb8, 0x0c, 0x76, 0x84,
0xd9, 0xb9, 0x37, 0xfa, 0xfc, 0x7c, 0xc2, 0x6d, 0x58, 0x3e, 0xb3, 0x04,
0xbb, 0x8c, 0x8f, 0x48, 0xbc, 0x91, 0x27, 0xcc, 0xf9, 0xb7, 0x22, 0x19,
0x83, 0x2e, 0x09, 0xb5, 0x72, 0xd9, 0x54, 0x1c, 0x4d, 0xa1, 0xea, 0x0b,
0xf1, 0xc6, 0x08, 0x72, 0x46, 0x87, 0x7a, 0x6e, 0x80, 0x56, 0x0a, 0x8a,
0xc0, 0xdd, 0x11, 0x6b, 0xd6, 0xdd, 0x47, 0xdf, 0x10, 0xd9, 0xd8, 0xea,
0x7c, 0xb0, 0x8f, 0x03, 0x00, 0x2e, 0xc1, 0x8f, 0x44, 0xa8, 0xd3, 0x30,
0x06, 0x89, 0xa2, 0xf9, 0x34, 0xad, 0xdc, 0x03, 0x85, 0xed, 0x51, 0xa7,
0x82, 0x9c, 0xe7, 0x5d, 0x52, 0x93, 0x0c, 0x32, 0x9a, 0x5b, 0xe1, 0xaa,
0xca, 0xb8, 0x02, 0x6d, 0x3a, 0xd4, 0xb1, 0x3a, 0xf0, 0x5f, 0xbe, 0xb5,
0x0d, 0x10, 0x6b, 0x38, 0x32, 0xac, 0x76, 0x80, 0xbd, 0xca, 0x94, 0x71,
0x7a, 0xf2, 0xc9, 0x35, 0x2a, 0xde, 0x9f, 0x42, 0x49, 0x18, 0x01, 0xab,
0xbc, 0xef, 0x7c, 0x64, 0x3f, 0x58, 0x3d, 0x92, 0x59, 0xdb, 0x13, 0xdb,
0x58, 0x6e, 0x0a, 0xe0, 0xb7, 0x91, 0x4a, 0x08, 0x20, 0xd6, 0x2e, 0x3c,
0x45, 0xc9, 0x8b, 0x17, 0x79, 0xe7, 0xc7, 0x90, 0x99, 0x3a, 0x18, 0x25,
};
#else
// k25519Precomp[i][j] = (j+1)*256^i*B
static const ge_precomp k25519Precomp[32][8] = {
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1288382639258501, 245678601348599, 269427782077623,
1462984067271730, 137412439391563
#else
25967493, 19198397, 29566455, 3660896, 54414519, 4014786,
27544626, 21800161, 61029707, 2047604
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
62697248952638, 204681361388450, 631292143396476,
338455783676468, 1213667448819585
#else
54563134, 934261, 64385954, 3049989, 66381436, 9406985,
12720692, 5043384, 19500929, 18085054
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
301289933810280, 1259582250014073, 1422107436869536,
796239922652654, 1953934009299142
#else
58370664, 4489569, 9688441, 18769238, 10184608, 21191052,
29287918, 11864899, 42594502, 29115885
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1380971894829527, 790832306631236, 2067202295274102,
1995808275510000, 1566530869037010
#else
54292951, 20578084, 45527620, 11784319, 41753206, 30803714,
55390960, 29739860, 66750418, 23343128
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
463307831301544, 432984605774163, 1610641361907204,
750899048855000, 1894842303421586
#else
45405608, 6903824, 27185491, 6451973, 37531140, 24000426,
51492312, 11189267, 40279186, 28235350
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
748439484463711, 1033211726465151, 1396005112841647,
1611506220286469, 1972177495910992
#else
26966623, 11152617, 32442495, 15396054, 14353839, 20802097,
63980037, 24013313, 51636816, 29387734
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1601611775252272, 1720807796594148, 1132070835939856,
1260455018889551, 2147779492816911
#else
15636272, 23865875, 24204772, 25642034, 616976, 16869170,
27787599, 18782243, 28944399, 32004408
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
316559037616741, 2177824224946892, 1459442586438991,
1461528397712656, 751590696113597
#else
16568933, 4717097, 55552716, 32452109, 15682895, 21747389,
16354576, 21778470, 7689661, 11199574
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1850748884277385, 1200145853858453, 1068094770532492,
672251375690438, 1586055907191707
#else
30464137, 27578307, 55329429, 17883566, 23220364, 15915852,
7512774, 10017326, 49359771, 23634074
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
934282339813791, 1846903124198670, 1172395437954843,
1007037127761661, 1830588347719256
#else
50071967, 13921891, 10945806, 27521001, 27105051, 17470053,
38182653, 15006022, 3284568, 27277892
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1694390458783935, 1735906047636159, 705069562067493,
648033061693059, 696214010414170
#else
23599295, 25248385, 55915199, 25867015, 13236773, 10506355,
7464579, 9656445, 13059162, 10374397
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1121406372216585, 192876649532226, 190294192191717,
1994165897297032, 2245000007398739
#else
7798537, 16710257, 3033922, 2874086, 28997861, 2835604,
32406664, 29715387, 66467155, 33453106
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
769950342298419, 132954430919746, 844085933195555,
974092374476333, 726076285546016
#else
10861363, 11473154, 27284546, 1981175, 37044515, 12577860,
32867885, 14515107, 51670560, 10819379
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
425251763115706, 608463272472562, 442562545713235,
837766094556764, 374555092627893
#else
4708026, 6336745, 20377586, 9066809, 55836755, 6594695,
41455196, 12483687, 54440373, 5581305
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1086255230780037, 274979815921559, 1960002765731872,
929474102396301, 1190409889297339
#else
19563141, 16186464, 37722007, 4097518, 10237984, 29206317,
28542349, 13850243, 43430843, 17738489
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1388594989461809, 316767091099457, 394298842192982,
1230079486801005, 1440737038838979
#else
51736881, 20691677, 32573249, 4720197, 40672342, 5875510,
47920237, 18329612, 57289923, 21468654
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
7380825640100, 146210432690483, 304903576448906,
1198869323871120, 997689833219095
#else
58559652, 109982, 15149363, 2178705, 22900618, 4543417, 3044240,
17864545, 1762327, 14866737
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1181317918772081, 114573476638901, 262805072233344,
265712217171332, 294181933805782
#else
48909169, 17603008, 56635573, 1707277, 49922944, 3916100,
38872452, 3959420, 27914454, 4383652
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
665000864555967, 2065379846933859, 370231110385876,
350988370788628, 1233371373142985
#else
5153727, 9909285, 1723747, 30776558, 30523604, 5516873,
19480852, 5230134, 43156425, 18378665
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2019367628972465, 676711900706637, 110710997811333,
1108646842542025, 517791959672113
#else
36839857, 30090922, 7665485, 10083793, 28475525, 1649722,
20654025, 16520125, 30598449, 7715701
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
965130719900578, 247011430587952, 526356006571389,
91986625355052, 2157223321444601
#else
28881826, 14381568, 9657904, 3680757, 46927229, 7843315,
35708204, 1370707, 29794553, 32145132
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2068619540119183, 1966274918058806, 957728544705549,
729906502578991, 159834893065166
#else
14499471, 30824833, 33917750, 29299779, 28494861, 14271267,
30290735, 10876454, 33954766, 2381725
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2073601412052185, 31021124762708, 264500969797082,
248034690651703, 1030252227928288
#else
59913433, 30899068, 52378708, 462250, 39384538, 3941371,
60872247, 3696004, 34808032, 15351954
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
551790716293402, 1989538725166328, 801169423371717,
2052451893578887, 678432056995012
#else
27431194, 8222322, 16448760, 29646437, 48401861, 11938354,
34147463, 30583916, 29551812, 10109425
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1368953770187805, 790347636712921, 437508475667162,
2142576377050580, 1932081720066286
#else
53451805, 20399000, 35825113, 11777097, 21447386, 6519384,
64730580, 31926875, 10092782, 28790261
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
953638594433374, 1092333936795051, 1419774766716690,
805677984380077, 859228993502513
#else
27939166, 14210322, 4677035, 16277044, 44144402, 21156292,
34600109, 12005537, 49298737, 12803509
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1200766035879111, 20142053207432, 1465634435977050,
1645256912097844, 295121984874596
#else
17228999, 17892808, 65875336, 300139, 65883994, 21839654,
30364212, 24516238, 18016356, 4397660
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1735718747031557, 1248237894295956, 1204753118328107,
976066523550493, 65943769534592
#else
56150021, 25864224, 4776340, 18600194, 27850027, 17952220,
40489757, 14544524, 49631360, 982638
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1060098822528990, 1586825862073490, 212301317240126,
1975302711403555, 666724059764335
#else
29253598, 15796703, 64244882, 23645547, 10057022, 3163536,
7332899, 29434304, 46061167, 9934962
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1091990273418756, 1572899409348578, 80968014455247,
306009358661350, 1520450739132526
#else
5793284, 16271923, 42977250, 23438027, 29188559, 1206517,
52360934, 4559894, 36984942, 22656481
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1480517209436112, 1511153322193952, 1244343858991172,
304788150493241, 369136856496443
#else
39464912, 22061425, 16282656, 22517939, 28414020, 18542168,
24191033, 4541697, 53770555, 5500567
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2151330273626164, 762045184746182, 1688074332551515,
823046109005759, 907602769079491
#else
12650548, 32057319, 9052870, 11355358, 49428827, 25154267,
49678271, 12264342, 10874051, 13524335
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2047386910586836, 168470092900250, 1552838872594810,
340951180073789, 360819374702533
#else
25556948, 30508442, 714650, 2510400, 23394682, 23139102,
33119037, 5080568, 44580805, 5376627
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1982622644432056, 2014393600336956, 128909208804214,
1617792623929191, 105294281913815
#else
41020600, 29543379, 50095164, 30016803, 60382070, 1920896,
44787559, 24106988, 4535767, 1569007
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
980234343912898, 1712256739246056, 588935272190264,
204298813091998, 841798321043288
#else
64853442, 14606629, 45416424, 25514613, 28430648, 8775819,
36614302, 3044289, 31848280, 12543772
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
197561292938973, 454817274782871, 1963754960082318,
2113372252160468, 971377527342673
#else
45080285, 2943892, 35251351, 6777305, 13784462, 29262229,
39731668, 31491700, 7718481, 14474653
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
164699448829328, 3127451757672, 1199504971548753,
1766155447043652, 1899238924683527
#else
2385296, 2454213, 44477544, 46602, 62670929, 17874016, 656964,
26317767, 24316167, 28300865
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
732262946680281, 1674412764227063, 2182456405662809,
1350894754474250, 558458873295247
#else
13741529, 10911568, 33875447, 24950694, 46931033, 32521134,
33040650, 20129900, 46379407, 8321685
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2103305098582922, 1960809151316468, 715134605001343,
1454892949167181, 40827143824949
#else
21060490, 31341688, 15712756, 29218333, 1639039, 10656336,
23845965, 21679594, 57124405, 608371
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1239289043050212, 1744654158124578, 758702410031698,
1796762995074688, 1603056663766
#else
53436132, 18466845, 56219170, 25997372, 61071954, 11305546,
1123968, 26773855, 27229398, 23887
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2232056027107988, 987343914584615, 2115594492994461,
1819598072792159, 1119305654014850
#else
43864724, 33260226, 55364135, 14712570, 37643165, 31524814,
12797023, 27114124, 65475458, 16678953
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
320153677847348, 939613871605645, 641883205761567,
1930009789398224, 329165806634126
#else
37608244, 4770661, 51054477, 14001337, 7830047, 9564805,
65600720, 28759386, 49939598, 4904952
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
980930490474130, 1242488692177893, 1251446316964684,
1086618677993530, 1961430968465772
#else
24059538, 14617003, 19037157, 18514524, 19766092, 18648003,
5169210, 16191880, 2128236, 29227599
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
276821765317453, 1536835591188030, 1305212741412361,
61473904210175, 2051377036983058
#else
50127693, 4124965, 58568254, 22900634, 30336521, 19449185,
37302527, 916032, 60226322, 30567899
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
833449923882501, 1750270368490475, 1123347002068295,
185477424765687, 278090826653186
#else
44477957, 12419371, 59974635, 26081060, 50629959, 16739174,
285431, 2763829, 15736322, 4143876
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
794524995833413, 1849907304548286, 53348672473145,
1272368559505217, 1147304168324779
#else
2379333, 11839345, 62998462, 27565766, 11274297, 794957, 212801,
18959769, 23527083, 17096164
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1504846112759364, 1203096289004681, 562139421471418,
274333017451844, 1284344053775441
#else
33431108, 22423954, 49269897, 17927531, 8909498, 8376530,
34483524, 4087880, 51919953, 19138217
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
483048732424432, 2116063063343382, 30120189902313,
292451576741007, 1156379271702225
#else
1767664, 7197987, 53903638, 31531796, 54017513, 448825, 5799055,
4357868, 62334673, 17231393
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
928372153029038, 2147692869914564, 1455665844462196,
1986737809425946, 185207050258089
#else
6721966, 13833823, 43585476, 32003117, 26354292, 21691111,
23365146, 29604700, 7390889, 2759800
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
137732961814206, 706670923917341, 1387038086865771,
1965643813686352, 1384777115696347
#else
4409022, 2052381, 23373853, 10530217, 7676779, 20668478,
21302352, 29290375, 1244379, 20634787
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
481144981981577, 2053319313589856, 2065402289827512,
617954271490316, 1106602634668125
#else
62687625, 7169618, 4982368, 30596842, 30256824, 30776892,
14086412, 9208236, 15886429, 16489664
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
696298019648792, 893299659040895, 1148636718636009,
26734077349617, 2203955659340681
#else
1996056, 10375649, 14346367, 13311202, 60234729, 17116020,
53415665, 398368, 36502409, 32841498
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
657390353372855, 998499966885562, 991893336905797,
810470207106761, 343139804608786
#else
41801399, 9795879, 64331450, 14878808, 33577029, 14780362,
13348553, 12076947, 36272402, 5113181
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
791736669492960, 934767652997115, 824656780392914,
1759463253018643, 361530362383518
#else
49338080, 11797795, 31950843, 13929123, 41220562, 12288343,
36767763, 26218045, 13847710, 5387222
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2022541353055597, 2094700262587466, 1551008075025686,
242785517418164, 695985404963562
#else
48526701, 30138214, 17824842, 31213466, 22744342, 23111821,
8763060, 3617786, 47508202, 10370990
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1287487199965223, 2215311941380308, 1552928390931986,
1664859529680196, 1125004975265243
#else
20246567, 19185054, 22358228, 33010720, 18507282, 23140436,
14554436, 24808340, 32232923, 16763880
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
677434665154918, 989582503122485, 1817429540898386,
1052904935475344, 1143826298169798
#else
9648486, 10094563, 26416693, 14745928, 36734546, 27081810,
11094160, 15689506, 3140038, 17044340
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
367266328308408, 318431188922404, 695629353755355,
634085657580832, 24581612564426
#else
50948792, 5472694, 31895588, 4744994, 8823515, 10365685,
39884064, 9448612, 38334410, 366294
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
773360688841258, 1815381330538070, 363773437667376,
539629987070205, 783280434248437
#else
19153450, 11523972, 56012374, 27051289, 42461232, 5420646,
28344573, 8041113, 719605, 11671788
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
180820816194166, 168937968377394, 748416242794470,
1227281252254508, 1567587861004268
#else
8678006, 2694440, 60300850, 2517371, 4964326, 11152271,
51675948, 18287915, 27000812, 23358879
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
478775558583645, 2062896624554807, 699391259285399,
358099408427873, 1277310261461761
#else
51950941, 7134311, 8639287, 30739555, 59873175, 10421741,
564065, 5336097, 6750977, 19033406
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1984740906540026, 1079164179400229, 1056021349262661,
1659958556483663, 1088529069025527
#else
11836410, 29574944, 26297893, 16080799, 23455045, 15735944,
1695823, 24735310, 8169719, 16220347
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
580736401511151, 1842931091388998, 1177201471228238,
2075460256527244, 1301133425678027
#else
48993007, 8653646, 17578566, 27461813, 59083086, 17541668,
55964556, 30926767, 61118155, 19388398
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1515728832059182, 1575261009617579, 1510246567196186,
191078022609704, 116661716289141
#else
43800366, 22586119, 15213227, 23473218, 36255258, 22504427,
27884328, 2847284, 2655861, 1738395
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1295295738269652, 1714742313707026, 545583042462581,
2034411676262552, 1513248090013606
#else
39571412, 19301410, 41772562, 25551651, 57738101, 8129820,
21651608, 30315096, 48021414, 22549153
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
230710545179830, 30821514358353, 760704303452229,
390668103790604, 573437871383156
#else
1533110, 3437855, 23735889, 459276, 29970501, 11335377,
26030092, 5821408, 10478196, 8544890
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1169380107545646, 263167233745614, 2022901299054448,
819900753251120, 2023898464874585
#else
32173102, 17425121, 24896206, 3921497, 22579056, 30143578,
19270448, 12217473, 17789017, 30158437
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2102254323485823, 1570832666216754, 34696906544624,
1993213739807337, 70638552271463
#else
36555903, 31326030, 51530034, 23407230, 13243888, 517024,
15479401, 29701199, 30460519, 1052596
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
894132856735058, 548675863558441, 845349339503395,
1942269668326667, 1615682209874691
#else
55493970, 13323617, 32618793, 8175907, 51878691, 12596686,
27491595, 28942073, 3179267, 24075541
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1287670217537834, 1222355136884920, 1846481788678694,
1150426571265110, 1613523400722047
#else
31947050, 19187781, 62468280, 18214510, 51982886, 27514722,
52352086, 17142691, 19072639, 24043372
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
793388516527298, 1315457083650035, 1972286999342417,
1901825953052455, 338269477222410
#else
11685058, 11822410, 3158003, 19601838, 33402193, 29389366,
5977895, 28339415, 473098, 5040608
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
550201530671806, 778605267108140, 2063911101902983,
115500557286349, 2041641272971022
#else
46817982, 8198641, 39698732, 11602122, 1290375, 30754672,
28326861, 1721092, 47550222, 30422825
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
717255318455100, 519313764361315, 2080406977303708,
541981206705521, 774328150311600
#else
7881532, 10687937, 7578723, 7738378, 48157852, 31000479,
21820785, 8076149, 39240368, 11538388
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
261715221532238, 1795354330069993, 1496878026850283,
499739720521052, 389031152673770
#else
47173198, 3899860, 18283497, 26752864, 51380203, 22305220,
8754524, 7446702, 61432810, 5797015
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1997217696294013, 1717306351628065, 1684313917746180,
1644426076011410, 1857378133465451
#else
55813245, 29760862, 51326753, 25589858, 12708868, 25098233,
2014098, 24503858, 64739691, 27677090
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1475434724792648, 76931896285979, 1116729029771667,
2002544139318042, 725547833803938
#else
44636488, 21985690, 39426843, 1146374, 18956691, 16640559,
1192730, 29840233, 15123618, 10811505
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2022306639183567, 726296063571875, 315345054448644,
1058733329149221, 1448201136060677
#else
14352079, 30134717, 48166819, 10822654, 32750596, 4699007,
67038501, 15776355, 38222085, 21579878
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1710065158525665, 1895094923036397, 123988286168546,
1145519900776355, 1607510767693874
#else
38867681, 25481956, 62129901, 28239114, 29416930, 1847569,
46454691, 17069576, 4714546, 23953777
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
561605375422540, 1071733543815037, 131496498800990,
1946868434569999, 828138133964203
#else
15200332, 8368572, 19679101, 15970074, 35236190, 1959450,
24611599, 29010600, 55362987, 12340219
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1548495173745801, 442310529226540, 998072547000384,
553054358385281, 644824326376171
#else
12876937, 23074376, 33134380, 6590940, 60801088, 14872439,
9613953, 8241152, 15370987, 9608631
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1445526537029440, 2225519789662536, 914628859347385,
1064754194555068, 1660295614401091
#else
62965568, 21540023, 8446280, 33162829, 4407737, 13629032,
59383996, 15866073, 38898243, 24740332
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1199690223111956, 24028135822341, 66638289244341,
57626156285975, 565093967979607
#else
26660628, 17876777, 8393733, 358047, 59707573, 992987, 43204631,
858696, 20571223, 8420556
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
876926774220824, 554618976488214, 1012056309841565,
839961821554611, 1414499340307677
#else
14620696, 13067227, 51661590, 8264466, 14106269, 15080814,
33531827, 12516406, 45534429, 21077682
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
703047626104145, 1266841406201770, 165556500219173,
486991595001879, 1011325891650656
#else
236881, 10476226, 57258, 18877408, 6472997, 2466984, 17258519,
7256740, 8791136, 15069930
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1622861044480487, 1156394801573634, 1869132565415504,
327103985777730, 2095342781472284
#else
1276391, 24182514, 22949634, 17231625, 43615824, 27852245,
14711874, 4874229, 36445724, 31223040
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
334886927423922, 489511099221528, 129160865966726,
1720809113143481, 619700195649254
#else
5855666, 4990204, 53397016, 7294283, 59304582, 1924646,
65685689, 25642053, 34039526, 9234252
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1646545795166119, 1758370782583567, 714746174550637,
1472693650165135, 898994790308209
#else
20590503, 24535444, 31529743, 26201766, 64402029, 10650547,
31559055, 21944845, 18979185, 13396066
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
333403773039279, 295772542452938, 1693106465353610,
912330357530760, 471235657950362
#else
24474287, 4968103, 22267082, 4407354, 24063882, 25229252,
48291976, 13594781, 33514650, 7021958
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1811196219982022, 1068969825533602, 289602974833439,
1988956043611592, 863562343398367
#else
55541958, 26988926, 45743778, 15928891, 40950559, 4315420,
41160136, 29637754, 45628383, 12868081
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
906282429780072, 2108672665779781, 432396390473936,
150625823801893, 1708930497638539
#else
38473832, 13504660, 19988037, 31421671, 21078224, 6443208,
45662757, 2244499, 54653067, 25465048
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
925664675702328, 21416848568684, 1831436641861340,
601157008940113, 371818055044496
#else
36513336, 13793478, 61256044, 319135, 41385692, 27290532,
33086545, 8957937, 51875216, 5540520
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1479786007267725, 1738881859066675, 68646196476567,
2146507056100328, 1247662817535471
#else
55478669, 22050529, 58989363, 25911358, 2620055, 1022908,
43398120, 31985447, 50980335, 18591624
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
52035296774456, 939969390708103, 312023458773250,
59873523517659, 1231345905848899
#else
23152952, 775386, 27395463, 14006635, 57407746, 4649511,
1689819, 892185, 55595587, 18348483
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
643355106415761, 290186807495774, 2013561737429023,
319648069511546, 393736678496162
#else
9770129, 9586738, 26496094, 4324120, 1556511, 30004408,
27453818, 4763127, 47929250, 5867133
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
129358342392716, 1932811617704777, 1176749390799681,
398040349861790, 1170779668090425
#else
34343820, 1927589, 31726409, 28801137, 23962433, 17534932,
27846558, 5931263, 37359161, 17445976
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2051980782668029, 121859921510665, 2048329875753063,
1235229850149665, 519062146124755
#else
27461885, 30576896, 22380809, 1815854, 44075111, 30522493,
7283489, 18406359, 47582163, 7734628
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1608170971973096, 415809060360428, 1350468408164766,
2038620059057678, 1026904485989112
#else
59098600, 23963614, 55988460, 6196037, 29344158, 20123547,
7585294, 30377806, 18549496, 15302069
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1837656083115103, 1510134048812070, 906263674192061,
1821064197805734, 565375124676301
#else
34450527, 27383209, 59436070, 22502750, 6258877, 13504381,
10458790, 27135971, 58236621, 8424745
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
578027192365650, 2034800251375322, 2128954087207123,
478816193810521, 2196171989962750
#else
24687186, 8613276, 36441818, 30320886, 1863891, 31723888,
19206233, 7134917, 55824382, 32725512
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1633188840273139, 852787172373708, 1548762607215796,
1266275218902681, 1107218203325133
#else
11334899, 24336410, 8025292, 12707519, 17523892, 23078361,
10243737, 18868971, 62042829, 16498836
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
462189358480054, 1784816734159228, 1611334301651368,
1303938263943540, 707589560319424
#else
8911542, 6887158, 57524604, 26595841, 11145640, 24010752,
17303924, 19430194, 6536640, 10543906
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1038829280972848, 38176604650029, 753193246598573,
1136076426528122, 595709990562434
#else
38162480, 15479762, 49642029, 568875, 65611181, 11223453,
64439674, 16928857, 39873154, 8876770
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1408451820859834, 2194984964010833, 2198361797561729,
1061962440055713, 1645147963442934
#else
41365946, 20987567, 51458897, 32707824, 34082177, 32758143,
33627041, 15824473, 66504438, 24514614
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
4701053362120, 1647641066302348, 1047553002242085,
1923635013395977, 206970314902065
#else
10330056, 70051, 7957388, 24551765, 9764901, 15609756, 27698697,
28664395, 1657393, 3084098
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1750479161778571, 1362553355169293, 1891721260220598,
966109370862782, 1024913988299801
#else
10477963, 26084172, 12119565, 20303627, 29016246, 28188843,
31280318, 14396151, 36875289, 15272408
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
212699049131723, 1117950018299775, 1873945661751056,
1403802921984058, 130896082652698
#else
54820555, 3169462, 28813183, 16658753, 25116432, 27923966,
41934906, 20918293, 42094106, 1950503
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
636808533673210, 1262201711667560, 390951380330599,
1663420692697294, 561951321757406
#else
40928506, 9489186, 11053416, 18808271, 36055143, 5825629,
58724558, 24786899, 15341278, 8373727
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
520731594438141, 1446301499955692, 273753264629267,
1565101517999256, 1019411827004672
#else
28685821, 7759505, 52730348, 21551571, 35137043, 4079241,
298136, 23321830, 64230656, 15190419
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
926527492029409, 1191853477411379, 734233225181171,
184038887541270, 1790426146325343
#else
34175969, 13806335, 52771379, 17760000, 43104243, 10940927,
8669718, 2742393, 41075551, 26679428
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1464651961852572, 1483737295721717, 1519450561335517,
1161429831763785, 405914998179977
#else
65528476, 21825014, 41129205, 22109408, 49696989, 22641577,
9291593, 17306653, 54954121, 6048604
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
996126634382301, 796204125879525, 127517800546509,
344155944689303, 615279846169038
#else
36803549, 14843443, 1539301, 11864366, 20201677, 1900163,
13934231, 5128323, 11213262, 9168384
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
738724080975276, 2188666632415296, 1961313708559162,
1506545807547587, 1151301638969740
#else
40828332, 11007846, 19408960, 32613674, 48515898, 29225851,
62020803, 22449281, 20470156, 17155731
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
622917337413835, 1218989177089035, 1284857712846592,
970502061709359, 351025208117090
#else
43972811, 9282191, 14855179, 18164354, 59746048, 19145871,
44324911, 14461607, 14042978, 5230683
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2067814584765580, 1677855129927492, 2086109782475197,
235286517313238, 1416314046739645
#else
29969548, 30812838, 50396996, 25001989, 9175485, 31085458,
21556950, 3506042, 61174973, 21104723
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
586844262630358, 307444381952195, 458399356043426,
602068024507062, 1028548203415243
#else
63964118, 8744660, 19704003, 4581278, 46678178, 6830682,
45824694, 8971512, 38569675, 15326562
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
678489922928203, 2016657584724032, 90977383049628,
1026831907234582, 615271492942522
#else
47644235, 10110287, 49846336, 30050539, 43608476, 1355668,
51585814, 15300987, 46594746, 9168259
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
301225714012278, 1094837270268560, 1202288391010439,
644352775178361, 1647055902137983
#else
61755510, 4488612, 43305616, 16314346, 7780487, 17915493,
38160505, 9601604, 33087103, 24543045
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1210746697896478, 1416608304244708, 686487477217856,
1245131191434135, 1051238336855737
#else
47665694, 18041531, 46311396, 21109108, 37284416, 10229460,
39664535, 18553900, 61111993, 15664671
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1135604073198207, 1683322080485474, 769147804376683,
2086688130589414, 900445683120379
#else
23294591, 16921819, 44458082, 25083453, 27844203, 11461195,
13099750, 31094076, 18151675, 13417686
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1971518477615628, 401909519527336, 448627091057375,
1409486868273821, 1214789035034363
#else
42385932, 29377914, 35958184, 5988918, 40250079, 6685064,
1661597, 21002991, 15271675, 18101767
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1364039144731711, 1897497433586190, 2203097701135459,
145461396811251, 1349844460790699
#else
11433023, 20325767, 8239630, 28274915, 65123427, 32828713,
48410099, 2167543, 60187563, 20114249
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1045230323257973, 818206601145807, 630513189076103,
1672046528998132, 807204017562437
#else
35672693, 15575145, 30436815, 12192228, 44645511, 9395378,
57191156, 24915434, 12215109, 12028277
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
439961968385997, 386362664488986, 1382706320807688,
309894000125359, 2207801346498567
#else
14098381, 6555944, 23007258, 5757252, 51681032, 20603929,
30123439, 4617780, 50208775, 32898803
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1229004686397588, 920643968530863, 123975893911178,
681423993215777, 1400559197080973
#else
63082644, 18313596, 11893167, 13718664, 52299402, 1847384,
51288865, 10154008, 23973261, 20869958
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2003766096898049, 170074059235165, 1141124258967971,
1485419893480973, 1573762821028725
#else
40577025, 29858441, 65199965, 2534300, 35238307, 17004076,
18341389, 22134481, 32013173, 23450893
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
729905708611432, 1270323270673202, 123353058984288,
426460209632942, 2195574535456672
#else
41629544, 10876442, 55337778, 18929291, 54739296, 1838103,
21911214, 6354752, 4425632, 32716610
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1271140255321235, 2044363183174497, 52125387634689,
1445120246694705, 942541986339084
#else
56675475, 18941465, 22229857, 30463385, 53917697, 776728,
49693489, 21533969, 4725004, 14044970
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1761608437466135, 583360847526804, 1586706389685493,
2157056599579261, 1170692369685772
#else
19268631, 26250011, 1555348, 8692754, 45634805, 23643767,
6347389, 32142648, 47586572, 17444675
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
871476219910823, 1878769545097794, 2241832391238412,
548957640601001, 690047440233174
#else
42244775, 12986007, 56209986, 27995847, 55796492, 33405905,
19541417, 8180106, 9282262, 10282508
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
297194732135507, 1366347803776820, 1301185512245601,
561849853336294, 1533554921345731
#else
40903763, 4428546, 58447668, 20360168, 4098401, 19389175,
15522534, 8372215, 5542595, 22851749
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
999628998628371, 1132836708493400, 2084741674517453,
469343353015612, 678782988708035
#else
56546323, 14895632, 26814552, 16880582, 49628109, 31065071,
64326972, 6993760, 49014979, 10114654
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2189427607417022, 699801937082607, 412764402319267,
1478091893643349, 2244675696854460
#else
47001790, 32625013, 31422703, 10427861, 59998115, 6150668,
38017109, 22025285, 25953724, 33448274
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1712292055966563, 204413590624874, 1405738637332841,
408981300829763, 861082219276721
#else
62874467, 25515139, 57989738, 3045999, 2101609, 20947138,
19390019, 6094296, 63793585, 12831124
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
508561155940631, 966928475686665, 2236717801150132,
424543858577297, 2089272956986143
#else
51110167, 7578151, 5310217, 14408357, 33560244, 33329692,
31575953, 6326196, 7381791, 31132593
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
221245220129925, 1156020201681217, 491145634799213,
542422431960839, 828100817819207
#else
46206085, 3296810, 24736065, 17226043, 18374253, 7318640,
6295303, 8082724, 51746375, 12339663
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
153756971240384, 1299874139923977, 393099165260502,
1058234455773022, 996989038681183
#else
27724736, 2291157, 6088201, 19369634, 1792726, 5857634,
13848414, 15768922, 25091167, 14856294
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
559086812798481, 573177704212711, 1629737083816402,
1399819713462595, 1646954378266038
#else
48242193, 8331042, 24373479, 8541013, 66406866, 24284974,
12927299, 20858939, 44926390, 24541532
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1887963056288059, 228507035730124, 1468368348640282,
930557653420194, 613513962454686
#else
55685435, 28132841, 11632844, 3405020, 30536730, 21880393,
39848098, 13866389, 30146206, 9142070
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1224529808187553, 1577022856702685, 2206946542980843,
625883007765001, 279930793512158
#else
3924129, 18246916, 53291741, 23499471, 12291819, 32886066,
39406089, 9326383, 58871006, 4171293
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1076287717051609, 1114455570543035, 187297059715481,
250446884292121, 1885187512550540
#else
51186905, 16037936, 6713787, 16606682, 45496729, 2790943,
26396185, 3731949, 345228, 28091483
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
902497362940219, 76749815795675, 1657927525633846,
1420238379745202, 1340321636548352
#else
45781307, 13448258, 25284571, 1143661, 20614966, 24705045,
2031538, 21163201, 50855680, 19972348
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1129576631190784, 1281994010027327, 996844254743018,
257876363489249, 1150850742055018
#else
31016192, 16832003, 26371391, 19103199, 62081514, 14854136,
17477601, 3842657, 28012650, 17149012
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
628740660038789, 1943038498527841, 467786347793886,
1093341428303375, 235413859513003
#else
62033029, 9368965, 58546785, 28953529, 51858910, 6970559,
57918991, 16292056, 58241707, 3507939
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
237425418909360, 469614029179605, 1512389769174935,
1241726368345357, 441602891065214
#else
29439664, 3537914, 23333589, 6997794, 49553303, 22536363,
51899661, 18503164, 57943934, 6580395
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1736417953058555, 726531315520508, 1833335034432527,
1629442561574747, 624418919286085
#else
54923003, 25874643, 16438268, 10826160, 58412047, 27318820,
17860443, 24280586, 65013061, 9304566
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1960754663920689, 497040957888962, 1909832851283095,
1271432136996826, 2219780368020940
#else
20714545, 29217521, 29088194, 7406487, 11426967, 28458727,
14792666, 18945815, 5289420, 33077305
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1537037379417136, 1358865369268262, 2130838645654099,
828733687040705, 1999987652890901
#else
50443312, 22903641, 60948518, 20248671, 9192019, 31751970,
17271489, 12349094, 26939669, 29802138
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
629042105241814, 1098854999137608, 887281544569320,
1423102019874777, 7911258951561
#else
54218966, 9373457, 31595848, 16374215, 21471720, 13221525,
39825369, 21205872, 63410057, 117886
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1811562332665373, 1501882019007673, 2213763501088999,
359573079719636, 36370565049116
#else
22263325, 26994382, 3984569, 22379786, 51994855, 32987646,
28311252, 5358056, 43789084, 541963
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
218907117361280, 1209298913016966, 1944312619096112,
1130690631451061, 1342327389191701
#else
16259200, 3261970, 2309254, 18019958, 50223152, 28972515,
24134069, 16848603, 53771797, 20002236
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1369976867854704, 1396479602419169, 1765656654398856,
2203659200586299, 998327836117241
#else
9378160, 20414246, 44262881, 20809167, 28198280, 26310334,
64709179, 32837080, 690425, 14876244
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2230701885562825, 1348173180338974, 2172856128624598,
1426538746123771, 444193481326151
#else
24977353, 33240048, 58884894, 20089345, 28432342, 32378079,
54040059, 21257083, 44727879, 6618998
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
784210426627951, 918204562375674, 1284546780452985,
1324534636134684, 1872449409642708
#else
65570671, 11685645, 12944378, 13682314, 42719353, 19141238,
8044828, 19737104, 32239828, 27901670
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
319638829540294, 596282656808406, 2037902696412608,
1557219121643918, 341938082688094
#else
48505798, 4762989, 66182614, 8885303, 38696384, 30367116,
9781646, 23204373, 32779358, 5095274
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1901860206695915, 2004489122065736, 1625847061568236,
973529743399879, 2075287685312905
#else
34100715, 28339925, 34843976, 29869215, 9460460, 24227009,
42507207, 14506723, 21639561, 30924196
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1371853944110545, 1042332820512553, 1949855697918254,
1791195775521505, 37487364849293
#else
50707921, 20442216, 25239337, 15531969, 3987758, 29055114,
65819361, 26690896, 17874573, 558605
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
687200189577855, 1082536651125675, 644224940871546,
340923196057951, 343581346747396
#else
53508735, 10240080, 9171883, 16131053, 46239610, 9599699,
33499487, 5080151, 2085892, 5119761
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2082717129583892, 27829425539422, 145655066671970,
1690527209845512, 1865260509673478
#else
44903700, 31034903, 50727262, 414690, 42089314, 2170429,
30634760, 25190818, 35108870, 27794547
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1059729620568824, 2163709103470266, 1440302280256872,
1769143160546397, 869830310425069
#else
60263160, 15791201, 8550074, 32241778, 29928808, 21462176,
27534429, 26362287, 44757485, 12961481
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1609516219779025, 777277757338817, 2101121130363987,
550762194946473, 1905542338659364
#else
42616785, 23983660, 10368193, 11582341, 43711571, 31309144,
16533929, 8206996, 36914212, 28394793
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2024821921041576, 426948675450149, 595133284085473,
471860860885970, 600321679413000
#else
55987368, 30172197, 2307365, 6362031, 66973409, 8868176,
50273234, 7031274, 7589640, 8945490
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
598474602406721, 1468128276358244, 1191923149557635,
1501376424093216, 1281662691293476
#else
34956097, 8917966, 6661220, 21876816, 65916803, 17761038,
7251488, 22372252, 24099108, 19098262
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1721138489890707, 1264336102277790, 433064545421287,
1359988423149466, 1561871293409447
#else
5019539, 25646962, 4244126, 18840076, 40175591, 6453164,
47990682, 20265406, 60876967, 23273695
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
719520245587143, 393380711632345, 132350400863381,
1543271270810729, 1819543295798660
#else
10853575, 10721687, 26480089, 5861829, 44113045, 1972174,
65242217, 22996533, 63745412, 27113307
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
396397949784152, 1811354474471839, 1362679985304303,
2117033964846756, 498041172552279
#else
50106456, 5906789, 221599, 26991285, 7828207, 20305514,
24362660, 31546264, 53242455, 7421391
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1812471844975748, 1856491995543149, 126579494584102,
1036244859282620, 1975108050082550
#else
8139908, 27007935, 32257645, 27663886, 30375718, 1886181,
45933756, 15441251, 28826358, 29431403
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
650623932407995, 1137551288410575, 2125223403615539,
1725658013221271, 2134892965117796
#else
6267067, 9695052, 7709135, 16950835, 34239795, 31668296,
14795159, 25714308, 13746020, 31812384
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
522584000310195, 1241762481390450, 1743702789495384,
2227404127826575, 1686746002148897
#else
28584883, 7787108, 60375922, 18503702, 22846040, 25983196,
63926927, 33190907, 4771361, 25134474
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
427904865186312, 1703211129693455, 1585368107547509,
1436984488744336, 761188534613978
#else
24949256, 6376279, 39642383, 25379823, 48462709, 23623825,
33543568, 21412737, 3569626, 11342593
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
318101947455002, 248138407995851, 1481904195303927,
309278454311197, 1258516760217879
#else
26514970, 4740088, 27912651, 3697550, 19331575, 22082093,
6809885, 4608608, 7325975, 18753361
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1275068538599310, 513726919533379, 349926553492294,
688428871968420, 1702400196000666
#else
55490446, 19000001, 42787651, 7655127, 65739590, 5214311,
39708324, 10258389, 49462170, 25367739
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1061864036265233, 961611260325381, 321859632700838,
1045600629959517, 1985130202504038
#else
11431185, 15823007, 26570245, 14329124, 18029990, 4796082,
35662685, 15580663, 9280358, 29580745
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1558816436882417, 1962896332636523, 1337709822062152,
1501413830776938, 294436165831932
#else
66948081, 23228174, 44253547, 29249434, 46247496, 19933429,
34297962, 22372809, 51563772, 4387440
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
818359826554971, 1862173000996177, 626821592884859,
573655738872376, 1749691246745455
#else
46309467, 12194511, 3937617, 27748540, 39954043, 9340369,
42594872, 8548136, 20617071, 26072431
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1988022651432119, 1082111498586040, 1834020786104821,
1454826876423687, 692929915223122
#else
66170039, 29623845, 58394552, 16124717, 24603125, 27329039,
53333511, 21678609, 24345682, 10325460
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2146513703733331, 584788900394667, 464965657279958,
2183973639356127, 238371159456790
#else
47253587, 31985546, 44906155, 8714033, 14007766, 6928528,
16318175, 32543743, 4766742, 3552007
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1129007025494441, 2197883144413266, 265142755578169,
971864464758890, 1983715884903702
#else
45357481, 16823515, 1351762, 32751011, 63099193, 3950934,
3217514, 14481909, 10988822, 29559670
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1291366624493075, 381456718189114, 1711482489312444,
1815233647702022, 892279782992467
#else
15564307, 19242862, 3101242, 5684148, 30446780, 25503076,
12677126, 27049089, 58813011, 13296004
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
444548969917454, 1452286453853356, 2113731441506810,
645188273895859, 810317625309512
#else
57666574, 6624295, 36809900, 21640754, 62437882, 31497052,
31521203, 9614054, 37108040, 12074673
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2242724082797924, 1373354730327868, 1006520110883049,
2147330369940688, 1151816104883620
#else
4771172, 33419193, 14290748, 20464580, 27992297, 14998318,
65694928, 31997715, 29832612, 17163397
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1745720200383796, 1911723143175317, 2056329390702074,
355227174309849, 879232794371100
#else
7064884, 26013258, 47946901, 28486894, 48217594, 30641695,
25825241, 5293297, 39986204, 13101589
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
163723479936298, 115424889803150, 1156016391581227,
1894942220753364, 1970549419986329
#else
64810282, 2439669, 59642254, 1719964, 39841323, 17225986,
32512468, 28236839, 36752793, 29363474
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
681981452362484, 267208874112496, 1374683991933094,
638600984916117, 646178654558546
#else
37102324, 10162315, 33928688, 3981722, 50626726, 20484387,
14413973, 9515896, 19568978, 9628812
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
13378654854251, 106237307029567, 1944412051589651,
1841976767925457, 230702819835573
#else
33053803, 199357, 15894591, 1583059, 27380243, 28973997,
49269969, 27447592, 60817077, 3437739
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
260683893467075, 854060306077237, 913639551980112,
4704576840123, 280254810808712
#else
48129987, 3884492, 19469877, 12726490, 15913552, 13614290,
44147131, 70103, 7463304, 4176122
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
715374893080287, 1173334812210491, 1806524662079626,
1894596008000979, 398905715033393
#else
39984863, 10659916, 11482427, 17484051, 12771466, 26919315,
34389459, 28231680, 24216881, 5944158
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
500026409727661, 1596431288195371, 1420380351989370,
985211561521489, 392444930785633
#else
8894125, 7450974, 64444715, 23788679, 39028346, 21165316,
19345745, 14680796, 11632993, 5847885
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2096421546958141, 1922523000950363, 789831022876840,
427295144688779, 320923973161730
#else
26942781, 31239115, 9129563, 28647825, 26024104, 11769399,
55590027, 6367193, 57381634, 4782139
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1927770723575450, 1485792977512719, 1850996108474547,
551696031508956, 2126047405475647
#else
19916442, 28726022, 44198159, 22140040, 25606323, 27581991,
33253852, 8220911, 6358847, 31680575
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2112099158080148, 742570803909715, 6484558077432,
1951119898618916, 93090382703416
#else
801428, 31472730, 16569427, 11065167, 29875704, 96627, 7908388,
29073952, 53570360, 1387154
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
383905201636970, 859946997631870, 855623867637644,
1017125780577795, 794250831877809
#else
19646058, 5720633, 55692158, 12814208, 11607948, 12749789,
14147075, 15156355, 45242033, 11835259
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
77571826285752, 999304298101753, 487841111777762,
1038031143212339, 339066367948762
#else
19299512, 1155910, 28703737, 14890794, 2925026, 7269399,
26121523, 15467869, 40548314, 5052482
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
674994775520533, 266035846330789, 826951213393478,
1405007746162285, 1781791018620876
#else
64091413, 10058205, 1980837, 3964243, 22160966, 12322533,
60677741, 20936246, 12228556, 26550755
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1001412661522686, 348196197067298, 1666614366723946,
888424995032760, 580747687801357
#else
32944382, 14922211, 44263970, 5188527, 21913450, 24834489,
4001464, 13238564, 60994061, 8653814
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1939560076207777, 1409892634407635, 552574736069277,
383854338280405, 190706709864139
#else
22865569, 28901697, 27603667, 21009037, 14348957, 8234005,
24808405, 5719875, 28483275, 2841751
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2177087163428741, 1439255351721944, 1208070840382793,
2230616362004769, 1396886392021913
#else
50687877, 32441126, 66781144, 21446575, 21886281, 18001658,
65220897, 33238773, 19932057, 20815229
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
676962063230039, 1880275537148808, 2046721011602706,
888463247083003, 1318301552024067
#else
55452759, 10087520, 58243976, 28018288, 47830290, 30498519,
3999227, 13239134, 62331395, 19644223
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1466980508178206, 617045217998949, 652303580573628,
757303753529064, 207583137376902
#else
1382174, 21859713, 17266789, 9194690, 53784508, 9720080,
20403944, 11284705, 53095046, 3093229
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1511056752906902, 105403126891277, 493434892772846,
1091943425335976, 1802717338077427
#else
16650902, 22516500, 66044685, 1570628, 58779118, 7352752,
66806440, 16271224, 43059443, 26862581
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1853982405405128, 1878664056251147, 1528011020803992,
1019626468153565, 1128438412189035
#else
45197768, 27626490, 62497547, 27994275, 35364760, 22769138,
24123613, 15193618, 45456747, 16815042
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1963939888391106, 293456433791664, 697897559513649,
985882796904380, 796244541237972
#else
57172930, 29264984, 41829040, 4372841, 2087473, 10399484,
31870908, 14690798, 17361620, 11864968
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
416770998629779, 389655552427054, 1314476859406756,
1749382513022778, 1161905598739491
#else
55801235, 6210371, 13206574, 5806320, 38091172, 19587231,
54777658, 26067830, 41530403, 17313742
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1428358296490651, 1027115282420478, 304840698058337,
441410174026628, 1819358356278573
#else
14668443, 21284197, 26039038, 15305210, 25515617, 4542480,
10453892, 6577524, 9145645, 27110552
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
204943430200135, 1554861433819175, 216426658514651,
264149070665950, 2047097371738319
#else
5974855, 3053895, 57675815, 23169240, 35243739, 3225008,
59136222, 3936127, 61456591, 30504127
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1934415182909034, 1393285083565062, 516409331772960,
1157690734993892, 121039666594268
#else
30625386, 28825032, 41552902, 20761565, 46624288, 7695098,
17097188, 17250936, 39109084, 1803631
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
662035583584445, 286736105093098, 1131773000510616,
818494214211439, 472943792054479
#else
63555773, 9865098, 61880298, 4272700, 61435032, 16864731,
14911343, 12196514, 45703375, 7047411
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
665784778135882, 1893179629898606, 808313193813106,
276797254706413, 1563426179676396
#else
20093258, 9920966, 55970670, 28210574, 13161586, 12044805,
34252013, 4124600, 34765036, 23296865
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
945205108984232, 526277562959295, 1324180513733566,
1666970227868664, 153547609289173
#else
46320040, 14084653, 53577151, 7842146, 19119038, 19731827,
4752376, 24839792, 45429205, 2288037
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2031433403516252, 203996615228162, 170487168837083,
981513604791390, 843573964916831
#else
40289628, 30270716, 29965058, 3039786, 52635099, 2540456,
29457502, 14625692, 42289247, 12570231
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1476570093962618, 838514669399805, 1857930577281364,
2017007352225784, 317085545220047
#else
66045306, 22002608, 16920317, 12494842, 1278292, 27685323,
45948920, 30055751, 55134159, 4724942
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1461557121912842, 1600674043318359, 2157134900399597,
1670641601940616, 127765583803283
#else
17960970, 21778898, 62967895, 23851901, 58232301, 32143814,
54201480, 24894499, 37532563, 1903855
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1293543509393474, 2143624609202546, 1058361566797508,
214097127393994, 946888515472729
#else
23134274, 19275300, 56426866, 31942495, 20684484, 15770816,
54119114, 3190295, 26955097, 14109738
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
357067959932916, 1290876214345711, 521245575443703,
1494975468601005, 800942377643885
#else
15308788, 5320727, 36995055, 19235554, 22902007, 7767164,
29425325, 22276870, 31960941, 11934971
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
566116659100033, 820247422481740, 994464017954148,
327157611686365, 92591318111744
#else
39713153, 8435795, 4109644, 12222639, 42480996, 14818668,
20638173, 4875028, 10491392, 1379718
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
617256647603209, 1652107761099439, 1857213046645471,
1085597175214970, 817432759830522
#else
53949449, 9197840, 3875503, 24618324, 65725151, 27674630,
33518458, 16176658, 21432314, 12180697
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
771808161440705, 1323510426395069, 680497615846440,
851580615547985, 1320806384849017
#else
55321537, 11500837, 13787581, 19721842, 44678184, 10140204,
1465425, 12689540, 56807545, 19681548
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1219260086131915, 647169006596815, 79601124759706,
2161724213426748, 404861897060198
#else
5414091, 18168391, 46101199, 9643569, 12834970, 1186149,
64485948, 32212200, 26128230, 6032912
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1327968293887866, 1335500852943256, 1401587164534264,
558137311952440, 1551360549268902
#else
40771450, 19788269, 32496024, 19900513, 17847800, 20885276,
3604024, 8316894, 41233830, 23117073
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
417621685193956, 1429953819744454, 396157358457099,
1940470778873255, 214000046234152
#else
3296484, 6223048, 24680646, 21307972, 44056843, 5903204,
58246567, 28915267, 12376616, 3188849
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1268047918491973, 2172375426948536, 1533916099229249,
1761293575457130, 1590622667026765
#else
29190469, 18895386, 27549112, 32370916, 3520065, 22857131,
32049514, 26245319, 50999629, 23702124
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1627072914981959, 2211603081280073, 1912369601616504,
1191770436221309, 2187309757525860
#else
52364359, 24245275, 735817, 32955454, 46701176, 28496527,
25246077, 17758763, 18640740, 32593455
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1149147819689533, 378692712667677, 828475842424202,
2218619146419342, 70688125792186
#else
60180029, 17123636, 10361373, 5642961, 4910474, 12345252,
35470478, 33060001, 10530746, 1053335
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1299739417079761, 1438616663452759, 1536729078504412,
2053896748919838, 1008421032591246
#else
37842897, 19367626, 53570647, 21437058, 47651804, 22899047,
35646494, 30605446, 24018830, 15026644
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2040723824657366, 399555637875075, 632543375452995,
872649937008051, 1235394727030233
#else
44516310, 30409154, 64819587, 5953842, 53668675, 9425630,
25310643, 13003497, 64794073, 18408815
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2211311599327900, 2139787259888175, 938706616835350,
12609661139114, 2081897930719789
#else
39688860, 32951110, 59064879, 31885314, 41016598, 13987818,
39811242, 187898, 43942445, 31022696
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1324994503390450, 336982330582631, 1183998925654177,
1091654665913274, 48727673971319
#else
45364466, 19743956, 1844839, 5021428, 56674465, 17642958,
9716666, 16266922, 62038647, 726098
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1845522914617879, 1222198248335542, 150841072760134,
1927029069940982, 1189913404498011
#else
29370903, 27500434, 7334070, 18212173, 9385286, 2247707,
53446902, 28714970, 30007387, 17731091
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1079559557592645, 2215338383666441, 1903569501302605,
49033973033940, 305703433934152
#else
66172485, 16086690, 23751945, 33011114, 65941325, 28365395,
9137108, 730663, 9835848, 4555336
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
94653405416909, 1386121349852999, 1062130477891762,
36553947479274, 833669648948846
#else
43732429, 1410445, 44855111, 20654817, 30867634, 15826977,
17693930, 544696, 55123566, 12422645
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1432015813136298, 440364795295369, 1395647062821501,
1976874522764578, 934452372723352
#else
31117226, 21338698, 53606025, 6561946, 57231997, 20796761,
61990178, 29457725, 29120152, 13924425
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1296625309219774, 2068273464883862, 1858621048097805,
1492281814208508, 2235868981918946
#else
49707966, 19321222, 19675798, 30819676, 56101901, 27695611,
57724924, 22236731, 7240930, 33317044
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1490330266465570, 1858795661361448, 1436241134969763,
294573218899647, 1208140011028933
#else
35747106, 22207651, 52101416, 27698213, 44655523, 21401660,
1222335, 4389483, 3293637, 18002689
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1282462923712748, 741885683986255, 2027754642827561,
518989529541027, 1826610009555945
#else
50424044, 19110186, 11038543, 11054958, 53307689, 30215898,
42789283, 7733546, 12796905, 27218610
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1525827120027511, 723686461809551, 1597702369236987,
244802101764964, 1502833890372311
#else
58349431, 22736595, 41689999, 10783768, 36493307, 23807620,
38855524, 3647835, 3222231, 22393970
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
113622036244513, 1233740067745854, 674109952278496,
2114345180342965, 166764512856263
#else
18606113, 1693100, 41660478, 18384159, 4112352, 10045021,
23603893, 31506198, 59558087, 2484984
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2041668749310338, 2184405322203901, 1633400637611036,
2110682505536899, 2048144390084644
#else
9255298, 30423235, 54952701, 32550175, 13098012, 24339566,
16377219, 31451620, 47306788, 30519729
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
503058759232932, 760293024620937, 2027152777219493,
666858468148475, 1539184379870952
#else
44379556, 7496159, 61366665, 11329248, 19991973, 30206930,
35390715, 9936965, 37011176, 22935634
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1916168475367211, 915626432541343, 883217071712575,
363427871374304, 1976029821251593
#else
21878571, 28553135, 4338335, 13643897, 64071999, 13160959,
19708896, 5415497, 59748361, 29445138
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
678039535434506, 570587290189340, 1605302676614120,
2147762562875701, 1706063797091704
#else
27736842, 10103576, 12500508, 8502413, 63695848, 23920873,
10436917, 32004156, 43449720, 25422331
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1439489648586438, 2194580753290951, 832380563557396,
561521973970522, 584497280718389
#else
19492550, 21450067, 37426887, 32701801, 63900692, 12403436,
30066266, 8367329, 13243957, 8709688
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
187989455492609, 681223515948275, 1933493571072456,
1872921007304880, 488162364135671
#else
12015105, 2801261, 28198131, 10151021, 24818120, 28811299,
55914672, 27908697, 5150967, 7274186
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1413466089534451, 410844090765630, 1397263346404072,
408227143123410, 1594561803147811
#else
2831347, 21062286, 1478974, 6122054, 23825128, 20820846,
31097298, 6083058, 31021603, 23760822
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2102170800973153, 719462588665004, 1479649438510153,
1097529543970028, 1302363283777685
#else
64578913, 31324785, 445612, 10720828, 53259337, 22048494,
43601132, 16354464, 15067285, 19406725
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
942065717847195, 1069313679352961, 2007341951411051,
70973416446291, 1419433790163706
#else
7840923, 14037873, 33744001, 15934015, 66380651, 29911725,
21403987, 1057586, 47729402, 21151211
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1146565545556377, 1661971299445212, 406681704748893,
564452436406089, 1109109865829139
#else
915865, 17085158, 15608284, 24765302, 42751837, 6060029,
49737545, 8410996, 59888403, 16527024
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2214421081775077, 1165671861210569, 1890453018796184,
3556249878661, 442116172656317
#else
32922597, 32997445, 20336073, 17369864, 10903704, 28169945,
16957573, 52992, 23834301, 6588044
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
753830546620811, 1666955059895019, 1530775289309243,
1119987029104146, 2164156153857580
#else
32752011, 11232950, 3381995, 24839566, 22652987, 22810329,
17159698, 16689107, 46794284, 32248439
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
615171919212796, 1523849404854568, 854560460547503,
2067097370290715, 1765325848586042
#else
62419196, 9166775, 41398568, 22707125, 11576751, 12733943,
7924251, 30802151, 1976122, 26305405
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1094538949313667, 1796592198908825, 870221004284388,
2025558921863561, 1699010892802384
#else
21251203, 16309901, 64125849, 26771309, 30810596, 12967303,
156041, 30183180, 12331344, 25317235
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1951351290725195, 1916457206844795, 198025184438026,
1909076887557595, 1938542290318919
#else
8651595, 29077400, 51023227, 28557437, 13002506, 2950805,
29054427, 28447462, 10008135, 28886531
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1014323197538413, 869150639940606, 1756009942696599,
1334952557375672, 1544945379082874
#else
31486061, 15114593, 52847614, 12951353, 14369431, 26166587,
16347320, 19892343, 8684154, 23021480
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
764055910920305, 1603590757375439, 146805246592357,
1843313433854297, 954279890114939
#else
19443825, 11385320, 24468943, 23895364, 43189605, 2187568,
40845657, 27467510, 31316347, 14219878
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
80113526615750, 764536758732259, 1055139345100233,
469252651759390, 617897512431515
#else
38514374, 1193784, 32245219, 11392485, 31092169, 15722801,
27146014, 6992409, 29126555, 9207390
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
74497112547268, 740094153192149, 1745254631717581,
727713886503130, 1283034364416928
#else
32382916, 1110093, 18477781, 11028262, 39697101, 26006320,
62128346, 10843781, 59151264, 19118701
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
525892105991110, 1723776830270342, 1476444848991936,
573789489857760, 133864092632978
#else
2814918, 7836403, 27519878, 25686276, 46214848, 22000742,
45614304, 8550129, 28346258, 1994730
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
542611720192581, 1986812262899321, 1162535242465837,
481498966143464, 544600533583622
#else
47530565, 8085544, 53108345, 29605809, 2785837, 17323125,
47591912, 7174893, 22628102, 8115180
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
64123227344372, 1239927720647794, 1360722983445904,
222610813654661, 62429487187991
#else
36703732, 955510, 55975026, 18476362, 34661776, 20276352,
41457285, 3317159, 57165847, 930271
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1793193323953132, 91096687857833, 70945970938921,
2158587638946380, 1537042406482111
#else
51805164, 26720662, 28856489, 1357446, 23421993, 1057177,
24091212, 32165462, 44343487, 22903716
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1895854577604609, 1394895708949416, 1728548428495944,
1140864900240149, 563645333603061
#else
44357633, 28250434, 54201256, 20785565, 51297352, 25757378,
52269845, 17000211, 65241845, 8398969
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
141358280486863, 91435889572504, 1087208572552643,
1829599652522921, 1193307020643647
#else
35139535, 2106402, 62372504, 1362500, 12813763, 16200670,
22981545, 27263159, 18009407, 17781660
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1611230858525381, 950720175540785, 499589887488610,
2001656988495019, 88977313255908
#else
49887941, 24009210, 39324209, 14166834, 29815394, 7444469,
29551787, 29827013, 19288548, 1325865
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1189080501479658, 2184348804772597, 1040818725742319,
2018318290311834, 1712060030915354
#else
15100138, 17718680, 43184885, 32549333, 40658671, 15509407,
12376730, 30075286, 33166106, 25511682
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
873966876953756, 1090638350350440, 1708559325189137,
672344594801910, 1320437969700239
#else
20909212, 13023121, 57899112, 16251777, 61330449, 25459517,
12412150, 10018715, 2213263, 19676059
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1508590048271766, 1131769479776094, 101550868699323,
428297785557897, 561791648661744
#else
32529814, 22479743, 30361438, 16864679, 57972923, 1513225,
22922121, 6382134, 61341936, 8371347
#endif
}},
},
},
{
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
756417570499462, 237882279232602, 2136263418594016,
1701968045454886, 703713185137472
#else
9923462, 11271500, 12616794, 3544722, 37110496, 31832805,
12891686, 25361300, 40665920, 10486143
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1781187809325462, 1697624151492346, 1381393690939988,
175194132284669, 1483054666415238
#else
44511638, 26541766, 8587002, 25296571, 4084308, 20584370,
361725, 2610596, 43187334, 22099236
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
2175517777364616, 708781536456029, 955668231122942,
1967557500069555, 2021208005604118
#else
5408392, 32417741, 62139741, 10561667, 24145918, 14240566,
31319731, 29318891, 19985174, 30118346
#endif
}},
},
{
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1115135966606887, 224217372950782, 915967306279222,
593866251291540, 561747094208006
#else
53114407, 16616820, 14549246, 3341099, 32155958, 13648976,
49531796, 8849296, 65030, 8370684
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
1443163092879439, 391875531646162, 2180847134654632,
464538543018753, 1594098196837178
#else
58787919, 21504805, 31204562, 5839400, 46481576, 32497154,
47665921, 6922163, 12743482, 23753914
#endif
}},
{{
#if defined(BORINGSSL_CURVE25519_64BIT)
850858855888869, 319436476624586, 327807784938441,
740785849558761, 17128415486016
#else
64747493, 12678784, 28815050, 4759974, 43215817, 4884716,
23783145, 11038569, 18800704, 255233