MOTION  0.01
Framework for mixed-protocol multi-party computation
mycurve25519_tables.h
Go to the documentation of this file.
1 // This file was taken from the BoringSSL project (commit
2 // 982279b366eccd9e4146036c7fcda7f72d2cbdff) -- they used Fiat-Crypto to
3 // generate it.
4 //
5 // The MIT License (MIT)
6 //
7 // Copyright (c) 2015-2016 the fiat-crypto authors (see the AUTHORS file).
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining a copy
10 // of this software and associated documentation files (the "Software"), to deal
11 // in the Software without restriction, including without limitation the rights
12 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 // copies of the Software, and to permit persons to whom the Software is
14 // furnished to do so, subject to the following conditions:
15 //
16 // The above copyright notice and this permission notice shall be included in
17 // all copies or substantial portions of the Software.
18 //
19 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 // SOFTWARE.
26 
27 // This file is generated from
28 // ./make_curve25519_tables.py > curve25519_tables.h
29 
30 static const fe d = {{
31 #if defined(BORINGSSL_CURVE25519_64BIT)
32  929955233495203, 466365720129213, 1662059464998953, 2033849074728123, 1442794654840575
33 #else
34  56195235, 13857412, 51736253, 6949390, 114729, 24766616, 60832955, 30306712, 48412415, 21499315
35 #endif
36 }};
37 
38 static const fe sqrtm1 = {{
39 #if defined(BORINGSSL_CURVE25519_64BIT)
40  1718705420411056, 234908883556509, 2233514472574048, 2117202627021982, 765476049583133
41 #else
42  34513072, 25610706, 9377949, 3500415, 12389472, 33281959, 41962654, 31548777, 326685, 11406482
43 #endif
44 }};
45 
46 static const fe d2 = {{
47 #if defined(BORINGSSL_CURVE25519_64BIT)
48  1859910466990425, 932731440258426, 1072319116312658, 1815898335770999, 633789495995903
49 #else
50  45281625, 27714825, 36363642, 13898781, 229458, 15978800, 54557047, 27058993, 29715967, 9444199
51 #endif
52 }};
53 
54 #if defined(OPENSSL_SMALL)
55 
56 // This block of code replaces the standard base-point table with a much smaller
57 // one. The standard table is 30,720 bytes while this one is just 960.
58 //
59 // This table contains 15 pairs of group elements, (x, y), where each field
60 // element is serialised with |fe_tobytes|. If |i| is the index of the group
61 // element then consider i+1 as a four-bit number: (i₀, i₁, i₂, i₃) (where i₀
62 // is the most significant bit). The value of the group element is then:
63 // (i₀×2^192 + i₁×2^128 + i₂×2^64 + i₃)G, where G is the generator.
64 static const uint8_t k25519SmallPrecomp[15 * 2 * 32] = {
65  0x1a, 0xd5, 0x25, 0x8f, 0x60, 0x2d, 0x56, 0xc9, 0xb2, 0xa7, 0x25, 0x95, 0x60, 0xc7, 0x2c, 0x69,
66  0x5c, 0xdc, 0xd6, 0xfd, 0x31, 0xe2, 0xa4, 0xc0, 0xfe, 0x53, 0x6e, 0xcd, 0xd3, 0x36, 0x69, 0x21,
67  0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
68  0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
69  0x02, 0xa2, 0xed, 0xf4, 0x8f, 0x6b, 0x0b, 0x3e, 0xeb, 0x35, 0x1a, 0xd5, 0x7e, 0xdb, 0x78, 0x00,
70  0x96, 0x8a, 0xa0, 0xb4, 0xcf, 0x60, 0x4b, 0xd4, 0xd5, 0xf9, 0x2d, 0xbf, 0x88, 0xbd, 0x22, 0x62,
71  0x13, 0x53, 0xe4, 0x82, 0x57, 0xfa, 0x1e, 0x8f, 0x06, 0x2b, 0x90, 0xba, 0x08, 0xb6, 0x10, 0x54,
72  0x4f, 0x7c, 0x1b, 0x26, 0xed, 0xda, 0x6b, 0xdd, 0x25, 0xd0, 0x4e, 0xea, 0x42, 0xbb, 0x25, 0x03,
73  0xa2, 0xfb, 0xcc, 0x61, 0x67, 0x06, 0x70, 0x1a, 0xc4, 0x78, 0x3a, 0xff, 0x32, 0x62, 0xdd, 0x2c,
74  0xab, 0x50, 0x19, 0x3b, 0xf2, 0x9b, 0x7d, 0xb8, 0xfd, 0x4f, 0x29, 0x9c, 0xa7, 0x91, 0xba, 0x0e,
75  0x46, 0x5e, 0x51, 0xfe, 0x1d, 0xbf, 0xe5, 0xe5, 0x9b, 0x95, 0x0d, 0x67, 0xf8, 0xd1, 0xb5, 0x5a,
76  0xa1, 0x93, 0x2c, 0xc3, 0xde, 0x0e, 0x97, 0x85, 0x2d, 0x7f, 0xea, 0xab, 0x3e, 0x47, 0x30, 0x18,
77  0x24, 0xe8, 0xb7, 0x60, 0xae, 0x47, 0x80, 0xfc, 0xe5, 0x23, 0xe7, 0xc2, 0xc9, 0x85, 0xe6, 0x98,
78  0xa0, 0x29, 0x4e, 0xe1, 0x84, 0x39, 0x2d, 0x95, 0x2c, 0xf3, 0x45, 0x3c, 0xff, 0xaf, 0x27, 0x4c,
79  0x6b, 0xa6, 0xf5, 0x4b, 0x11, 0xbd, 0xba, 0x5b, 0x9e, 0xc4, 0xa4, 0x51, 0x1e, 0xbe, 0xd0, 0x90,
80  0x3a, 0x9c, 0xc2, 0x26, 0xb6, 0x1e, 0xf1, 0x95, 0x7d, 0xc8, 0x6d, 0x52, 0xe6, 0x99, 0x2c, 0x5f,
81  0x9a, 0x96, 0x0c, 0x68, 0x29, 0xfd, 0xe2, 0xfb, 0xe6, 0xbc, 0xec, 0x31, 0x08, 0xec, 0xe6, 0xb0,
82  0x53, 0x60, 0xc3, 0x8c, 0xbe, 0xc1, 0xb3, 0x8a, 0x8f, 0xe4, 0x88, 0x2b, 0x55, 0xe5, 0x64, 0x6e,
83  0x9b, 0xd0, 0xaf, 0x7b, 0x64, 0x2a, 0x35, 0x25, 0x10, 0x52, 0xc5, 0x9e, 0x58, 0x11, 0x39, 0x36,
84  0x45, 0x51, 0xb8, 0x39, 0x93, 0xfc, 0x9d, 0x6a, 0xbe, 0x58, 0xcb, 0xa4, 0x0f, 0x51, 0x3c, 0x38,
85  0x05, 0xca, 0xab, 0x43, 0x63, 0x0e, 0xf3, 0x8b, 0x41, 0xa6, 0xf8, 0x9b, 0x53, 0x70, 0x80, 0x53,
86  0x86, 0x5e, 0x8f, 0xe3, 0xc3, 0x0d, 0x18, 0xc8, 0x4b, 0x34, 0x1f, 0xd8, 0x1d, 0xbc, 0xf2, 0x6d,
87  0x34, 0x3a, 0xbe, 0xdf, 0xd9, 0xf6, 0xf3, 0x89, 0xa1, 0xe1, 0x94, 0x9f, 0x5d, 0x4c, 0x5d, 0xe9,
88  0xa1, 0x49, 0x92, 0xef, 0x0e, 0x53, 0x81, 0x89, 0x58, 0x87, 0xa6, 0x37, 0xf1, 0xdd, 0x62, 0x60,
89  0x63, 0x5a, 0x9d, 0x1b, 0x8c, 0xc6, 0x7d, 0x52, 0xea, 0x70, 0x09, 0x6a, 0xe1, 0x32, 0xf3, 0x73,
90  0x21, 0x1f, 0x07, 0x7b, 0x7c, 0x9b, 0x49, 0xd8, 0xc0, 0xf3, 0x25, 0x72, 0x6f, 0x9d, 0xed, 0x31,
91  0x67, 0x36, 0x36, 0x54, 0x40, 0x92, 0x71, 0xe6, 0x11, 0x28, 0x11, 0xad, 0x93, 0x32, 0x85, 0x7b,
92  0x3e, 0xb7, 0x3b, 0x49, 0x13, 0x1c, 0x07, 0xb0, 0x2e, 0x93, 0xaa, 0xfd, 0xfd, 0x28, 0x47, 0x3d,
93  0x8d, 0xd2, 0xda, 0xc7, 0x44, 0xd6, 0x7a, 0xdb, 0x26, 0x7d, 0x1d, 0xb8, 0xe1, 0xde, 0x9d, 0x7a,
94  0x7d, 0x17, 0x7e, 0x1c, 0x37, 0x04, 0x8d, 0x2d, 0x7c, 0x5e, 0x18, 0x38, 0x1e, 0xaf, 0xc7, 0x1b,
95  0x33, 0x48, 0x31, 0x00, 0x59, 0xf6, 0xf2, 0xca, 0x0f, 0x27, 0x1b, 0x63, 0x12, 0x7e, 0x02, 0x1d,
96  0x49, 0xc0, 0x5d, 0x79, 0x87, 0xef, 0x5e, 0x7a, 0x2f, 0x1f, 0x66, 0x55, 0xd8, 0x09, 0xd9, 0x61,
97  0x38, 0x68, 0xb0, 0x07, 0xa3, 0xfc, 0xcc, 0x85, 0x10, 0x7f, 0x4c, 0x65, 0x65, 0xb3, 0xfa, 0xfa,
98  0xa5, 0x53, 0x6f, 0xdb, 0x74, 0x4c, 0x56, 0x46, 0x03, 0xe2, 0xd5, 0x7a, 0x29, 0x1c, 0xc6, 0x02,
99  0xbc, 0x59, 0xf2, 0x04, 0x75, 0x63, 0xc0, 0x84, 0x2f, 0x60, 0x1c, 0x67, 0x76, 0xfd, 0x63, 0x86,
100  0xf3, 0xfa, 0xbf, 0xdc, 0xd2, 0x2d, 0x90, 0x91, 0xbd, 0x33, 0xa9, 0xe5, 0x66, 0x0c, 0xda, 0x42,
101  0x27, 0xca, 0xf4, 0x66, 0xc2, 0xec, 0x92, 0x14, 0x57, 0x06, 0x63, 0xd0, 0x4d, 0x15, 0x06, 0xeb,
102  0x69, 0x58, 0x4f, 0x77, 0xc5, 0x8b, 0xc7, 0xf0, 0x8e, 0xed, 0x64, 0xa0, 0xb3, 0x3c, 0x66, 0x71,
103  0xc6, 0x2d, 0xda, 0x0a, 0x0d, 0xfe, 0x70, 0x27, 0x64, 0xf8, 0x27, 0xfa, 0xf6, 0x5f, 0x30, 0xa5,
104  0x0d, 0x6c, 0xda, 0xf2, 0x62, 0x5e, 0x78, 0x47, 0xd3, 0x66, 0x00, 0x1c, 0xfd, 0x56, 0x1f, 0x5d,
105  0x3f, 0x6f, 0xf4, 0x4c, 0xd8, 0xfd, 0x0e, 0x27, 0xc9, 0x5c, 0x2b, 0xbc, 0xc0, 0xa4, 0xe7, 0x23,
106  0x29, 0x02, 0x9f, 0x31, 0xd6, 0xe9, 0xd7, 0x96, 0xf4, 0xe0, 0x5e, 0x0b, 0x0e, 0x13, 0xee, 0x3c,
107  0x09, 0xed, 0xf2, 0x3d, 0x76, 0x91, 0xc3, 0xa4, 0x97, 0xae, 0xd4, 0x87, 0xd0, 0x5d, 0xf6, 0x18,
108  0x47, 0x1f, 0x1d, 0x67, 0xf2, 0xcf, 0x63, 0xa0, 0x91, 0x27, 0xf8, 0x93, 0x45, 0x75, 0x23, 0x3f,
109  0xd1, 0xf1, 0xad, 0x23, 0xdd, 0x64, 0x93, 0x96, 0x41, 0x70, 0x7f, 0xf7, 0xf5, 0xa9, 0x89, 0xa2,
110  0x34, 0xb0, 0x8d, 0x1b, 0xae, 0x19, 0x15, 0x49, 0x58, 0x23, 0x6d, 0x87, 0x15, 0x4f, 0x81, 0x76,
111  0xfb, 0x23, 0xb5, 0xea, 0xcf, 0xac, 0x54, 0x8d, 0x4e, 0x42, 0x2f, 0xeb, 0x0f, 0x63, 0xdb, 0x68,
112  0x37, 0xa8, 0xcf, 0x8b, 0xab, 0xf5, 0xa4, 0x6e, 0x96, 0x2a, 0xb2, 0xd6, 0xbe, 0x9e, 0xbd, 0x0d,
113  0xb4, 0x42, 0xa9, 0xcf, 0x01, 0x83, 0x8a, 0x17, 0x47, 0x76, 0xc4, 0xc6, 0x83, 0x04, 0x95, 0x0b,
114  0xfc, 0x11, 0xc9, 0x62, 0xb8, 0x0c, 0x76, 0x84, 0xd9, 0xb9, 0x37, 0xfa, 0xfc, 0x7c, 0xc2, 0x6d,
115  0x58, 0x3e, 0xb3, 0x04, 0xbb, 0x8c, 0x8f, 0x48, 0xbc, 0x91, 0x27, 0xcc, 0xf9, 0xb7, 0x22, 0x19,
116  0x83, 0x2e, 0x09, 0xb5, 0x72, 0xd9, 0x54, 0x1c, 0x4d, 0xa1, 0xea, 0x0b, 0xf1, 0xc6, 0x08, 0x72,
117  0x46, 0x87, 0x7a, 0x6e, 0x80, 0x56, 0x0a, 0x8a, 0xc0, 0xdd, 0x11, 0x6b, 0xd6, 0xdd, 0x47, 0xdf,
118  0x10, 0xd9, 0xd8, 0xea, 0x7c, 0xb0, 0x8f, 0x03, 0x00, 0x2e, 0xc1, 0x8f, 0x44, 0xa8, 0xd3, 0x30,
119  0x06, 0x89, 0xa2, 0xf9, 0x34, 0xad, 0xdc, 0x03, 0x85, 0xed, 0x51, 0xa7, 0x82, 0x9c, 0xe7, 0x5d,
120  0x52, 0x93, 0x0c, 0x32, 0x9a, 0x5b, 0xe1, 0xaa, 0xca, 0xb8, 0x02, 0x6d, 0x3a, 0xd4, 0xb1, 0x3a,
121  0xf0, 0x5f, 0xbe, 0xb5, 0x0d, 0x10, 0x6b, 0x38, 0x32, 0xac, 0x76, 0x80, 0xbd, 0xca, 0x94, 0x71,
122  0x7a, 0xf2, 0xc9, 0x35, 0x2a, 0xde, 0x9f, 0x42, 0x49, 0x18, 0x01, 0xab, 0xbc, 0xef, 0x7c, 0x64,
123  0x3f, 0x58, 0x3d, 0x92, 0x59, 0xdb, 0x13, 0xdb, 0x58, 0x6e, 0x0a, 0xe0, 0xb7, 0x91, 0x4a, 0x08,
124  0x20, 0xd6, 0x2e, 0x3c, 0x45, 0xc9, 0x8b, 0x17, 0x79, 0xe7, 0xc7, 0x90, 0x99, 0x3a, 0x18, 0x25,
125 };
126 
127 #else
128 
129 // k25519Precomp[i][j] = (j+1)*256^i*B
130 static const ge_precomp k25519Precomp[32][8] = {
131  {
132  {
133  {{
134 #if defined(BORINGSSL_CURVE25519_64BIT)
135  1288382639258501, 245678601348599, 269427782077623, 1462984067271730,
136  137412439391563
137 #else
138  25967493, 19198397, 29566455, 3660896, 54414519, 4014786, 27544626, 21800161,
139  61029707, 2047604
140 #endif
141  }},
142  {{
143 #if defined(BORINGSSL_CURVE25519_64BIT)
144  62697248952638, 204681361388450, 631292143396476, 338455783676468, 1213667448819585
145 #else
146  54563134, 934261, 64385954, 3049989, 66381436, 9406985, 12720692, 5043384, 19500929,
147  18085054
148 #endif
149  }},
150  {{
151 #if defined(BORINGSSL_CURVE25519_64BIT)
152  301289933810280, 1259582250014073, 1422107436869536, 796239922652654,
153  1953934009299142
154 #else
155  58370664, 4489569, 9688441, 18769238, 10184608, 21191052, 29287918, 11864899,
156  42594502, 29115885
157 #endif
158  }},
159  },
160  {
161  {{
162 #if defined(BORINGSSL_CURVE25519_64BIT)
163  1380971894829527, 790832306631236, 2067202295274102, 1995808275510000,
164  1566530869037010
165 #else
166  54292951, 20578084, 45527620, 11784319, 41753206, 30803714, 55390960, 29739860,
167  66750418, 23343128
168 #endif
169  }},
170  {{
171 #if defined(BORINGSSL_CURVE25519_64BIT)
172  463307831301544, 432984605774163, 1610641361907204, 750899048855000,
173  1894842303421586
174 #else
175  45405608, 6903824, 27185491, 6451973, 37531140, 24000426, 51492312, 11189267,
176  40279186, 28235350
177 #endif
178  }},
179  {{
180 #if defined(BORINGSSL_CURVE25519_64BIT)
181  748439484463711, 1033211726465151, 1396005112841647, 1611506220286469,
182  1972177495910992
183 #else
184  26966623, 11152617, 32442495, 15396054, 14353839, 20802097, 63980037, 24013313,
185  51636816, 29387734
186 #endif
187  }},
188  },
189  {
190  {{
191 #if defined(BORINGSSL_CURVE25519_64BIT)
192  1601611775252272, 1720807796594148, 1132070835939856, 1260455018889551,
193  2147779492816911
194 #else
195  15636272, 23865875, 24204772, 25642034, 616976, 16869170, 27787599, 18782243,
196  28944399, 32004408
197 #endif
198  }},
199  {{
200 #if defined(BORINGSSL_CURVE25519_64BIT)
201  316559037616741, 2177824224946892, 1459442586438991, 1461528397712656,
202  751590696113597
203 #else
204  16568933, 4717097, 55552716, 32452109, 15682895, 21747389, 16354576, 21778470,
205  7689661, 11199574
206 #endif
207  }},
208  {{
209 #if defined(BORINGSSL_CURVE25519_64BIT)
210  1850748884277385, 1200145853858453, 1068094770532492, 672251375690438,
211  1586055907191707
212 #else
213  30464137, 27578307, 55329429, 17883566, 23220364, 15915852, 7512774, 10017326,
214  49359771, 23634074
215 #endif
216  }},
217  },
218  {
219  {{
220 #if defined(BORINGSSL_CURVE25519_64BIT)
221  934282339813791, 1846903124198670, 1172395437954843, 1007037127761661,
222  1830588347719256
223 #else
224  50071967, 13921891, 10945806, 27521001, 27105051, 17470053, 38182653, 15006022,
225  3284568, 27277892
226 #endif
227  }},
228  {{
229 #if defined(BORINGSSL_CURVE25519_64BIT)
230  1694390458783935, 1735906047636159, 705069562067493, 648033061693059,
231  696214010414170
232 #else
233  23599295, 25248385, 55915199, 25867015, 13236773, 10506355, 7464579, 9656445,
234  13059162, 10374397
235 #endif
236  }},
237  {{
238 #if defined(BORINGSSL_CURVE25519_64BIT)
239  1121406372216585, 192876649532226, 190294192191717, 1994165897297032,
240  2245000007398739
241 #else
242  7798537, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, 29715387,
243  66467155, 33453106
244 #endif
245  }},
246  },
247  {
248  {{
249 #if defined(BORINGSSL_CURVE25519_64BIT)
250  769950342298419, 132954430919746, 844085933195555, 974092374476333, 726076285546016
251 #else
252  10861363, 11473154, 27284546, 1981175, 37044515, 12577860, 32867885, 14515107,
253  51670560, 10819379
254 #endif
255  }},
256  {{
257 #if defined(BORINGSSL_CURVE25519_64BIT)
258  425251763115706, 608463272472562, 442562545713235, 837766094556764, 374555092627893
259 #else
260  4708026, 6336745, 20377586, 9066809, 55836755, 6594695, 41455196, 12483687,
261  54440373, 5581305
262 #endif
263  }},
264  {{
265 #if defined(BORINGSSL_CURVE25519_64BIT)
266  1086255230780037, 274979815921559, 1960002765731872, 929474102396301,
267  1190409889297339
268 #else
269  19563141, 16186464, 37722007, 4097518, 10237984, 29206317, 28542349, 13850243,
270  43430843, 17738489
271 #endif
272  }},
273  },
274  {
275  {{
276 #if defined(BORINGSSL_CURVE25519_64BIT)
277  1388594989461809, 316767091099457, 394298842192982, 1230079486801005,
278  1440737038838979
279 #else
280  51736881, 20691677, 32573249, 4720197, 40672342, 5875510, 47920237, 18329612,
281  57289923, 21468654
282 #endif
283  }},
284  {{
285 #if defined(BORINGSSL_CURVE25519_64BIT)
286  7380825640100, 146210432690483, 304903576448906, 1198869323871120, 997689833219095
287 #else
288  58559652, 109982, 15149363, 2178705, 22900618, 4543417, 3044240, 17864545, 1762327,
289  14866737
290 #endif
291  }},
292  {{
293 #if defined(BORINGSSL_CURVE25519_64BIT)
294  1181317918772081, 114573476638901, 262805072233344, 265712217171332, 294181933805782
295 #else
296  48909169, 17603008, 56635573, 1707277, 49922944, 3916100, 38872452, 3959420,
297  27914454, 4383652
298 #endif
299  }},
300  },
301  {
302  {{
303 #if defined(BORINGSSL_CURVE25519_64BIT)
304  665000864555967, 2065379846933859, 370231110385876, 350988370788628,
305  1233371373142985
306 #else
307  5153727, 9909285, 1723747, 30776558, 30523604, 5516873, 19480852, 5230134, 43156425,
308  18378665
309 #endif
310  }},
311  {{
312 #if defined(BORINGSSL_CURVE25519_64BIT)
313  2019367628972465, 676711900706637, 110710997811333, 1108646842542025,
314  517791959672113
315 #else
316  36839857, 30090922, 7665485, 10083793, 28475525, 1649722, 20654025, 16520125,
317  30598449, 7715701
318 #endif
319  }},
320  {{
321 #if defined(BORINGSSL_CURVE25519_64BIT)
322  965130719900578, 247011430587952, 526356006571389, 91986625355052, 2157223321444601
323 #else
324  28881826, 14381568, 9657904, 3680757, 46927229, 7843315, 35708204, 1370707,
325  29794553, 32145132
326 #endif
327  }},
328  },
329  {
330  {{
331 #if defined(BORINGSSL_CURVE25519_64BIT)
332  2068619540119183, 1966274918058806, 957728544705549, 729906502578991,
333  159834893065166
334 #else
335  14499471, 30824833, 33917750, 29299779, 28494861, 14271267, 30290735, 10876454,
336  33954766, 2381725
337 #endif
338  }},
339  {{
340 #if defined(BORINGSSL_CURVE25519_64BIT)
341  2073601412052185, 31021124762708, 264500969797082, 248034690651703, 1030252227928288
342 #else
343  59913433, 30899068, 52378708, 462250, 39384538, 3941371, 60872247, 3696004,
344  34808032, 15351954
345 #endif
346  }},
347  {{
348 #if defined(BORINGSSL_CURVE25519_64BIT)
349  551790716293402, 1989538725166328, 801169423371717, 2052451893578887,
350  678432056995012
351 #else
352  27431194, 8222322, 16448760, 29646437, 48401861, 11938354, 34147463, 30583916,
353  29551812, 10109425
354 #endif
355  }},
356  },
357  },
358  {
359  {
360  {{
361 #if defined(BORINGSSL_CURVE25519_64BIT)
362  1368953770187805, 790347636712921, 437508475667162, 2142576377050580,
363  1932081720066286
364 #else
365  53451805, 20399000, 35825113, 11777097, 21447386, 6519384, 64730580, 31926875,
366  10092782, 28790261
367 #endif
368  }},
369  {{
370 #if defined(BORINGSSL_CURVE25519_64BIT)
371  953638594433374, 1092333936795051, 1419774766716690, 805677984380077,
372  859228993502513
373 #else
374  27939166, 14210322, 4677035, 16277044, 44144402, 21156292, 34600109, 12005537,
375  49298737, 12803509
376 #endif
377  }},
378  {{
379 #if defined(BORINGSSL_CURVE25519_64BIT)
380  1200766035879111, 20142053207432, 1465634435977050, 1645256912097844,
381  295121984874596
382 #else
383  17228999, 17892808, 65875336, 300139, 65883994, 21839654, 30364212, 24516238,
384  18016356, 4397660
385 #endif
386  }},
387  },
388  {
389  {{
390 #if defined(BORINGSSL_CURVE25519_64BIT)
391  1735718747031557, 1248237894295956, 1204753118328107, 976066523550493,
392  65943769534592
393 #else
394  56150021, 25864224, 4776340, 18600194, 27850027, 17952220, 40489757, 14544524,
395  49631360, 982638
396 #endif
397  }},
398  {{
399 #if defined(BORINGSSL_CURVE25519_64BIT)
400  1060098822528990, 1586825862073490, 212301317240126, 1975302711403555,
401  666724059764335
402 #else
403  29253598, 15796703, 64244882, 23645547, 10057022, 3163536, 7332899, 29434304,
404  46061167, 9934962
405 #endif
406  }},
407  {{
408 #if defined(BORINGSSL_CURVE25519_64BIT)
409  1091990273418756, 1572899409348578, 80968014455247, 306009358661350,
410  1520450739132526
411 #else
412  5793284, 16271923, 42977250, 23438027, 29188559, 1206517, 52360934, 4559894,
413  36984942, 22656481
414 #endif
415  }},
416  },
417  {
418  {{
419 #if defined(BORINGSSL_CURVE25519_64BIT)
420  1480517209436112, 1511153322193952, 1244343858991172, 304788150493241,
421  369136856496443
422 #else
423  39464912, 22061425, 16282656, 22517939, 28414020, 18542168, 24191033, 4541697,
424  53770555, 5500567
425 #endif
426  }},
427  {{
428 #if defined(BORINGSSL_CURVE25519_64BIT)
429  2151330273626164, 762045184746182, 1688074332551515, 823046109005759,
430  907602769079491
431 #else
432  12650548, 32057319, 9052870, 11355358, 49428827, 25154267, 49678271, 12264342,
433  10874051, 13524335
434 #endif
435  }},
436  {{
437 #if defined(BORINGSSL_CURVE25519_64BIT)
438  2047386910586836, 168470092900250, 1552838872594810, 340951180073789,
439  360819374702533
440 #else
441  25556948, 30508442, 714650, 2510400, 23394682, 23139102, 33119037, 5080568,
442  44580805, 5376627
443 #endif
444  }},
445  },
446  {
447  {{
448 #if defined(BORINGSSL_CURVE25519_64BIT)
449  1982622644432056, 2014393600336956, 128909208804214, 1617792623929191,
450  105294281913815
451 #else
452  41020600, 29543379, 50095164, 30016803, 60382070, 1920896, 44787559, 24106988,
453  4535767, 1569007
454 #endif
455  }},
456  {{
457 #if defined(BORINGSSL_CURVE25519_64BIT)
458  980234343912898, 1712256739246056, 588935272190264, 204298813091998, 841798321043288
459 #else
460  64853442, 14606629, 45416424, 25514613, 28430648, 8775819, 36614302, 3044289,
461  31848280, 12543772
462 #endif
463  }},
464  {{
465 #if defined(BORINGSSL_CURVE25519_64BIT)
466  197561292938973, 454817274782871, 1963754960082318, 2113372252160468,
467  971377527342673
468 #else
469  45080285, 2943892, 35251351, 6777305, 13784462, 29262229, 39731668, 31491700,
470  7718481, 14474653
471 #endif
472  }},
473  },
474  {
475  {{
476 #if defined(BORINGSSL_CURVE25519_64BIT)
477  164699448829328, 3127451757672, 1199504971548753, 1766155447043652, 1899238924683527
478 #else
479  2385296, 2454213, 44477544, 46602, 62670929, 17874016, 656964, 26317767, 24316167,
480  28300865
481 #endif
482  }},
483  {{
484 #if defined(BORINGSSL_CURVE25519_64BIT)
485  732262946680281, 1674412764227063, 2182456405662809, 1350894754474250,
486  558458873295247
487 #else
488  13741529, 10911568, 33875447, 24950694, 46931033, 32521134, 33040650, 20129900,
489  46379407, 8321685
490 #endif
491  }},
492  {{
493 #if defined(BORINGSSL_CURVE25519_64BIT)
494  2103305098582922, 1960809151316468, 715134605001343, 1454892949167181,
495  40827143824949
496 #else
497  21060490, 31341688, 15712756, 29218333, 1639039, 10656336, 23845965, 21679594,
498  57124405, 608371
499 #endif
500  }},
501  },
502  {
503  {{
504 #if defined(BORINGSSL_CURVE25519_64BIT)
505  1239289043050212, 1744654158124578, 758702410031698, 1796762995074688, 1603056663766
506 #else
507  53436132, 18466845, 56219170, 25997372, 61071954, 11305546, 1123968, 26773855,
508  27229398, 23887
509 #endif
510  }},
511  {{
512 #if defined(BORINGSSL_CURVE25519_64BIT)
513  2232056027107988, 987343914584615, 2115594492994461, 1819598072792159,
514  1119305654014850
515 #else
516  43864724, 33260226, 55364135, 14712570, 37643165, 31524814, 12797023, 27114124,
517  65475458, 16678953
518 #endif
519  }},
520  {{
521 #if defined(BORINGSSL_CURVE25519_64BIT)
522  320153677847348, 939613871605645, 641883205761567, 1930009789398224, 329165806634126
523 #else
524  37608244, 4770661, 51054477, 14001337, 7830047, 9564805, 65600720, 28759386,
525  49939598, 4904952
526 #endif
527  }},
528  },
529  {
530  {{
531 #if defined(BORINGSSL_CURVE25519_64BIT)
532  980930490474130, 1242488692177893, 1251446316964684, 1086618677993530,
533  1961430968465772
534 #else
535  24059538, 14617003, 19037157, 18514524, 19766092, 18648003, 5169210, 16191880,
536  2128236, 29227599
537 #endif
538  }},
539  {{
540 #if defined(BORINGSSL_CURVE25519_64BIT)
541  276821765317453, 1536835591188030, 1305212741412361, 61473904210175,
542  2051377036983058
543 #else
544  50127693, 4124965, 58568254, 22900634, 30336521, 19449185, 37302527, 916032,
545  60226322, 30567899
546 #endif
547  }},
548  {{
549 #if defined(BORINGSSL_CURVE25519_64BIT)
550  833449923882501, 1750270368490475, 1123347002068295, 185477424765687,
551  278090826653186
552 #else
553  44477957, 12419371, 59974635, 26081060, 50629959, 16739174, 285431, 2763829,
554  15736322, 4143876
555 #endif
556  }},
557  },
558  {
559  {{
560 #if defined(BORINGSSL_CURVE25519_64BIT)
561  794524995833413, 1849907304548286, 53348672473145, 1272368559505217,
562  1147304168324779
563 #else
564  2379333, 11839345, 62998462, 27565766, 11274297, 794957, 212801, 18959769, 23527083,
565  17096164
566 #endif
567  }},
568  {{
569 #if defined(BORINGSSL_CURVE25519_64BIT)
570  1504846112759364, 1203096289004681, 562139421471418, 274333017451844,
571  1284344053775441
572 #else
573  33431108, 22423954, 49269897, 17927531, 8909498, 8376530, 34483524, 4087880,
574  51919953, 19138217
575 #endif
576  }},
577  {{
578 #if defined(BORINGSSL_CURVE25519_64BIT)
579  483048732424432, 2116063063343382, 30120189902313, 292451576741007, 1156379271702225
580 #else
581  1767664, 7197987, 53903638, 31531796, 54017513, 448825, 5799055, 4357868, 62334673,
582  17231393
583 #endif
584  }},
585  },
586  },
587  {
588  {
589  {{
590 #if defined(BORINGSSL_CURVE25519_64BIT)
591  928372153029038, 2147692869914564, 1455665844462196, 1986737809425946,
592  185207050258089
593 #else
594  6721966, 13833823, 43585476, 32003117, 26354292, 21691111, 23365146, 29604700,
595  7390889, 2759800
596 #endif
597  }},
598  {{
599 #if defined(BORINGSSL_CURVE25519_64BIT)
600  137732961814206, 706670923917341, 1387038086865771, 1965643813686352,
601  1384777115696347
602 #else
603  4409022, 2052381, 23373853, 10530217, 7676779, 20668478, 21302352, 29290375,
604  1244379, 20634787
605 #endif
606  }},
607  {{
608 #if defined(BORINGSSL_CURVE25519_64BIT)
609  481144981981577, 2053319313589856, 2065402289827512, 617954271490316,
610  1106602634668125
611 #else
612  62687625, 7169618, 4982368, 30596842, 30256824, 30776892, 14086412, 9208236,
613  15886429, 16489664
614 #endif
615  }},
616  },
617  {
618  {{
619 #if defined(BORINGSSL_CURVE25519_64BIT)
620  696298019648792, 893299659040895, 1148636718636009, 26734077349617, 2203955659340681
621 #else
622  1996056, 10375649, 14346367, 13311202, 60234729, 17116020, 53415665, 398368,
623  36502409, 32841498
624 #endif
625  }},
626  {{
627 #if defined(BORINGSSL_CURVE25519_64BIT)
628  657390353372855, 998499966885562, 991893336905797, 810470207106761, 343139804608786
629 #else
630  41801399, 9795879, 64331450, 14878808, 33577029, 14780362, 13348553, 12076947,
631  36272402, 5113181
632 #endif
633  }},
634  {{
635 #if defined(BORINGSSL_CURVE25519_64BIT)
636  791736669492960, 934767652997115, 824656780392914, 1759463253018643, 361530362383518
637 #else
638  49338080, 11797795, 31950843, 13929123, 41220562, 12288343, 36767763, 26218045,
639  13847710, 5387222
640 #endif
641  }},
642  },
643  {
644  {{
645 #if defined(BORINGSSL_CURVE25519_64BIT)
646  2022541353055597, 2094700262587466, 1551008075025686, 242785517418164,
647  695985404963562
648 #else
649  48526701, 30138214, 17824842, 31213466, 22744342, 23111821, 8763060, 3617786,
650  47508202, 10370990
651 #endif
652  }},
653  {{
654 #if defined(BORINGSSL_CURVE25519_64BIT)
655  1287487199965223, 2215311941380308, 1552928390931986, 1664859529680196,
656  1125004975265243
657 #else
658  20246567, 19185054, 22358228, 33010720, 18507282, 23140436, 14554436, 24808340,
659  32232923, 16763880
660 #endif
661  }},
662  {{
663 #if defined(BORINGSSL_CURVE25519_64BIT)
664  677434665154918, 989582503122485, 1817429540898386, 1052904935475344,
665  1143826298169798
666 #else
667  9648486, 10094563, 26416693, 14745928, 36734546, 27081810, 11094160, 15689506,
668  3140038, 17044340
669 #endif
670  }},
671  },
672  {
673  {{
674 #if defined(BORINGSSL_CURVE25519_64BIT)
675  367266328308408, 318431188922404, 695629353755355, 634085657580832, 24581612564426
676 #else
677  50948792, 5472694, 31895588, 4744994, 8823515, 10365685, 39884064, 9448612,
678  38334410, 366294
679 #endif
680  }},
681  {{
682 #if defined(BORINGSSL_CURVE25519_64BIT)
683  773360688841258, 1815381330538070, 363773437667376, 539629987070205, 783280434248437
684 #else
685  19153450, 11523972, 56012374, 27051289, 42461232, 5420646, 28344573, 8041113,
686  719605, 11671788
687 #endif
688  }},
689  {{
690 #if defined(BORINGSSL_CURVE25519_64BIT)
691  180820816194166, 168937968377394, 748416242794470, 1227281252254508,
692  1567587861004268
693 #else
694  8678006, 2694440, 60300850, 2517371, 4964326, 11152271, 51675948, 18287915,
695  27000812, 23358879
696 #endif
697  }},
698  },
699  {
700  {{
701 #if defined(BORINGSSL_CURVE25519_64BIT)
702  478775558583645, 2062896624554807, 699391259285399, 358099408427873,
703  1277310261461761
704 #else
705  51950941, 7134311, 8639287, 30739555, 59873175, 10421741, 564065, 5336097, 6750977,
706  19033406
707 #endif
708  }},
709  {{
710 #if defined(BORINGSSL_CURVE25519_64BIT)
711  1984740906540026, 1079164179400229, 1056021349262661, 1659958556483663,
712  1088529069025527
713 #else
714  11836410, 29574944, 26297893, 16080799, 23455045, 15735944, 1695823, 24735310,
715  8169719, 16220347
716 #endif
717  }},
718  {{
719 #if defined(BORINGSSL_CURVE25519_64BIT)
720  580736401511151, 1842931091388998, 1177201471228238, 2075460256527244,
721  1301133425678027
722 #else
723  48993007, 8653646, 17578566, 27461813, 59083086, 17541668, 55964556, 30926767,
724  61118155, 19388398
725 #endif
726  }},
727  },
728  {
729  {{
730 #if defined(BORINGSSL_CURVE25519_64BIT)
731  1515728832059182, 1575261009617579, 1510246567196186, 191078022609704,
732  116661716289141
733 #else
734  43800366, 22586119, 15213227, 23473218, 36255258, 22504427, 27884328, 2847284,
735  2655861, 1738395
736 #endif
737  }},
738  {{
739 #if defined(BORINGSSL_CURVE25519_64BIT)
740  1295295738269652, 1714742313707026, 545583042462581, 2034411676262552,
741  1513248090013606
742 #else
743  39571412, 19301410, 41772562, 25551651, 57738101, 8129820, 21651608, 30315096,
744  48021414, 22549153
745 #endif
746  }},
747  {{
748 #if defined(BORINGSSL_CURVE25519_64BIT)
749  230710545179830, 30821514358353, 760704303452229, 390668103790604, 573437871383156
750 #else
751  1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196,
752  8544890
753 #endif
754  }},
755  },
756  {
757  {{
758 #if defined(BORINGSSL_CURVE25519_64BIT)
759  1169380107545646, 263167233745614, 2022901299054448, 819900753251120,
760  2023898464874585
761 #else
762  32173102, 17425121, 24896206, 3921497, 22579056, 30143578, 19270448, 12217473,
763  17789017, 30158437
764 #endif
765  }},
766  {{
767 #if defined(BORINGSSL_CURVE25519_64BIT)
768  2102254323485823, 1570832666216754, 34696906544624, 1993213739807337, 70638552271463
769 #else
770  36555903, 31326030, 51530034, 23407230, 13243888, 517024, 15479401, 29701199,
771  30460519, 1052596
772 #endif
773  }},
774  {{
775 #if defined(BORINGSSL_CURVE25519_64BIT)
776  894132856735058, 548675863558441, 845349339503395, 1942269668326667,
777  1615682209874691
778 #else
779  55493970, 13323617, 32618793, 8175907, 51878691, 12596686, 27491595, 28942073,
780  3179267, 24075541
781 #endif
782  }},
783  },
784  {
785  {{
786 #if defined(BORINGSSL_CURVE25519_64BIT)
787  1287670217537834, 1222355136884920, 1846481788678694, 1150426571265110,
788  1613523400722047
789 #else
790  31947050, 19187781, 62468280, 18214510, 51982886, 27514722, 52352086, 17142691,
791  19072639, 24043372
792 #endif
793  }},
794  {{
795 #if defined(BORINGSSL_CURVE25519_64BIT)
796  793388516527298, 1315457083650035, 1972286999342417, 1901825953052455,
797  338269477222410
798 #else
799  11685058, 11822410, 3158003, 19601838, 33402193, 29389366, 5977895, 28339415,
800  473098, 5040608
801 #endif
802  }},
803  {{
804 #if defined(BORINGSSL_CURVE25519_64BIT)
805  550201530671806, 778605267108140, 2063911101902983, 115500557286349,
806  2041641272971022
807 #else
808  46817982, 8198641, 39698732, 11602122, 1290375, 30754672, 28326861, 1721092,
809  47550222, 30422825
810 #endif
811  }},
812  },
813  },
814  {
815  {
816  {{
817 #if defined(BORINGSSL_CURVE25519_64BIT)
818  717255318455100, 519313764361315, 2080406977303708, 541981206705521, 774328150311600
819 #else
820  7881532, 10687937, 7578723, 7738378, 48157852, 31000479, 21820785, 8076149,
821  39240368, 11538388
822 #endif
823  }},
824  {{
825 #if defined(BORINGSSL_CURVE25519_64BIT)
826  261715221532238, 1795354330069993, 1496878026850283, 499739720521052,
827  389031152673770
828 #else
829  47173198, 3899860, 18283497, 26752864, 51380203, 22305220, 8754524, 7446702,
830  61432810, 5797015
831 #endif
832  }},
833  {{
834 #if defined(BORINGSSL_CURVE25519_64BIT)
835  1997217696294013, 1717306351628065, 1684313917746180, 1644426076011410,
836  1857378133465451
837 #else
838  55813245, 29760862, 51326753, 25589858, 12708868, 25098233, 2014098, 24503858,
839  64739691, 27677090
840 #endif
841  }},
842  },
843  {
844  {{
845 #if defined(BORINGSSL_CURVE25519_64BIT)
846  1475434724792648, 76931896285979, 1116729029771667, 2002544139318042,
847  725547833803938
848 #else
849  44636488, 21985690, 39426843, 1146374, 18956691, 16640559, 1192730, 29840233,
850  15123618, 10811505
851 #endif
852  }},
853  {{
854 #if defined(BORINGSSL_CURVE25519_64BIT)
855  2022306639183567, 726296063571875, 315345054448644, 1058733329149221,
856  1448201136060677
857 #else
858  14352079, 30134717, 48166819, 10822654, 32750596, 4699007, 67038501, 15776355,
859  38222085, 21579878
860 #endif
861  }},
862  {{
863 #if defined(BORINGSSL_CURVE25519_64BIT)
864  1710065158525665, 1895094923036397, 123988286168546, 1145519900776355,
865  1607510767693874
866 #else
867  38867681, 25481956, 62129901, 28239114, 29416930, 1847569, 46454691, 17069576,
868  4714546, 23953777
869 #endif
870  }},
871  },
872  {
873  {{
874 #if defined(BORINGSSL_CURVE25519_64BIT)
875  561605375422540, 1071733543815037, 131496498800990, 1946868434569999,
876  828138133964203
877 #else
878  15200332, 8368572, 19679101, 15970074, 35236190, 1959450, 24611599, 29010600,
879  55362987, 12340219
880 #endif
881  }},
882  {{
883 #if defined(BORINGSSL_CURVE25519_64BIT)
884  1548495173745801, 442310529226540, 998072547000384, 553054358385281, 644824326376171
885 #else
886  12876937, 23074376, 33134380, 6590940, 60801088, 14872439, 9613953, 8241152,
887  15370987, 9608631
888 #endif
889  }},
890  {{
891 #if defined(BORINGSSL_CURVE25519_64BIT)
892  1445526537029440, 2225519789662536, 914628859347385, 1064754194555068,
893  1660295614401091
894 #else
895  62965568, 21540023, 8446280, 33162829, 4407737, 13629032, 59383996, 15866073,
896  38898243, 24740332
897 #endif
898  }},
899  },
900  {
901  {{
902 #if defined(BORINGSSL_CURVE25519_64BIT)
903  1199690223111956, 24028135822341, 66638289244341, 57626156285975, 565093967979607
904 #else
905  26660628, 17876777, 8393733, 358047, 59707573, 992987, 43204631, 858696, 20571223,
906  8420556
907 #endif
908  }},
909  {{
910 #if defined(BORINGSSL_CURVE25519_64BIT)
911  876926774220824, 554618976488214, 1012056309841565, 839961821554611,
912  1414499340307677
913 #else
914  14620696, 13067227, 51661590, 8264466, 14106269, 15080814, 33531827, 12516406,
915  45534429, 21077682
916 #endif
917  }},
918  {{
919 #if defined(BORINGSSL_CURVE25519_64BIT)
920  703047626104145, 1266841406201770, 165556500219173, 486991595001879,
921  1011325891650656
922 #else
923  236881, 10476226, 57258, 18877408, 6472997, 2466984, 17258519, 7256740, 8791136,
924  15069930
925 #endif
926  }},
927  },
928  {
929  {{
930 #if defined(BORINGSSL_CURVE25519_64BIT)
931  1622861044480487, 1156394801573634, 1869132565415504, 327103985777730,
932  2095342781472284
933 #else
934  1276391, 24182514, 22949634, 17231625, 43615824, 27852245, 14711874, 4874229,
935  36445724, 31223040
936 #endif
937  }},
938  {{
939 #if defined(BORINGSSL_CURVE25519_64BIT)
940  334886927423922, 489511099221528, 129160865966726, 1720809113143481, 619700195649254
941 #else
942  5855666, 4990204, 53397016, 7294283, 59304582, 1924646, 65685689, 25642053,
943  34039526, 9234252
944 #endif
945  }},
946  {{
947 #if defined(BORINGSSL_CURVE25519_64BIT)
948  1646545795166119, 1758370782583567, 714746174550637, 1472693650165135,
949  898994790308209
950 #else
951  20590503, 24535444, 31529743, 26201766, 64402029, 10650547, 31559055, 21944845,
952  18979185, 13396066
953 #endif
954  }},
955  },
956  {
957  {{
958 #if defined(BORINGSSL_CURVE25519_64BIT)
959  333403773039279, 295772542452938, 1693106465353610, 912330357530760, 471235657950362
960 #else
961  24474287, 4968103, 22267082, 4407354, 24063882, 25229252, 48291976, 13594781,
962  33514650, 7021958
963 #endif
964  }},
965  {{
966 #if defined(BORINGSSL_CURVE25519_64BIT)
967  1811196219982022, 1068969825533602, 289602974833439, 1988956043611592,
968  863562343398367
969 #else
970  55541958, 26988926, 45743778, 15928891, 40950559, 4315420, 41160136, 29637754,
971  45628383, 12868081
972 #endif
973  }},
974  {{
975 #if defined(BORINGSSL_CURVE25519_64BIT)
976  906282429780072, 2108672665779781, 432396390473936, 150625823801893,
977  1708930497638539
978 #else
979  38473832, 13504660, 19988037, 31421671, 21078224, 6443208, 45662757, 2244499,
980  54653067, 25465048
981 #endif
982  }},
983  },
984  {
985  {{
986 #if defined(BORINGSSL_CURVE25519_64BIT)
987  925664675702328, 21416848568684, 1831436641861340, 601157008940113, 371818055044496
988 #else
989  36513336, 13793478, 61256044, 319135, 41385692, 27290532, 33086545, 8957937,
990  51875216, 5540520
991 #endif
992  }},
993  {{
994 #if defined(BORINGSSL_CURVE25519_64BIT)
995  1479786007267725, 1738881859066675, 68646196476567, 2146507056100328,
996  1247662817535471
997 #else
998  55478669, 22050529, 58989363, 25911358, 2620055, 1022908, 43398120, 31985447,
999  50980335, 18591624
1000 #endif
1001  }},
1002  {{
1003 #if defined(BORINGSSL_CURVE25519_64BIT)
1004  52035296774456, 939969390708103, 312023458773250, 59873523517659, 1231345905848899
1005 #else
1006  23152952, 775386, 27395463, 14006635, 57407746, 4649511, 1689819, 892185, 55595587,
1007  18348483
1008 #endif
1009  }},
1010  },
1011  {
1012  {{
1013 #if defined(BORINGSSL_CURVE25519_64BIT)
1014  643355106415761, 290186807495774, 2013561737429023, 319648069511546, 393736678496162
1015 #else
1016  9770129, 9586738, 26496094, 4324120, 1556511, 30004408, 27453818, 4763127, 47929250,
1017  5867133
1018 #endif
1019  }},
1020  {{
1021 #if defined(BORINGSSL_CURVE25519_64BIT)
1022  129358342392716, 1932811617704777, 1176749390799681, 398040349861790,
1023  1170779668090425
1024 #else
1025  34343820, 1927589, 31726409, 28801137, 23962433, 17534932, 27846558, 5931263,
1026  37359161, 17445976
1027 #endif
1028  }},
1029  {{
1030 #if defined(BORINGSSL_CURVE25519_64BIT)
1031  2051980782668029, 121859921510665, 2048329875753063, 1235229850149665,
1032  519062146124755
1033 #else
1034  27461885, 30576896, 22380809, 1815854, 44075111, 30522493, 7283489, 18406359,
1035  47582163, 7734628
1036 #endif
1037  }},
1038  },
1039  },
1040  {
1041  {
1042  {{
1043 #if defined(BORINGSSL_CURVE25519_64BIT)
1044  1608170971973096, 415809060360428, 1350468408164766, 2038620059057678,
1045  1026904485989112
1046 #else
1047  59098600, 23963614, 55988460, 6196037, 29344158, 20123547, 7585294, 30377806,
1048  18549496, 15302069
1049 #endif
1050  }},
1051  {{
1052 #if defined(BORINGSSL_CURVE25519_64BIT)
1053  1837656083115103, 1510134048812070, 906263674192061, 1821064197805734,
1054  565375124676301
1055 #else
1056  34450527, 27383209, 59436070, 22502750, 6258877, 13504381, 10458790, 27135971,
1057  58236621, 8424745
1058 #endif
1059  }},
1060  {{
1061 #if defined(BORINGSSL_CURVE25519_64BIT)
1062  578027192365650, 2034800251375322, 2128954087207123, 478816193810521,
1063  2196171989962750
1064 #else
1065  24687186, 8613276, 36441818, 30320886, 1863891, 31723888, 19206233, 7134917,
1066  55824382, 32725512
1067 #endif
1068  }},
1069  },
1070  {
1071  {{
1072 #if defined(BORINGSSL_CURVE25519_64BIT)
1073  1633188840273139, 852787172373708, 1548762607215796, 1266275218902681,
1074  1107218203325133
1075 #else
1076  11334899, 24336410, 8025292, 12707519, 17523892, 23078361, 10243737, 18868971,
1077  62042829, 16498836
1078 #endif
1079  }},
1080  {{
1081 #if defined(BORINGSSL_CURVE25519_64BIT)
1082  462189358480054, 1784816734159228, 1611334301651368, 1303938263943540,
1083  707589560319424
1084 #else
1085  8911542, 6887158, 57524604, 26595841, 11145640, 24010752, 17303924, 19430194,
1086  6536640, 10543906
1087 #endif
1088  }},
1089  {{
1090 #if defined(BORINGSSL_CURVE25519_64BIT)
1091  1038829280972848, 38176604650029, 753193246598573, 1136076426528122, 595709990562434
1092 #else
1093  38162480, 15479762, 49642029, 568875, 65611181, 11223453, 64439674, 16928857,
1094  39873154, 8876770
1095 #endif
1096  }},
1097  },
1098  {
1099  {{
1100 #if defined(BORINGSSL_CURVE25519_64BIT)
1101  1408451820859834, 2194984964010833, 2198361797561729, 1061962440055713,
1102  1645147963442934
1103 #else
1104  41365946, 20987567, 51458897, 32707824, 34082177, 32758143, 33627041, 15824473,
1105  66504438, 24514614
1106 #endif
1107  }},
1108  {{
1109 #if defined(BORINGSSL_CURVE25519_64BIT)
1110  4701053362120, 1647641066302348, 1047553002242085, 1923635013395977, 206970314902065
1111 #else
1112  10330056, 70051, 7957388, 24551765, 9764901, 15609756, 27698697, 28664395, 1657393,
1113  3084098
1114 #endif
1115  }},
1116  {{
1117 #if defined(BORINGSSL_CURVE25519_64BIT)
1118  1750479161778571, 1362553355169293, 1891721260220598, 966109370862782,
1119  1024913988299801
1120 #else
1121  10477963, 26084172, 12119565, 20303627, 29016246, 28188843, 31280318, 14396151,
1122  36875289, 15272408
1123 #endif
1124  }},
1125  },
1126  {
1127  {{
1128 #if defined(BORINGSSL_CURVE25519_64BIT)
1129  212699049131723, 1117950018299775, 1873945661751056, 1403802921984058,
1130  130896082652698
1131 #else
1132  54820555, 3169462, 28813183, 16658753, 25116432, 27923966, 41934906, 20918293,
1133  42094106, 1950503
1134 #endif
1135  }},
1136  {{
1137 #if defined(BORINGSSL_CURVE25519_64BIT)
1138  636808533673210, 1262201711667560, 390951380330599, 1663420692697294,
1139  561951321757406
1140 #else
1141  40928506, 9489186, 11053416, 18808271, 36055143, 5825629, 58724558, 24786899,
1142  15341278, 8373727
1143 #endif
1144  }},
1145  {{
1146 #if defined(BORINGSSL_CURVE25519_64BIT)
1147  520731594438141, 1446301499955692, 273753264629267, 1565101517999256,
1148  1019411827004672
1149 #else
1150  28685821, 7759505, 52730348, 21551571, 35137043, 4079241, 298136, 23321830,
1151  64230656, 15190419
1152 #endif
1153  }},
1154  },
1155  {
1156  {{
1157 #if defined(BORINGSSL_CURVE25519_64BIT)
1158  926527492029409, 1191853477411379, 734233225181171, 184038887541270,
1159  1790426146325343
1160 #else
1161  34175969, 13806335, 52771379, 17760000, 43104243, 10940927, 8669718, 2742393,
1162  41075551, 26679428
1163 #endif
1164  }},
1165  {{
1166 #if defined(BORINGSSL_CURVE25519_64BIT)
1167  1464651961852572, 1483737295721717, 1519450561335517, 1161429831763785,
1168  405914998179977
1169 #else
1170  65528476, 21825014, 41129205, 22109408, 49696989, 22641577, 9291593, 17306653,
1171  54954121, 6048604
1172 #endif
1173  }},
1174  {{
1175 #if defined(BORINGSSL_CURVE25519_64BIT)
1176  996126634382301, 796204125879525, 127517800546509, 344155944689303, 615279846169038
1177 #else
1178  36803549, 14843443, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323,
1179  11213262, 9168384
1180 #endif
1181  }},
1182  },
1183  {
1184  {{
1185 #if defined(BORINGSSL_CURVE25519_64BIT)
1186  738724080975276, 2188666632415296, 1961313708559162, 1506545807547587,
1187  1151301638969740
1188 #else
1189  40828332, 11007846, 19408960, 32613674, 48515898, 29225851, 62020803, 22449281,
1190  20470156, 17155731
1191 #endif
1192  }},
1193  {{
1194 #if defined(BORINGSSL_CURVE25519_64BIT)
1195  622917337413835, 1218989177089035, 1284857712846592, 970502061709359,
1196  351025208117090
1197 #else
1198  43972811, 9282191, 14855179, 18164354, 59746048, 19145871, 44324911, 14461607,
1199  14042978, 5230683
1200 #endif
1201  }},
1202  {{
1203 #if defined(BORINGSSL_CURVE25519_64BIT)
1204  2067814584765580, 1677855129927492, 2086109782475197, 235286517313238,
1205  1416314046739645
1206 #else
1207  29969548, 30812838, 50396996, 25001989, 9175485, 31085458, 21556950, 3506042,
1208  61174973, 21104723
1209 #endif
1210  }},
1211  },
1212  {
1213  {{
1214 #if defined(BORINGSSL_CURVE25519_64BIT)
1215  586844262630358, 307444381952195, 458399356043426, 602068024507062, 1028548203415243
1216 #else
1217  63964118, 8744660, 19704003, 4581278, 46678178, 6830682, 45824694, 8971512,
1218  38569675, 15326562
1219 #endif
1220  }},
1221  {{
1222 #if defined(BORINGSSL_CURVE25519_64BIT)
1223  678489922928203, 2016657584724032, 90977383049628, 1026831907234582, 615271492942522
1224 #else
1225  47644235, 10110287, 49846336, 30050539, 43608476, 1355668, 51585814, 15300987,
1226  46594746, 9168259
1227 #endif
1228  }},
1229  {{
1230 #if defined(BORINGSSL_CURVE25519_64BIT)
1231  301225714012278, 1094837270268560, 1202288391010439, 644352775178361,
1232  1647055902137983
1233 #else
1234  61755510, 4488612, 43305616, 16314346, 7780487, 17915493, 38160505, 9601604,
1235  33087103, 24543045
1236 #endif
1237  }},
1238  },
1239  {
1240  {{
1241 #if defined(BORINGSSL_CURVE25519_64BIT)
1242  1210746697896478, 1416608304244708, 686487477217856, 1245131191434135,
1243  1051238336855737
1244 #else
1245  47665694, 18041531, 46311396, 21109108, 37284416, 10229460, 39664535, 18553900,
1246  61111993, 15664671
1247 #endif
1248  }},
1249  {{
1250 #if defined(BORINGSSL_CURVE25519_64BIT)
1251  1135604073198207, 1683322080485474, 769147804376683, 2086688130589414,
1252  900445683120379
1253 #else
1254  23294591, 16921819, 44458082, 25083453, 27844203, 11461195, 13099750, 31094076,
1255  18151675, 13417686
1256 #endif
1257  }},
1258  {{
1259 #if defined(BORINGSSL_CURVE25519_64BIT)
1260  1971518477615628, 401909519527336, 448627091057375, 1409486868273821,
1261  1214789035034363
1262 #else
1263  42385932, 29377914, 35958184, 5988918, 40250079, 6685064, 1661597, 21002991,
1264  15271675, 18101767
1265 #endif
1266  }},
1267  },
1268  },
1269  {
1270  {
1271  {{
1272 #if defined(BORINGSSL_CURVE25519_64BIT)
1273  1364039144731711, 1897497433586190, 2203097701135459, 145461396811251,
1274  1349844460790699
1275 #else
1276  11433023, 20325767, 8239630, 28274915, 65123427, 32828713, 48410099, 2167543,
1277  60187563, 20114249
1278 #endif
1279  }},
1280  {{
1281 #if defined(BORINGSSL_CURVE25519_64BIT)
1282  1045230323257973, 818206601145807, 630513189076103, 1672046528998132,
1283  807204017562437
1284 #else
1285  35672693, 15575145, 30436815, 12192228, 44645511, 9395378, 57191156, 24915434,
1286  12215109, 12028277
1287 #endif
1288  }},
1289  {{
1290 #if defined(BORINGSSL_CURVE25519_64BIT)
1291  439961968385997, 386362664488986, 1382706320807688, 309894000125359,
1292  2207801346498567
1293 #else
1294  14098381, 6555944, 23007258, 5757252, 51681032, 20603929, 30123439, 4617780,
1295  50208775, 32898803
1296 #endif
1297  }},
1298  },
1299  {
1300  {{
1301 #if defined(BORINGSSL_CURVE25519_64BIT)
1302  1229004686397588, 920643968530863, 123975893911178, 681423993215777,
1303  1400559197080973
1304 #else
1305  63082644, 18313596, 11893167, 13718664, 52299402, 1847384, 51288865, 10154008,
1306  23973261, 20869958
1307 #endif
1308  }},
1309  {{
1310 #if defined(BORINGSSL_CURVE25519_64BIT)
1311  2003766096898049, 170074059235165, 1141124258967971, 1485419893480973,
1312  1573762821028725
1313 #else
1314  40577025, 29858441, 65199965, 2534300, 35238307, 17004076, 18341389, 22134481,
1315  32013173, 23450893
1316 #endif
1317  }},
1318  {{
1319 #if defined(BORINGSSL_CURVE25519_64BIT)
1320  729905708611432, 1270323270673202, 123353058984288, 426460209632942,
1321  2195574535456672
1322 #else
1323  41629544, 10876442, 55337778, 18929291, 54739296, 1838103, 21911214, 6354752,
1324  4425632, 32716610
1325 #endif
1326  }},
1327  },
1328  {
1329  {{
1330 #if defined(BORINGSSL_CURVE25519_64BIT)
1331  1271140255321235, 2044363183174497, 52125387634689, 1445120246694705,
1332  942541986339084
1333 #else
1334  56675475, 18941465, 22229857, 30463385, 53917697, 776728, 49693489, 21533969,
1335  4725004, 14044970
1336 #endif
1337  }},
1338  {{
1339 #if defined(BORINGSSL_CURVE25519_64BIT)
1340  1761608437466135, 583360847526804, 1586706389685493, 2157056599579261,
1341  1170692369685772
1342 #else
1343  19268631, 26250011, 1555348, 8692754, 45634805, 23643767, 6347389, 32142648,
1344  47586572, 17444675
1345 #endif
1346  }},
1347  {{
1348 #if defined(BORINGSSL_CURVE25519_64BIT)
1349  871476219910823, 1878769545097794, 2241832391238412, 548957640601001,
1350  690047440233174
1351 #else
1352  42244775, 12986007, 56209986, 27995847, 55796492, 33405905, 19541417, 8180106,
1353  9282262, 10282508
1354 #endif
1355  }},
1356  },
1357  {
1358  {{
1359 #if defined(BORINGSSL_CURVE25519_64BIT)
1360  297194732135507, 1366347803776820, 1301185512245601, 561849853336294,
1361  1533554921345731
1362 #else
1363  40903763, 4428546, 58447668, 20360168, 4098401, 19389175, 15522534, 8372215,
1364  5542595, 22851749
1365 #endif
1366  }},
1367  {{
1368 #if defined(BORINGSSL_CURVE25519_64BIT)
1369  999628998628371, 1132836708493400, 2084741674517453, 469343353015612,
1370  678782988708035
1371 #else
1372  56546323, 14895632, 26814552, 16880582, 49628109, 31065071, 64326972, 6993760,
1373  49014979, 10114654
1374 #endif
1375  }},
1376  {{
1377 #if defined(BORINGSSL_CURVE25519_64BIT)
1378  2189427607417022, 699801937082607, 412764402319267, 1478091893643349,
1379  2244675696854460
1380 #else
1381  47001790, 32625013, 31422703, 10427861, 59998115, 6150668, 38017109, 22025285,
1382  25953724, 33448274
1383 #endif
1384  }},
1385  },
1386  {
1387  {{
1388 #if defined(BORINGSSL_CURVE25519_64BIT)
1389  1712292055966563, 204413590624874, 1405738637332841, 408981300829763,
1390  861082219276721
1391 #else
1392  62874467, 25515139, 57989738, 3045999, 2101609, 20947138, 19390019, 6094296,
1393  63793585, 12831124
1394 #endif
1395  }},
1396  {{
1397 #if defined(BORINGSSL_CURVE25519_64BIT)
1398  508561155940631, 966928475686665, 2236717801150132, 424543858577297,
1399  2089272956986143
1400 #else
1401  51110167, 7578151, 5310217, 14408357, 33560244, 33329692, 31575953, 6326196,
1402  7381791, 31132593
1403 #endif
1404  }},
1405  {{
1406 #if defined(BORINGSSL_CURVE25519_64BIT)
1407  221245220129925, 1156020201681217, 491145634799213, 542422431960839, 828100817819207
1408 #else
1409  46206085, 3296810, 24736065, 17226043, 18374253, 7318640, 6295303, 8082724,
1410  51746375, 12339663
1411 #endif
1412  }},
1413  },
1414  {
1415  {{
1416 #if defined(BORINGSSL_CURVE25519_64BIT)
1417  153756971240384, 1299874139923977, 393099165260502, 1058234455773022,
1418  996989038681183
1419 #else
1420  27724736, 2291157, 6088201, 19369634, 1792726, 5857634, 13848414, 15768922,
1421  25091167, 14856294
1422 #endif
1423  }},
1424  {{
1425 #if defined(BORINGSSL_CURVE25519_64BIT)
1426  559086812798481, 573177704212711, 1629737083816402, 1399819713462595,
1427  1646954378266038
1428 #else
1429  48242193, 8331042, 24373479, 8541013, 66406866, 24284974, 12927299, 20858939,
1430  44926390, 24541532
1431 #endif
1432  }},
1433  {{
1434 #if defined(BORINGSSL_CURVE25519_64BIT)
1435  1887963056288059, 228507035730124, 1468368348640282, 930557653420194,
1436  613513962454686
1437 #else
1438  55685435, 28132841, 11632844, 3405020, 30536730, 21880393, 39848098, 13866389,
1439  30146206, 9142070
1440 #endif
1441  }},
1442  },
1443  {
1444  {{
1445 #if defined(BORINGSSL_CURVE25519_64BIT)
1446  1224529808187553, 1577022856702685, 2206946542980843, 625883007765001,
1447  279930793512158
1448 #else
1449  3924129, 18246916, 53291741, 23499471, 12291819, 32886066, 39406089, 9326383,
1450  58871006, 4171293
1451 #endif
1452  }},
1453  {{
1454 #if defined(BORINGSSL_CURVE25519_64BIT)
1455  1076287717051609, 1114455570543035, 187297059715481, 250446884292121,
1456  1885187512550540
1457 #else
1458  51186905, 16037936, 6713787, 16606682, 45496729, 2790943, 26396185, 3731949, 345228,
1459  28091483
1460 #endif
1461  }},
1462  {{
1463 #if defined(BORINGSSL_CURVE25519_64BIT)
1464  902497362940219, 76749815795675, 1657927525633846, 1420238379745202,
1465  1340321636548352
1466 #else
1467  45781307, 13448258, 25284571, 1143661, 20614966, 24705045, 2031538, 21163201,
1468  50855680, 19972348
1469 #endif
1470  }},
1471  },
1472  {
1473  {{
1474 #if defined(BORINGSSL_CURVE25519_64BIT)
1475  1129576631190784, 1281994010027327, 996844254743018, 257876363489249,
1476  1150850742055018
1477 #else
1478  31016192, 16832003, 26371391, 19103199, 62081514, 14854136, 17477601, 3842657,
1479  28012650, 17149012
1480 #endif
1481  }},
1482  {{
1483 #if defined(BORINGSSL_CURVE25519_64BIT)
1484  628740660038789, 1943038498527841, 467786347793886, 1093341428303375,
1485  235413859513003
1486 #else
1487  62033029, 9368965, 58546785, 28953529, 51858910, 6970559, 57918991, 16292056,
1488  58241707, 3507939
1489 #endif
1490  }},
1491  {{
1492 #if defined(BORINGSSL_CURVE25519_64BIT)
1493  237425418909360, 469614029179605, 1512389769174935, 1241726368345357,
1494  441602891065214
1495 #else
1496  29439664, 3537914, 23333589, 6997794, 49553303, 22536363, 51899661, 18503164,
1497  57943934, 6580395
1498 #endif
1499  }},
1500  },
1501  },
1502  {
1503  {
1504  {{
1505 #if defined(BORINGSSL_CURVE25519_64BIT)
1506  1736417953058555, 726531315520508, 1833335034432527, 1629442561574747,
1507  624418919286085
1508 #else
1509  54923003, 25874643, 16438268, 10826160, 58412047, 27318820, 17860443, 24280586,
1510  65013061, 9304566
1511 #endif
1512  }},
1513  {{
1514 #if defined(BORINGSSL_CURVE25519_64BIT)
1515  1960754663920689, 497040957888962, 1909832851283095, 1271432136996826,
1516  2219780368020940
1517 #else
1518  20714545, 29217521, 29088194, 7406487, 11426967, 28458727, 14792666, 18945815,
1519  5289420, 33077305
1520 #endif
1521  }},
1522  {{
1523 #if defined(BORINGSSL_CURVE25519_64BIT)
1524  1537037379417136, 1358865369268262, 2130838645654099, 828733687040705,
1525  1999987652890901
1526 #else
1527  50443312, 22903641, 60948518, 20248671, 9192019, 31751970, 17271489, 12349094,
1528  26939669, 29802138
1529 #endif
1530  }},
1531  },
1532  {
1533  {{
1534 #if defined(BORINGSSL_CURVE25519_64BIT)
1535  629042105241814, 1098854999137608, 887281544569320, 1423102019874777, 7911258951561
1536 #else
1537  54218966, 9373457, 31595848, 16374215, 21471720, 13221525, 39825369, 21205872,
1538  63410057, 117886
1539 #endif
1540  }},
1541  {{
1542 #if defined(BORINGSSL_CURVE25519_64BIT)
1543  1811562332665373, 1501882019007673, 2213763501088999, 359573079719636,
1544  36370565049116
1545 #else
1546  22263325, 26994382, 3984569, 22379786, 51994855, 32987646, 28311252, 5358056,
1547  43789084, 541963
1548 #endif
1549  }},
1550  {{
1551 #if defined(BORINGSSL_CURVE25519_64BIT)
1552  218907117361280, 1209298913016966, 1944312619096112, 1130690631451061,
1553  1342327389191701
1554 #else
1555  16259200, 3261970, 2309254, 18019958, 50223152, 28972515, 24134069, 16848603,
1556  53771797, 20002236
1557 #endif
1558  }},
1559  },
1560  {
1561  {{
1562 #if defined(BORINGSSL_CURVE25519_64BIT)
1563  1369976867854704, 1396479602419169, 1765656654398856, 2203659200586299,
1564  998327836117241
1565 #else
1566  9378160, 20414246, 44262881, 20809167, 28198280, 26310334, 64709179, 32837080,
1567  690425, 14876244
1568 #endif
1569  }},
1570  {{
1571 #if defined(BORINGSSL_CURVE25519_64BIT)
1572  2230701885562825, 1348173180338974, 2172856128624598, 1426538746123771,
1573  444193481326151
1574 #else
1575  24977353, 33240048, 58884894, 20089345, 28432342, 32378079, 54040059, 21257083,
1576  44727879, 6618998
1577 #endif
1578  }},
1579  {{
1580 #if defined(BORINGSSL_CURVE25519_64BIT)
1581  784210426627951, 918204562375674, 1284546780452985, 1324534636134684,
1582  1872449409642708
1583 #else
1584  65570671, 11685645, 12944378, 13682314, 42719353, 19141238, 8044828, 19737104,
1585  32239828, 27901670
1586 #endif
1587  }},
1588  },
1589  {
1590  {{
1591 #if defined(BORINGSSL_CURVE25519_64BIT)
1592  319638829540294, 596282656808406, 2037902696412608, 1557219121643918,
1593  341938082688094
1594 #else
1595  48505798, 4762989, 66182614, 8885303, 38696384, 30367116, 9781646, 23204373,
1596  32779358, 5095274
1597 #endif
1598  }},
1599  {{
1600 #if defined(BORINGSSL_CURVE25519_64BIT)
1601  1901860206695915, 2004489122065736, 1625847061568236, 973529743399879,
1602  2075287685312905
1603 #else
1604  34100715, 28339925, 34843976, 29869215, 9460460, 24227009, 42507207, 14506723,
1605  21639561, 30924196
1606 #endif
1607  }},
1608  {{
1609 #if defined(BORINGSSL_CURVE25519_64BIT)
1610  1371853944110545, 1042332820512553, 1949855697918254, 1791195775521505,
1611  37487364849293
1612 #else
1613  50707921, 20442216, 25239337, 15531969, 3987758, 29055114, 65819361, 26690896,
1614  17874573, 558605
1615 #endif
1616  }},
1617  },
1618  {
1619  {{
1620 #if defined(BORINGSSL_CURVE25519_64BIT)
1621  687200189577855, 1082536651125675, 644224940871546, 340923196057951, 343581346747396
1622 #else
1623  53508735, 10240080, 9171883, 16131053, 46239610, 9599699, 33499487, 5080151,
1624  2085892, 5119761
1625 #endif
1626  }},
1627  {{
1628 #if defined(BORINGSSL_CURVE25519_64BIT)
1629  2082717129583892, 27829425539422, 145655066671970, 1690527209845512,
1630  1865260509673478
1631 #else
1632  44903700, 31034903, 50727262, 414690, 42089314, 2170429, 30634760, 25190818,
1633  35108870, 27794547
1634 #endif
1635  }},
1636  {{
1637 #if defined(BORINGSSL_CURVE25519_64BIT)
1638  1059729620568824, 2163709103470266, 1440302280256872, 1769143160546397,
1639  869830310425069
1640 #else
1641  60263160, 15791201, 8550074, 32241778, 29928808, 21462176, 27534429, 26362287,
1642  44757485, 12961481
1643 #endif
1644  }},
1645  },
1646  {
1647  {{
1648 #if defined(BORINGSSL_CURVE25519_64BIT)
1649  1609516219779025, 777277757338817, 2101121130363987, 550762194946473,
1650  1905542338659364
1651 #else
1652  42616785, 23983660, 10368193, 11582341, 43711571, 31309144, 16533929, 8206996,
1653  36914212, 28394793
1654 #endif
1655  }},
1656  {{
1657 #if defined(BORINGSSL_CURVE25519_64BIT)
1658  2024821921041576, 426948675450149, 595133284085473, 471860860885970, 600321679413000
1659 #else
1660  55987368, 30172197, 2307365, 6362031, 66973409, 8868176, 50273234, 7031274, 7589640,
1661  8945490
1662 #endif
1663  }},
1664  {{
1665 #if defined(BORINGSSL_CURVE25519_64BIT)
1666  598474602406721, 1468128276358244, 1191923149557635, 1501376424093216,
1667  1281662691293476
1668 #else
1669  34956097, 8917966, 6661220, 21876816, 65916803, 17761038, 7251488, 22372252,
1670  24099108, 19098262
1671 #endif
1672  }},
1673  },
1674  {
1675  {{
1676 #if defined(BORINGSSL_CURVE25519_64BIT)
1677  1721138489890707, 1264336102277790, 433064545421287, 1359988423149466,
1678  1561871293409447
1679 #else
1680  5019539, 25646962, 4244126, 18840076, 40175591, 6453164, 47990682, 20265406,
1681  60876967, 23273695
1682 #endif
1683  }},
1684  {{
1685 #if defined(BORINGSSL_CURVE25519_64BIT)
1686  719520245587143, 393380711632345, 132350400863381, 1543271270810729,
1687  1819543295798660
1688 #else
1689  10853575, 10721687, 26480089, 5861829, 44113045, 1972174, 65242217, 22996533,
1690  63745412, 27113307
1691 #endif
1692  }},
1693  {{
1694 #if defined(BORINGSSL_CURVE25519_64BIT)
1695  396397949784152, 1811354474471839, 1362679985304303, 2117033964846756,
1696  498041172552279
1697 #else
1698  50106456, 5906789, 221599, 26991285, 7828207, 20305514, 24362660, 31546264,
1699  53242455, 7421391
1700 #endif
1701  }},
1702  },
1703  {
1704  {{
1705 #if defined(BORINGSSL_CURVE25519_64BIT)
1706  1812471844975748, 1856491995543149, 126579494584102, 1036244859282620,
1707  1975108050082550
1708 #else
1709  8139908, 27007935, 32257645, 27663886, 30375718, 1886181, 45933756, 15441251,
1710  28826358, 29431403
1711 #endif
1712  }},
1713  {{
1714 #if defined(BORINGSSL_CURVE25519_64BIT)
1715  650623932407995, 1137551288410575, 2125223403615539, 1725658013221271,
1716  2134892965117796
1717 #else
1718  6267067, 9695052, 7709135, 16950835, 34239795, 31668296, 14795159, 25714308,
1719  13746020, 31812384
1720 #endif
1721  }},
1722  {{
1723 #if defined(BORINGSSL_CURVE25519_64BIT)
1724  522584000310195, 1241762481390450, 1743702789495384, 2227404127826575,
1725  1686746002148897
1726 #else
1727  28584883, 7787108, 60375922, 18503702, 22846040, 25983196, 63926927, 33190907,
1728  4771361, 25134474
1729 #endif
1730  }},
1731  },
1732  },
1733  {
1734  {
1735  {{
1736 #if defined(BORINGSSL_CURVE25519_64BIT)
1737  427904865186312, 1703211129693455, 1585368107547509, 1436984488744336,
1738  761188534613978
1739 #else
1740  24949256, 6376279, 39642383, 25379823, 48462709, 23623825, 33543568, 21412737,
1741  3569626, 11342593
1742 #endif
1743  }},
1744  {{
1745 #if defined(BORINGSSL_CURVE25519_64BIT)
1746  318101947455002, 248138407995851, 1481904195303927, 309278454311197,
1747  1258516760217879
1748 #else
1749  26514970, 4740088, 27912651, 3697550, 19331575, 22082093, 6809885, 4608608, 7325975,
1750  18753361
1751 #endif
1752  }},
1753  {{
1754 #if defined(BORINGSSL_CURVE25519_64BIT)
1755  1275068538599310, 513726919533379, 349926553492294, 688428871968420,
1756  1702400196000666
1757 #else
1758  55490446, 19000001, 42787651, 7655127, 65739590, 5214311, 39708324, 10258389,
1759  49462170, 25367739
1760 #endif
1761  }},
1762  },
1763  {
1764  {{
1765 #if defined(BORINGSSL_CURVE25519_64BIT)
1766  1061864036265233, 961611260325381, 321859632700838, 1045600629959517,
1767  1985130202504038
1768 #else
1769  11431185, 15823007, 26570245, 14329124, 18029990, 4796082, 35662685, 15580663,
1770  9280358, 29580745
1771 #endif
1772  }},
1773  {{
1774 #if defined(BORINGSSL_CURVE25519_64BIT)
1775  1558816436882417, 1962896332636523, 1337709822062152, 1501413830776938,
1776  294436165831932
1777 #else
1778  66948081, 23228174, 44253547, 29249434, 46247496, 19933429, 34297962, 22372809,
1779  51563772, 4387440
1780 #endif
1781  }},
1782  {{
1783 #if defined(BORINGSSL_CURVE25519_64BIT)
1784  818359826554971, 1862173000996177, 626821592884859, 573655738872376,
1785  1749691246745455
1786 #else
1787  46309467, 12194511, 3937617, 27748540, 39954043, 9340369, 42594872, 8548136,
1788  20617071, 26072431
1789 #endif
1790  }},
1791  },
1792  {
1793  {{
1794 #if defined(BORINGSSL_CURVE25519_64BIT)
1795  1988022651432119, 1082111498586040, 1834020786104821, 1454826876423687,
1796  692929915223122
1797 #else
1798  66170039, 29623845, 58394552, 16124717, 24603125, 27329039, 53333511, 21678609,
1799  24345682, 10325460
1800 #endif
1801  }},
1802  {{
1803 #if defined(BORINGSSL_CURVE25519_64BIT)
1804  2146513703733331, 584788900394667, 464965657279958, 2183973639356127,
1805  238371159456790
1806 #else
1807  47253587, 31985546, 44906155, 8714033, 14007766, 6928528, 16318175, 32543743,
1808  4766742, 3552007
1809 #endif
1810  }},
1811  {{
1812 #if defined(BORINGSSL_CURVE25519_64BIT)
1813  1129007025494441, 2197883144413266, 265142755578169, 971864464758890,
1814  1983715884903702
1815 #else
1816  45357481, 16823515, 1351762, 32751011, 63099193, 3950934, 3217514, 14481909,
1817  10988822, 29559670
1818 #endif
1819  }},
1820  },
1821  {
1822  {{
1823 #if defined(BORINGSSL_CURVE25519_64BIT)
1824  1291366624493075, 381456718189114, 1711482489312444, 1815233647702022,
1825  892279782992467
1826 #else
1827  15564307, 19242862, 3101242, 5684148, 30446780, 25503076, 12677126, 27049089,
1828  58813011, 13296004
1829 #endif
1830  }},
1831  {{
1832 #if defined(BORINGSSL_CURVE25519_64BIT)
1833  444548969917454, 1452286453853356, 2113731441506810, 645188273895859,
1834  810317625309512
1835 #else
1836  57666574, 6624295, 36809900, 21640754, 62437882, 31497052, 31521203, 9614054,
1837  37108040, 12074673
1838 #endif
1839  }},
1840  {{
1841 #if defined(BORINGSSL_CURVE25519_64BIT)
1842  2242724082797924, 1373354730327868, 1006520110883049, 2147330369940688,
1843  1151816104883620
1844 #else
1845  4771172, 33419193, 14290748, 20464580, 27992297, 14998318, 65694928, 31997715,
1846  29832612, 17163397
1847 #endif
1848  }},
1849  },
1850  {
1851  {{
1852 #if defined(BORINGSSL_CURVE25519_64BIT)
1853  1745720200383796, 1911723143175317, 2056329390702074, 355227174309849,
1854  879232794371100
1855 #else
1856  7064884, 26013258, 47946901, 28486894, 48217594, 30641695, 25825241, 5293297,
1857  39986204, 13101589
1858 #endif
1859  }},
1860  {{
1861 #if defined(BORINGSSL_CURVE25519_64BIT)
1862  163723479936298, 115424889803150, 1156016391581227, 1894942220753364,
1863  1970549419986329
1864 #else
1865  64810282, 2439669, 59642254, 1719964, 39841323, 17225986, 32512468, 28236839,
1866  36752793, 29363474
1867 #endif
1868  }},
1869  {{
1870 #if defined(BORINGSSL_CURVE25519_64BIT)
1871  681981452362484, 267208874112496, 1374683991933094, 638600984916117, 646178654558546
1872 #else
1873  37102324, 10162315, 33928688, 3981722, 50626726, 20484387, 14413973, 9515896,
1874  19568978, 9628812
1875 #endif
1876  }},
1877  },
1878  {
1879  {{
1880 #if defined(BORINGSSL_CURVE25519_64BIT)
1881  13378654854251, 106237307029567, 1944412051589651, 1841976767925457, 230702819835573
1882 #else
1883  33053803, 199357, 15894591, 1583059, 27380243, 28973997, 49269969, 27447592,
1884  60817077, 3437739
1885 #endif
1886  }},
1887  {{
1888 #if defined(BORINGSSL_CURVE25519_64BIT)
1889  260683893467075, 854060306077237, 913639551980112, 4704576840123, 280254810808712
1890 #else
1891  48129987, 3884492, 19469877, 12726490, 15913552, 13614290, 44147131, 70103, 7463304,
1892  4176122
1893 #endif
1894  }},
1895  {{
1896 #if defined(BORINGSSL_CURVE25519_64BIT)
1897  715374893080287, 1173334812210491, 1806524662079626, 1894596008000979,
1898  398905715033393
1899 #else
1900  39984863, 10659916, 11482427, 17484051, 12771466, 26919315, 34389459, 28231680,
1901  24216881, 5944158
1902 #endif
1903  }},
1904  },
1905  {
1906  {{
1907 #if defined(BORINGSSL_CURVE25519_64BIT)
1908  500026409727661, 1596431288195371, 1420380351989370, 985211561521489,
1909  392444930785633
1910 #else
1911  8894125, 7450974, 64444715, 23788679, 39028346, 21165316, 19345745, 14680796,
1912  11632993, 5847885
1913 #endif
1914  }},
1915  {{
1916 #if defined(BORINGSSL_CURVE25519_64BIT)
1917  2096421546958141, 1922523000950363, 789831022876840, 427295144688779,
1918  320923973161730
1919 #else
1920  26942781, 31239115, 9129563, 28647825, 26024104, 11769399, 55590027, 6367193,
1921  57381634, 4782139
1922 #endif
1923  }},
1924  {{
1925 #if defined(BORINGSSL_CURVE25519_64BIT)
1926  1927770723575450, 1485792977512719, 1850996108474547, 551696031508956,
1927  2126047405475647
1928 #else
1929  19916442, 28726022, 44198159, 22140040, 25606323, 27581991, 33253852, 8220911,
1930  6358847, 31680575
1931 #endif
1932  }},
1933  },
1934  {
1935  {{
1936 #if defined(BORINGSSL_CURVE25519_64BIT)
1937  2112099158080148, 742570803909715, 6484558077432, 1951119898618916, 93090382703416
1938 #else
1939  801428, 31472730, 16569427, 11065167, 29875704, 96627, 7908388, 29073952, 53570360,
1940  1387154
1941 #endif
1942  }},
1943  {{
1944 #if defined(BORINGSSL_CURVE25519_64BIT)
1945  383905201636970, 859946997631870, 855623867637644, 1017125780577795, 794250831877809
1946 #else
1947  19646058, 5720633, 55692158, 12814208, 11607948, 12749789, 14147075, 15156355,
1948  45242033, 11835259
1949 #endif
1950  }},
1951  {{
1952 #if defined(BORINGSSL_CURVE25519_64BIT)
1953  77571826285752, 999304298101753, 487841111777762, 1038031143212339, 339066367948762
1954 #else
1955  19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869,
1956  40548314, 5052482
1957 #endif
1958  }},
1959  },
1960  },
1961  {
1962  {
1963  {{
1964 #if defined(BORINGSSL_CURVE25519_64BIT)
1965  674994775520533, 266035846330789, 826951213393478, 1405007746162285,
1966  1781791018620876
1967 #else
1968  64091413, 10058205, 1980837, 3964243, 22160966, 12322533, 60677741, 20936246,
1969  12228556, 26550755
1970 #endif
1971  }},
1972  {{
1973 #if defined(BORINGSSL_CURVE25519_64BIT)
1974  1001412661522686, 348196197067298, 1666614366723946, 888424995032760,
1975  580747687801357
1976 #else
1977  32944382, 14922211, 44263970, 5188527, 21913450, 24834489, 4001464, 13238564,
1978  60994061, 8653814
1979 #endif
1980  }},
1981  {{
1982 #if defined(BORINGSSL_CURVE25519_64BIT)
1983  1939560076207777, 1409892634407635, 552574736069277, 383854338280405,
1984  190706709864139
1985 #else
1986  22865569, 28901697, 27603667, 21009037, 14348957, 8234005, 24808405, 5719875,
1987  28483275, 2841751
1988 #endif
1989  }},
1990  },
1991  {
1992  {{
1993 #if defined(BORINGSSL_CURVE25519_64BIT)
1994  2177087163428741, 1439255351721944, 1208070840382793, 2230616362004769,
1995  1396886392021913
1996 #else
1997  50687877, 32441126, 66781144, 21446575, 21886281, 18001658, 65220897, 33238773,
1998  19932057, 20815229
1999 #endif
2000  }},
2001  {{
2002 #if defined(BORINGSSL_CURVE25519_64BIT)
2003  676962063230039, 1880275537148808, 2046721011602706, 888463247083003,
2004  1318301552024067
2005 #else
2006  55452759, 10087520, 58243976, 28018288, 47830290, 30498519, 3999227, 13239134,
2007  62331395, 19644223
2008 #endif
2009  }},
2010  {{
2011 #if defined(BORINGSSL_CURVE25519_64BIT)
2012  1466980508178206, 617045217998949, 652303580573628, 757303753529064, 207583137376902
2013 #else
2014  1382174, 21859713, 17266789, 9194690, 53784508, 9720080, 20403944, 11284705,
2015  53095046, 3093229
2016 #endif
2017  }},
2018  },
2019  {
2020  {{
2021 #if defined(BORINGSSL_CURVE25519_64BIT)
2022  1511056752906902, 105403126891277, 493434892772846, 1091943425335976,
2023  1802717338077427
2024 #else
2025  16650902, 22516500, 66044685, 1570628, 58779118, 7352752, 66806440, 16271224,
2026  43059443, 26862581
2027 #endif
2028  }},
2029  {{
2030 #if defined(BORINGSSL_CURVE25519_64BIT)
2031  1853982405405128, 1878664056251147, 1528011020803992, 1019626468153565,
2032  1128438412189035
2033 #else
2034  45197768, 27626490, 62497547, 27994275, 35364760, 22769138, 24123613, 15193618,
2035  45456747, 16815042
2036 #endif
2037  }},
2038  {{
2039 #if defined(BORINGSSL_CURVE25519_64BIT)
2040  1963939888391106, 293456433791664, 697897559513649, 985882796904380, 796244541237972
2041 #else
2042  57172930, 29264984, 41829040, 4372841, 2087473, 10399484, 31870908, 14690798,
2043  17361620, 11864968
2044 #endif
2045  }},
2046  },
2047  {
2048  {{
2049 #if defined(BORINGSSL_CURVE25519_64BIT)
2050  416770998629779, 389655552427054, 1314476859406756, 1749382513022778,
2051  1161905598739491
2052 #else
2053  55801235, 6210371, 13206574, 5806320, 38091172, 19587231, 54777658, 26067830,
2054  41530403, 17313742
2055 #endif
2056  }},
2057  {{
2058 #if defined(BORINGSSL_CURVE25519_64BIT)
2059  1428358296490651, 1027115282420478, 304840698058337, 441410174026628,
2060  1819358356278573
2061 #else
2062  14668443, 21284197, 26039038, 15305210, 25515617, 4542480, 10453892, 6577524,
2063  9145645, 27110552
2064 #endif
2065  }},
2066  {{
2067 #if defined(BORINGSSL_CURVE25519_64BIT)
2068  204943430200135, 1554861433819175, 216426658514651, 264149070665950,
2069  2047097371738319
2070 #else
2071  5974855, 3053895, 57675815, 23169240, 35243739, 3225008, 59136222, 3936127,
2072  61456591, 30504127
2073 #endif
2074  }},
2075  },
2076  {
2077  {{
2078 #if defined(BORINGSSL_CURVE25519_64BIT)
2079  1934415182909034, 1393285083565062, 516409331772960, 1157690734993892,
2080  121039666594268
2081 #else
2082  30625386, 28825032, 41552902, 20761565, 46624288, 7695098, 17097188, 17250936,
2083  39109084, 1803631
2084 #endif
2085  }},
2086  {{
2087 #if defined(BORINGSSL_CURVE25519_64BIT)
2088  662035583584445, 286736105093098, 1131773000510616, 818494214211439, 472943792054479
2089 #else
2090  63555773, 9865098, 61880298, 4272700, 61435032, 16864731, 14911343, 12196514,
2091  45703375, 7047411
2092 #endif
2093  }},
2094  {{
2095 #if defined(BORINGSSL_CURVE25519_64BIT)
2096  665784778135882, 1893179629898606, 808313193813106, 276797254706413,
2097  1563426179676396
2098 #else
2099  20093258, 9920966, 55970670, 28210574, 13161586, 12044805, 34252013, 4124600,
2100  34765036, 23296865
2101 #endif
2102  }},
2103  },
2104  {
2105  {{
2106 #if defined(BORINGSSL_CURVE25519_64BIT)
2107  945205108984232, 526277562959295, 1324180513733566, 1666970227868664,
2108  153547609289173
2109 #else
2110  46320040, 14084653, 53577151, 7842146, 19119038, 19731827, 4752376, 24839792,
2111  45429205, 2288037
2112 #endif
2113  }},
2114  {{
2115 #if defined(BORINGSSL_CURVE25519_64BIT)
2116  2031433403516252, 203996615228162, 170487168837083, 981513604791390, 843573964916831
2117 #else
2118  40289628, 30270716, 29965058, 3039786, 52635099, 2540456, 29457502, 14625692,
2119  42289247, 12570231
2120 #endif
2121  }},
2122  {{
2123 #if defined(BORINGSSL_CURVE25519_64BIT)
2124  1476570093962618, 838514669399805, 1857930577281364, 2017007352225784,
2125  317085545220047
2126 #else
2127  66045306, 22002608, 16920317, 12494842, 1278292, 27685323, 45948920, 30055751,
2128  55134159, 4724942
2129 #endif
2130  }},
2131  },
2132  {
2133  {{
2134 #if defined(BORINGSSL_CURVE25519_64BIT)
2135  1461557121912842, 1600674043318359, 2157134900399597, 1670641601940616,
2136  127765583803283
2137 #else
2138  17960970, 21778898, 62967895, 23851901, 58232301, 32143814, 54201480, 24894499,
2139  37532563, 1903855
2140 #endif
2141  }},
2142  {{
2143 #if defined(BORINGSSL_CURVE25519_64BIT)
2144  1293543509393474, 2143624609202546, 1058361566797508, 214097127393994,
2145  946888515472729
2146 #else
2147  23134274, 19275300, 56426866, 31942495, 20684484, 15770816, 54119114, 3190295,
2148  26955097, 14109738
2149 #endif
2150  }},
2151  {{
2152 #if defined(BORINGSSL_CURVE25519_64BIT)
2153  357067959932916, 1290876214345711, 521245575443703, 1494975468601005,
2154  800942377643885
2155 #else
2156  15308788, 5320727, 36995055, 19235554, 22902007, 7767164, 29425325, 22276870,
2157  31960941, 11934971
2158 #endif
2159  }},
2160  },
2161  {
2162  {{
2163 #if defined(BORINGSSL_CURVE25519_64BIT)
2164  566116659100033, 820247422481740, 994464017954148, 327157611686365, 92591318111744
2165 #else
2166  39713153, 8435795, 4109644, 12222639, 42480996, 14818668, 20638173, 4875028,
2167  10491392, 1379718
2168 #endif
2169  }},
2170  {{
2171 #if defined(BORINGSSL_CURVE25519_64BIT)
2172  617256647603209, 1652107761099439, 1857213046645471, 1085597175214970,
2173  817432759830522
2174 #else
2175  53949449, 9197840, 3875503, 24618324, 65725151, 27674630, 33518458, 16176658,
2176  21432314, 12180697
2177 #endif
2178  }},
2179  {{
2180 #if defined(BORINGSSL_CURVE25519_64BIT)
2181  771808161440705, 1323510426395069, 680497615846440, 851580615547985,
2182  1320806384849017
2183 #else
2184  55321537, 11500837, 13787581, 19721842, 44678184, 10140204, 1465425, 12689540,
2185  56807545, 19681548
2186 #endif
2187  }},
2188  },
2189  },
2190  {
2191  {
2192  {{
2193 #if defined(BORINGSSL_CURVE25519_64BIT)
2194  1219260086131915, 647169006596815, 79601124759706, 2161724213426748, 404861897060198
2195 #else
2196  5414091, 18168391, 46101199, 9643569, 12834970, 1186149, 64485948, 32212200,
2197  26128230, 6032912
2198 #endif
2199  }},
2200  {{
2201 #if defined(BORINGSSL_CURVE25519_64BIT)
2202  1327968293887866, 1335500852943256, 1401587164534264, 558137311952440,
2203  1551360549268902
2204 #else
2205  40771450, 19788269, 32496024, 19900513, 17847800, 20885276, 3604024, 8316894,
2206  41233830, 23117073
2207 #endif
2208  }},
2209  {{
2210 #if defined(BORINGSSL_CURVE25519_64BIT)
2211  417621685193956, 1429953819744454, 396157358457099, 1940470778873255,
2212  214000046234152
2213 #else
2214  3296484, 6223048, 24680646, 21307972, 44056843, 5903204, 58246567, 28915267,
2215  12376616, 3188849
2216 #endif
2217  }},
2218  },
2219  {
2220  {{
2221 #if defined(BORINGSSL_CURVE25519_64BIT)
2222  1268047918491973, 2172375426948536, 1533916099229249, 1761293575457130,
2223  1590622667026765
2224 #else
2225  29190469, 18895386, 27549112, 32370916, 3520065, 22857131, 32049514, 26245319,
2226  50999629, 23702124
2227 #endif
2228  }},
2229  {{
2230 #if defined(BORINGSSL_CURVE25519_64BIT)
2231  1627072914981959, 2211603081280073, 1912369601616504, 1191770436221309,
2232  2187309757525860
2233 #else
2234  52364359, 24245275, 735817, 32955454, 46701176, 28496527, 25246077, 17758763,
2235  18640740, 32593455
2236 #endif
2237  }},
2238  {{
2239 #if defined(BORINGSSL_CURVE25519_64BIT)
2240  1149147819689533, 378692712667677, 828475842424202, 2218619146419342, 70688125792186
2241 #else
2242  60180029, 17123636, 10361373, 5642961, 4910474, 12345252, 35470478, 33060001,
2243  10530746, 1053335
2244 #endif
2245  }},
2246  },
2247  {
2248  {{
2249 #if defined(BORINGSSL_CURVE25519_64BIT)
2250  1299739417079761, 1438616663452759, 1536729078504412, 2053896748919838,
2251  1008421032591246
2252 #else
2253  37842897, 19367626, 53570647, 21437058, 47651804, 22899047, 35646494, 30605446,
2254  24018830, 15026644
2255 #endif
2256  }},
2257  {{
2258 #if defined(BORINGSSL_CURVE25519_64BIT)
2259  2040723824657366, 399555637875075, 632543375452995, 872649937008051,
2260  1235394727030233
2261 #else
2262  44516310, 30409154, 64819587, 5953842, 53668675, 9425630, 25310643, 13003497,
2263  64794073, 18408815
2264 #endif
2265  }},
2266  {{
2267 #if defined(BORINGSSL_CURVE25519_64BIT)
2268  2211311599327900, 2139787259888175, 938706616835350, 12609661139114,
2269  2081897930719789
2270 #else
2271  39688860, 32951110, 59064879, 31885314, 41016598, 13987818, 39811242, 187898,
2272  43942445, 31022696
2273 #endif
2274  }},
2275  },
2276  {
2277  {{
2278 #if defined(BORINGSSL_CURVE25519_64BIT)
2279  1324994503390450, 336982330582631, 1183998925654177, 1091654665913274,
2280  48727673971319
2281 #else
2282  45364466, 19743956, 1844839, 5021428, 56674465, 17642958, 9716666, 16266922,
2283  62038647, 726098
2284 #endif
2285  }},
2286  {{
2287 #if defined(BORINGSSL_CURVE25519_64BIT)
2288  1845522914617879, 1222198248335542, 150841072760134, 1927029069940982,
2289  1189913404498011
2290 #else
2291  29370903, 27500434, 7334070, 18212173, 9385286, 2247707, 53446902, 28714970,
2292  30007387, 17731091
2293 #endif
2294  }},
2295  {{
2296 #if defined(BORINGSSL_CURVE25519_64BIT)
2297  1079559557592645, 2215338383666441, 1903569501302605, 49033973033940,
2298  305703433934152
2299 #else
2300  66172485, 16086690, 23751945, 33011114, 65941325, 28365395, 9137108, 730663,
2301  9835848, 4555336
2302 #endif
2303  }},
2304  },
2305  {
2306  {{
2307 #if defined(BORINGSSL_CURVE25519_64BIT)
2308  94653405416909, 1386121349852999, 1062130477891762, 36553947479274, 833669648948846
2309 #else
2310  43732429, 1410445, 44855111, 20654817, 30867634, 15826977, 17693930, 544696,
2311  55123566, 12422645
2312 #endif
2313  }},
2314  {{
2315 #if defined(BORINGSSL_CURVE25519_64BIT)
2316  1432015813136298, 440364795295369, 1395647062821501, 1976874522764578,
2317  934452372723352
2318 #else
2319  31117226, 21338698, 53606025, 6561946, 57231997, 20796761, 61990178, 29457725,
2320  29120152, 13924425
2321 #endif
2322  }},
2323  {{
2324 #if defined(BORINGSSL_CURVE25519_64BIT)
2325  1296625309219774, 2068273464883862, 1858621048097805, 1492281814208508,
2326  2235868981918946
2327 #else
2328  49707966, 19321222, 19675798, 30819676, 56101901, 27695611, 57724924, 22236731,
2329  7240930, 33317044
2330 #endif
2331  }},
2332  },
2333  {
2334  {{
2335 #if defined(BORINGSSL_CURVE25519_64BIT)
2336  1490330266465570, 1858795661361448, 1436241134969763, 294573218899647,
2337  1208140011028933
2338 #else
2339  35747106, 22207651, 52101416, 27698213, 44655523, 21401660, 1222335, 4389483,
2340  3293637, 18002689
2341 #endif
2342  }},
2343  {{
2344 #if defined(BORINGSSL_CURVE25519_64BIT)
2345  1282462923712748, 741885683986255, 2027754642827561, 518989529541027,
2346  1826610009555945
2347 #else
2348  50424044, 19110186, 11038543, 11054958, 53307689, 30215898, 42789283, 7733546,
2349  12796905, 27218610
2350 #endif
2351  }},
2352  {{
2353 #if defined(BORINGSSL_CURVE25519_64BIT)
2354  1525827120027511, 723686461809551, 1597702369236987, 244802101764964,
2355  1502833890372311
2356 #else
2357  58349431, 22736595, 41689999, 10783768, 36493307, 23807620, 38855524, 3647835,
2358  3222231, 22393970
2359 #endif
2360  }},
2361  },
2362  {
2363  {{
2364 #if defined(BORINGSSL_CURVE25519_64BIT)
2365  113622036244513, 1233740067745854, 674109952278496, 2114345180342965,
2366  166764512856263
2367 #else
2368  18606113, 1693100, 41660478, 18384159, 4112352, 10045021, 23603893, 31506198,
2369  59558087, 2484984
2370 #endif
2371  }},
2372  {{
2373 #if defined(BORINGSSL_CURVE25519_64BIT)
2374  2041668749310338, 2184405322203901, 1633400637611036, 2110682505536899,
2375  2048144390084644
2376 #else
2377  9255298, 30423235, 54952701, 32550175, 13098012, 24339566, 16377219, 31451620,
2378  47306788, 30519729
2379 #endif
2380  }},
2381  {{
2382 #if defined(BORINGSSL_CURVE25519_64BIT)
2383  503058759232932, 760293024620937, 2027152777219493, 666858468148475,
2384  1539184379870952
2385 #else
2386  44379556, 7496159, 61366665, 11329248, 19991973, 30206930, 35390715, 9936965,
2387  37011176, 22935634
2388 #endif
2389  }},
2390  },
2391  {
2392  {{
2393 #if defined(BORINGSSL_CURVE25519_64BIT)
2394  1916168475367211, 915626432541343, 883217071712575, 363427871374304,
2395  1976029821251593
2396 #else
2397  21878571, 28553135, 4338335, 13643897, 64071999, 13160959, 19708896, 5415497,
2398  59748361, 29445138
2399 #endif
2400  }},
2401  {{
2402 #if defined(BORINGSSL_CURVE25519_64BIT)
2403  678039535434506, 570587290189340, 1605302676614120, 2147762562875701,
2404  1706063797091704
2405 #else
2406  27736842, 10103576, 12500508, 8502413, 63695848, 23920873, 10436917, 32004156,
2407  43449720, 25422331
2408 #endif
2409  }},
2410  {{
2411 #if defined(BORINGSSL_CURVE25519_64BIT)
2412  1439489648586438, 2194580753290951, 832380563557396, 561521973970522,
2413  584497280718389
2414 #else
2415  19492550, 21450067, 37426887, 32701801, 63900692, 12403436, 30066266, 8367329,
2416  13243957, 8709688
2417 #endif
2418  }},
2419  },
2420  },
2421  {
2422  {
2423  {{
2424 #if defined(BORINGSSL_CURVE25519_64BIT)
2425  187989455492609, 681223515948275, 1933493571072456, 1872921007304880,
2426  488162364135671
2427 #else
2428  12015105, 2801261, 28198131, 10151021, 24818120, 28811299, 55914672, 27908697,
2429  5150967, 7274186
2430 #endif
2431  }},
2432  {{
2433 #if defined(BORINGSSL_CURVE25519_64BIT)
2434  1413466089534451, 410844090765630, 1397263346404072, 408227143123410,
2435  1594561803147811
2436 #else
2437  2831347, 21062286, 1478974, 6122054, 23825128, 20820846, 31097298, 6083058,
2438  31021603, 23760822
2439 #endif
2440  }},
2441  {{
2442 #if defined(BORINGSSL_CURVE25519_64BIT)
2443  2102170800973153, 719462588665004, 1479649438510153, 1097529543970028,
2444  1302363283777685
2445 #else
2446  64578913, 31324785, 445612, 10720828, 53259337, 22048494, 43601132, 16354464,
2447  15067285, 19406725
2448 #endif
2449  }},
2450  },
2451  {
2452  {{
2453 #if defined(BORINGSSL_CURVE25519_64BIT)
2454  942065717847195, 1069313679352961, 2007341951411051, 70973416446291,
2455  1419433790163706
2456 #else
2457  7840923, 14037873, 33744001, 15934015, 66380651, 29911725, 21403987, 1057586,
2458  47729402, 21151211
2459 #endif
2460  }},
2461  {{
2462 #if defined(BORINGSSL_CURVE25519_64BIT)
2463  1146565545556377, 1661971299445212, 406681704748893, 564452436406089,
2464  1109109865829139
2465 #else
2466  915865, 17085158, 15608284, 24765302, 42751837, 6060029, 49737545, 8410996,
2467  59888403, 16527024
2468 #endif
2469  }},
2470  {{
2471 #if defined(BORINGSSL_CURVE25519_64BIT)
2472  2214421081775077, 1165671861210569, 1890453018796184, 3556249878661, 442116172656317
2473 #else
2474  32922597, 32997445, 20336073, 17369864, 10903704, 28169945, 16957573, 52992,
2475  23834301, 6588044
2476 #endif
2477  }},
2478  },
2479  {
2480  {{
2481 #if defined(BORINGSSL_CURVE25519_64BIT)
2482  753830546620811, 1666955059895019, 1530775289309243, 1119987029104146,
2483  2164156153857580
2484 #else
2485  32752011, 11232950, 3381995, 24839566, 22652987, 22810329, 17159698, 16689107,
2486  46794284, 32248439
2487 #endif
2488  }},
2489  {{
2490 #if defined(BORINGSSL_CURVE25519_64BIT)
2491  615171919212796, 1523849404854568, 854560460547503, 2067097370290715,
2492  1765325848586042
2493 #else
2494  62419196, 9166775, 41398568, 22707125, 11576751, 12733943, 7924251, 30802151,
2495  1976122, 26305405
2496 #endif
2497  }},
2498  {{
2499 #if defined(BORINGSSL_CURVE25519_64BIT)
2500  1094538949313667, 1796592198908825, 870221004284388, 2025558921863561,
2501  1699010892802384
2502 #else
2503  21251203, 16309901, 64125849, 26771309, 30810596, 12967303, 156041, 30183180,
2504  12331344, 25317235
2505 #endif
2506  }},
2507  },
2508  {
2509  {{
2510 #if defined(BORINGSSL_CURVE25519_64BIT)
2511  1951351290725195, 1916457206844795, 198025184438026, 1909076887557595,
2512  1938542290318919
2513 #else
2514  8651595, 29077400, 51023227, 28557437, 13002506, 2950805, 29054427, 28447462,
2515  10008135, 28886531
2516 #endif
2517  }},
2518  {{
2519 #if defined(BORINGSSL_CURVE25519_64BIT)
2520  1014323197538413, 869150639940606, 1756009942696599, 1334952557375672,
2521  1544945379082874
2522 #else
2523  31486061, 15114593, 52847614, 12951353, 14369431, 26166587, 16347320, 19892343,
2524  8684154, 23021480
2525 #endif
2526  }},
2527  {{
2528 #if defined(BORINGSSL_CURVE25519_64BIT)
2529  764055910920305, 1603590757375439, 146805246592357, 1843313433854297,
2530  954279890114939
2531 #else
2532  19443825, 11385320, 24468943, 23895364, 43189605, 2187568, 40845657, 27467510,
2533  31316347, 14219878
2534 #endif
2535  }},
2536  },
2537  {
2538  {{
2539 #if defined(BORINGSSL_CURVE25519_64BIT)
2540  80113526615750, 764536758732259, 1055139345100233, 469252651759390, 617897512431515
2541 #else
2542  38514374, 1193784, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409,
2543  29126555, 9207390
2544 #endif
2545  }},
2546  {{
2547 #if defined(BORINGSSL_CURVE25519_64BIT)
2548  74497112547268, 740094153192149, 1745254631717581, 727713886503130, 1283034364416928
2549 #else
2550  32382916, 1110093, 18477781, 11028262, 39697101, 26006320, 62128346, 10843781,
2551  59151264, 19118701
2552 #endif
2553  }},
2554  {{
2555 #if defined(BORINGSSL_CURVE25519_64BIT)
2556  525892105991110, 1723776830270342, 1476444848991936, 573789489857760,
2557  133864092632978
2558 #else
2559  2814918, 7836403, 27519878, 25686276, 46214848, 22000742, 45614304, 8550129,
2560  28346258, 1994730
2561 #endif
2562  }},
2563  },
2564  {
2565  {{
2566 #if defined(BORINGSSL_CURVE25519_64BIT)
2567  542611720192581, 1986812262899321, 1162535242465837, 481498966143464,
2568  544600533583622
2569 #else
2570  47530565, 8085544, 53108345, 29605809, 2785837, 17323125, 47591912, 7174893,
2571  22628102, 8115180
2572 #endif
2573  }},
2574  {{
2575 #if defined(BORINGSSL_CURVE25519_64BIT)
2576  64123227344372, 1239927720647794, 1360722983445904, 222610813654661, 62429487187991
2577 #else
2578  36703732, 955510, 55975026, 18476362, 34661776, 20276352, 41457285, 3317159,
2579  57165847, 930271
2580 #endif
2581  }},
2582  {{
2583 #if defined(BORINGSSL_CURVE25519_64BIT)
2584  1793193323953132, 91096687857833, 70945970938921, 2158587638946380, 1537042406482111
2585 #else
2586  51805164, 26720662, 28856489, 1357446, 23421993, 1057177, 24091212, 32165462,
2587  44343487, 22903716
2588 #endif
2589  }},
2590  },
2591  {
2592  {{
2593 #if defined(BORINGSSL_CURVE25519_64BIT)
2594  1895854577604609, 1394895708949416, 1728548428495944, 1140864900240149,
2595  563645333603061
2596 #else
2597  44357633, 28250434, 54201256, 20785565, 51297352, 25757378, 52269845, 17000211,
2598  65241845, 8398969
2599 #endif
2600  }},
2601  {{
2602 #if defined(BORINGSSL_CURVE25519_64BIT)
2603  141358280486863, 91435889572504, 1087208572552643, 1829599652522921,
2604  1193307020643647
2605 #else
2606  35139535, 2106402, 62372504, 1362500, 12813763, 16200670, 22981545, 27263159,
2607  18009407, 17781660
2608 #endif
2609  }},
2610  {{
2611 #if defined(BORINGSSL_CURVE25519_64BIT)
2612  1611230858525381, 950720175540785, 499589887488610, 2001656988495019, 88977313255908
2613 #else
2614  49887941, 24009210, 39324209, 14166834, 29815394, 7444469, 29551787, 29827013,
2615  19288548, 1325865
2616 #endif
2617  }},
2618  },
2619  {
2620  {{
2621 #if defined(BORINGSSL_CURVE25519_64BIT)
2622  1189080501479658, 2184348804772597, 1040818725742319, 2018318290311834,
2623  1712060030915354
2624 #else
2625  15100138, 17718680, 43184885, 32549333, 40658671, 15509407, 12376730, 30075286,
2626  33166106, 25511682
2627 #endif
2628  }},
2629  {{
2630 #if defined(BORINGSSL_CURVE25519_64BIT)
2631  873966876953756, 1090638350350440, 1708559325189137, 672344594801910,
2632  1320437969700239
2633 #else
2634  20909212, 13023121, 57899112, 16251777, 61330449, 25459517, 12412150, 10018715,
2635  2213263, 19676059
2636 #endif
2637  }},
2638  {{
2639 #if defined(BORINGSSL_CURVE25519_64BIT)
2640  1508590048271766, 1131769479776094, 101550868699323, 428297785557897,
2641  561791648661744
2642 #else
2643  32529814, 22479743, 30361438, 16864679, 57972923, 1513225, 22922121, 6382134,
2644  61341936, 8371347
2645 #endif
2646  }},
2647  },
2648  },
2649  {
2650  {
2651  {{
2652 #if defined(BORINGSSL_CURVE25519_64BIT)
2653  756417570499462, 237882279232602, 2136263418594016, 1701968045454886,
2654  703713185137472
2655 #else
2656  9923462, 11271500, 12616794, 3544722, 37110496, 31832805, 12891686, 25361300,
2657  40665920, 10486143
2658 #endif
2659  }},
2660  {{
2661 #if defined(BORINGSSL_CURVE25519_64BIT)
2662  1781187809325462, 1697624151492346, 1381393690939988, 175194132284669,
2663  1483054666415238
2664 #else
2665  44511638, 26541766, 8587002, 25296571, 4084308, 20584370, 361725, 2610596, 43187334,
2666  22099236
2667 #endif
2668  }},
2669  {{
2670 #if defined(BORINGSSL_CURVE25519_64BIT)
2671  2175517777364616, 708781536456029, 955668231122942, 1967557500069555,
2672  2021208005604118
2673 #else
2674  5408392, 32417741, 62139741, 10561667, 24145918, 14240566, 31319731, 29318891,
2675  19985174, 30118346
2676 #endif
2677  }},
2678  },
2679  {
2680  {{
2681 #if defined(BORINGSSL_CURVE25519_64BIT)
2682  1115135966606887, 224217372950782, 915967306279222, 593866251291540, 561747094208006
2683 #else
2684  53114407, 16616820, 14549246, 3341099, 32155958, 13648976, 49531796, 8849296, 65030,
2685  8370684
2686 #endif
2687  }},
2688  {{
2689 #if defined(BORINGSSL_CURVE25519_64BIT)
2690  1443163092879439, 391875531646162, 2180847134654632, 464538543018753,
2691  1594098196837178
2692 #else
2693  58787919, 21504805, 31204562, 5839400, 46481576, 32497154, 47665921, 6922163,
2694  12743482, 23753914
2695 #endif
2696  }},
2697  {{
2698 #if defined(BORINGSSL_CURVE25519_64BIT)
2699  850858855888869, 319436476624586, 327807784938441, 740785849558761, 17128415486016
2700 #else
2701  64747493, 12678784, 28815050, 4759974, 43215817, 4884716, 23783145, 11038569,
2702  18800704, 255233
2703 #endif
2704  }},
2705  },
2706  {
2707  {{
2708 #if defined(BORINGSSL_CURVE25519_64BIT)
2709  2132756334090067, 536247820155645, 48907151276867, 608473197600695, 1261689545022784
2710 #else
2711  61839187, 31780545, 13957885, 7990715, 23132995, 728773, 13393847, 9066957,
2712  19258688, 18800639
2713 #endif
2714  }},
2715  {{
2716 #if defined(BORINGSSL_CURVE25519_64BIT)
2717  1525176236978354, 974205476721062, 293436255662638, 148269621098039, 137961998433963
2718 #else
2719  64172210, 22726896, 56676774, 14516792, 63468078, 4372540, 35173943, 2209389,
2720  65584811, 2055793
2721 #endif
2722  }},
2723  {{
2724 #if defined(BORINGSSL_CURVE25519_64BIT)
2725  1121075518299410, 2071745529082111, 1265567917414828, 1648196578317805,
2726  496232102750820
2727 #else
2728  580882, 16705327, 5468415, 30871414, 36182444, 18858431, 59905517, 24560042,
2729  37087844, 7394434
2730 #endif
2731  }},
2732  },
2733  {
2734  {{
2735 #if defined(BORINGSSL_CURVE25519_64BIT)
2736  122321229299801, 1022922077493685, 2001275453369484, 2017441881607947,
2737  993205880778002
2738 #else
2739  23838809, 1822728, 51370421, 15242726, 8318092, 29821328, 45436683, 30062226,
2740  62287122, 14799920
2741 #endif
2742  }},
2743  {{
2744 #if defined(BORINGSSL_CURVE25519_64BIT)
2745  654925550560074, 1168810995576858, 575655959430926, 905758704861388, 496774564663534
2746 #else
2747  13345610, 9759151, 3371034, 17416641, 16353038, 8577942, 31129804, 13496856,
2748  58052846, 7402517
2749 #endif
2750  }},
2751  {{
2752 #if defined(BORINGSSL_CURVE25519_64BIT)
2753  1954109525779738, 2117022646152485, 338102630417180, 1194140505732026,
2754  107881734943492
2755 #else
2756  2286874, 29118501, 47066405, 31546095, 53412636, 5038121, 11006906, 17794080,
2757  8205060, 1607563
2758 #endif
2759  }},
2760  },
2761  {
2762  {{
2763 #if defined(BORINGSSL_CURVE25519_64BIT)
2764  1714785840001267, 2036500018681589, 1876380234251966, 2056717182974196,
2765  1645855254384642
2766 #else
2767  14414067, 25552300, 3331829, 30346215, 22249150, 27960244, 18364660, 30647474,
2768  30019586, 24525154
2769 #endif
2770  }},
2771  {{
2772 #if defined(BORINGSSL_CURVE25519_64BIT)
2773  106431476499341, 62482972120563, 1513446655109411, 807258751769522, 538491469114
2774 #else
2775  39420813, 1585952, 56333811, 931068, 37988643, 22552112, 52698034, 12029092,
2776  9944378, 8024
2777 #endif
2778  }},
2779  {{
2780 #if defined(BORINGSSL_CURVE25519_64BIT)
2781  2002850762893643, 1243624520538135, 1486040410574605, 2184752338181213,
2782  378495998083531
2783 #else
2784  4368715, 29844802, 29874199, 18531449, 46878477, 22143727, 50994269, 32555346,
2785  58966475, 5640029
2786 #endif
2787  }},
2788  },
2789  {
2790  {{
2791 #if defined(BORINGSSL_CURVE25519_64BIT)
2792  922510868424903, 1089502620807680, 402544072617374, 1131446598479839,
2793  1290278588136533
2794 #else
2795  10299591, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, 16859868,
2796  15219797, 19226649
2797 #endif
2798  }},
2799  {{
2800 #if defined(BORINGSSL_CURVE25519_64BIT)
2801  1867998812076769, 715425053580701, 39968586461416, 2173068014586163, 653822651801304
2802 #else
2803  27425505, 27835351, 3055005, 10660664, 23458024, 595578, 51710259, 32381236,
2804  48766680, 9742716
2805 #endif
2806  }},
2807  {{
2808 #if defined(BORINGSSL_CURVE25519_64BIT)
2809  162892278589453, 182585796682149, 75093073137630, 497037941226502, 133871727117371
2810 #else
2811  6744077, 2427284, 26042789, 2720740, 66260958, 1118973, 32324614, 7406442, 12420155,
2812  1994844
2813 #endif
2814  }},
2815  },
2816  {
2817  {{
2818 #if defined(BORINGSSL_CURVE25519_64BIT)
2819  1914596576579670, 1608999621851578, 1987629837704609, 1519655314857977,
2820  1819193753409464
2821 #else
2822  14012502, 28529712, 48724410, 23975962, 40623521, 29617992, 54075385, 22644628,
2823  24319928, 27108099
2824 #endif
2825  }},
2826  {{
2827 #if defined(BORINGSSL_CURVE25519_64BIT)
2828  1949315551096831, 1069003344994464, 1939165033499916, 1548227205730856,
2829  1933767655861407
2830 #else
2831  16412671, 29047065, 10772640, 15929391, 50040076, 28895810, 10555944, 23070383,
2832  37006495, 28815383
2833 #endif
2834  }},
2835  {{
2836 #if defined(BORINGSSL_CURVE25519_64BIT)
2837  1730519386931635, 1393284965610134, 1597143735726030, 416032382447158,
2838  1429665248828629
2839 #else
2840  22397363, 25786748, 57815702, 20761563, 17166286, 23799296, 39775798, 6199365,
2841  21880021, 21303672
2842 #endif
2843  }},
2844  },
2845  {
2846  {{
2847 #if defined(BORINGSSL_CURVE25519_64BIT)
2848  360275475604565, 547835731063078, 215360904187529, 596646739879007, 332709650425085
2849 #else
2850  62825557, 5368522, 35991846, 8163388, 36785801, 3209127, 16557151, 8890729, 8840445,
2851  4957760
2852 #endif
2853  }},
2854  {{
2855 #if defined(BORINGSSL_CURVE25519_64BIT)
2856  47602113726801, 1522314509708010, 437706261372925, 814035330438027, 335930650933545
2857 #else
2858  51661137, 709326, 60189418, 22684253, 37330941, 6522331, 45388683, 12130071,
2859  52312361, 5005756
2860 #endif
2861  }},
2862  {{
2863 #if defined(BORINGSSL_CURVE25519_64BIT)
2864  1291597595523886, 1058020588994081, 402837842324045, 1363323695882781,
2865  2105763393033193
2866 #else
2867  64994094, 19246303, 23019041, 15765735, 41839181, 6002751, 10183197, 20315106,
2868  50713577, 31378319
2869 #endif
2870  }},
2871  },
2872  },
2873  {
2874  {
2875  {{
2876 #if defined(BORINGSSL_CURVE25519_64BIT)
2877  109521982566564, 1715257748585139, 1112231216891516, 2046641005101484,
2878  134249157157013
2879 #else
2880  48083108, 1632004, 13466291, 25559332, 43468412, 16573536, 35094956, 30497327,
2881  22208661, 2000468
2882 #endif
2883  }},
2884  {{
2885 #if defined(BORINGSSL_CURVE25519_64BIT)
2886  2156991030936798, 2227544497153325, 1869050094431622, 754875860479115,
2887  1754242344267058
2888 #else
2889  3065054, 32141671, 41510189, 33192999, 49425798, 27851016, 58944651, 11248526,
2890  63417650, 26140247
2891 #endif
2892  }},
2893  {{
2894 #if defined(BORINGSSL_CURVE25519_64BIT)
2895  1846089562873800, 98894784984326, 1412430299204844, 171351226625762,
2896  1100604760929008
2897 #else
2898  10379208, 27508878, 8877318, 1473647, 37817580, 21046851, 16690914, 2553332,
2899  63976176, 16400288
2900 #endif
2901  }},
2902  },
2903  {
2904  {{
2905 #if defined(BORINGSSL_CURVE25519_64BIT)
2906  84172382130492, 499710970700046, 425749630620778, 1762872794206857, 612842602127960
2907 #else
2908  15716668, 1254266, 48636174, 7446273, 58659946, 6344163, 45011593, 26268851,
2909  26894936, 9132066
2910 #endif
2911  }},
2912  {{
2913 #if defined(BORINGSSL_CURVE25519_64BIT)
2914  868309334532756, 1703010512741873, 1952690008738057, 4325269926064, 2071083554962116
2915 #else
2916  24158868, 12938817, 11085297, 25376834, 39045385, 29097348, 36532400, 64451,
2917  60291780, 30861549
2918 #endif
2919  }},
2920  {{
2921 #if defined(BORINGSSL_CURVE25519_64BIT)
2922  523094549451158, 401938899487815, 1407690589076010, 2022387426254453,
2923  158660516411257
2924 #else
2925  13488534, 7794716, 22236231, 5989356, 25426474, 20976224, 2350709, 30135921,
2926  62420857, 2364225
2927 #endif
2928  }},
2929  },
2930  {
2931  {{
2932 #if defined(BORINGSSL_CURVE25519_64BIT)
2933  612867287630009, 448212612103814, 571629077419196, 1466796750919376,
2934  1728478129663858
2935 #else
2936  16335033, 9132434, 25640582, 6678888, 1725628, 8517937, 55301840, 21856974,
2937  15445874, 25756331
2938 #endif
2939  }},
2940  {{
2941 #if defined(BORINGSSL_CURVE25519_64BIT)
2942  1723848973783452, 2208822520534681, 1718748322776940, 1974268454121942,
2943  1194212502258141
2944 #else
2945  29004188, 25687351, 28661401, 32914020, 54314860, 25611345, 31863254, 29418892,
2946  66830813, 17795152
2947 #endif
2948  }},
2949  {{
2950 #if defined(BORINGSSL_CURVE25519_64BIT)
2951  1254114807944608, 977770684047110, 2010756238954993, 1783628927194099,
2952  1525962994408256
2953 #else
2954  60986784, 18687766, 38493958, 14569918, 56250865, 29962602, 10343411, 26578142,
2955  37280576, 22738620
2956 #endif
2957  }},
2958  },
2959  {
2960  {{
2961 #if defined(BORINGSSL_CURVE25519_64BIT)
2962  232464058235826, 1948628555342434, 1835348780427694, 1031609499437291,
2963  64472106918373
2964 #else
2965  27081650, 3463984, 14099042, 29036828, 1616302, 27348828, 29542635, 15372179,
2966  17293797, 960709
2967 #endif
2968  }},
2969  {{
2970 #if defined(BORINGSSL_CURVE25519_64BIT)
2971  767338676040683, 754089548318405, 1523192045639075, 435746025122062, 512692508440385
2972 #else
2973  20263915, 11434237, 61343429, 11236809, 13505955, 22697330, 50997518, 6493121,
2974  47724353, 7639713
2975 #endif
2976  }},
2977  {{
2978 #if defined(BORINGSSL_CURVE25519_64BIT)
2979  1255955808701983, 1700487367990941, 1166401238800299, 1175121994891534,
2980  1190934801395380
2981 #else
2982  64278047, 18715199, 25403037, 25339236, 58791851, 17380732, 18006286, 17510682,
2983  29994676, 17746311
2984 #endif
2985  }},
2986  },
2987  {
2988  {{
2989 #if defined(BORINGSSL_CURVE25519_64BIT)
2990  349144008168292, 1337012557669162, 1475912332999108, 1321618454900458,
2991  47611291904320
2992 #else
2993  9769828, 5202651, 42951466, 19923039, 39057860, 21992807, 42495722, 19693649,
2994  35924288, 709463
2995 #endif
2996  }},
2997  {{
2998 #if defined(BORINGSSL_CURVE25519_64BIT)
2999  877519947135419, 2172838026132651, 272304391224129, 1655143327559984,
3000  886229406429814
3001 #else
3002  12286395, 13076066, 45333675, 32377809, 42105665, 4057651, 35090736, 24663557,
3003  16102006, 13205847
3004 #endif
3005  }},
3006  {{
3007 #if defined(BORINGSSL_CURVE25519_64BIT)
3008  375806028254706, 214463229793940, 572906353144089, 572168269875638, 697556386112979
3009 #else
3010  13733362, 5599946, 10557076, 3195751, 61550873, 8536969, 41568694, 8525971,
3011  10151379, 10394400
3012 #endif
3013  }},
3014  },
3015  {
3016  {{
3017 #if defined(BORINGSSL_CURVE25519_64BIT)
3018  1168827102357844, 823864273033637, 2071538752104697, 788062026895924,
3019  599578340743362
3020 #else
3021  4024660, 17416881, 22436261, 12276534, 58009849, 30868332, 19698228, 11743039,
3022  33806530, 8934413
3023 #endif
3024  }},
3025  {{
3026 #if defined(BORINGSSL_CURVE25519_64BIT)
3027  1948116082078088, 2054898304487796, 2204939184983900, 210526805152138,
3028  786593586607626
3029 #else
3030  51229064, 29029191, 58528116, 30620370, 14634844, 32856154, 57659786, 3137093,
3031  55571978, 11721157
3032 #endif
3033  }},
3034  {{
3035 #if defined(BORINGSSL_CURVE25519_64BIT)
3036  1915320147894736, 156481169009469, 655050471180417, 592917090415421,
3037  2165897438660879
3038 #else
3039  17555920, 28540494, 8268605, 2331751, 44370049, 9761012, 9319229, 8835153, 57903375,
3040  32274386
3041 #endif
3042  }},
3043  },
3044  {
3045  {{
3046 #if defined(BORINGSSL_CURVE25519_64BIT)
3047  1726336468579724, 1119932070398949, 1929199510967666, 33918788322959,
3048  1836837863503150
3049 #else
3050  66647436, 25724417, 20614117, 16688288, 59594098, 28747312, 22300303, 505429,
3051  6108462, 27371017
3052 #endif
3053  }},
3054  {{
3055 #if defined(BORINGSSL_CURVE25519_64BIT)
3056  829996854845988, 217061778005138, 1686565909803640, 1346948817219846,
3057  1723823550730181
3058 #else
3059  62038564, 12367916, 36445330, 3234472, 32617080, 25131790, 29880582, 20071101,
3060  40210373, 25686972
3061 #endif
3062  }},
3063  {{
3064 #if defined(BORINGSSL_CURVE25519_64BIT)
3065  384301494966394, 687038900403062, 2211195391021739, 254684538421383,
3066  1245698430589680
3067 #else
3068  35133562, 5726538, 26934134, 10237677, 63935147, 32949378, 24199303, 3795095,
3069  7592688, 18562353
3070 #endif
3071  }},
3072  },
3073  {
3074  {{
3075 #if defined(BORINGSSL_CURVE25519_64BIT)
3076  1247567493562688, 1978182094455847, 183871474792955, 806570235643435,
3077  288461518067916
3078 #else
3079  21594432, 18590204, 17466407, 29477210, 32537083, 2739898, 6407723, 12018833,
3080  38852812, 4298411
3081 #endif
3082  }},
3083  {{
3084 #if defined(BORINGSSL_CURVE25519_64BIT)
3085  1449077384734201, 38285445457996, 2136537659177832, 2146493000841573,
3086  725161151123125
3087 #else
3088  46458361, 21592935, 39872588, 570497, 3767144, 31836892, 13891941, 31985238,
3089  13717173, 10805743
3090 #endif
3091  }},
3092  {{
3093 #if defined(BORINGSSL_CURVE25519_64BIT)
3094  1201928866368855, 800415690605445, 1703146756828343, 997278587541744,
3095  1858284414104014
3096 #else
3097  52432215, 17910135, 15287173, 11927123, 24177847, 25378864, 66312432, 14860608,
3098  40169934, 27690595
3099 #endif
3100  }},
3101  },
3102  },
3103  {
3104  {
3105  {{
3106 #if defined(BORINGSSL_CURVE25519_64BIT)
3107  356468809648877, 782373916933152, 1718002439402870, 1392222252219254,
3108  663171266061951
3109 #else
3110  12962541, 5311799, 57048096, 11658279, 18855286, 25600231, 13286262, 20745728,
3111  62727807, 9882021
3112 #endif
3113  }},
3114  {{
3115 #if defined(BORINGSSL_CURVE25519_64BIT)
3116  759628738230460, 1012693474275852, 353780233086498, 246080061387552,
3117  2030378857679162
3118 #else
3119  18512060, 11319350, 46985740, 15090308, 18818594, 5271736, 44380960, 3666878,
3120  43141434, 30255002
3121 #endif
3122  }},
3123  {{
3124 #if defined(BORINGSSL_CURVE25519_64BIT)
3125  2040672435071076, 888593182036908, 1298443657189359, 1804780278521327,
3126  354070726137060
3127 #else
3128  60319844, 30408388, 16192428, 13241070, 15898607, 19348318, 57023983, 26893321,
3129  64705764, 5276064
3130 #endif
3131  }},
3132  },
3133  {
3134  {{
3135 #if defined(BORINGSSL_CURVE25519_64BIT)
3136  1894938527423184, 1463213041477277, 474410505497651, 247294963033299,
3137  877975941029128
3138 #else
3139  30169808, 28236784, 26306205, 21803573, 27814963, 7069267, 7152851, 3684982,
3140  1449224, 13082861
3141 #endif
3142  }},
3143  {{
3144 #if defined(BORINGSSL_CURVE25519_64BIT)
3145  207937160991127, 12966911039119, 820997788283092, 1010440472205286, 1701372890140810
3146 #else
3147  10342807, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736,
3148  46092426, 25352431
3149 #endif
3150  }},
3151  {{
3152 #if defined(BORINGSSL_CURVE25519_64BIT)
3153  218882774543183, 533427444716285, 1233243976733245, 435054256891319,
3154  1509568989549904
3155 #else
3156  33958735, 3261607, 22745853, 7948688, 19370557, 18376767, 40936887, 6482813,
3157  56808784, 22494330
3158 #endif
3159  }},
3160  },
3161  {
3162  {{
3163 #if defined(BORINGSSL_CURVE25519_64BIT)
3164  1888838535711826, 1052177758340622, 1213553803324135, 169182009127332,
3165  463374268115872
3166 #else
3167  32869458, 28145887, 25609742, 15678670, 56421095, 18083360, 26112420, 2521008,
3168  44444576, 6904814
3169 #endif
3170  }},
3171  {{
3172 #if defined(BORINGSSL_CURVE25519_64BIT)
3173  299137589460312, 1594371588983567, 868058494039073, 257771590636681,
3174  1805012993142921
3175 #else
3176  29506904, 4457497, 3377935, 23757988, 36598817, 12935079, 1561737, 3841096,
3177  38105225, 26896789
3178 #endif
3179  }},
3180  {{
3181 #if defined(BORINGSSL_CURVE25519_64BIT)
3182  1806842755664364, 2098896946025095, 1356630998422878, 1458279806348064,
3183  347755825962072
3184 #else
3185  10340844, 26924055, 48452231, 31276001, 12621150, 20215377, 30878496, 21730062,
3186  41524312, 5181965
3187 #endif
3188  }},
3189  },
3190  {
3191  {{
3192 #if defined(BORINGSSL_CURVE25519_64BIT)
3193  1402334161391744, 1560083671046299, 1008585416617747, 1147797150908892,
3194  1420416683642459
3195 #else
3196  25940096, 20896407, 17324187, 23247058, 58437395, 15029093, 24396252, 17103510,
3197  64786011, 21165857
3198 #endif
3199  }},
3200  {{
3201 #if defined(BORINGSSL_CURVE25519_64BIT)
3202  665506704253369, 273770475169863, 799236974202630, 848328990077558, 1811448782807931
3203 #else
3204  45343161, 9916822, 65808455, 4079497, 66080518, 11909558, 1782390, 12641087,
3205  20603771, 26992690
3206 #endif
3207  }},
3208  {{
3209 #if defined(BORINGSSL_CURVE25519_64BIT)
3210  1468412523962641, 771866649897997, 1931766110147832, 799561180078482,
3211  524837559150077
3212 #else
3213  48226577, 21881051, 24849421, 11501709, 13161720, 28785558, 1925522, 11914390,
3214  4662781, 7820689
3215 #endif
3216  }},
3217  },
3218  {
3219  {{
3220 #if defined(BORINGSSL_CURVE25519_64BIT)
3221  2223212657821850, 630416247363666, 2144451165500328, 816911130947791,
3222  1024351058410032
3223 #else
3224  12241050, 33128450, 8132690, 9393934, 32846760, 31954812, 29749455, 12172924,
3225  16136752, 15264020
3226 #endif
3227  }},
3228  {{
3229 #if defined(BORINGSSL_CURVE25519_64BIT)
3230  1266603897524861, 156378408858100, 1275649024228779, 447738405888420,
3231  253186462063095
3232 #else
3233  56758909, 18873868, 58896884, 2330219, 49446315, 19008651, 10658212, 6671822,
3234  19012087, 3772772
3235 #endif
3236  }},
3237  {{
3238 #if defined(BORINGSSL_CURVE25519_64BIT)
3239  2022215964509735, 136144366993649, 1800716593296582, 1193970603800203,
3240  871675847064218
3241 #else
3242  3753511, 30133366, 10617073, 2028709, 14841030, 26832768, 28718731, 17791548,
3243  20527770, 12988982
3244 #endif
3245  }},
3246  },
3247  {
3248  {{
3249 #if defined(BORINGSSL_CURVE25519_64BIT)
3250  1862751661970328, 851596246739884, 1519315554814041, 1542798466547449,
3251  1417975335901520
3252 #else
3253  52286360, 27757162, 63400876, 12689772, 66209881, 22639565, 42925817, 22989488,
3254  3299664, 21129479
3255 #endif
3256  }},
3257  {{
3258 #if defined(BORINGSSL_CURVE25519_64BIT)
3259  1228168094547481, 334133883362894, 587567568420081, 433612590281181, 603390400373205
3260 #else
3261  50331161, 18301130, 57466446, 4978982, 3308785, 8755439, 6943197, 6461331, 41525717,
3262  8991217
3263 #endif
3264  }},
3265  {{
3266 #if defined(BORINGSSL_CURVE25519_64BIT)
3267  121893973206505, 1843345804916664, 1703118377384911, 497810164760654,
3268  101150811654673
3269 #else
3270  49882601, 1816361, 65435576, 27467992, 31783887, 25378441, 34160718, 7417949,
3271  36866577, 1507264
3272 #endif
3273  }},
3274  },
3275  {
3276  {{
3277 #if defined(BORINGSSL_CURVE25519_64BIT)
3278  458346255946468, 290909935619344, 1452768413850679, 550922875254215,
3279  1537286854336538
3280 #else
3281  29692644, 6829891, 56610064, 4334895, 20945975, 21647936, 38221255, 8209390,
3282  14606362, 22907359
3283 #endif
3284  }},
3285  {{
3286 #if defined(BORINGSSL_CURVE25519_64BIT)
3287  584322311184395, 380661238802118, 114839394528060, 655082270500073, 2111856026034852
3288 #else
3289  63627275, 8707080, 32188102, 5672294, 22096700, 1711240, 34088169, 9761486, 4170404,
3290  31469107
3291 #endif
3292  }},
3293  {{
3294 #if defined(BORINGSSL_CURVE25519_64BIT)
3295  996965581008991, 2148998626477022, 1012273164934654, 1073876063914522,
3296  1688031788934939
3297 #else
3298  55521375, 14855944, 62981086, 32022574, 40459774, 15084045, 22186522, 16002000,
3299  52832027, 25153633
3300 #endif
3301  }},
3302  },
3303  {
3304  {{
3305 #if defined(BORINGSSL_CURVE25519_64BIT)
3306  923487018849600, 2085106799623355, 528082801620136, 1606206360876188,
3307  735907091712524
3308 #else
3309  62297408, 13761028, 35404987, 31070512, 63796392, 7869046, 59995292, 23934339,
3310  13240844, 10965870
3311 #endif
3312  }},
3313  {{
3314 #if defined(BORINGSSL_CURVE25519_64BIT)
3315  1697697887804317, 1335343703828273, 831288615207040, 949416685250051,
3316  288760277392022
3317 #else
3318  59366301, 25297669, 52340529, 19898171, 43876480, 12387165, 4498947, 14147411,
3319  29514390, 4302863
3320 #endif
3321  }},
3322  {{
3323 #if defined(BORINGSSL_CURVE25519_64BIT)
3324  1419122478109648, 1325574567803701, 602393874111094, 2107893372601700,
3325  1314159682671307
3326 #else
3327  53695440, 21146572, 20757301, 19752600, 14785142, 8976368, 62047588, 31410058,
3328  17846987, 19582505
3329 #endif
3330  }},
3331  },
3332  },
3333  {
3334  {
3335  {{
3336 #if defined(BORINGSSL_CURVE25519_64BIT)
3337  2201150872731804, 2180241023425241, 97663456423163, 1633405770247824,
3338  848945042443986
3339 #else
3340  64864412, 32799703, 62511833, 32488122, 60861691, 1455298, 45461136, 24339642,
3341  61886162, 12650266
3342 #endif
3343  }},
3344  {{
3345 #if defined(BORINGSSL_CURVE25519_64BIT)
3346  1173339555550611, 818605084277583, 47521504364289, 924108720564965, 735423405754506
3347 #else
3348  57202067, 17484121, 21134159, 12198166, 40044289, 708125, 387813, 13770293,
3349  47974538, 10958662
3350 #endif
3351  }},
3352  {{
3353 #if defined(BORINGSSL_CURVE25519_64BIT)
3354  830104860549448, 1886653193241086, 1600929509383773, 1475051275443631,
3355  286679780900937
3356 #else
3357  22470984, 12369526, 23446014, 28113323, 45588061, 23855708, 55336367, 21979976,
3358  42025033, 4271861
3359 #endif
3360  }},
3361  },
3362  {
3363  {{
3364 #if defined(BORINGSSL_CURVE25519_64BIT)
3365  1577111294832995, 1030899169768747, 144900916293530, 1964672592979567,
3366  568390100955250
3367 #else
3368  41939299, 23500789, 47199531, 15361594, 61124506, 2159191, 75375, 29275903,
3369  34582642, 8469672
3370 #endif
3371  }},
3372  {{
3373 #if defined(BORINGSSL_CURVE25519_64BIT)
3374  278388655910247, 487143369099838, 927762205508727, 181017540174210, 1616886700741287
3375 #else
3376  15854951, 4148314, 58214974, 7259001, 11666551, 13824734, 36577666, 2697371,
3377  24154791, 24093489
3378 #endif
3379  }},
3380  {{
3381 #if defined(BORINGSSL_CURVE25519_64BIT)
3382  1191033906638969, 940823957346562, 1606870843663445, 861684761499847,
3383  658674867251089
3384 #else
3385  15446137, 17747788, 29759746, 14019369, 30811221, 23944241, 35526855, 12840103,
3386  24913809, 9815020
3387 #endif
3388  }},
3389  },
3390  {
3391  {{
3392 #if defined(BORINGSSL_CURVE25519_64BIT)
3393  1875032594195546, 1427106132796197, 724736390962158, 901860512044740,
3394  635268497268760
3395 #else
3396  62399578, 27940162, 35267365, 21265538, 52665326, 10799413, 58005188, 13438768,
3397  18735128, 9466238
3398 #endif
3399  }},
3400  {{
3401 #if defined(BORINGSSL_CURVE25519_64BIT)
3402  622869792298357, 1903919278950367, 1922588621661629, 1520574711600434,
3403  1087100760174640
3404 #else
3405  11933045, 9281483, 5081055, 28370608, 64480701, 28648802, 59381042, 22658328,
3406  44380208, 16199063
3407 #endif
3408  }},
3409  {{
3410 #if defined(BORINGSSL_CURVE25519_64BIT)
3411  25465949416618, 1693639527318811, 1526153382657203, 125943137857169, 145276964043999
3412 #else
3413  14576810, 379472, 40322331, 25237195, 37682355, 22741457, 67006097, 1876698,
3414  30801119, 2164795
3415 #endif
3416  }},
3417  },
3418  {
3419  {{
3420 #if defined(BORINGSSL_CURVE25519_64BIT)
3421  214739857969358, 920212862967915, 1939901550972269, 1211862791775221, 85097515720120
3422 #else
3423  15995086, 3199873, 13672555, 13712240, 47730029, 28906785, 54027253, 18058162,
3424  53616056, 1268051
3425 #endif
3426  }},
3427  {{
3428 #if defined(BORINGSSL_CURVE25519_64BIT)
3429  2006245852772938, 734762734836159, 254642929763427, 1406213292755966,
3430  239303749517686
3431 #else
3432  56818250, 29895392, 63822271, 10948817, 23037027, 3794475, 63638526, 20954210,
3433  50053494, 3565903
3434 #endif
3435  }},
3436  {{
3437 #if defined(BORINGSSL_CURVE25519_64BIT)
3438  1619678837192149, 1919424032779215, 1357391272956794, 1525634040073113,
3439  1310226789796241
3440 #else
3441  29210069, 24135095, 61189071, 28601646, 10834810, 20226706, 50596761, 22733718,
3442  39946641, 19523900
3443 #endif
3444  }},
3445  },
3446  {
3447  {{
3448 #if defined(BORINGSSL_CURVE25519_64BIT)
3449  1040763709762123, 1704449869235352, 605263070456329, 1998838089036355,
3450  1312142911487502
3451 #else
3452  53946955, 15508587, 16663704, 25398282, 38758921, 9019122, 37925443, 29785008,
3453  2244110, 19552453
3454 #endif
3455  }},
3456  {{
3457 #if defined(BORINGSSL_CURVE25519_64BIT)
3458  1996723311435669, 1844342766567060, 985455700466044, 1165924681400960,
3459  311508689870129
3460 #else
3461  61955989, 29753495, 57802388, 27482848, 16243068, 14684434, 41435776, 17373631,
3462  13491505, 4641841
3463 #endif
3464  }},
3465  {{
3466 #if defined(BORINGSSL_CURVE25519_64BIT)
3467  43173156290518, 2202883069785309, 1137787467085917, 1733636061944606,
3468  1394992037553852
3469 #else
3470  10813398, 643330, 47920349, 32825515, 30292061, 16954354, 27548446, 25833190,
3471  14476988, 20787001
3472 #endif
3473  }},
3474  },
3475  {
3476  {{
3477 #if defined(BORINGSSL_CURVE25519_64BIT)
3478  670078326344559, 555655025059356, 471959386282438, 2141455487356409, 849015953823125
3479 #else
3480  10292079, 9984945, 6481436, 8279905, 59857350, 7032742, 27282937, 31910173,
3481  39196053, 12651323
3482 #endif
3483  }},
3484  {{
3485 #if defined(BORINGSSL_CURVE25519_64BIT)
3486  2197214573372804, 794254097241315, 1030190060513737, 267632515541902,
3487  2040478049202624
3488 #else
3489  35923332, 32741048, 22271203, 11835308, 10201545, 15351028, 17099662, 3988035,
3490  21721536, 30405492
3491 #endif
3492  }},
3493  {{
3494 #if defined(BORINGSSL_CURVE25519_64BIT)
3495  1812516004670529, 1609256702920783, 1706897079364493, 258549904773295,
3496  996051247540686
3497 #else
3498  10202177, 27008593, 35735631, 23979793, 34958221, 25434748, 54202543, 3852693,
3499  13216206, 14842320
3500 #endif
3501  }},
3502  },
3503  {
3504  {{
3505 #if defined(BORINGSSL_CURVE25519_64BIT)
3506  1540374301420584, 1764656898914615, 1810104162020396, 923808779163088,
3507  664390074196579
3508 #else
3509  51293224, 22953365, 60569911, 26295436, 60124204, 26972653, 35608016, 13765823,
3510  39674467, 9900183
3511 #endif
3512  }},
3513  {{
3514 #if defined(BORINGSSL_CURVE25519_64BIT)
3515  1323460699404750, 1262690757880991, 871777133477900, 1060078894988977,
3516  1712236889662886
3517 #else
3518  14465486, 19721101, 34974879, 18815558, 39665676, 12990491, 33046193, 15796406,
3519  60056998, 25514317
3520 #endif
3521  }},
3522  {{
3523 #if defined(BORINGSSL_CURVE25519_64BIT)
3524  1696163952057966, 1391710137550823, 608793846867416, 1034391509472039,
3525  1780770894075012
3526 #else
3527  30924398, 25274812, 6359015, 20738097, 16508376, 9071735, 41620263, 15413634,
3528  9524356, 26535554
3529 #endif
3530  }},
3531  },
3532  {
3533  {{
3534 #if defined(BORINGSSL_CURVE25519_64BIT)
3535  1367603834210841, 2131988646583224, 890353773628144, 1908908219165595,
3536  270836895252891
3537 #else
3538  12274201, 20378885, 32627640, 31769106, 6736624, 13267305, 5237659, 28444949,
3539  15663515, 4035784
3540 #endif
3541  }},
3542  {{
3543 #if defined(BORINGSSL_CURVE25519_64BIT)
3544  597536315471731, 40375058742586, 1942256403956049, 1185484645495932, 312666282024145
3545 #else
3546  64157555, 8903984, 17349946, 601635, 50676049, 28941875, 53376124, 17665097,
3547  44850385, 4659090
3548 #endif
3549  }},
3550  {{
3551 #if defined(BORINGSSL_CURVE25519_64BIT)
3552  1919411405316294, 1234508526402192, 1066863051997083, 1008444703737597,
3553  1348810787701552
3554 #else
3555  50192582, 28601458, 36715152, 18395610, 20774811, 15897498, 5736189, 15026997,
3556  64930608, 20098846
3557 #endif
3558  }},
3559  },
3560  },
3561  {
3562  {
3563  {{
3564 #if defined(BORINGSSL_CURVE25519_64BIT)
3565  2102881477513865, 1570274565945361, 1573617900503708, 18662635732583,
3566  2232324307922098
3567 #else
3568  58249865, 31335375, 28571665, 23398914, 66634396, 23448733, 63307367, 278094,
3569  23440562, 33264224
3570 #endif
3571  }},
3572  {{
3573 #if defined(BORINGSSL_CURVE25519_64BIT)
3574  1853931367696942, 8107973870707, 350214504129299, 775206934582587, 1752317649166792
3575 #else
3576  10226222, 27625730, 15139955, 120818, 52241171, 5218602, 32937275, 11551483,
3577  50536904, 26111567
3578 #endif
3579  }},
3580  {{
3581 #if defined(BORINGSSL_CURVE25519_64BIT)
3582  1417148368003523, 721357181628282, 505725498207811, 373232277872983, 261634707184480
3583 #else
3584  17932739, 21117156, 43069306, 10749059, 11316803, 7535897, 22503767, 5561594,
3585  63462240, 3898660
3586 #endif
3587  }},
3588  },
3589  {
3590  {{
3591 #if defined(BORINGSSL_CURVE25519_64BIT)
3592  2186733281493267, 2250694917008620, 1014829812957440, 479998161452389,
3593  83566193876474
3594 #else
3595  7749907, 32584865, 50769132, 33537967, 42090752, 15122142, 65535333, 7152529,
3596  21831162, 1245233
3597 #endif
3598  }},
3599  {{
3600 #if defined(BORINGSSL_CURVE25519_64BIT)
3601  1268116367301224, 560157088142809, 802626839600444, 2210189936605713,
3602  1129993785579988
3603 #else
3604  26958440, 18896406, 4314585, 8346991, 61431100, 11960071, 34519569, 32934396,
3605  36706772, 16838219
3606 #endif
3607  }},
3608  {{
3609 #if defined(BORINGSSL_CURVE25519_64BIT)
3610  615183387352312, 917611676109240, 878893615973325, 978940963313282, 938686890583575
3611 #else
3612  54942968, 9166946, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357,
3613  44770839, 13987524
3614 #endif
3615  }},
3616  },
3617  {
3618  {{
3619 #if defined(BORINGSSL_CURVE25519_64BIT)
3620  522024729211672, 1045059315315808, 1892245413707790, 1907891107684253,
3621  2059998109500714
3622 #else
3623  42758936, 7778774, 21116000, 15572597, 62275598, 28196653, 62807965, 28429792,
3624  59639082, 30696363
3625 #endif
3626  }},
3627  {{
3628 #if defined(BORINGSSL_CURVE25519_64BIT)
3629  1799679152208884, 912132775900387, 25967768040979, 432130448590461, 274568990261996
3630 #else
3631  9681908, 26817309, 35157219, 13591837, 60225043, 386949, 31622781, 6439245,
3632  52527852, 4091396
3633 #endif
3634  }},
3635  {{
3636 #if defined(BORINGSSL_CURVE25519_64BIT)
3637  98698809797682, 2144627600856209, 1907959298569602, 811491302610148,
3638  1262481774981493
3639 #else
3640  58682418, 1470726, 38999185, 31957441, 3978626, 28430809, 47486180, 12092162,
3641  29077877, 18812444
3642 #endif
3643  }},
3644  },
3645  {
3646  {{
3647 #if defined(BORINGSSL_CURVE25519_64BIT)
3648  1791451399743152, 1713538728337276, 118349997257490, 1882306388849954,
3649  158235232210248
3650 #else
3651  5269168, 26694706, 53878652, 25533716, 25932562, 1763552, 61502754, 28048550,
3652  47091016, 2357888
3653 #endif
3654  }},
3655  {{
3656 #if defined(BORINGSSL_CURVE25519_64BIT)
3657  1217809823321928, 2173947284933160, 1986927836272325, 1388114931125539,
3658  12686131160169
3659 #else
3660  32264008, 18146780, 61721128, 32394338, 65017541, 29607531, 23104803, 20684524,
3661  5727337, 189038
3662 #endif
3663  }},
3664  {{
3665 #if defined(BORINGSSL_CURVE25519_64BIT)
3666  1650875518872272, 1136263858253897, 1732115601395988, 734312880662190,
3667  1252904681142109
3668 #else
3669  14609104, 24599962, 61108297, 16931650, 52531476, 25810533, 40363694, 10942114,
3670  41219933, 18669734
3671 #endif
3672  }},
3673  },
3674  {
3675  {{
3676 #if defined(BORINGSSL_CURVE25519_64BIT)
3677  372986456113865, 525430915458171, 2116279931702135, 501422713587815,
3678  1907002872974925
3679 #else
3680  20513481, 5557931, 51504251, 7829530, 26413943, 31535028, 45729895, 7471780,
3681  13913677, 28416557
3682 #endif
3683  }},
3684  {{
3685 #if defined(BORINGSSL_CURVE25519_64BIT)
3686  803147181835288, 868941437997146, 316299302989663, 943495589630550, 571224287904572
3687 #else
3688  41534488, 11967825, 29233242, 12948236, 60354399, 4713226, 58167894, 14059179,
3689  12878652, 8511905
3690 #endif
3691  }},
3692  {{
3693 #if defined(BORINGSSL_CURVE25519_64BIT)
3694  227742695588364, 1776969298667369, 628602552821802, 457210915378118,
3695  2041906378111140
3696 #else
3697  41452044, 3393630, 64153449, 26478905, 64858154, 9366907, 36885446, 6812973,
3698  5568676, 30426776
3699 #endif
3700  }},
3701  },
3702  {
3703  {{
3704 #if defined(BORINGSSL_CURVE25519_64BIT)
3705  815000523470260, 913085688728307, 1052060118271173, 1345536665214223,
3706  541623413135555
3707 #else
3708  11630004, 12144454, 2116339, 13606037, 27378885, 15676917, 49700111, 20050058,
3709  52713667, 8070817
3710 #endif
3711  }},
3712  {{
3713 #if defined(BORINGSSL_CURVE25519_64BIT)
3714  1580216071604333, 1877997504342444, 857147161260913, 703522726778478,
3715  2182763974211603
3716 #else
3717  27117677, 23547054, 35826092, 27984343, 1127281, 12772488, 37262958, 10483305,
3718  55556115, 32525717
3719 #endif
3720  }},
3721  {{
3722 #if defined(BORINGSSL_CURVE25519_64BIT)
3723  1870080310923419, 71988220958492, 1783225432016732, 615915287105016,
3724  1035570475990230
3725 #else
3726  10637467, 27866368, 5674780, 1072708, 40765276, 26572129, 65424888, 9177852,
3727  39615702, 15431202
3728 #endif
3729  }},
3730  },
3731  {
3732  {{
3733 #if defined(BORINGSSL_CURVE25519_64BIT)
3734  730987750830150, 857613889540280, 1083813157271766, 1002817255970169,
3735  1719228484436074
3736 #else
3737  20525126, 10892566, 54366392, 12779442, 37615830, 16150074, 38868345, 14943141,
3738  52052074, 25618500
3739 #endif
3740  }},
3741  {{
3742 #if defined(BORINGSSL_CURVE25519_64BIT)
3743  377616581647602, 1581980403078513, 804044118130621, 2034382823044191,
3744  643844048472185
3745 #else
3746  37084402, 5626925, 66557297, 23573344, 753597, 11981191, 25244767, 30314666,
3747  63752313, 9594023
3748 #endif
3749  }},
3750  {{
3751 #if defined(BORINGSSL_CURVE25519_64BIT)
3752  176957326463017, 1573744060478586, 528642225008045, 1816109618372371,
3753  1515140189765006
3754 #else
3755  43356201, 2636869, 61944954, 23450613, 585133, 7877383, 11345683, 27062142,
3756  13352334, 22577348
3757 #endif
3758  }},
3759  },
3760  {
3761  {{
3762 #if defined(BORINGSSL_CURVE25519_64BIT)
3763  1888911448245718, 1387110895611080, 1924503794066429, 1731539523700949,
3764  2230378382645454
3765 #else
3766  65177046, 28146973, 3304648, 20669563, 17015805, 28677341, 37325013, 25801949,
3767  53893326, 33235227
3768 #endif
3769  }},
3770  {{
3771 #if defined(BORINGSSL_CURVE25519_64BIT)
3772  443392177002051, 233793396845137, 2199506622312416, 1011858706515937,
3773  974676837063129
3774 #else
3775  20239939, 6607058, 6203985, 3483793, 48721888, 32775202, 46385121, 15077869,
3776  44358105, 14523816
3777 #endif
3778  }},
3779  {{
3780 #if defined(BORINGSSL_CURVE25519_64BIT)
3781  1846351103143623, 1949984838808427, 671247021915253, 1946756846184401,
3782  1929296930380217
3783 #else
3784  27406023, 27512775, 27423595, 29057038, 4996213, 10002360, 38266833, 29008937,
3785  36936121, 28748764
3786 #endif
3787  }},
3788  },
3789  },
3790  {
3791  {
3792  {{
3793 #if defined(BORINGSSL_CURVE25519_64BIT)
3794  849646212452002, 1410198775302919, 73767886183695, 1641663456615812, 762256272452411
3795 #else
3796  11374242, 12660715, 17861383, 21013599, 10935567, 1099227, 53222788, 24462691,
3797  39381819, 11358503
3798 #endif
3799  }},
3800  {{
3801 #if defined(BORINGSSL_CURVE25519_64BIT)
3802  692017667358279, 723305578826727, 1638042139863265, 748219305990306, 334589200523901
3803 #else
3804  54378055, 10311866, 1510375, 10778093, 64989409, 24408729, 32676002, 11149336,
3805  40985213, 4985767
3806 #endif
3807  }},
3808  {{
3809 #if defined(BORINGSSL_CURVE25519_64BIT)
3810  22893968530686, 2235758574399251, 1661465835630252, 925707319443452,
3811  1203475116966621
3812 #else
3813  48012542, 341146, 60911379, 33315398, 15756972, 24757770, 66125820, 13794113,
3814  47694557, 17933176
3815 #endif
3816  }},
3817  },
3818  {
3819  {{
3820 #if defined(BORINGSSL_CURVE25519_64BIT)
3821  801299035785166, 1733292596726131, 1664508947088596, 467749120991922,
3822  1647498584535623
3823 #else
3824  6490062, 11940286, 25495923, 25828072, 8668372, 24803116, 3367602, 6970005,
3825  65417799, 24549641
3826 #endif
3827  }},
3828  {{
3829 #if defined(BORINGSSL_CURVE25519_64BIT)
3830  903105258014366, 427141894933047, 561187017169777, 1884330244401954,
3831  1914145708422219
3832 #else
3833  1656478, 13457317, 15370807, 6364910, 13605745, 8362338, 47934242, 28078708,
3834  50312267, 28522993
3835 #endif
3836  }},
3837  {{
3838 #if defined(BORINGSSL_CURVE25519_64BIT)
3839  1344191060517578, 1960935031767890, 1518838929955259, 1781502350597190,
3840  1564784025565682
3841 #else
3842  44835530, 20030007, 67044178, 29220208, 48503227, 22632463, 46537798, 26546453,
3843  67009010, 23317098
3844 #endif
3845  }},
3846  },
3847  {
3848  {{
3849 #if defined(BORINGSSL_CURVE25519_64BIT)
3850  673723351748086, 1979969272514923, 1175287312495508, 1187589090978666,
3851  1881897672213940
3852 #else
3853  17747446, 10039260, 19368299, 29503841, 46478228, 17513145, 31992682, 17696456,
3854  37848500, 28042460
3855 #endif
3856  }},
3857  {{
3858 #if defined(BORINGSSL_CURVE25519_64BIT)
3859  1917185587363432, 1098342571752737, 5935801044414, 2000527662351839,
3860  1538640296181569
3861 #else
3862  31932008, 28568291, 47496481, 16366579, 22023614, 88450, 11371999, 29810185,
3863  4882241, 22927527
3864 #endif
3865  }},
3866  {{
3867 #if defined(BORINGSSL_CURVE25519_64BIT)
3868  2495540013192, 678856913479236, 224998292422872, 219635787698590, 1972465269000940
3869 #else
3870  29796488, 37186, 19818052, 10115756, 55279832, 3352735, 18551198, 3272828, 61917932,
3871  29392022
3872 #endif
3873  }},
3874  },
3875  {
3876  {{
3877 #if defined(BORINGSSL_CURVE25519_64BIT)
3878  271413961212179, 1353052061471651, 344711291283483, 2014925838520662,
3879  2006221033113941
3880 #else
3881  12501267, 4044383, 58495907, 20162046, 34678811, 5136598, 47878486, 30024734,
3882  330069, 29895023
3883 #endif
3884  }},
3885  {{
3886 #if defined(BORINGSSL_CURVE25519_64BIT)
3887  194583029968109, 514316781467765, 829677956235672, 1676415686873082, 810104584395840
3888 #else
3889  6384877, 2899513, 17807477, 7663917, 64749976, 12363164, 25366522, 24980540,
3890  66837568, 12071498
3891 #endif
3892  }},
3893  {{
3894 #if defined(BORINGSSL_CURVE25519_64BIT)
3895  1980510813313589, 1948645276483975, 152063780665900, 129968026417582,
3896  256984195613935
3897 #else
3898  58743349, 29511910, 25133447, 29037077, 60897836, 2265926, 34339246, 1936674,
3899  61949167, 3829362
3900 #endif
3901  }},
3902  },
3903  {
3904  {{
3905 #if defined(BORINGSSL_CURVE25519_64BIT)
3906  1860190562533102, 1936576191345085, 461100292705964, 1811043097042830,
3907  957486749306835
3908 #else
3909  28425966, 27718999, 66531773, 28857233, 52891308, 6870929, 7921550, 26986645,
3910  26333139, 14267664
3911 #endif
3912  }},
3913  {{
3914 #if defined(BORINGSSL_CURVE25519_64BIT)
3915  796664815624365, 1543160838872951, 1500897791837765, 1667315977988401,
3916  599303877030711
3917 #else
3918  56041645, 11871230, 27385719, 22994888, 62522949, 22365119, 10004785, 24844944,
3919  45347639, 8930323
3920 #endif
3921  }},
3922  {{
3923 #if defined(BORINGSSL_CURVE25519_64BIT)
3924  1151480509533204, 2136010406720455, 738796060240027, 319298003765044,
3925  1150614464349587
3926 #else
3927  45911060, 17158396, 25654215, 31829035, 12282011, 11008919, 1541940, 4757911,
3928  40617363, 17145491
3929 #endif
3930  }},
3931  },
3932  {
3933  {{
3934 #if defined(BORINGSSL_CURVE25519_64BIT)
3935  1731069268103150, 735642447616087, 1364750481334268, 417232839982871,
3936  927108269127661
3937 #else
3938  13537262, 25794942, 46504023, 10961926, 61186044, 20336366, 53952279, 6217253,
3939  51165165, 13814989
3940 #endif
3941  }},
3942  {{
3943 #if defined(BORINGSSL_CURVE25519_64BIT)
3944  1017222050227968, 1987716148359, 2234319589635701, 621282683093392, 2132553131763026
3945 #else
3946  49686272, 15157789, 18705543, 29619, 24409717, 33293956, 27361680, 9257833,
3947  65152338, 31777517
3948 #endif
3949  }},
3950  {{
3951 #if defined(BORINGSSL_CURVE25519_64BIT)
3952  1567828528453324, 1017807205202360, 565295260895298, 829541698429100,
3953  307243822276582
3954 #else
3955  42063564, 23362465, 15366584, 15166509, 54003778, 8423555, 37937324, 12361134,
3956  48422886, 4578289
3957 #endif
3958  }},
3959  },
3960  {
3961  {{
3962 #if defined(BORINGSSL_CURVE25519_64BIT)
3963  249079270936248, 1501514259790706, 947909724204848, 944551802437487, 552658763982480
3964 #else
3965  24579768, 3711570, 1342322, 22374306, 40103728, 14124955, 44564335, 14074918,
3966  21964432, 8235257
3967 #endif
3968  }},
3969  {{
3970 #if defined(BORINGSSL_CURVE25519_64BIT)
3971  2089966982947227, 1854140343916181, 2151980759220007, 2139781292261749,
3972  158070445864917
3973 #else
3974  60580251, 31142934, 9442965, 27628844, 12025639, 32067012, 64127349, 31885225,
3975  13006805, 2355433
3976 #endif
3977  }},
3978  {{
3979 #if defined(BORINGSSL_CURVE25519_64BIT)
3980  1338766321464554, 1906702607371284, 1519569445519894, 115384726262267,
3981  1393058953390992
3982 #else
3983  50803946, 19949172, 60476436, 28412082, 16974358, 22643349, 27202043, 1719366,
3984  1141648, 20758196
3985 #endif
3986  }},
3987  },
3988  {
3989  {{
3990 #if defined(BORINGSSL_CURVE25519_64BIT)
3991  1364621558265400, 1512388234908357, 1926731583198686, 2041482526432505,
3992  920401122333774
3993 #else
3994  54244920, 20334445, 58790597, 22536340, 60298718, 28710537, 13475065, 30420460,
3995  32674894, 13715045
3996 #endif
3997  }},
3998  {{
3999 #if defined(BORINGSSL_CURVE25519_64BIT)
4000  1884844597333588, 601480070269079, 620203503079537, 1079527400117915,
4001  1202076693132015
4002 #else
4003  11423316, 28086373, 32344215, 8962751, 24989809, 9241752, 53843611, 16086211,
4004  38367983, 17912338
4005 #endif
4006  }},
4007  {{
4008 #if defined(BORINGSSL_CURVE25519_64BIT)
4009  840922919763324, 727955812569642, 1303406629750194, 522898432152867, 294161410441865
4010 #else
4011  65699196, 12530727, 60740138, 10847386, 19531186, 19422272, 55399715, 7791793,
4012  39862921, 4383346
4013 #endif
4014  }},
4015  },
4016  },
4017  {
4018  {
4019  {{
4020 #if defined(BORINGSSL_CURVE25519_64BIT)
4021  353760790835310, 1598361541848743, 1122905698202299, 1922533590158905,
4022  419107700666580
4023 #else
4024  38137966, 5271446, 65842855, 23817442, 54653627, 16732598, 62246457, 28647982,
4025  27193556, 6245191
4026 #endif
4027  }},
4028  {{
4029 #if defined(BORINGSSL_CURVE25519_64BIT)
4030  359856369838236, 180914355488683, 861726472646627, 218807937262986, 575626773232501
4031 #else
4032  51914908, 5362277, 65324971, 2695833, 4960227, 12840725, 23061898, 3260492,
4033  22510453, 8577507
4034 #endif
4035  }},
4036  {{
4037 #if defined(BORINGSSL_CURVE25519_64BIT)
4038  755467689082474, 909202735047934, 730078068932500, 936309075711518, 2007798262842972
4039 #else
4040  54476394, 11257345, 34415870, 13548176, 66387860, 10879010, 31168030, 13952092,
4041  37537372, 29918525
4042 #endif
4043  }},
4044  },
4045  {
4046  {{
4047 #if defined(BORINGSSL_CURVE25519_64BIT)
4048  1609384177904073, 362745185608627, 1335318541768201, 800965770436248,
4049  547877979267412
4050 #else
4051  3877321, 23981693, 32416691, 5405324, 56104457, 19897796, 3759768, 11935320,
4052  5611860, 8164018
4053 #endif
4054  }},
4055  {{
4056 #if defined(BORINGSSL_CURVE25519_64BIT)
4057  984339177776787, 815727786505884, 1645154585713747, 1659074964378553,
4058  1686601651984156
4059 #else
4060  50833043, 14667796, 15906460, 12155291, 44997715, 24514713, 32003001, 24722143,
4061  5773084, 25132323
4062 #endif
4063  }},
4064  {{
4065 #if defined(BORINGSSL_CURVE25519_64BIT)
4066  1697863093781930, 599794399429786, 1104556219769607, 830560774794755, 12812858601017
4067 #else
4068  43320746, 25300131, 1950874, 8937633, 18686727, 16459170, 66203139, 12376319,
4069  31632953, 190926
4070 #endif
4071  }},
4072  },
4073  {
4074  {{
4075 #if defined(BORINGSSL_CURVE25519_64BIT)
4076  1168737550514982, 897832437380552, 463140296333799, 302564600022547,
4077  2008360505135501
4078 #else
4079  42515238, 17415546, 58684872, 13378745, 14162407, 6901328, 58820115, 4508563,
4080  41767309, 29926903
4081 #endif
4082  }},
4083  {{
4084 #if defined(BORINGSSL_CURVE25519_64BIT)
4085  1856930662813910, 678090852002597, 1920179140755167, 1259527833759868,
4086  55540971895511
4087 #else
4088  8884438, 27670423, 6023973, 10104341, 60227295, 28612898, 18722940, 18768427,
4089  65436375, 827624
4090 #endif
4091  }},
4092  {{
4093 #if defined(BORINGSSL_CURVE25519_64BIT)
4094  1158643631044921, 476554103621892, 178447851439725, 1305025542653569,
4095  103433927680625
4096 #else
4097  34388281, 17265135, 34605316, 7101209, 13354605, 2659080, 65308289, 19446395,
4098  42230385, 1541285
4099 #endif
4100  }},
4101  },
4102  {
4103  {{
4104 #if defined(BORINGSSL_CURVE25519_64BIT)
4105  2176793111709008, 1576725716350391, 2009350167273523, 2012390194631546,
4106  2125297410909580
4107 #else
4108  2901328, 32436745, 3880375, 23495044, 49487923, 29941650, 45306746, 29986950,
4109  20456844, 31669399
4110 #endif
4111  }},
4112  {{
4113 #if defined(BORINGSSL_CURVE25519_64BIT)
4114  825403285195098, 2144208587560784, 1925552004644643, 1915177840006985,
4115  1015952128947864
4116 #else
4117  27019610, 12299467, 53450576, 31951197, 54247203, 28692960, 47568713, 28538373,
4118  29439640, 15138866
4119 #endif
4120  }},
4121  {{
4122 #if defined(BORINGSSL_CURVE25519_64BIT)
4123  1807108316634472, 1534392066433717, 347342975407218, 1153820745616376, 7375003497471
4124 #else
4125  21536104, 26928012, 34661045, 22864223, 44700786, 5175813, 61688824, 17193268,
4126  7779327, 109896
4127 #endif
4128  }},
4129  },
4130  {
4131  {{
4132 #if defined(BORINGSSL_CURVE25519_64BIT)
4133  983061001799725, 431211889901241, 2201903782961093, 817393911064341,
4134  2214616493042167
4135 #else
4136  30279725, 14648750, 59063993, 6425557, 13639621, 32810923, 28698389, 12180118,
4137  23177719, 33000357
4138 #endif
4139  }},
4140  {{
4141 #if defined(BORINGSSL_CURVE25519_64BIT)
4142  228567918409756, 865093958780220, 358083886450556, 159617889659320, 1360637926292598
4143 #else
4144  26572828, 3405927, 35407164, 12890904, 47843196, 5335865, 60615096, 2378491,
4145  4439158, 20275085
4146 #endif
4147  }},
4148  {{
4149 #if defined(BORINGSSL_CURVE25519_64BIT)
4150  234147501399755, 2229469128637390, 2175289352258889, 1397401514549353,
4151  1885288963089922
4152 #else
4153  44392139, 3489069, 57883598, 33221678, 18875721, 32414337, 14819433, 20822905,
4154  49391106, 28092994
4155 #endif
4156  }},
4157  },
4158  {
4159  {{
4160 #if defined(BORINGSSL_CURVE25519_64BIT)
4161  1111762412951562, 252849572507389, 1048714233823341, 146111095601446,
4162  1237505378776770
4163 #else
4164  62052362, 16566550, 15953661, 3767752, 56672365, 15627059, 66287910, 2177224,
4165  8550082, 18440267
4166 #endif
4167  }},
4168  {{
4169 #if defined(BORINGSSL_CURVE25519_64BIT)
4170  1113790697840279, 1051167139966244, 1045930658550944, 2011366241542643,
4171  1686166824620755
4172 #else
4173  48635543, 16596774, 66727204, 15663610, 22860960, 15585581, 39264755, 29971692,
4174  43848403, 25125843
4175 #endif
4176  }},
4177  {{
4178 #if defined(BORINGSSL_CURVE25519_64BIT)
4179  1054097349305049, 1872495070333352, 182121071220717, 1064378906787311,
4180  100273572924182
4181 #else
4182  34628313, 15707274, 58902952, 27902350, 29464557, 2713815, 44383727, 15860481,
4183  45206294, 1494192
4184 #endif
4185  }},
4186  },
4187  {
4188  {{
4189 #if defined(BORINGSSL_CURVE25519_64BIT)
4190  1306410853171605, 1627717417672447, 50983221088417, 1109249951172250,
4191  870201789081392
4192 #else
4193  47546773, 19467038, 41524991, 24254879, 13127841, 759709, 21923482, 16529112,
4194  8742704, 12967017
4195 #endif
4196  }},
4197  {{
4198 #if defined(BORINGSSL_CURVE25519_64BIT)
4199  104233794644221, 1548919791188248, 2224541913267306, 2054909377116478,
4200  1043803389015153
4201 #else
4202  38643965, 1553204, 32536856, 23080703, 42417258, 33148257, 58194238, 30620535,
4203  37205105, 15553882
4204 #endif
4205  }},
4206  {{
4207 #if defined(BORINGSSL_CURVE25519_64BIT)
4208  216762189468802, 707284285441622, 190678557969733, 973969342604308, 1403009538434867
4209 #else
4210  21877890, 3230008, 9881174, 10539357, 62311749, 2841331, 11543572, 14513274,
4211  19375923, 20906471
4212 #endif
4213  }},
4214  },
4215  {
4216  {{
4217 #if defined(BORINGSSL_CURVE25519_64BIT)
4218  1279024291038477, 344776835218310, 273722096017199, 1834200436811442,
4219  634517197663804
4220 #else
4221  8832269, 19058947, 13253510, 5137575, 5037871, 4078777, 24880818, 27331716, 2862652,
4222  9455043
4223 #endif
4224  }},
4225  {{
4226 #if defined(BORINGSSL_CURVE25519_64BIT)
4227  343805853118335, 1302216857414201, 566872543223541, 2051138939539004,
4228  321428858384280
4229 #else
4230  29306751, 5123106, 20245049, 19404543, 9592565, 8447059, 65031740, 30564351,
4231  15511448, 4789663
4232 #endif
4233  }},
4234  {{
4235 #if defined(BORINGSSL_CURVE25519_64BIT)
4236  470067171324852, 1618629234173951, 2000092177515639, 7307679772789, 1117521120249968
4237 #else
4238  46429108, 7004546, 8824831, 24119455, 63063159, 29803695, 61354101, 108892,
4239  23513200, 16652362
4240 #endif
4241  }},
4242  },
4243  },
4244  {
4245  {
4246  {{
4247 #if defined(BORINGSSL_CURVE25519_64BIT)
4248  278151578291475, 1810282338562947, 1771599529530998, 1383659409671631,
4249  685373414471841
4250 #else
4251  33852691, 4144781, 62632835, 26975308, 10770038, 26398890, 60458447, 20618131,
4252  48789665, 10212859
4253 #endif
4254  }},
4255  {{
4256 #if defined(BORINGSSL_CURVE25519_64BIT)
4257  577009397403102, 1791440261786291, 2177643735971638, 174546149911960,
4258  1412505077782326
4259 #else
4260  2756062, 8598110, 7383731, 26694540, 22312758, 32449420, 21179800, 2600940,
4261  57120566, 21047965
4262 #endif
4263  }},
4264  {{
4265 #if defined(BORINGSSL_CURVE25519_64BIT)
4266  893719721537457, 1201282458018197, 1522349501711173, 58011597740583,
4267  1130406465887139
4268 #else
4269  42463153, 13317461, 36659605, 17900503, 21365573, 22684775, 11344423, 864440,
4270  64609187, 16844368
4271 #endif
4272  }},
4273  },
4274  {
4275  {{
4276 #if defined(BORINGSSL_CURVE25519_64BIT)
4277  412607348255453, 1280455764199780, 2233277987330768, 14180080401665, 331584698417165
4278 #else
4279  40676061, 6148328, 49924452, 19080277, 18782928, 33278435, 44547329, 211299,
4280  2719757, 4940997
4281 #endif
4282  }},
4283  {{
4284 #if defined(BORINGSSL_CURVE25519_64BIT)
4285  262483770854550, 990511055108216, 526885552771698, 571664396646158, 354086190278723
4286 #else
4287  65784982, 3911312, 60160120, 14759764, 37081714, 7851206, 21690126, 8518463,
4288  26699843, 5276295
4289 #endif
4290  }},
4291  {{
4292 #if defined(BORINGSSL_CURVE25519_64BIT)
4293  1820352417585487, 24495617171480, 1547899057533253, 10041836186225, 480457105094042
4294 #else
4295  53958991, 27125364, 9396248, 365013, 24703301, 23065493, 1321585, 149635, 51656090,
4296  7159368
4297 #endif
4298  }},
4299  },
4300  {
4301  {{
4302 #if defined(BORINGSSL_CURVE25519_64BIT)
4303  2023310314989233, 637905337525881, 2106474638900687, 557820711084072,
4304  1687858215057826
4305 #else
4306  9987761, 30149673, 17507961, 9505530, 9731535, 31388918, 22356008, 8312176,
4307  22477218, 25151047
4308 #endif
4309  }},
4310  {{
4311 #if defined(BORINGSSL_CURVE25519_64BIT)
4312  1144168702609745, 604444390410187, 1544541121756138, 1925315550126027,
4313  626401428894002
4314 #else
4315  18155857, 17049442, 19744715, 9006923, 15154154, 23015456, 24256459, 28689437,
4316  44560690, 9334108
4317 #endif
4318  }},
4319  {{
4320 #if defined(BORINGSSL_CURVE25519_64BIT)
4321  1922168257351784, 2018674099908659, 1776454117494445, 956539191509034,
4322  36031129147635
4323 #else
4324  2986088, 28642539, 10776627, 30080588, 10620589, 26471229, 45695018, 14253544,
4325  44521715, 536905
4326 #endif
4327  }},
4328  },
4329  {
4330  {{
4331 #if defined(BORINGSSL_CURVE25519_64BIT)
4332  544644538748041, 1039872944430374, 876750409130610, 710657711326551,
4333  1216952687484972
4334 #else
4335  4377737, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625,
4336  10838060, 18134008
4337 #endif
4338  }},
4339  {{
4340 #if defined(BORINGSSL_CURVE25519_64BIT)
4341  58242421545916, 2035812695641843, 2118491866122923, 1191684463816273, 46921517454099
4342 #else
4343  47766460, 867879, 9277171, 30335973, 52677291, 31567988, 19295825, 17757482,
4344  6378259, 699185
4345 #endif
4346  }},
4347  {{
4348 #if defined(BORINGSSL_CURVE25519_64BIT)
4349  272268252444639, 1374166457774292, 2230115177009552, 1053149803909880,
4350  1354288411641016
4351 #else
4352  7895007, 4057113, 60027092, 20476675, 49222032, 33231305, 66392824, 15693154,
4353  62063800, 20180469
4354 #endif
4355  }},
4356  },
4357  {
4358  {{
4359 #if defined(BORINGSSL_CURVE25519_64BIT)
4360  1857910905368338, 1754729879288912, 885945464109877, 1516096106802166,
4361  1602902393369811
4362 #else
4363  59371282, 27685029, 52542544, 26147512, 11385653, 13201616, 31730678, 22591592,
4364  63190227, 23885106
4365 #endif
4366  }},
4367  {{
4368 #if defined(BORINGSSL_CURVE25519_64BIT)
4369  1193437069800958, 901107149704790, 999672920611411, 477584824802207, 364239578697845
4370 #else
4371  10188286, 17783598, 59772502, 13427542, 22223443, 14896287, 30743455, 7116568,
4372  45322357, 5427592
4373 #endif
4374  }},
4375  {{
4376 #if defined(BORINGSSL_CURVE25519_64BIT)
4377  886299989548838, 1538292895758047, 1590564179491896, 1944527126709657,
4378  837344427345298
4379 #else
4380  696102, 13206899, 27047647, 22922350, 15285304, 23701253, 10798489, 28975712,
4381  19236242, 12477404
4382 #endif
4383  }},
4384  },
4385  {
4386  {{
4387 #if defined(BORINGSSL_CURVE25519_64BIT)
4388  754558365378305, 1712186480903618, 1703656826337531, 750310918489786,
4389  518996040250900
4390 #else
4391  55879425, 11243795, 50054594, 25513566, 66320635, 25386464, 63211194, 11180503,
4392  43939348, 7733643
4393 #endif
4394  }},
4395  {{
4396 #if defined(BORINGSSL_CURVE25519_64BIT)
4397  1309847803895382, 1462151862813074, 211370866671570, 1544595152703681,
4398  1027691798954090
4399 #else
4400  17800790, 19518253, 40108434, 21787760, 23887826, 3149671, 23466177, 23016261,
4401  10322026, 15313801
4402 #endif
4403  }},
4404  {{
4405 #if defined(BORINGSSL_CURVE25519_64BIT)
4406  803217563745370, 1884799722343599, 1357706345069218, 2244955901722095,
4407  730869460037413
4408 #else
4409  26246234, 11968874, 32263343, 28085704, 6830754, 20231401, 51314159, 33452449,
4410  42659621, 10890803
4411 #endif
4412  }},
4413  },
4414  {
4415  {{
4416 #if defined(BORINGSSL_CURVE25519_64BIT)
4417  689299471295966, 1831210565161071, 1375187341585438, 1106284977546171,
4418  1893781834054269
4419 #else
4420  35743198, 10271362, 54448239, 27287163, 16690206, 20491888, 52126651, 16484930,
4421  25180797, 28219548
4422 #endif
4423  }},
4424  {{
4425 #if defined(BORINGSSL_CURVE25519_64BIT)
4426  696351368613042, 1494385251239250, 738037133616932, 636385507851544, 927483222611406
4427 #else
4428  66522290, 10376443, 34522450, 22268075, 19801892, 10997610, 2276632, 9482883,
4429  316878, 13820577
4430 #endif
4431  }},
4432  {{
4433 #if defined(BORINGSSL_CURVE25519_64BIT)
4434  1949114198209333, 1104419699537997, 783495707664463, 1747473107602770,
4435  2002634765788641
4436 #else
4437  57226037, 29044064, 64993357, 16457135, 56008783, 11674995, 30756178, 26039378,
4438  30696929, 29841583
4439 #endif
4440  }},
4441  },
4442  {
4443  {{
4444 #if defined(BORINGSSL_CURVE25519_64BIT)
4445  1607325776830197, 530883941415333, 1451089452727895, 1581691157083423,
4446  496100432831154
4447 #else
4448  32988917, 23951020, 12499365, 7910787, 56491607, 21622917, 59766047, 23569034,
4449  34759346, 7392472
4450 #endif
4451  }},
4452  {{
4453 #if defined(BORINGSSL_CURVE25519_64BIT)
4454  1068900648804224, 2006891997072550, 1134049269345549, 1638760646180091,
4455  2055396084625778
4456 #else
4457  58253184, 15927860, 9866406, 29905021, 64711949, 16898650, 36699387, 24419436,
4458  25112946, 30627788
4459 #endif
4460  }},
4461  {{
4462 #if defined(BORINGSSL_CURVE25519_64BIT)
4463  2222475519314561, 1870703901472013, 1884051508440561, 1344072275216753,
4464  1318025677799069
4465 #else
4466  64604801, 33117465, 25621773, 27875660, 15085041, 28074555, 42223985, 20028237,
4467  5537437, 19640113
4468 #endif
4469  }},
4470  },
4471  },
4472  {
4473  {
4474  {{
4475 #if defined(BORINGSSL_CURVE25519_64BIT)
4476  155711679280656, 681100400509288, 389811735211209, 2135723811340709, 408733211204125
4477 #else
4478  55883280, 2320284, 57524584, 10149186, 33664201, 5808647, 52232613, 31824764,
4479  31234589, 6090599
4480 #endif
4481  }},
4482  {{
4483 #if defined(BORINGSSL_CURVE25519_64BIT)
4484  7813206966729, 194444201427550, 2071405409526507, 1065605076176312, 1645486789731291
4485 #else
4486  57475529, 116425, 26083934, 2897444, 60744427, 30866345, 609720, 15878753, 60138459,
4487  24519663
4488 #endif
4489  }},
4490  {{
4491 #if defined(BORINGSSL_CURVE25519_64BIT)
4492  16625790644959, 1647648827778410, 1579910185572704, 436452271048548, 121070048451050
4493 #else
4494  39351007, 247743, 51914090, 24551880, 23288160, 23542496, 43239268, 6503645,
4495  20650474, 1804084
4496 #endif
4497  }},
4498  },
4499  {
4500  {{
4501 #if defined(BORINGSSL_CURVE25519_64BIT)
4502  1037263028552531, 568385780377829, 297953104144430, 1558584511931211,
4503  2238221839292471
4504 #else
4505  39519059, 15456423, 8972517, 8469608, 15640622, 4439847, 3121995, 23224719,
4506  27842615, 33352104
4507 #endif
4508  }},
4509  {{
4510 #if defined(BORINGSSL_CURVE25519_64BIT)
4511  190565267697443, 672855706028058, 338796554369226, 337687268493904, 853246848691734
4512 #else
4513  51801891, 2839643, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932,
4514  55733782, 12714368
4515 #endif
4516  }},
4517  {{
4518 #if defined(BORINGSSL_CURVE25519_64BIT)
4519  1763863028400139, 766498079432444, 1321118624818005, 69494294452268, 858786744165651
4520 #else
4521  20807691, 26283607, 29286140, 11421711, 39232341, 19686201, 45881388, 1035545,
4522  47375635, 12796919
4523 #endif
4524  }},
4525  },
4526  {
4527  {{
4528 #if defined(BORINGSSL_CURVE25519_64BIT)
4529  1292056768563024, 1456632109855638, 1100631247050184, 1386133165675321,
4530  1232898350193752
4531 #else
4532  12076880, 19253146, 58323862, 21705509, 42096072, 16400683, 49517369, 20654993,
4533  3480664, 18371617
4534 #endif
4535  }},
4536  {{
4537 #if defined(BORINGSSL_CURVE25519_64BIT)
4538  366253102478259, 525676242508811, 1449610995265438, 1183300845322183,
4539  185960306491545
4540 #else
4541  34747315, 5457596, 28548107, 7833186, 7303070, 21600887, 42745799, 17632556,
4542  33734809, 2771024
4543 #endif
4544  }},
4545  {{
4546 #if defined(BORINGSSL_CURVE25519_64BIT)
4547  28315355815982, 460422265558930, 1799675876678724, 1969256312504498,
4548  1051823843138725
4549 #else
4550  45719598, 421931, 26597266, 6860826, 22486084, 26817260, 49971378, 29344205,
4551  42556581, 15673396
4552 #endif
4553  }},
4554  },
4555  {
4556  {{
4557 #if defined(BORINGSSL_CURVE25519_64BIT)
4558  156914999361983, 1606148405719949, 1665208410108430, 317643278692271,
4559  1383783705665320
4560 #else
4561  46924223, 2338215, 19788685, 23933476, 63107598, 24813538, 46837679, 4733253,
4562  3727144, 20619984
4563 #endif
4564  }},
4565  {{
4566 #if defined(BORINGSSL_CURVE25519_64BIT)
4567  54684536365732, 2210010038536222, 1194984798155308, 535239027773705,
4568  1516355079301361
4569 #else
4570  6120100, 814863, 55314462, 32931715, 6812204, 17806661, 2019593, 7975683, 31123697,
4571  22595451
4572 #endif
4573  }},
4574  {{
4575 #if defined(BORINGSSL_CURVE25519_64BIT)
4576  1484387703771650, 198537510937949, 2186282186359116, 617687444857508,
4577  647477376402122
4578 #else
4579  30069250, 22119100, 30434653, 2958439, 18399564, 32578143, 12296868, 9204260,
4580  50676426, 9648164
4581 #endif
4582  }},
4583  },
4584  {
4585  {{
4586 #if defined(BORINGSSL_CURVE25519_64BIT)
4587  2147715541830533, 500032538445817, 646380016884826, 352227855331122,
4588  1488268620408052
4589 #else
4590  32705413, 32003455, 30705657, 7451065, 55303258, 9631812, 3305266, 5248604,
4591  41100532, 22176930
4592 #endif
4593  }},
4594  {{
4595 #if defined(BORINGSSL_CURVE25519_64BIT)
4596  159386186465542, 1877626593362941, 618737197060512, 1026674284330807,
4597  1158121760792685
4598 #else
4599  17219846, 2375039, 35537917, 27978816, 47649184, 9219902, 294711, 15298639, 2662509,
4600  17257359
4601 #endif
4602  }},
4603  {{
4604 #if defined(BORINGSSL_CURVE25519_64BIT)
4605  1744544377739822, 1964054180355661, 1685781755873170, 2169740670377448,
4606  1286112621104591
4607 #else
4608  65935918, 25995736, 62742093, 29266687, 45762450, 25120105, 32087528, 32331655,
4609  32247247, 19164571
4610 #endif
4611  }},
4612  },
4613  {
4614  {{
4615 #if defined(BORINGSSL_CURVE25519_64BIT)
4616  81977249784993, 1667943117713086, 1668983819634866, 1605016835177615,
4617  1353960708075544
4618 #else
4619  14312609, 1221556, 17395390, 24854289, 62163122, 24869796, 38911119, 23916614,
4620  51081240, 20175586
4621 #endif
4622  }},
4623  {{
4624 #if defined(BORINGSSL_CURVE25519_64BIT)
4625  1602253788689063, 439542044889886, 2220348297664483, 657877410752869,
4626  157451572512238
4627 #else
4628  65680039, 23875441, 57873182, 6549686, 59725795, 33085767, 23046501, 9803137,
4629  17597934, 2346211
4630 #endif
4631  }},
4632  {{
4633 #if defined(BORINGSSL_CURVE25519_64BIT)
4634  1029287186166717, 65860128430192, 525298368814832, 1491902500801986,
4635  1461064796385400
4636 #else
4637  18510781, 15337574, 26171504, 981392, 44867312, 7827555, 43617730, 22231079,
4638  3059832, 21771562
4639 #endif
4640  }},
4641  },
4642  {
4643  {{
4644 #if defined(BORINGSSL_CURVE25519_64BIT)
4645  408216988729246, 2121095722306989, 913562102267595, 1879708920318308,
4646  241061448436731
4647 #else
4648  10141598, 6082907, 17829293, 31606789, 9830091, 13613136, 41552228, 28009845,
4649  33606651, 3592095
4650 #endif
4651  }},
4652  {{
4653 #if defined(BORINGSSL_CURVE25519_64BIT)
4654  1185483484383269, 1356339572588553, 584932367316448, 102132779946470,
4655  1792922621116791
4656 #else
4657  33114149, 17665080, 40583177, 20211034, 33076704, 8716171, 1151462, 1521897,
4658  66126199, 26716628
4659 #endif
4660  }},
4661  {{
4662 #if defined(BORINGSSL_CURVE25519_64BIT)
4663  1966196870701923, 2230044620318636, 1425982460745905, 261167817826569,
4664  46517743394330
4665 #else
4666  34169699, 29298616, 23947180, 33230254, 34035889, 21248794, 50471177, 3891703,
4667  26353178, 693168
4668 #endif
4669  }},
4670  },
4671  {
4672  {{
4673 #if defined(BORINGSSL_CURVE25519_64BIT)
4674  107077591595359, 884959942172345, 27306869797400, 2224911448949390, 964352058245223
4675 #else
4676  30374239, 1595580, 50224825, 13186930, 4600344, 406904, 9585294, 33153764, 31375463,
4677  14369965
4678 #endif
4679  }},
4680  {{
4681 #if defined(BORINGSSL_CURVE25519_64BIT)
4682  1730194207717538, 431790042319772, 1831515233279467, 1372080552768581,
4683  1074513929381760
4684 #else
4685  52738210, 25781902, 1510300, 6434173, 48324075, 27291703, 32732229, 20445593,
4686  17901440, 16011505
4687 #endif
4688  }},
4689  {{
4690 #if defined(BORINGSSL_CURVE25519_64BIT)
4691  1450880638731607, 1019861580989005, 1229729455116861, 1174945729836143,
4692  826083146840706
4693 #else
4694  18171223, 21619806, 54608461, 15197121, 56070717, 18324396, 47936623, 17508055,
4695  8764034, 12309598
4696 #endif
4697  }},
4698  },
4699  },
4700  {
4701  {
4702  {{
4703 #if defined(BORINGSSL_CURVE25519_64BIT)
4704  1899935429242705, 1602068751520477, 940583196550370, 82431069053859,
4705  1540863155745696
4706 #else
4707  5975889, 28311244, 47649501, 23872684, 55567586, 14015781, 43443107, 1228318,
4708  17544096, 22960650
4709 #endif
4710  }},
4711  {{
4712 #if defined(BORINGSSL_CURVE25519_64BIT)
4713  2136688454840028, 2099509000964294, 1690800495246475, 1217643678575476,
4714  828720645084218
4715 #else
4716  5811932, 31839139, 3442886, 31285122, 48741515, 25194890, 49064820, 18144304,
4717  61543482, 12348899
4718 #endif
4719  }},
4720  {{
4721 #if defined(BORINGSSL_CURVE25519_64BIT)
4722  765548025667841, 462473984016099, 998061409979798, 546353034089527, 2212508972466858
4723 #else
4724  35709185, 11407554, 25755363, 6891399, 63851926, 14872273, 42259511, 8141294,
4725  56476330, 32968952
4726 #endif
4727  }},
4728  },
4729  {
4730  {{
4731 #if defined(BORINGSSL_CURVE25519_64BIT)
4732  46575283771160, 892570971573071, 1281983193144090, 1491520128287375, 75847005908304
4733 #else
4734  54433560, 694025, 62032719, 13300343, 14015258, 19103038, 57410191, 22225381,
4735  30944592, 1130208
4736 #endif
4737  }},
4738  {{
4739 #if defined(BORINGSSL_CURVE25519_64BIT)
4740  1801436127943107, 1734436817907890, 1268728090345068, 167003097070711,
4741  2233597765834956
4742 #else
4743  8247747, 26843490, 40546482, 25845122, 52706924, 18905521, 4652151, 2488540,
4744  23550156, 33283200
4745 #endif
4746  }},
4747  {{
4748 #if defined(BORINGSSL_CURVE25519_64BIT)
4749  1997562060465113, 1048700225534011, 7615603985628, 1855310849546841,
4750  2242557647635213
4751 #else
4752  17294297, 29765994, 7026747, 15626851, 22990044, 113481, 2267737, 27646286,
4753  66700045, 33416712
4754 #endif
4755  }},
4756  },
4757  {
4758  {{
4759 #if defined(BORINGSSL_CURVE25519_64BIT)
4760  1161017320376250, 492624580169043, 2169815802355237, 976496781732542,
4761  1770879511019629
4762 #else
4763  16091066, 17300506, 18599251, 7340678, 2137637, 32332775, 63744702, 14550935,
4764  3260525, 26388161
4765 #endif
4766  }},
4767  {{
4768 #if defined(BORINGSSL_CURVE25519_64BIT)
4769  1357044908364776, 729130645262438, 1762469072918979, 1365633616878458,
4770  181282906404941
4771 #else
4772  62198760, 20221544, 18550886, 10864893, 50649539, 26262835, 44079994, 20349526,
4773  54360141, 2701325
4774 #endif
4775  }},
4776  {{
4777 #if defined(BORINGSSL_CURVE25519_64BIT)
4778  1080413443139865, 1155205815510486, 1848782073549786, 622566975152580,
4779  124965574467971
4780 #else
4781  58534169, 16099414, 4629974, 17213908, 46322650, 27548999, 57090500, 9276970,
4782  11329923, 1862132
4783 #endif
4784  }},
4785  },
4786  {
4787  {{
4788 #if defined(BORINGSSL_CURVE25519_64BIT)
4789  1184526762066993, 247622751762817, 692129017206356, 820018689412496,
4790  2188697339828085
4791 #else
4792  14763057, 17650824, 36190593, 3689866, 3511892, 10313526, 45157776, 12219230,
4793  58070901, 32614131
4794 #endif
4795  }},
4796  {{
4797 #if defined(BORINGSSL_CURVE25519_64BIT)
4798  2020536369003019, 202261491735136, 1053169669150884, 2056531979272544,
4799  778165514694311
4800 #else
4801  8894987, 30108338, 6150752, 3013931, 301220, 15693451, 35127648, 30644714, 51670695,
4802  11595569
4803 #endif
4804  }},
4805  {{
4806 #if defined(BORINGSSL_CURVE25519_64BIT)
4807  237404399610207, 1308324858405118, 1229680749538400, 720131409105291,
4808  1958958863624906
4809 #else
4810  15214943, 3537601, 40870142, 19495559, 4418656, 18323671, 13947275, 10730794,
4811  53619402, 29190761
4812 #endif
4813  }},
4814  },
4815  {
4816  {{
4817 #if defined(BORINGSSL_CURVE25519_64BIT)
4818  515583508038846, 17656978857189, 1717918437373989, 1568052070792483, 46975803123923
4819 #else
4820  64570558, 7682792, 32759013, 263109, 37124133, 25598979, 44776739, 23365796, 977107,
4821  699994
4822 #endif
4823  }},
4824  {{
4825 #if defined(BORINGSSL_CURVE25519_64BIT)
4826  281527309158085, 36970532401524, 866906920877543, 2222282602952734, 1289598729589882
4827 #else
4828  54642373, 4195083, 57897332, 550903, 51543527, 12917919, 19118110, 33114591,
4829  36574330, 19216518
4830 #endif
4831  }},
4832  {{
4833 #if defined(BORINGSSL_CURVE25519_64BIT)
4834  1278207464902042, 494742455008756, 1262082121427081, 1577236621659884,
4835  1888786707293291
4836 #else
4837  31788442, 19046775, 4799988, 7372237, 8808585, 18806489, 9408236, 23502657,
4838  12493931, 28145115
4839 #endif
4840  }},
4841  },
4842  {
4843  {{
4844 #if defined(BORINGSSL_CURVE25519_64BIT)
4845  353042527954210, 1830056151907359, 1111731275799225, 174960955838824,
4846  404312815582675
4847 #else
4848  41428258, 5260743, 47873055, 27269961, 63412921, 16566086, 27218280, 2607121,
4849  29375955, 6024730
4850 #endif
4851  }},
4852  {{
4853 #if defined(BORINGSSL_CURVE25519_64BIT)
4854  2064251142068628, 1666421603389706, 1419271365315441, 468767774902855,
4855  191535130366583
4856 #else
4857  842132, 30759739, 62345482, 24831616, 26332017, 21148791, 11831879, 6985184,
4858  57168503, 2854095
4859 #endif
4860  }},
4861  {{
4862 #if defined(BORINGSSL_CURVE25519_64BIT)
4863  1716987058588002, 1859366439773457, 1767194234188234, 64476199777924,
4864  1117233614485261
4865 #else
4866  62261602, 25585100, 2516241, 27706719, 9695690, 26333246, 16512644, 960770,
4867  12121869, 16648078
4868 #endif
4869  }},
4870  },
4871  {
4872  {{
4873 #if defined(BORINGSSL_CURVE25519_64BIT)
4874  984292135520292, 135138246951259, 2220652137473167, 1722843421165029,
4875  190482558012909
4876 #else
4877  51890212, 14667095, 53772635, 2013716, 30598287, 33090295, 35603941, 25672367,
4878  20237805, 2838411
4879 #endif
4880  }},
4881  {{
4882 #if defined(BORINGSSL_CURVE25519_64BIT)
4883  298845952651262, 1166086588952562, 1179896526238434, 1347812759398693,
4884  1412945390096208
4885 #else
4886  47820798, 4453151, 15298546, 17376044, 22115042, 17581828, 12544293, 20083975,
4887  1068880, 21054527
4888 #endif
4889  }},
4890  {{
4891 #if defined(BORINGSSL_CURVE25519_64BIT)
4892  1143239552672925, 906436640714209, 2177000572812152, 2075299936108548,
4893  325186347798433
4894 #else
4895  57549981, 17035596, 33238497, 13506958, 30505848, 32439836, 58621956, 30924378,
4896  12521377, 4845654
4897 #endif
4898  }},
4899  },
4900  {
4901  {{
4902 #if defined(BORINGSSL_CURVE25519_64BIT)
4903  721024854374772, 684487861263316, 1373438744094159, 2193186935276995,
4904  1387043709851261
4905 #else
4906  38910324, 10744107, 64150484, 10199663, 7759311, 20465832, 3409347, 32681032,
4907  60626557, 20668561
4908 #endif
4909  }},
4910  {{
4911 #if defined(BORINGSSL_CURVE25519_64BIT)
4912  418098668140962, 715065997721283, 1471916138376055, 2168570337288357,
4913  937812682637044
4914 #else
4915  43547042, 6230155, 46726851, 10655313, 43068279, 21933259, 10477733, 32314216,
4916  63995636, 13974497
4917 #endif
4918  }},
4919  {{
4920 #if defined(BORINGSSL_CURVE25519_64BIT)
4921  1043584187226485, 2143395746619356, 2209558562919611, 482427979307092,
4922  847556718384018
4923 #else
4924  12966261, 15550616, 35069916, 31939085, 21025979, 32924988, 5642324, 7188737,
4925  18895762, 12629579
4926 #endif
4927  }},
4928  },
4929  },
4930  {
4931  {
4932  {{
4933 #if defined(BORINGSSL_CURVE25519_64BIT)
4934  1248731221520759, 1465200936117687, 540803492710140, 52978634680892, 261434490176109
4935 #else
4936  14741879, 18607545, 22177207, 21833195, 1279740, 8058600, 11758140, 789443,
4937  32195181, 3895677
4938 #endif
4939  }},
4940  {{
4941 #if defined(BORINGSSL_CURVE25519_64BIT)
4942  1057329623869501, 620334067429122, 461700859268034, 2012481616501857,
4943  297268569108938
4944 #else
4945  10758205, 15755439, 62598914, 9243697, 62229442, 6879878, 64904289, 29988312,
4946  58126794, 4429646
4947 #endif
4948  }},
4949  {{
4950 #if defined(BORINGSSL_CURVE25519_64BIT)
4951  1055352180870759, 1553151421852298, 1510903185371259, 1470458349428097,
4952  1226259419062731
4953 #else
4954  64654951, 15725972, 46672522, 23143759, 61304955, 22514211, 59972993, 21911536,
4955  18047435, 18272689
4956 #endif
4957  }},
4958  },
4959  {
4960  {{
4961 #if defined(BORINGSSL_CURVE25519_64BIT)
4962  1492988790301668, 790326625573331, 1190107028409745, 1389394752159193,
4963  1620408196604194
4964 #else
4965  41935844, 22247266, 29759955, 11776784, 44846481, 17733976, 10993113, 20703595,
4966  49488162, 24145963
4967 #endif
4968  }},
4969  {{
4970 #if defined(BORINGSSL_CURVE25519_64BIT)
4971  47000654413729, 1004754424173864, 1868044813557703, 173236934059409, 588771199737015
4972 #else
4973  21987233, 700364, 42603816, 14972007, 59334599, 27836036, 32155025, 2581431,
4974  37149879, 8773374
4975 #endif
4976  }},
4977  {{
4978 #if defined(BORINGSSL_CURVE25519_64BIT)
4979  30498470091663, 1082245510489825, 576771653181956, 806509986132686, 1317634017056939
4980 #else
4981  41540495, 454462, 53896929, 16126714, 25240068, 8594567, 20656846, 12017935,
4982  59234475, 19634276
4983 #endif
4984  }},
4985  },
4986  {
4987  {{
4988 #if defined(BORINGSSL_CURVE25519_64BIT)
4989  420308055751555, 1493354863316002, 165206721528088, 1884845694919786,
4990  2065456951573059
4991 #else
4992  6028163, 6263078, 36097058, 22252721, 66289944, 2461771, 35267690, 28086389,
4993  65387075, 30777706
4994 #endif
4995  }},
4996  {{
4997 #if defined(BORINGSSL_CURVE25519_64BIT)
4998  1115636332012334, 1854340990964155, 83792697369514, 1972177451994021,
4999  457455116057587
5000 #else
5001  54829870, 16624276, 987579, 27631834, 32908202, 1248608, 7719845, 29387734,
5002  28408819, 6816612
5003 #endif
5004  }},
5005  {{
5006 #if defined(BORINGSSL_CURVE25519_64BIT)
5007  1698968457310898, 1435137169051090, 1083661677032510, 938363267483709,
5008  340103887207182
5009 #else
5010  56750770, 25316602, 19549650, 21385210, 22082622, 16147817, 20613181, 13982702,
5011  56769294, 5067942
5012 #endif
5013  }},
5014  },
5015  {
5016  {{
5017 #if defined(BORINGSSL_CURVE25519_64BIT)
5018  1995325341336574, 911500251774648, 164010755403692, 855378419194762,
5019  1573601397528842
5020 #else
5021  36602878, 29732664, 12074680, 13582412, 47230892, 2443950, 47389578, 12746131,
5022  5331210, 23448488
5023 #endif
5024  }},
5025  {{
5026 #if defined(BORINGSSL_CURVE25519_64BIT)
5027  241719380661528, 310028521317150, 1215881323380194, 1408214976493624,
5028  2141142156467363
5029 #else
5030  30528792, 3601899, 65151774, 4619784, 39747042, 18118043, 24180792, 20984038,
5031  27679907, 31905504
5032 #endif
5033  }},
5034  {{
5035 #if defined(BORINGSSL_CURVE25519_64BIT)
5036  1315157046163473, 727368447885818, 1363466668108618, 1668921439990361,
5037  1398483384337907
5038 #else
5039  9402385, 19597367, 32834042, 10838634, 40528714, 20317236, 26653273, 24868867,
5040  22611443, 20839026
5041 #endif
5042  }},
5043  },
5044  {
5045  {{
5046 #if defined(BORINGSSL_CURVE25519_64BIT)
5047  75029678299646, 1015388206460473, 1849729037055212, 1939814616452984,
5048  444404230394954
5049 #else
5050  22190590, 1118029, 22736441, 15130463, 36648172, 27563110, 19189624, 28905490,
5051  4854858, 6622139
5052 #endif
5053  }},
5054  {{
5055 #if defined(BORINGSSL_CURVE25519_64BIT)
5056  2053597130993710, 2024431685856332, 2233550957004860, 2012407275509545,
5057  872546993104440
5058 #else
5059  58798126, 30600981, 58846284, 30166382, 56707132, 33282502, 13424425, 29987205,
5060  26404408, 13001963
5061 #endif
5062  }},
5063  {{
5064 #if defined(BORINGSSL_CURVE25519_64BIT)
5065  1217269667678610, 599909351968693, 1390077048548598, 1471879360694802,
5066  739586172317596
5067 #else
5068  35867026, 18138731, 64114613, 8939345, 11562230, 20713762, 41044498, 21932711,
5069  51703708, 11020692
5070 #endif
5071  }},
5072  },
5073  {
5074  {{
5075 #if defined(BORINGSSL_CURVE25519_64BIT)
5076  1718318639380794, 1560510726633958, 904462881159922, 1418028351780052,
5077  94404349451937
5078 #else
5079  1866042, 25604943, 59210214, 23253421, 12483314, 13477547, 3175636, 21130269,
5080  28761761, 1406734
5081 #endif
5082  }},
5083  {{
5084 #if defined(BORINGSSL_CURVE25519_64BIT)
5085  2132502667405250, 214379346175414, 1502748313768060, 1960071701057800,
5086  1353971822643138
5087 #else
5088  66660290, 31776765, 13018550, 3194501, 57528444, 22392694, 24760584, 29207344,
5089  25577410, 20175752
5090 #endif
5091  }},
5092  {{
5093 #if defined(BORINGSSL_CURVE25519_64BIT)
5094  319394212043702, 2127459436033571, 717646691535162, 663366796076914, 318459064945314
5095 #else
5096  42818486, 4759344, 66418211, 31701615, 2066746, 10693769, 37513074, 9884935,
5097  57739938, 4745409
5098 #endif
5099  }},
5100  },
5101  {
5102  {{
5103 #if defined(BORINGSSL_CURVE25519_64BIT)
5104  405989424923593, 1960452633787083, 667349034401665, 1492674260767112,
5105  1451061489880787
5106 #else
5107  57967561, 6049713, 47577803, 29213020, 35848065, 9944275, 51646856, 22242579,
5108  10931923, 21622501
5109 #endif
5110  }},
5111  {{
5112 #if defined(BORINGSSL_CURVE25519_64BIT)
5113  947085906234007, 323284730494107, 1485778563977200, 728576821512394, 901584347702286
5114 #else
5115  50547351, 14112679, 59096219, 4817317, 59068400, 22139825, 44255434, 10856640,
5116  46638094, 13434653
5117 #endif
5118  }},
5119  {{
5120 #if defined(BORINGSSL_CURVE25519_64BIT)
5121  1575783124125742, 2126210792434375, 1569430791264065, 1402582372904727,
5122  1891780248341114
5123 #else
5124  22759470, 23480998, 50342599, 31683009, 13637441, 23386341, 1765143, 20900106,
5125  28445306, 28189722
5126 #endif
5127  }},
5128  },
5129  {
5130  {{
5131 #if defined(BORINGSSL_CURVE25519_64BIT)
5132  838432205560695, 1997703511451664, 1018791879907867, 1662001808174331,
5133  78328132957753
5134 #else
5135  29875063, 12493613, 2795536, 29768102, 1710619, 15181182, 56913147, 24765756,
5136  9074233, 1167180
5137 #endif
5138  }},
5139  {{
5140 #if defined(BORINGSSL_CURVE25519_64BIT)
5141  739152638255629, 2074935399403557, 505483666745895, 1611883356514088,
5142  628654635394878
5143 #else
5144  40903181, 11014232, 57266213, 30918946, 40200743, 7532293, 48391976, 24018933,
5145  3843902, 9367684
5146 #endif
5147  }},
5148  {{
5149 #if defined(BORINGSSL_CURVE25519_64BIT)
5150  1822054032121349, 643057948186973, 7306757352712, 577249257962099, 284735863382083
5151 #else
5152  56139269, 27150720, 9591133, 9582310, 11349256, 108879, 16235123, 8601684, 66969667,
5153  4242894
5154 #endif
5155  }},
5156  },
5157  },
5158  {
5159  {
5160  {{
5161 #if defined(BORINGSSL_CURVE25519_64BIT)
5162  1366558556363930, 1448606567552086, 1478881020944768, 165803179355898,
5163  1115718458123498
5164 #else
5165  22092954, 20363309, 65066070, 21585919, 32186752, 22037044, 60534522, 2470659,
5166  39691498, 16625500
5167 #endif
5168  }},
5169  {{
5170 #if defined(BORINGSSL_CURVE25519_64BIT)
5171  204146226972102, 1630511199034723, 2215235214174763, 174665910283542,
5172  956127674017216
5173 #else
5174  56051142, 3042015, 13770083, 24296510, 584235, 33009577, 59338006, 2602724,
5175  39757248, 14247412
5176 #endif
5177  }},
5178  {{
5179 #if defined(BORINGSSL_CURVE25519_64BIT)
5180  1562934578796716, 1070893489712745, 11324610642270, 958989751581897,
5181  2172552325473805
5182 #else
5183  6314156, 23289540, 34336361, 15957556, 56951134, 168749, 58490057, 14290060,
5184  27108877, 32373552
5185 #endif
5186  }},
5187  },
5188  {
5189  {{
5190 #if defined(BORINGSSL_CURVE25519_64BIT)
5191  1770564423056027, 735523631664565, 1326060113795289, 1509650369341127,
5192  65892421582684
5193 #else
5194  58522267, 26383465, 13241781, 10960156, 34117849, 19759835, 33547975, 22495543,
5195  39960412, 981873
5196 #endif
5197  }},
5198  {{
5199 #if defined(BORINGSSL_CURVE25519_64BIT)
5200  623682558650637, 1337866509471512, 990313350206649, 1314236615762469,
5201  1164772974270275
5202 #else
5203  22833421, 9293594, 34459416, 19935764, 57971897, 14756818, 44180005, 19583651,
5204  56629059, 17356469
5205 #endif
5206  }},
5207  {{
5208 #if defined(BORINGSSL_CURVE25519_64BIT)
5209  223256821462517, 723690150104139, 1000261663630601, 933280913953265, 254872671543046
5210 #else
5211  59340277, 3326785, 38997067, 10783823, 19178761, 14905060, 22680049, 13906969,
5212  51175174, 3797898
5213 #endif
5214  }},
5215  },
5216  {
5217  {{
5218 #if defined(BORINGSSL_CURVE25519_64BIT)
5219  1969087237026041, 624795725447124, 1335555107635969, 2069986355593023,
5220  1712100149341902
5221 #else
5222  21721337, 29341686, 54902740, 9310181, 63226625, 19901321, 23740223, 30845200,
5223  20491982, 25512280
5224 #endif
5225  }},
5226  {{
5227 #if defined(BORINGSSL_CURVE25519_64BIT)
5228  1236103475266979, 1837885883267218, 1026072585230455, 1025865513954973,
5229  1801964901432134
5230 #else
5231  9209251, 18419377, 53852306, 27386633, 66377847, 15289672, 25947805, 15286587,
5232  30997318, 26851369
5233 #endif
5234  }},
5235  {{
5236 #if defined(BORINGSSL_CURVE25519_64BIT)
5237  1115241013365517, 1712251818829143, 2148864332502771, 2096001471438138,
5238  2235017246626125
5239 #else
5240  7392013, 16618386, 23946583, 25514540, 53843699, 32020573, 52911418, 31232855,
5241  17649997, 33304352
5242 #endif
5243  }},
5244  },
5245  {
5246  {{
5247 #if defined(BORINGSSL_CURVE25519_64BIT)
5248  1299268198601632, 2047148477845621, 2165648650132450, 1612539282026145,
5249  514197911628890
5250 #else
5251  57807776, 19360604, 30609525, 30504889, 41933794, 32270679, 51867297, 24028707,
5252  64875610, 7662145
5253 #endif
5254  }},
5255  {{
5256 #if defined(BORINGSSL_CURVE25519_64BIT)
5257  118352772338543, 1067608711804704, 1434796676193498, 1683240170548391,
5258  230866769907437
5259 #else
5260  49550191, 1763593, 33994528, 15908609, 37067994, 21380136, 7335079, 25082233,
5261  63934189, 3440182
5262 #endif
5263  }},
5264  {{
5265 #if defined(BORINGSSL_CURVE25519_64BIT)
5266  1850689576796636, 1601590730430274, 1139674615958142, 1954384401440257, 76039205311
5267 #else
5268  47219164, 27577423, 42997570, 23865561, 10799742, 16982475, 40449, 29122597,
5269  4862399, 1133
5270 #endif
5271  }},
5272  },
5273  {
5274  {{
5275 #if defined(BORINGSSL_CURVE25519_64BIT)
5276  1723387471374172, 997301467038410, 533927635123657, 20928644693965, 1756575222802513
5277 #else
5278  34252636, 25680474, 61686474, 14860949, 50789833, 7956141, 7258061, 311861,
5279  36513873, 26175010
5280 #endif
5281  }},
5282  {{
5283 #if defined(BORINGSSL_CURVE25519_64BIT)
5284  2146711623855116, 503278928021499, 625853062251406, 1109121378393107,
5285  1033853809911861
5286 #else
5287  63335436, 31988495, 28985339, 7499440, 24445838, 9325937, 29727763, 16527196,
5288  18278453, 15405622
5289 #endif
5290  }},
5291  {{
5292 #if defined(BORINGSSL_CURVE25519_64BIT)
5293  571005965509422, 2005213373292546, 1016697270349626, 56607856974274, 914438579435146
5294 #else
5295  62726958, 8508651, 47210498, 29880007, 61124410, 15149969, 53795266, 843522,
5296  45233802, 13626196
5297 #endif
5298  }},
5299  },
5300  {
5301  {{
5302 #if defined(BORINGSSL_CURVE25519_64BIT)
5303  1346698876211176, 2076651707527589, 1084761571110205, 265334478828406,
5304  1068954492309671
5305 #else
5306  2281448, 20067377, 56193445, 30944521, 1879357, 16164207, 56324982, 3953791,
5307  13340839, 15928663
5308 #endif
5309  }},
5310  {{
5311 #if defined(BORINGSSL_CURVE25519_64BIT)
5312  1769967932677654, 1695893319756416, 1151863389675920, 1781042784397689,
5313  400287774418285
5314 #else
5315  31727126, 26374577, 48671360, 25270779, 2875792, 17164102, 41838969, 26539605,
5316  43656557, 5964752
5317 #endif
5318  }},
5319  {{
5320 #if defined(BORINGSSL_CURVE25519_64BIT)
5321  1851867764003121, 403841933237558, 820549523771987, 761292590207581,
5322  1743735048551143
5323 #else
5324  4100401, 27594980, 49929526, 6017713, 48403027, 12227140, 40424029, 11344143,
5325  2538215, 25983677
5326 #endif
5327  }},
5328  },
5329  {
5330  {{
5331 #if defined(BORINGSSL_CURVE25519_64BIT)
5332  410915148140008, 2107072311871739, 1004367461876503, 99684895396761,
5333  1180818713503224
5334 #else
5335  57675240, 6123112, 11159803, 31397824, 30016279, 14966241, 46633881, 1485420,
5336  66479608, 17595569
5337 #endif
5338  }},
5339  {{
5340 #if defined(BORINGSSL_CURVE25519_64BIT)
5341  285945406881439, 648174397347453, 1098403762631981, 1366547441102991,
5342  1505876883139217
5343 #else
5344  40304287, 4260918, 11851389, 9658551, 35091757, 16367491, 46903439, 20363143,
5345  11659921, 22439314
5346 #endif
5347  }},
5348  {{
5349 #if defined(BORINGSSL_CURVE25519_64BIT)
5350  672095903120153, 1675918957959872, 636236529315028, 1569297300327696,
5351  2164144194785875
5352 #else
5353  26180377, 10015009, 36264640, 24973138, 5418196, 9480663, 2231568, 23384352,
5354  33100371, 32248261
5355 #endif
5356  }},
5357  },
5358  {
5359  {{
5360 #if defined(BORINGSSL_CURVE25519_64BIT)
5361  1902708175321798, 1035343530915438, 1178560808893263, 301095684058146,
5362  1280977479761118
5363 #else
5364  15121094, 28352561, 56718958, 15427820, 39598927, 17561924, 21670946, 4486675,
5365  61177054, 19088051
5366 #endif
5367  }},
5368  {{
5369 #if defined(BORINGSSL_CURVE25519_64BIT)
5370  1615357281742403, 404257611616381, 2160201349780978, 1160947379188955,
5371  1578038619549541
5372 #else
5373  16166467, 24070699, 56004733, 6023907, 35182066, 32189508, 2340059, 17299464,
5374  56373093, 23514607
5375 #endif
5376  }},
5377  {{
5378 #if defined(BORINGSSL_CURVE25519_64BIT)
5379  2013087639791217, 822734930507457, 1785668418619014, 1668650702946164,
5380  389450875221715
5381 #else
5382  28042865, 29997343, 54982337, 12259705, 63391366, 26608532, 6766452, 24864833,
5383  18036435, 5803270
5384 #endif
5385  }},
5386  },
5387  },
5388  {
5389  {
5390  {{
5391 #if defined(BORINGSSL_CURVE25519_64BIT)
5392  453918449698368, 106406819929001, 2072540975937135, 308588860670238,
5393  1304394580755385
5394 #else
5395  66291264, 6763911, 11803561, 1585585, 10958447, 30883267, 23855390, 4598332,
5396  60949433, 19436993
5397 #endif
5398  }},
5399  {{
5400 #if defined(BORINGSSL_CURVE25519_64BIT)
5401  1295082798350326, 2091844511495996, 1851348972587817, 3375039684596, 789440738712837
5402 #else
5403  36077558, 19298237, 17332028, 31170912, 31312681, 27587249, 696308, 50292, 47013125,
5404  11763583
5405 #endif
5406  }},
5407  {{
5408 #if defined(BORINGSSL_CURVE25519_64BIT)
5409  2083069137186154, 848523102004566, 993982213589257, 1405313299916317,
5410  1532824818698468
5411 #else
5412  66514282, 31040148, 34874710, 12643979, 12650761, 14811489, 665117, 20940800,
5413  47335652, 22840869
5414 #endif
5415  }},
5416  },
5417  {
5418  {{
5419 #if defined(BORINGSSL_CURVE25519_64BIT)
5420  1495961298852430, 1397203457344779, 1774950217066942, 139302743555696,
5421  66603584342787
5422 #else
5423  30464590, 22291560, 62981387, 20819953, 19835326, 26448819, 42712688, 2075772,
5424  50088707, 992470
5425 #endif
5426  }},
5427  {{
5428 #if defined(BORINGSSL_CURVE25519_64BIT)
5429  1782411379088302, 1096724939964781, 27593390721418, 542241850291353,
5430  1540337798439873
5431 #else
5432  18357166, 26559999, 7766381, 16342475, 37783946, 411173, 14578841, 8080033,
5433  55534529, 22952821
5434 #endif
5435  }},
5436  {{
5437 #if defined(BORINGSSL_CURVE25519_64BIT)
5438  693543956581437, 171507720360750, 1557908942697227, 1074697073443438,
5439  1104093109037196
5440 #else
5441  19598397, 10334610, 12555054, 2555664, 18821899, 23214652, 21873262, 16014234,
5442  26224780, 16452269
5443 #endif
5444  }},
5445  },
5446  {
5447  {{
5448 #if defined(BORINGSSL_CURVE25519_64BIT)
5449  345288228393419, 1099643569747172, 134881908403743, 1740551994106740,
5450  248212179299770
5451 #else
5452  36884939, 5145195, 5944548, 16385966, 3976735, 2009897, 55731060, 25936245,
5453  46575034, 3698649
5454 #endif
5455  }},
5456  {{
5457 #if defined(BORINGSSL_CURVE25519_64BIT)
5458  231429562203065, 1526290236421172, 2021375064026423, 1520954495658041,
5459  806337791525116
5460 #else
5461  14187449, 3448569, 56472628, 22743496, 44444983, 30120835, 7268409, 22663988,
5462  27394300, 12015369
5463 #endif
5464  }},
5465  {{
5466 #if defined(BORINGSSL_CURVE25519_64BIT)
5467  1079623667189886, 872403650198613, 766894200588288, 2163700860774109,
5468  2023464507911816
5469 #else
5470  19695742, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, 32241655,
5471  53849736, 30151970
5472 #endif
5473  }},
5474  },
5475  {
5476  {{
5477 #if defined(BORINGSSL_CURVE25519_64BIT)
5478  854645372543796, 1936406001954827, 151460662541253, 825325739271555,
5479  1554306377287556
5480 #else
5481  30860084, 12735208, 65220619, 28854697, 50133957, 2256939, 58942851, 12298311,
5482  58558340, 23160969
5483 #endif
5484  }},
5485  {{
5486 #if defined(BORINGSSL_CURVE25519_64BIT)
5487  1497138821904622, 1044820250515590, 1742593886423484, 1237204112746837,
5488  849047450816987
5489 #else
5490  61389038, 22309106, 65198214, 15569034, 26642876, 25966672, 61319509, 18435777,
5491  62132699, 12651792
5492 #endif
5493  }},
5494  {{
5495 #if defined(BORINGSSL_CURVE25519_64BIT)
5496  667962773375330, 1897271816877105, 1399712621683474, 1143302161683099,
5497  2081798441209593
5498 #else
5499  64260450, 9953420, 11531313, 28271553, 26895122, 20857343, 53990043, 17036529,
5500  9768697, 31021214
5501 #endif
5502  }},
5503  },
5504  {
5505  {{
5506 #if defined(BORINGSSL_CURVE25519_64BIT)
5507  127147851567005, 1936114012888110, 1704424366552046, 856674880716312,
5508  716603621335359
5509 #else
5510  42389405, 1894650, 66821166, 28850346, 15348718, 25397902, 32767512, 12765450,
5511  4940095, 10678226
5512 #endif
5513  }},
5514  {{
5515 #if defined(BORINGSSL_CURVE25519_64BIT)
5516  1072409664800960, 2146937497077528, 1508780108920651, 935767602384853,
5517  1112800433544068
5518 #else
5519  18860224, 15980149, 48121624, 31991861, 40875851, 22482575, 59264981, 13944023,
5520  42736516, 16582018
5521 #endif
5522  }},
5523  {{
5524 #if defined(BORINGSSL_CURVE25519_64BIT)
5525  333549023751292, 280219272863308, 2104176666454852, 1036466864875785,
5526  536135186520207
5527 #else
5528  51604604, 4970267, 37215820, 4175592, 46115652, 31354675, 55404809, 15444559,
5529  56105103, 7989036
5530 #endif
5531  }},
5532  },
5533  {
5534  {{
5535 #if defined(BORINGSSL_CURVE25519_64BIT)
5536  373666279883137, 146457241530109, 304116267127857, 416088749147715, 1258577131183391
5537 #else
5538  31490433, 5568061, 64696061, 2182382, 34772017, 4531685, 35030595, 6200205,
5539  47422751, 18754260
5540 #endif
5541  }},
5542  {{
5543 #if defined(BORINGSSL_CURVE25519_64BIT)
5544  1186115062588401, 2251609796968486, 1098944457878953, 1153112761201374,
5545  1791625503417267
5546 #else
5547  49800177, 17674491, 35586086, 33551600, 34221481, 16375548, 8680158, 17182719,
5548  28550067, 26697300
5549 #endif
5550  }},
5551  {{
5552 #if defined(BORINGSSL_CURVE25519_64BIT)
5553  1870078460219737, 2129630962183380, 852283639691142, 292865602592851,
5554  401904317342226
5555 #else
5556  38981977, 27866340, 16837844, 31733974, 60258182, 12700015, 37068883, 4364037,
5557  1155602, 5988841
5558 #endif
5559  }},
5560  },
5561  {
5562  {{
5563 #if defined(BORINGSSL_CURVE25519_64BIT)
5564  1361070124828035, 815664541425524, 1026798897364671, 1951790935390647,
5565  555874891834790
5566 #else
5567  21890435, 20281525, 54484852, 12154348, 59276991, 15300495, 23148983, 29083951,
5568  24618406, 8283181
5569 #endif
5570  }},
5571  {{
5572 #if defined(BORINGSSL_CURVE25519_64BIT)
5573  1546301003424277, 459094500062839, 1097668518375311, 1780297770129643,
5574  720763293687608
5575 #else
5576  33972757, 23041680, 9975415, 6841041, 35549071, 16356535, 3070187, 26528504,
5577  1466168, 10740210
5578 #endif
5579  }},
5580  {{
5581 #if defined(BORINGSSL_CURVE25519_64BIT)
5582  1212405311403990, 1536693382542438, 61028431067459, 1863929423417129,
5583  1223219538638038
5584 #else
5585  65599446, 18066246, 53605478, 22898515, 32799043, 909394, 53169961, 27774712,
5586  34944214, 18227391
5587 #endif
5588  }},
5589  },
5590  {
5591  {{
5592 #if defined(BORINGSSL_CURVE25519_64BIT)
5593  1294303766540260, 1183557465955093, 882271357233093, 63854569425375,
5594  2213283684565087
5595 #else
5596  3960804, 19286629, 39082773, 17636380, 47704005, 13146867, 15567327, 951507,
5597  63848543, 32980496
5598 #endif
5599  }},
5600  {{
5601 #if defined(BORINGSSL_CURVE25519_64BIT)
5602  339050984211414, 601386726509773, 413735232134068, 966191255137228, 1839475899458159
5603 #else
5604  24740822, 5052253, 37014733, 8961360, 25877428, 6165135, 42740684, 14397371,
5605  59728495, 27410326
5606 #endif
5607  }},
5608  {{
5609 #if defined(BORINGSSL_CURVE25519_64BIT)
5610  235605972169408, 2174055643032978, 1538335001838863, 1281866796917192,
5611  1815940222628465
5612 #else
5613  38220480, 3510802, 39005586, 32395953, 55870735, 22922977, 51667400, 19101303,
5614  65483377, 27059617
5615 #endif
5616  }},
5617  },
5618  },
5619  {
5620  {
5621  {{
5622 #if defined(BORINGSSL_CURVE25519_64BIT)
5623  1632352921721536, 1833328609514701, 2092779091951987, 1923956201873226,
5624  2210068022482919
5625 #else
5626  793280, 24323954, 8836301, 27318725, 39747955, 31184838, 33152842, 28669181,
5627  57202663, 32932579
5628 #endif
5629  }},
5630  {{
5631 #if defined(BORINGSSL_CURVE25519_64BIT)
5632  35271216625062, 1712350667021807, 983664255668860, 98571260373038, 1232645608559836
5633 #else
5634  5666214, 525582, 20782575, 25516013, 42570364, 14657739, 16099374, 1468826,
5635  60937436, 18367850
5636 #endif
5637  }},
5638  {{
5639 #if defined(BORINGSSL_CURVE25519_64BIT)
5640  1998172393429622, 1798947921427073, 784387737563581, 1589352214827263,
5641  1589861734168180
5642 #else
5643  62249590, 29775088, 64191105, 26806412, 7778749, 11688288, 36704511, 23683193,
5644  65549940, 23690785
5645 #endif
5646  }},
5647  },
5648  {
5649  {{
5650 #if defined(BORINGSSL_CURVE25519_64BIT)
5651  1733739258725305, 31715717059538, 201969945218860, 992093044556990, 1194308773174556
5652 #else
5653  10896313, 25834728, 824274, 472601, 47648556, 3009586, 25248958, 14783338, 36527388,
5654  17796587
5655 #endif
5656  }},
5657  {{
5658 #if defined(BORINGSSL_CURVE25519_64BIT)
5659  846415389605137, 746163495539180, 829658752826080, 592067705956946, 957242537821393
5660 #else
5661  10566929, 12612572, 35164652, 11118702, 54475488, 12362878, 21752402, 8822496,
5662  24003793, 14264025
5663 #endif
5664  }},
5665  {{
5666 #if defined(BORINGSSL_CURVE25519_64BIT)
5667  1758148849754419, 619249044817679, 168089007997045, 1371497636330523,
5668  1867101418880350
5669 #else
5670  27713843, 26198459, 56100623, 9227529, 27050101, 2504721, 23886875, 20436907,
5671  13958494, 27821979
5672 #endif
5673  }},
5674  },
5675  {
5676  {{
5677 #if defined(BORINGSSL_CURVE25519_64BIT)
5678  326633984209635, 261759506071016, 1700682323676193, 1577907266349064,
5679  1217647663383016
5680 #else
5681  43627235, 4867225, 39861736, 3900520, 29838369, 25342141, 35219464, 23512650,
5682  7340520, 18144364
5683 #endif
5684  }},
5685  {{
5686 #if defined(BORINGSSL_CURVE25519_64BIT)
5687  1714182387328607, 1477856482074168, 574895689942184, 2159118410227270,
5688  1555532449716575
5689 #else
5690  4646495, 25543308, 44342840, 22021777, 23184552, 8566613, 31366726, 32173371,
5691  52042079, 23179239
5692 #endif
5693  }},
5694  {{
5695 #if defined(BORINGSSL_CURVE25519_64BIT)
5696  853828206885131, 998498946036955, 1835887550391235, 207627336608048, 258363815956050
5697 #else
5698  49838347, 12723031, 50115803, 14878793, 21619651, 27356856, 27584816, 3093888,
5699  58265170, 3849920
5700 #endif
5701  }},
5702  },
5703  {
5704  {{
5705 #if defined(BORINGSSL_CURVE25519_64BIT)
5706  141141474651677, 1236728744905256, 643101419899887, 1646615130509173,
5707  1208239602291765
5708 #else
5709  58043933, 2103171, 25561640, 18428694, 61869039, 9582957, 32477045, 24536477,
5710  5002293, 18004173
5711 #endif
5712  }},
5713  {{
5714 #if defined(BORINGSSL_CURVE25519_64BIT)
5715  1501663228068911, 1354879465566912, 1444432675498247, 897812463852601,
5716  855062598754348
5717 #else
5718  55051311, 22376525, 21115584, 20189277, 8808711, 21523724, 16489529, 13378448,
5719  41263148, 12741425
5720 #endif
5721  }},
5722  {{
5723 #if defined(BORINGSSL_CURVE25519_64BIT)
5724  714380763546606, 1032824444965790, 1774073483745338, 1063840874947367,
5725  1738680636537158
5726 #else
5727  61162478, 10645102, 36197278, 15390283, 63821882, 26435754, 24306471, 15852464,
5728  28834118, 25908360
5729 #endif
5730  }},
5731  },
5732  {
5733  {{
5734 #if defined(BORINGSSL_CURVE25519_64BIT)
5735  1640635546696252, 633168953192112, 2212651044092396, 30590958583852, 368515260889378
5736 #else
5737  49773116, 24447374, 42577584, 9434952, 58636780, 32971069, 54018092, 455840,
5738  20461858, 5491305
5739 #endif
5740  }},
5741  {{
5742 #if defined(BORINGSSL_CURVE25519_64BIT)
5743  1171650314802029, 1567085444565577, 1453660792008405, 757914533009261,
5744  1619511342778196
5745 #else
5746  13669229, 17458950, 54626889, 23351392, 52539093, 21661233, 42112877, 11293806,
5747  38520660, 24132599
5748 #endif
5749  }},
5750  {{
5751 #if defined(BORINGSSL_CURVE25519_64BIT)
5752  420958967093237, 971103481109486, 2169549185607107, 1301191633558497,
5753  1661514101014240
5754 #else
5755  28497909, 6272777, 34085870, 14470569, 8906179, 32328802, 18504673, 19389266,
5756  29867744, 24758489
5757 #endif
5758  }},
5759  },
5760  {
5761  {{
5762 #if defined(BORINGSSL_CURVE25519_64BIT)
5763  907123651818302, 1332556122804146, 1824055253424487, 1367614217442959,
5764  1982558335973172
5765 #else
5766  50901822, 13517195, 39309234, 19856633, 24009063, 27180541, 60741263, 20379039,
5767  22853428, 29542421
5768 #endif
5769  }},
5770  {{
5771 #if defined(BORINGSSL_CURVE25519_64BIT)
5772  1121533090144639, 1021251337022187, 110469995947421, 1511059774758394,
5773  2110035908131662
5774 #else
5775  24191359, 16712145, 53177067, 15217830, 14542237, 1646131, 18603514, 22516545,
5776  12876622, 31441985
5777 #endif
5778  }},
5779  {{
5780 #if defined(BORINGSSL_CURVE25519_64BIT)
5781  303213233384524, 2061932261128138, 352862124777736, 40828818670255, 249879468482660
5782 #else
5783  17902668, 4518229, 66697162, 30725184, 26878216, 5258055, 54248111, 608396,
5784  16031844, 3723494
5785 #endif
5786  }},
5787  },
5788  {
5789  {{
5790 #if defined(BORINGSSL_CURVE25519_64BIT)
5791  856559257852200, 508517664949010, 1378193767894916, 1723459126947129,
5792  1962275756614521
5793 #else
5794  38476072, 12763727, 46662418, 7577503, 33001348, 20536687, 17558841, 25681542,
5795  23896953, 29240187
5796 #endif
5797  }},
5798  {{
5799 #if defined(BORINGSSL_CURVE25519_64BIT)
5800  1445691340537320, 40614383122127, 402104303144865, 485134269878232, 1659439323587426
5801 #else
5802  47103464, 21542479, 31520463, 605201, 2543521, 5991821, 64163800, 7229063, 57189218,
5803  24727572
5804 #endif
5805  }},
5806  {{
5807 #if defined(BORINGSSL_CURVE25519_64BIT)
5808  20057458979482, 1183363722525800, 2140003847237215, 2053873950687614,
5809  2112017736174909
5810 #else
5811  28816026, 298879, 38943848, 17633493, 19000927, 31888542, 54428030, 30605106,
5812  49057085, 31471516
5813 #endif
5814  }},
5815  },
5816  {
5817  {{
5818 #if defined(BORINGSSL_CURVE25519_64BIT)
5819  2228654250927986, 1483591363415267, 1368661293910956, 1076511285177291,
5820  526650682059608
5821 #else
5822  16000882, 33209536, 3493091, 22107234, 37604268, 20394642, 12577739, 16041268,
5823  47393624, 7847706
5824 #endif
5825  }},
5826  {{
5827 #if defined(BORINGSSL_CURVE25519_64BIT)
5828  709481497028540, 531682216165724, 316963769431931, 1814315888453765, 258560242424104
5829 #else
5830  10151868, 10572098, 27312476, 7922682, 14825339, 4723128, 34252933, 27035413,
5831  57088296, 3852847
5832 #endif
5833  }},
5834  {{
5835 #if defined(BORINGSSL_CURVE25519_64BIT)
5836  1053447823660455, 1955135194248683, 1010900954918985, 1182614026976701,
5837  1240051576966610
5838 #else
5839  55678375, 15697595, 45987307, 29133784, 5386313, 15063598, 16514493, 17622322,
5840  29330898, 18478208
5841 #endif
5842  }},
5843  },
5844  },
5845  {
5846  {
5847  {{
5848 #if defined(BORINGSSL_CURVE25519_64BIT)
5849  1957943897155497, 1788667368028035, 137692910029106, 1039519607062, 826404763313028
5850 #else
5851  41609129, 29175637, 51885955, 26653220, 16615730, 2051784, 3303702, 15490, 39560068,
5852  12314390
5853 #endif
5854  }},
5855  {{
5856 #if defined(BORINGSSL_CURVE25519_64BIT)
5857  1848942433095597, 1582009882530495, 1849292741020143, 1068498323302788,
5858  2001402229799484
5859 #else
5860  15683501, 27551389, 18109119, 23573784, 15337967, 27556609, 50391428, 15921865,
5861  16103996, 29823217
5862 #endif
5863  }},
5864  {{
5865 #if defined(BORINGSSL_CURVE25519_64BIT)
5866  1528282417624269, 2142492439828191, 2179662545816034, 362568973150328,
5867  1591374675250271
5868 #else
5869  43939021, 22773182, 13588191, 31925625, 63310306, 32479502, 47835256, 5402698,
5870  37293151, 23713330
5871 #endif
5872  }},
5873  },
5874  {
5875  {{
5876 #if defined(BORINGSSL_CURVE25519_64BIT)
5877  160026679434388, 232341189218716, 2149181472355545, 598041771119831, 183859001910173
5878 #else
5879  23190676, 2384583, 34394524, 3462153, 37205209, 32025299, 55842007, 8911516,
5880  41903005, 2739712
5881 #endif
5882  }},
5883  {{
5884 #if defined(BORINGSSL_CURVE25519_64BIT)
5885  2013278155187349, 662660471354454, 793981225706267, 411706605985744, 804490933124791
5886 #else
5887  21374101, 30000182, 33584214, 9874410, 15377179, 11831242, 33578960, 6134906,
5888  4931255, 11987849
5889 #endif
5890  }},
5891  {{
5892 #if defined(BORINGSSL_CURVE25519_64BIT)
5893  2051892037280204, 488391251096321, 2230187337030708, 930221970662692,
5894  679002758255210
5895 #else
5896  67101132, 30575573, 50885377, 7277596, 105524, 33232381, 35628324, 13861387,
5897  37032554, 10117929
5898 #endif
5899  }},
5900  },
5901  {
5902  {{
5903 #if defined(BORINGSSL_CURVE25519_64BIT)
5904  1530723630438670, 875873929577927, 341560134269988, 449903119530753,
5905  1055551308214179
5906 #else
5907  37607694, 22809559, 40945095, 13051538, 41483300, 5089642, 60783361, 6704078,
5908  12890019, 15728940
5909 #endif
5910  }},
5911  {{
5912 #if defined(BORINGSSL_CURVE25519_64BIT)
5913  1461835919309432, 1955256480136428, 180866187813063, 1551979252664528,
5914  557743861963950
5915 #else
5916  45136504, 21783052, 66157804, 29135591, 14704839, 2695116, 903376, 23126293,
5917  12885166, 8311031
5918 #endif
5919  }},
5920  {{
5921 #if defined(BORINGSSL_CURVE25519_64BIT)
5922  359179641731115, 1324915145732949, 902828372691474, 294254275669987,
5923  1887036027752957
5924 #else
5925  49592363, 5352193, 10384213, 19742774, 7506450, 13453191, 26423267, 4384730,
5926  1888765, 28119028
5927 #endif
5928  }},
5929  },
5930  {
5931  {{
5932 #if defined(BORINGSSL_CURVE25519_64BIT)
5933  2043271609454323, 2038225437857464, 1317528426475850, 1398989128982787,
5934  2027639881006861
5935 #else
5936  41291507, 30447119, 53614264, 30371925, 30896458, 19632703, 34857219, 20846562,
5937  47644429, 30214188
5938 #endif
5939  }},
5940  {{
5941 #if defined(BORINGSSL_CURVE25519_64BIT)
5942  2072902725256516, 312132452743412, 309930885642209, 996244312618453,
5943  1590501300352303
5944 #else
5945  43500868, 30888657, 66582772, 4651135, 5765089, 4618330, 6092245, 14845197,
5946  17151279, 23700316
5947 #endif
5948  }},
5949  {{
5950 #if defined(BORINGSSL_CURVE25519_64BIT)
5951  1397254305160710, 695734355138021, 2233992044438756, 1776180593969996,
5952  1085588199351115
5953 #else
5954  42278406, 20820711, 51942885, 10367249, 37577956, 33289075, 22825804, 26467153,
5955  50242379, 16176524
5956 #endif
5957  }},
5958  },
5959  {
5960  {{
5961 #if defined(BORINGSSL_CURVE25519_64BIT)
5962  440567051331029, 254894786356681, 493869224930222, 1556322069683366,
5963  1567456540319218
5964 #else
5965  43525589, 6564960, 20063689, 3798228, 62368686, 7359224, 2006182, 23191006,
5966  38362610, 23356922
5967 #endif
5968  }},
5969  {{
5970 #if defined(BORINGSSL_CURVE25519_64BIT)
5971  1950722461391320, 1907845598854797, 1822757481635527, 2121567704750244,
5972  73811931471221
5973 #else
5974  56482264, 29068029, 53788301, 28429114, 3432135, 27161203, 23632036, 31613822,
5975  32808309, 1099883
5976 #endif
5977  }},
5978  {{
5979 #if defined(BORINGSSL_CURVE25519_64BIT)
5980  387139307395758, 2058036430315676, 1220915649965325, 1794832055328951,
5981  1230009312169328
5982 #else
5983  15030958, 5768825, 39657628, 30667132, 60681485, 18193060, 51830967, 26745081,
5984  2051440, 18328567
5985 #endif
5986  }},
5987  },
5988  {
5989  {{
5990 #if defined(BORINGSSL_CURVE25519_64BIT)
5991  1765973779329517, 659344059446977, 19821901606666, 1301928341311214,
5992  1116266004075885
5993 #else
5994  63746541, 26315059, 7517889, 9824992, 23555850, 295369, 5148398, 19400244, 44422509,
5995  16633659
5996 #endif
5997  }},
5998  {{
5999 #if defined(BORINGSSL_CURVE25519_64BIT)
6000  1127572801181483, 1224743760571696, 1276219889847274, 1529738721702581,
6001  1589819666871853
6002 #else
6003  4577067, 16802144, 13249840, 18250104, 19958762, 19017158, 18559669, 22794883,
6004  8402477, 23690159
6005 #endif
6006  }},
6007  {{
6008 #if defined(BORINGSSL_CURVE25519_64BIT)
6009  2181229378964934, 2190885205260020, 1511536077659137, 1246504208580490,
6010  668883326494241
6011 #else
6012  38702534, 32502850, 40318708, 32646733, 49896449, 22523642, 9453450, 18574360,
6013  17983009, 9967138
6014 #endif
6015  }},
6016  },
6017  {
6018  {{
6019 #if defined(BORINGSSL_CURVE25519_64BIT)
6020  437866655573314, 669026411194768, 81896997980338, 523874406393178, 245052060935236
6021 #else
6022  41346370, 6524721, 26585488, 9969270, 24709298, 1220360, 65430874, 7806336,
6023  17507396, 3651560
6024 #endif
6025  }},
6026  {{
6027 #if defined(BORINGSSL_CURVE25519_64BIT)
6028  1975438052228868, 1071801519999806, 594652299224319, 1877697652668809,
6029  1489635366987285
6030 #else
6031  56688388, 29436320, 14584638, 15971087, 51340543, 8861009, 26556809, 27979875,
6032  48555541, 22197296
6033 #endif
6034  }},
6035  {{
6036 #if defined(BORINGSSL_CURVE25519_64BIT)
6037  958592545673770, 233048016518599, 851568750216589, 567703851596087, 1740300006094761
6038 #else
6039  2839082, 14284142, 4029895, 3472686, 14402957, 12689363, 40466743, 8459446,
6040  61503401, 25932490
6041 #endif
6042  }},
6043  },
6044  {
6045  {{
6046 #if defined(BORINGSSL_CURVE25519_64BIT)
6047  2014540178270324, 192672779514432, 213877182641530, 2194819933853411,
6048  1716422829364835
6049 #else
6050  62269556, 30018987, 9744960, 2871048, 25113978, 3187018, 41998051, 32705365,
6051  17258083, 25576693
6052 #endif
6053  }},
6054  {{
6055 #if defined(BORINGSSL_CURVE25519_64BIT)
6056  1540769606609725, 2148289943846077, 1597804156127445, 1230603716683868,
6057  815423458809453
6058 #else
6059  18164541, 22959256, 49953981, 32012014, 19237077, 23809137, 23357532, 18337424,
6060  26908269, 12150756
6061 #endif
6062  }},
6063  {{
6064 #if defined(BORINGSSL_CURVE25519_64BIT)
6065  1738560251245018, 1779576754536888, 1783765347671392, 1880170990446751,
6066  1088225159617541
6067 #else
6068  36843994, 25906566, 5112248, 26517760, 65609056, 26580174, 43167, 28016731,
6069  34806789, 16215818
6070 #endif
6071  }},
6072  },
6073  },
6074  {
6075  {
6076  {{
6077 #if defined(BORINGSSL_CURVE25519_64BIT)
6078  659303913929492, 1956447718227573, 1830568515922666, 841069049744408,
6079  1669607124206368
6080 #else
6081  60209940, 9824393, 54804085, 29153342, 35711722, 27277596, 32574488, 12532905,
6082  59605792, 24879084
6083 #endif
6084  }},
6085  {{
6086 #if defined(BORINGSSL_CURVE25519_64BIT)
6087  1143465490433355, 1532194726196059, 1093276745494697, 481041706116088,
6088  2121405433561163
6089 #else
6090  39765323, 17038963, 39957339, 22831480, 946345, 16291093, 254968, 7168080, 21676107,
6091  31611404
6092 #endif
6093  }},
6094  {{
6095 #if defined(BORINGSSL_CURVE25519_64BIT)
6096  1686424298744462, 1451806974487153, 266296068846582, 1834686947542675,
6097  1720762336132256
6098 #else
6099  21260942, 25129680, 50276977, 21633609, 43430902, 3968120, 63456915, 27338965,
6100  63552672, 25641356
6101 #endif
6102  }},
6103  },
6104  {
6105  {{
6106 #if defined(BORINGSSL_CURVE25519_64BIT)
6107  889217026388959, 1043290623284660, 856125087551909, 1669272323124636,
6108  1603340330827879
6109 #else
6110  16544735, 13250366, 50304436, 15546241, 62525861, 12757257, 64646556, 24874095,
6111  48201831, 23891632
6112 #endif
6113  }},
6114  {{
6115 #if defined(BORINGSSL_CURVE25519_64BIT)
6116  1206396181488998, 333158148435054, 1402633492821422, 1120091191722026,
6117  1945474114550509
6118 #else
6119  64693606, 17976703, 18312302, 4964443, 51836334, 20900867, 26820650, 16690659,
6120  25459437, 28989823
6121 #endif
6122  }},
6123  {{
6124 #if defined(BORINGSSL_CURVE25519_64BIT)
6125  766720088232571, 1512222781191002, 1189719893490790, 2091302129467914,
6126  2141418006894941
6127 #else
6128  41964155, 11425019, 28423002, 22533875, 60963942, 17728207, 9142794, 31162830,
6129  60676445, 31909614
6130 #endif
6131  }},
6132  },
6133  {
6134  {{
6135 #if defined(BORINGSSL_CURVE25519_64BIT)
6136  419663647306612, 1998875112167987, 1426599870253707, 1154928355379510,
6137  486538532138187
6138 #else
6139  44004212, 6253475, 16964147, 29785560, 41994891, 21257994, 39651638, 17209773,
6140  6335691, 7249989
6141 #endif
6142  }},
6143  {{
6144 #if defined(BORINGSSL_CURVE25519_64BIT)
6145  938160078005954, 1421776319053174, 1941643234741774, 180002183320818,
6146  1414380336750546
6147 #else
6148  36775618, 13979674, 7503222, 21186118, 55152142, 28932738, 36836594, 2682241,
6149  25993170, 21075909
6150 #endif
6151  }},
6152  {{
6153 #if defined(BORINGSSL_CURVE25519_64BIT)
6154  398001940109652, 1577721237663248, 1012748649830402, 1540516006905144,
6155  1011684812884559
6156 #else
6157  4364628, 5930691, 32304656, 23509878, 59054082, 15091130, 22857016, 22955477,
6158  31820367, 15075278
6159 #endif
6160  }},
6161  },
6162  {
6163  {{
6164 #if defined(BORINGSSL_CURVE25519_64BIT)
6165  1653276489969630, 6081825167624, 1921777941170836, 1604139841794531, 861211053640641
6166 #else
6167  31879134, 24635739, 17258760, 90626, 59067028, 28636722, 24162787, 23903546,
6168  49138625, 12833044
6169 #endif
6170  }},
6171  {{
6172 #if defined(BORINGSSL_CURVE25519_64BIT)
6173  996661541407379, 1455877387952927, 744312806857277, 139213896196746,
6174  1000282908547789
6175 #else
6176  19073683, 14851414, 42705695, 21694263, 7625277, 11091125, 47489674, 2074448,
6177  57694925, 14905376
6178 #endif
6179  }},
6180  {{
6181 #if defined(BORINGSSL_CURVE25519_64BIT)
6182  1450817495603008, 1476865707053229, 1030490562252053, 620966950353376,
6183  1744760161539058
6184 #else
6185  24483648, 21618865, 64589997, 22007013, 65555733, 15355505, 41826784, 9253128,
6186  27628530, 25998952
6187 #endif
6188  }},
6189  },
6190  {
6191  {{
6192 #if defined(BORINGSSL_CURVE25519_64BIT)
6193  559728410002599, 37056661641185, 2038622963352006, 1637244893271723,
6194  1026565352238948
6195 #else
6196  17597607, 8340603, 19355617, 552187, 26198470, 30377849, 4593323, 24396850,
6197  52997988, 15297015
6198 #endif
6199  }},
6200  {{
6201 #if defined(BORINGSSL_CURVE25519_64BIT)
6202  962165956135846, 1116599660248791, 182090178006815, 1455605467021751,
6203  196053588803284
6204 #else
6205  510886, 14337390, 35323607, 16638631, 6328095, 2713355, 46891447, 21690211, 8683220,
6206  2921426
6207 #endif
6208  }},
6209  {{
6210 #if defined(BORINGSSL_CURVE25519_64BIT)
6211  796863823080135, 1897365583584155, 420466939481601, 2165972651724672,
6212  932177357788289
6213 #else
6214  18606791, 11874196, 27155355, 28272950, 43077121, 6265445, 41930624, 32275507,
6215  4674689, 13890525
6216 #endif
6217  }},
6218  },
6219  {
6220  {{
6221 #if defined(BORINGSSL_CURVE25519_64BIT)
6222  877047233620632, 1375632631944375, 643773611882121, 660022738847877, 19353932331831
6223 #else
6224  13609624, 13069022, 39736503, 20498523, 24360585, 9592974, 14977157, 9835105,
6225  4389687, 288396
6226 #endif
6227  }},
6228  {{
6229 #if defined(BORINGSSL_CURVE25519_64BIT)
6230  2216943882299338, 394841323190322, 2222656898319671, 558186553950529,
6231  1077236877025190
6232 #else
6233  9922506, 33035038, 13613106, 5883594, 48350519, 33120168, 54804801, 8317627,
6234  23388070, 16052080
6235 #endif
6236  }},
6237  {{
6238 #if defined(BORINGSSL_CURVE25519_64BIT)
6239  801118384953213, 1914330175515892, 574541023311511, 1471123787903705,
6240  1526158900256288
6241 #else
6242  12719997, 11937594, 35138804, 28525742, 26900119, 8561328, 46953177, 21921452,
6243  52354592, 22741539
6244 #endif
6245  }},
6246  },
6247  {
6248  {{
6249 #if defined(BORINGSSL_CURVE25519_64BIT)
6250  949617889087234, 2207116611267331, 912920039141287, 501158539198789, 62362560771472
6251 #else
6252  15961858, 14150409, 26716931, 32888600, 44314535, 13603568, 11829573, 7467844,
6253  38286736, 929274
6254 #endif
6255  }},
6256  {{
6257 #if defined(BORINGSSL_CURVE25519_64BIT)
6258  1474518386765335, 1760793622169197, 1157399790472736, 1622864308058898,
6259  165428294422792
6260 #else
6261  11038231, 21972036, 39798381, 26237869, 56610336, 17246600, 43629330, 24182562,
6262  45715720, 2465073
6263 #endif
6264  }},
6265  {{
6266 #if defined(BORINGSSL_CURVE25519_64BIT)
6267  1961673048027128, 102619413083113, 1051982726768458, 1603657989805485,
6268  1941613251499678
6269 #else
6270  20017144, 29231206, 27915241, 1529148, 12396362, 15675764, 13817261, 23896366,
6271  2463390, 28932292
6272 #endif
6273  }},
6274  },
6275  {
6276  {{
6277 #if defined(BORINGSSL_CURVE25519_64BIT)
6278  1401939116319266, 335306339903072, 72046196085786, 862423201496006, 850518754531384
6279 #else
6280  50749986, 20890520, 55043680, 4996453, 65852442, 1073571, 9583558, 12851107,
6281  4003896, 12673717
6282 #endif
6283  }},
6284  {{
6285 #if defined(BORINGSSL_CURVE25519_64BIT)
6286  1234706593321979, 1083343891215917, 898273974314935, 1640859118399498,
6287  157578398571149
6288 #else
6289  65377275, 18398561, 63845933, 16143081, 19294135, 13385325, 14741514, 24450706,
6290  7903885, 2348101
6291 #endif
6292  }},
6293  {{
6294 #if defined(BORINGSSL_CURVE25519_64BIT)
6295  1143483057726416, 1992614991758919, 674268662140796, 1773370048077526,
6296  674318359920189
6297 #else
6298  24536016, 17039225, 12715591, 29692277, 1511292, 10047386, 63266518, 26425272,
6299  38731325, 10048126
6300 #endif
6301  }},
6302  },
6303  },
6304  {
6305  {
6306  {{
6307 #if defined(BORINGSSL_CURVE25519_64BIT)
6308  1835401379538542, 173900035308392, 818247630716732, 1762100412152786,
6309  1021506399448291
6310 #else
6311  54486638, 27349611, 30718824, 2591312, 56491836, 12192839, 18873298, 26257342,
6312  34811107, 15221631
6313 #endif
6314  }},
6315  {{
6316 #if defined(BORINGSSL_CURVE25519_64BIT)
6317  1506632088156630, 2127481795522179, 513812919490255, 140643715928370,
6318  442476620300318
6319 #else
6320  40630742, 22450567, 11546243, 31701949, 9180879, 7656409, 45764914, 2095754,
6321  29769758, 6593415
6322 #endif
6323  }},
6324  {{
6325 #if defined(BORINGSSL_CURVE25519_64BIT)
6326  2056683376856736, 219094741662735, 2193541883188309, 1841182310235800,
6327  556477468664293
6328 #else
6329  35114656, 30646970, 4176911, 3264766, 12538965, 32686321, 26312344, 27435754,
6330  30958053, 8292160
6331 #endif
6332  }},
6333  },
6334  {
6335  {{
6336 #if defined(BORINGSSL_CURVE25519_64BIT)
6337  1315019427910827, 1049075855992603, 2066573052986543, 266904467185534,
6338  2040482348591520
6339 #else
6340  31429803, 19595316, 29173531, 15632448, 12174511, 30794338, 32808830, 3977186,
6341  26143136, 30405556
6342 #endif
6343  }},
6344  {{
6345 #if defined(BORINGSSL_CURVE25519_64BIT)
6346  94096246544434, 922482381166992, 24517828745563, 2139430508542503, 2097139044231004
6347 #else
6348  22648882, 1402143, 44308880, 13746058, 7936347, 365344, 58440231, 31879998,
6349  63350620, 31249806
6350 #endif
6351  }},
6352  {{
6353 #if defined(BORINGSSL_CURVE25519_64BIT)
6354  537697207950515, 1399352016347350, 1563663552106345, 2148749520888918,
6355  549922092988516
6356 #else
6357  51616947, 8012312, 64594134, 20851969, 43143017, 23300402, 65496150, 32018862,
6358  50444388, 8194477
6359 #endif
6360  }},
6361  },
6362  {
6363  {{
6364 #if defined(BORINGSSL_CURVE25519_64BIT)
6365  1747985413252434, 680511052635695, 1809559829982725, 594274250930054,
6366  201673170745982
6367 #else
6368  27338066, 26047012, 59694639, 10140404, 48082437, 26964542, 27277190, 8855376,
6369  28572286, 3005164
6370 #endif
6371  }},
6372  {{
6373 #if defined(BORINGSSL_CURVE25519_64BIT)
6374  323583936109569, 1973572998577657, 1192219029966558, 79354804385273,
6375  1374043025560347
6376 #else
6377  26287105, 4821776, 25476601, 29408529, 63344350, 17765447, 49100281, 1182478,
6378  41014043, 20474836
6379 #endif
6380  }},
6381  {{
6382 #if defined(BORINGSSL_CURVE25519_64BIT)
6383  213277331329947, 416202017849623, 1950535221091783, 1313441578103244,
6384  2171386783823658
6385 #else
6386  59937691, 3178079, 23970071, 6201893, 49913287, 29065239, 45232588, 19571804,
6387  32208682, 32356184
6388 #endif
6389  }},
6390  },
6391  {
6392  {{
6393 #if defined(BORINGSSL_CURVE25519_64BIT)
6394  189088804229831, 993969372859110, 895870121536987, 1547301535298256,
6395  1477373024911350
6396 #else
6397  50451143, 2817642, 56822502, 14811297, 6024667, 13349505, 39793360, 23056589,
6398  39436278, 22014573
6399 #endif
6400  }},
6401  {{
6402 #if defined(BORINGSSL_CURVE25519_64BIT)
6403  1620578418245010, 541035331188469, 2235785724453865, 2154865809088198,
6404  1974627268751826
6405 #else
6406  15941010, 24148500, 45741813, 8062054, 31876073, 33315803, 51830470, 32110002,
6407  15397330, 29424239
6408 #endif
6409  }},
6410  {{
6411 #if defined(BORINGSSL_CURVE25519_64BIT)
6412  1346805451740245, 1350981335690626, 942744349501813, 2155094562545502,
6413  1012483751693409
6414 #else
6415  8934485, 20068965, 43822466, 20131190, 34662773, 14047985, 31170398, 32113411,
6416  39603297, 15087183
6417 #endif
6418  }},
6419  },
6420  {
6421  {{
6422 #if defined(BORINGSSL_CURVE25519_64BIT)
6423  2107080134091762, 1132567062788208, 1824935377687210, 769194804343737,
6424  1857941799971888
6425 #else
6426  48751602, 31397940, 24524912, 16876564, 15520426, 27193656, 51606457, 11461895,
6427  16788528, 27685490
6428 #endif
6429  }},
6430  {{
6431 #if defined(BORINGSSL_CURVE25519_64BIT)
6432  1074666112436467, 249279386739593, 1174337926625354, 1559013532006480,
6433  1472287775519121
6434 #else
6435  65161459, 16013772, 21750665, 3714552, 49707082, 17498998, 63338576, 23231111,
6436  31322513, 21938797
6437 #endif
6438  }},
6439  {{
6440 #if defined(BORINGSSL_CURVE25519_64BIT)
6441  1872620123779532, 1892932666768992, 1921559078394978, 1270573311796160,
6442  1438913646755037
6443 #else
6444  21426636, 27904214, 53460576, 28206894, 38296674, 28633461, 48833472, 18933017,
6445  13040861, 21441484
6446 #endif
6447  }},
6448  },
6449  {
6450  {{
6451 #if defined(BORINGSSL_CURVE25519_64BIT)
6452  837390187648199, 1012253300223599, 989780015893987, 1351393287739814,
6453  328627746545550
6454 #else
6455  11293895, 12478086, 39972463, 15083749, 37801443, 14748871, 14555558, 20137329,
6456  1613710, 4896935
6457 #endif
6458  }},
6459  {{
6460 #if defined(BORINGSSL_CURVE25519_64BIT)
6461  1028328827183114, 1711043289969857, 1350832470374933, 1923164689604327,
6462  1495656368846911
6463 #else
6464  41213962, 15323293, 58619073, 25496531, 25967125, 20128972, 2825959, 28657387,
6465  43137087, 22287016
6466 #endif
6467  }},
6468  {{
6469 #if defined(BORINGSSL_CURVE25519_64BIT)
6470  1900828492104143, 430212361082163, 687437570852799, 832514536673512,
6471  1685641495940794
6472 #else
6473  51184079, 28324551, 49665331, 6410663, 3622847, 10243618, 20615400, 12405433,
6474  43355834, 25118015
6475 #endif
6476  }},
6477  },
6478  {
6479  {{
6480 #if defined(BORINGSSL_CURVE25519_64BIT)
6481  842632847936398, 605670026766216, 290836444839585, 163210774892356, 2213815011799645
6482 #else
6483  60017550, 12556207, 46917512, 9025186, 50036385, 4333800, 4378436, 2432030,
6484  23097949, 32988414
6485 #endif
6486  }},
6487  {{
6488 #if defined(BORINGSSL_CURVE25519_64BIT)
6489  1176336383453996, 1725477294339771, 12700622672454, 678015708818208, 162724078519879
6490 #else
6491  4565804, 17528778, 20084411, 25711615, 1724998, 189254, 24767264, 10103221,
6492  48596551, 2424777
6493 #endif
6494  }},
6495  {{
6496 #if defined(BORINGSSL_CURVE25519_64BIT)
6497  1448049969043497, 1789411762943521, 385587766217753, 90201620913498, 832999441066823
6498 #else
6499  366633, 21577626, 8173089, 26664313, 30788633, 5745705, 59940186, 1344108, 63466311,
6500  12412658
6501 #endif
6502  }},
6503  },
6504  {
6505  {{
6506 #if defined(BORINGSSL_CURVE25519_64BIT)
6507  516086333293313, 2240508292484616, 1351669528166508, 1223255565316488,
6508  750235824427138
6509 #else
6510  43107073, 7690285, 14929416, 33386175, 34898028, 20141445, 24162696, 18227928,
6511  63967362, 11179384
6512 #endif
6513  }},
6514  {{
6515 #if defined(BORINGSSL_CURVE25519_64BIT)
6516  1263624896582495, 1102602401673328, 526302183714372, 2152015839128799,
6517  1483839308490010
6518 #else
6519  18289503, 18829478, 8056944, 16430056, 45379140, 7842513, 61107423, 32067534,
6520  48424218, 22110928
6521 #endif
6522  }},
6523  {{
6524 #if defined(BORINGSSL_CURVE25519_64BIT)
6525  442991718646863, 1599275157036458, 1925389027579192, 899514691371390,
6526  350263251085160
6527 #else
6528  476239, 6601091, 60956074, 23831056, 17503544, 28690532, 27672958, 13403813,
6529  11052904, 5219329
6530 #endif
6531  }},
6532  },
6533  },
6534  {
6535  {
6536  {{
6537 #if defined(BORINGSSL_CURVE25519_64BIT)
6538  1689713572022143, 593854559254373, 978095044791970, 1985127338729499,
6539  1676069120347625
6540 #else
6541  20678527, 25178694, 34436965, 8849122, 62099106, 14574751, 31186971, 29580702,
6542  9014761, 24975376
6543 #endif
6544  }},
6545  {{
6546 #if defined(BORINGSSL_CURVE25519_64BIT)
6547  1557207018622683, 340631692799603, 1477725909476187, 614735951619419,
6548  2033237123746766
6549 #else
6550  53464795, 23204192, 51146355, 5075807, 65594203, 22019831, 34006363, 9160279,
6551  8473550, 30297594
6552 #endif
6553  }},
6554  {{
6555 #if defined(BORINGSSL_CURVE25519_64BIT)
6556  968764929340557, 1225534776710944, 662967304013036, 1155521416178595,
6557  791142883466590
6558 #else
6559  24900749, 14435722, 17209120, 18261891, 44516588, 9878982, 59419555, 17218610,
6560  42540382, 11788947
6561 #endif
6562  }},
6563  },
6564  {
6565  {{
6566 #if defined(BORINGSSL_CURVE25519_64BIT)
6567  1487081286167458, 993039441814934, 1792378982844640, 698652444999874,
6568  2153908693179754
6569 #else
6570  63990690, 22159237, 53306774, 14797440, 9652448, 26708528, 47071426, 10410732,
6571  42540394, 32095740
6572 #endif
6573  }},
6574  {{
6575 #if defined(BORINGSSL_CURVE25519_64BIT)
6576  1123181311102823, 685575944875442, 507605465509927, 1412590462117473,
6577  568017325228626
6578 #else
6579  51449703, 16736705, 44641714, 10215877, 58011687, 7563910, 11871841, 21049238,
6580  48595538, 8464117
6581 #endif
6582  }},
6583  {{
6584 #if defined(BORINGSSL_CURVE25519_64BIT)
6585  560258797465417, 2193971151466401, 1824086900849026, 579056363542056,
6586  1690063960036441
6587 #else
6588  43708233, 8348506, 52522913, 32692717, 63158658, 27181012, 14325288, 8628612,
6589  33313881, 25183915
6590 #endif
6591  }},
6592  },
6593  {
6594  {{
6595 #if defined(BORINGSSL_CURVE25519_64BIT)
6596  1918407319222416, 353767553059963, 1930426334528099, 1564816146005724,
6597  1861342381708096
6598 #else
6599  46921872, 28586496, 22367355, 5271547, 66011747, 28765593, 42303196, 23317577,
6600  58168128, 27736162
6601 #endif
6602  }},
6603  {{
6604 #if defined(BORINGSSL_CURVE25519_64BIT)
6605  2131325168777276, 1176636658428908, 1756922641512981, 1390243617176012,
6606  1966325177038383
6607 #else
6608  60160060, 31759219, 34483180, 17533252, 32635413, 26180187, 15989196, 20716244,
6609  28358191, 29300528
6610 #endif
6611  }},
6612  {{
6613 #if defined(BORINGSSL_CURVE25519_64BIT)
6614  2063958120364491, 2140267332393533, 699896251574968, 273268351312140,
6615  375580724713232
6616 #else
6617  43547083, 30755372, 34757181, 31892468, 57961144, 10429266, 50471180, 4072015,
6618  61757200, 5596588
6619 #endif
6620  }},
6621  },
6622  {
6623  {{
6624 #if defined(BORINGSSL_CURVE25519_64BIT)
6625  2024297515263178, 416959329722687, 1079014235017302, 171612225573183,
6626  1031677520051053
6627 #else
6628  38872266, 30164383, 12312895, 6213178, 3117142, 16078565, 29266239, 2557221,
6629  1768301, 15373193
6630 #endif
6631  }},
6632  {{
6633 #if defined(BORINGSSL_CURVE25519_64BIT)
6634  2033900009388450, 1744902869870788, 2190580087917640, 1949474984254121,
6635  231049754293748
6636 #else
6637  59865506, 30307471, 62515396, 26001078, 66980936, 32642186, 66017961, 29049440,
6638  42448372, 3442909
6639 #endif
6640  }},
6641  {{
6642 #if defined(BORINGSSL_CURVE25519_64BIT)
6643  343868674606581, 550155864008088, 1450580864229630, 481603765195050, 896972360018042
6644 #else
6645  36898293, 5124042, 14181784, 8197961, 18964734, 21615339, 22597930, 7176455,
6646  48523386, 13365929
6647 #endif
6648  }},
6649  },
6650  {
6651  {{
6652 #if defined(BORINGSSL_CURVE25519_64BIT)
6653  2151139328380127, 314745882084928, 59756825775204, 1676664391494651,
6654  2048348075599360
6655 #else
6656  59231455, 32054473, 8324672, 4690079, 6261860, 890446, 24538107, 24984246, 57419264,
6657  30522764
6658 #endif
6659  }},
6660  {{
6661 #if defined(BORINGSSL_CURVE25519_64BIT)
6662  1528930066340597, 1605003907059576, 1055061081337675, 1458319101947665,
6663  1234195845213142
6664 #else
6665  25008885, 22782833, 62803832, 23916421, 16265035, 15721635, 683793, 21730648,
6666  15723478, 18390951
6667 #endif
6668  }},
6669  {{
6670 #if defined(BORINGSSL_CURVE25519_64BIT)
6671  830430507734812, 1780282976102377, 1425386760709037, 362399353095425,
6672  2168861579799910
6673 #else
6674  57448220, 12374378, 40101865, 26528283, 59384749, 21239917, 11879681, 5400171,
6675  519526, 32318556
6676 #endif
6677  }},
6678  },
6679  {
6680  {{
6681 #if defined(BORINGSSL_CURVE25519_64BIT)
6682  1155762232730333, 980662895504006, 2053766700883521, 490966214077606,
6683  510405877041357
6684 #else
6685  22258397, 17222199, 59239046, 14613015, 44588609, 30603508, 46754982, 7315966,
6686  16648397, 7605640
6687 #endif
6688  }},
6689  {{
6690 #if defined(BORINGSSL_CURVE25519_64BIT)
6691  1683750316716132, 652278688286128, 1221798761193539, 1897360681476669,
6692  319658166027343
6693 #else
6694  59027556, 25089834, 58885552, 9719709, 19259459, 18206220, 23994941, 28272877,
6695  57640015, 4763277
6696 #endif
6697  }},
6698  {{
6699 #if defined(BORINGSSL_CURVE25519_64BIT)
6700  618808732869972, 72755186759744, 2060379135624181, 1730731526741822, 48862757828238
6701 #else
6702  45409620, 9220968, 51378240, 1084136, 41632757, 30702041, 31088446, 25789909,
6703  55752334, 728111
6704 #endif
6705  }},
6706  },
6707  {
6708  {{
6709 #if defined(BORINGSSL_CURVE25519_64BIT)
6710  1463171970593505, 1143040711767452, 614590986558883, 1409210575145591,
6711  1882816996436803
6712 #else
6713  26047201, 21802961, 60208540, 17032633, 24092067, 9158119, 62835319, 20998873,
6714  37743427, 28056159
6715 #endif
6716  }},
6717  {{
6718 #if defined(BORINGSSL_CURVE25519_64BIT)
6719  2230133264691131, 563950955091024, 2042915975426398, 827314356293472,
6720  672028980152815
6721 #else
6722  17510331, 33231575, 5854288, 8403524, 17133918, 30441820, 38997856, 12327944,
6723  10750447, 10014012
6724 #endif
6725  }},
6726  {{
6727 #if defined(BORINGSSL_CURVE25519_64BIT)
6728  264204366029760, 1654686424479449, 2185050199932931, 2207056159091748,
6729  506015669043634
6730 #else
6731  56796096, 3936951, 9156313, 24656749, 16498691, 32559785, 39627812, 32887699,
6732  3424690, 7540221
6733 #endif
6734  }},
6735  },
6736  {
6737  {{
6738 #if defined(BORINGSSL_CURVE25519_64BIT)
6739  1784446333136569, 1973746527984364, 334856327359575, 1156769775884610,
6740  1023950124675478
6741 #else
6742  30322361, 26590322, 11361004, 29411115, 7433303, 4989748, 60037442, 17237212,
6743  57864598, 15258045
6744 #endif
6745  }},
6746  {{
6747 #if defined(BORINGSSL_CURVE25519_64BIT)
6748  2065270940578383, 31477096270353, 306421879113491, 181958643936686, 1907105536686083
6749 #else
6750  13054543, 30774935, 19155473, 469045, 54626067, 4566041, 5631406, 2711395, 1062915,
6751  28418087
6752 #endif
6753  }},
6754  {{
6755 #if defined(BORINGSSL_CURVE25519_64BIT)
6756  1496516440779464, 1748485652986458, 872778352227340, 818358834654919, 97932669284220
6757 #else
6758  47868616, 22299832, 37599834, 26054466, 61273100, 13005410, 61042375, 12194496,
6759  32960380, 1459310
6760 #endif
6761  }},
6762  },
6763  },
6764  {
6765  {
6766  {{
6767 #if defined(BORINGSSL_CURVE25519_64BIT)
6768  471636015770351, 672455402793577, 1804995246884103, 1842309243470804,
6769  1501862504981682
6770 #else
6771  19852015, 7027924, 23669353, 10020366, 8586503, 26896525, 394196, 27452547,
6772  18638002, 22379495
6773 #endif
6774  }},
6775  {{
6776 #if defined(BORINGSSL_CURVE25519_64BIT)
6777  1013216974933691, 538921919682598, 1915776722521558, 1742822441583877,
6778  1886550687916656
6779 #else
6780  31395515, 15098109, 26581030, 8030562, 50580950, 28547297, 9012485, 25970078,
6781  60465776, 28111795
6782 #endif
6783  }},
6784  {{
6785 #if defined(BORINGSSL_CURVE25519_64BIT)
6786  2094270000643336, 303971879192276, 40801275554748, 649448917027930, 1818544418535447
6787 #else
6788  57916680, 31207054, 65111764, 4529533, 25766844, 607986, 67095642, 9677542,
6789  34813975, 27098423
6790 #endif
6791  }},
6792  },
6793  {
6794  {{
6795 #if defined(BORINGSSL_CURVE25519_64BIT)
6796  2241737709499165, 549397817447461, 838180519319392, 1725686958520781,
6797  1705639080897747
6798 #else
6799  64664349, 33404494, 29348901, 8186665, 1873760, 12489863, 36174285, 25714739,
6800  59256019, 25416002
6801 #endif
6802  }},
6803  {{
6804 #if defined(BORINGSSL_CURVE25519_64BIT)
6805  1216074541925116, 50120933933509, 1565829004133810, 721728156134580, 349206064666188
6806 #else
6807  51872508, 18120922, 7766469, 746860, 26346930, 23332670, 39775412, 10754587,
6808  57677388, 5203575
6809 #endif
6810  }},
6811  {{
6812 #if defined(BORINGSSL_CURVE25519_64BIT)
6813  948617110470858, 346222547451945, 1126511960599975, 1759386906004538,
6814  493053284802266
6815 #else
6816  31834314, 14135496, 66338857, 5159117, 20917671, 16786336, 59640890, 26216907,
6817  31809242, 7347066
6818 #endif
6819  }},
6820  },
6821  {
6822  {{
6823 #if defined(BORINGSSL_CURVE25519_64BIT)
6824  1454933046815146, 874696014266362, 1467170975468588, 1432316382418897,
6825  2111710746366763
6826 #else
6827  57502122, 21680191, 20414458, 13033986, 13716524, 21862551, 19797969, 21343177,
6828  15192875, 31466942
6829 #endif
6830  }},
6831  {{
6832 #if defined(BORINGSSL_CURVE25519_64BIT)
6833  2105387117364450, 1996463405126433, 1303008614294500, 851908115948209,
6834  1353742049788635
6835 #else
6836  54445282, 31372712, 1168161, 29749623, 26747876, 19416341, 10609329, 12694420,
6837  33473243, 20172328
6838 #endif
6839  }},
6840  {{
6841 #if defined(BORINGSSL_CURVE25519_64BIT)
6842  750300956351719, 1487736556065813, 15158817002104, 1511998221598392, 971739901354129
6843 #else
6844  33184999, 11180355, 15832085, 22169002, 65475192, 225883, 15089336, 22530529,
6845  60973201, 14480052
6846 #endif
6847  }},
6848  },
6849  {
6850  {{
6851 #if defined(BORINGSSL_CURVE25519_64BIT)
6852  1874648163531693, 2124487685930551, 1810030029384882, 918400043048335,
6853  586348627300650
6854 #else
6855  31308717, 27934434, 31030839, 31657333, 15674546, 26971549, 5496207, 13685227,
6856  27595050, 8737275
6857 #endif
6858  }},
6859  {{
6860 #if defined(BORINGSSL_CURVE25519_64BIT)
6861  1235084464747900, 1166111146432082, 1745394857881591, 1405516473883040,
6862  4463504151617
6863 #else
6864  46790012, 18404192, 10933842, 17376410, 8335351, 26008410, 36100512, 20943827,
6865  26498113, 66511
6866 #endif
6867  }},
6868  {{
6869 #if defined(BORINGSSL_CURVE25519_64BIT)
6870  1663810156463827, 327797390285791, 1341846161759410, 1964121122800605,
6871  1747470312055380
6872 #else
6873  22644435, 24792703, 50437087, 4884561, 64003250, 19995065, 30540765, 29267685,
6874  53781076, 26039336
6875 #endif
6876  }},
6877  },
6878  {
6879  {{
6880 #if defined(BORINGSSL_CURVE25519_64BIT)
6881  660005247548233, 2071860029952887, 1358748199950107, 911703252219107,
6882  1014379923023831
6883 #else
6884  39091017, 9834844, 18617207, 30873120, 63706907, 20246925, 8205539, 13585437,
6885  49981399, 15115438
6886 #endif
6887  }},
6888  {{
6889 #if defined(BORINGSSL_CURVE25519_64BIT)
6890  2206641276178231, 1690587809721504, 1600173622825126, 2156096097634421,
6891  1106822408548216
6892 #else
6893  23711543, 32881517, 31206560, 25191721, 6164646, 23844445, 33572981, 32128335,
6894  8236920, 16492939
6895 #endif
6896  }},
6897  {{
6898 #if defined(BORINGSSL_CURVE25519_64BIT)
6899  1344788193552206, 1949552134239140, 1735915881729557, 675891104100469,
6900  1834220014427292
6901 #else
6902  43198286, 20038905, 40809380, 29050590, 25005589, 25867162, 19574901, 10071562,
6903  6708380, 27332008
6904 #endif
6905  }},
6906  },
6907  {
6908  {{
6909 #if defined(BORINGSSL_CURVE25519_64BIT)
6910  1920949492387964, 158885288387530, 70308263664033, 626038464897817, 1468081726101009
6911 #else
6912  2101372, 28624378, 19702730, 2367575, 51681697, 1047674, 5301017, 9328700, 29955601,
6913  21876122
6914 #endif
6915  }},
6916  {{
6917 #if defined(BORINGSSL_CURVE25519_64BIT)
6918  622221042073383, 1210146474039168, 1742246422343683, 1403839361379025,
6919  417189490895736
6920 #else
6921  3096359, 9271816, 45488000, 18032587, 52260867, 25961494, 41216721, 20918836,
6922  57191288, 6216607
6923 #endif
6924  }},
6925  {{
6926 #if defined(BORINGSSL_CURVE25519_64BIT)
6927  22727256592983, 168471543384997, 1324340989803650, 1839310709638189, 504999476432775
6928 #else
6929  34493015, 338662, 41913253, 2510421, 37895298, 19734218, 24822829, 27407865,
6930  40341383, 7525078
6931 #endif
6932  }},
6933  },
6934  {
6935  {{
6936 #if defined(BORINGSSL_CURVE25519_64BIT)
6937  1313240518756327, 1721896294296942, 52263574587266, 2065069734239232,
6938  804910473424630
6939 #else
6940  44042215, 19568808, 16133486, 25658254, 63719298, 778787, 66198528, 30771936,
6941  47722230, 11994100
6942 #endif
6943  }},
6944  {{
6945 #if defined(BORINGSSL_CURVE25519_64BIT)
6946  1337466662091884, 1287645354669772, 2018019646776184, 652181229374245,
6947  898011753211715
6948 #else
6949  21691500, 19929806, 66467532, 19187410, 3285880, 30070836, 42044197, 9718257,
6950  59631427, 13381417
6951 #endif
6952  }},
6953  {{
6954 #if defined(BORINGSSL_CURVE25519_64BIT)
6955  1969792547910734, 779969968247557, 2011350094423418, 1823964252907487,
6956  1058949448296945
6957 #else
6958  18445390, 29352196, 14979845, 11622458, 65381754, 29971451, 23111647, 27179185,
6959  28535281, 15779576
6960 #endif
6961  }},
6962  },
6963  {
6964  {{
6965 #if defined(BORINGSSL_CURVE25519_64BIT)
6966  207343737062002, 1118176942430253, 758894594548164, 806764629546266,
6967  1157700123092949
6968 #else
6969  30098034, 3089662, 57874477, 16662134, 45801924, 11308410, 53040410, 12021729,
6970  9955285, 17251076
6971 #endif
6972  }},
6973  {{
6974 #if defined(BORINGSSL_CURVE25519_64BIT)
6975  1273565321399022, 1638509681964574, 759235866488935, 666015124346707,
6976  897983460943405
6977 #else
6978  9734894, 18977602, 59635230, 24415696, 2060391, 11313496, 48682835, 9924398,
6979  20194861, 13380996
6980 #endif
6981  }},
6982  {{
6983 #if defined(BORINGSSL_CURVE25519_64BIT)
6984  1717263794012298, 1059601762860786, 1837819172257618, 1054130665797229,
6985  680893204263559
6986 #else
6987  40730762, 25589224, 44941042, 15789296, 49053522, 27385639, 65123949, 15707770,
6988  26342023, 10146099
6989 #endif
6990  }},
6991  },
6992  },
6993  {
6994  {
6995  {{
6996 #if defined(BORINGSSL_CURVE25519_64BIT)
6997  2237039662793603, 2249022333361206, 2058613546633703, 149454094845279,
6998  2215176649164582
6999 #else
7000  41091971, 33334488, 21339190, 33513044, 19745255, 30675732, 37471583, 2227039,
7001  21612326, 33008704
7002 #endif
7003  }},
7004  {{
7005 #if defined(BORINGSSL_CURVE25519_64BIT)
7006  79472182719605, 1851130257050174, 1825744808933107, 821667333481068, 781795293511946
7007 #else
7008  54031477, 1184227, 23562814, 27583990, 46757619, 27205717, 25764460, 12243797,
7009  46252298, 11649657
7010 #endif
7011  }},
7012  {{
7013 #if defined(BORINGSSL_CURVE25519_64BIT)
7014  755822026485370, 152464789723500, 1178207602290608, 410307889503239, 156581253571278
7015 #else
7016  57077370, 11262625, 27384172, 2271902, 26947504, 17556661, 39943, 6114064, 33514190,
7017  2333242
7018 #endif
7019  }},
7020  },
7021  {
7022  {{
7023 #if defined(BORINGSSL_CURVE25519_64BIT)
7024  1418185496130297, 484520167728613, 1646737281442950, 1401487684670265,
7025  1349185550126961
7026 #else
7027  45675257, 21132610, 8119781, 7219913, 45278342, 24538297, 60429113, 20883793,
7028  24350577, 20104431
7029 #endif
7030  }},
7031  {{
7032 #if defined(BORINGSSL_CURVE25519_64BIT)
7033  1495380034400429, 325049476417173, 46346894893933, 1553408840354856, 828980101835683
7034 #else
7035  62992557, 22282898, 43222677, 4843614, 37020525, 690622, 35572776, 23147595,
7036  8317859, 12352766
7037 #endif
7038  }},
7039  {{
7040 #if defined(BORINGSSL_CURVE25519_64BIT)
7041  1280337889310282, 2070832742866672, 1640940617225222, 2098284908289951,
7042  450929509534434
7043 #else
7044  18200138, 19078521, 34021104, 30857812, 43406342, 24451920, 43556767, 31266881,
7045  20712162, 6719373
7046 #endif
7047  }},
7048  },
7049  {
7050  {{
7051 #if defined(BORINGSSL_CURVE25519_64BIT)
7052  407703353998781, 126572141483652, 286039827513621, 1999255076709338,
7053  2030511179441770
7054 #else
7055  26656189, 6075253, 59250308, 1886071, 38764821, 4262325, 11117530, 29791222,
7056  26224234, 30256974
7057 #endif
7058  }},
7059  {{
7060 #if defined(BORINGSSL_CURVE25519_64BIT)
7061  1254958221100483, 1153235960999843, 942907704968834, 637105404087392,
7062  1149293270147267
7063 #else
7064  49939907, 18700334, 63713187, 17184554, 47154818, 14050419, 21728352, 9493610,
7065  18620611, 17125804
7066 #endif
7067  }},
7068  {{
7069 #if defined(BORINGSSL_CURVE25519_64BIT)
7070  894249020470196, 400291701616810, 406878712230981, 1599128793487393,
7071  1145868722604026
7072 #else
7073  53785524, 13325348, 11432106, 5964811, 18609221, 6062965, 61839393, 23828875,
7074  36407290, 17074774
7075 #endif
7076  }},
7077  },
7078  {
7079  {{
7080 #if defined(BORINGSSL_CURVE25519_64BIT)
7081  1497955250203334, 110116344653260, 1128535642171976, 1900106496009660,
7082  129792717460909
7083 #else
7084  43248326, 22321272, 26961356, 1640861, 34695752, 16816491, 12248508, 28313793,
7085  13735341, 1934062
7086 #endif
7087  }},
7088  {{
7089 #if defined(BORINGSSL_CURVE25519_64BIT)
7090  452487513298665, 1352120549024569, 1173495883910956, 1999111705922009,
7091  367328130454226
7092 #else
7093  25089769, 6742589, 17081145, 20148166, 21909292, 17486451, 51972569, 29789085,
7094  45830866, 5473615
7095 #endif
7096  }},
7097  {{
7098 #if defined(BORINGSSL_CURVE25519_64BIT)
7099  1717539401269642, 1475188995688487, 891921989653942, 836824441505699,
7100  1885988485608364
7101 #else
7102  31883658, 25593331, 1083431, 21982029, 22828470, 13290673, 59983779, 12469655,
7103  29111212, 28103418
7104 #endif
7105  }},
7106  },
7107  {
7108  {{
7109 #if defined(BORINGSSL_CURVE25519_64BIT)
7110  1241784121422547, 187337051947583, 1118481812236193, 428747751936362, 30358898927325
7111 #else
7112  24244947, 18504025, 40845887, 2791539, 52111265, 16666677, 24367466, 6388839,
7113  56813277, 452382
7114 #endif
7115  }},
7116  {{
7117 #if defined(BORINGSSL_CURVE25519_64BIT)
7118  2022432361201842, 1088816090685051, 1977843398539868, 1854834215890724,
7119  564238862029357
7120 #else
7121  41468082, 30136590, 5217915, 16224624, 19987036, 29472163, 42872612, 27639183,
7122  15766061, 8407814
7123 #endif
7124  }},
7125  {{
7126 #if defined(BORINGSSL_CURVE25519_64BIT)
7127  938868489100585, 1100285072929025, 1017806255688848, 1957262154788833,
7128  152787950560442
7129 #else
7130  46701865, 13990230, 15495425, 16395525, 5377168, 15166495, 58191841, 29165478,
7131  59040954, 2276717
7132 #endif
7133  }},
7134  },
7135  {
7136  {{
7137 #if defined(BORINGSSL_CURVE25519_64BIT)
7138  867319417678923, 620471962942542, 226032203305716, 342001443957629, 1761675818237336
7139 #else
7140  30157899, 12924066, 49396814, 9245752, 19895028, 3368142, 43281277, 5096218,
7141  22740376, 26251015
7142 #endif
7143  }},
7144  {{
7145 #if defined(BORINGSSL_CURVE25519_64BIT)
7146  1295072362439987, 931227904689414, 1355731432641687, 922235735834035,
7147  892227229410209
7148 #else
7149  2041139, 19298082, 7783686, 13876377, 41161879, 20201972, 24051123, 13742383,
7150  51471265, 13295221
7151 #endif
7152  }},
7153  {{
7154 #if defined(BORINGSSL_CURVE25519_64BIT)
7155  1680989767906154, 535362787031440, 2136691276706570, 1942228485381244,
7156  1267350086882274
7157 #else
7158  33338218, 25048699, 12532112, 7977527, 9106186, 31839181, 49388668, 28941459,
7159  62657506, 18884987
7160 #endif
7161  }},
7162  },
7163  {
7164  {{
7165 #if defined(BORINGSSL_CURVE25519_64BIT)
7166  366018233770527, 432660629755596, 126409707644535, 1973842949591662, 645627343442376
7167 #else
7168  47063583, 5454096, 52762316, 6447145, 28862071, 1883651, 64639598, 29412551,
7169  7770568, 9620597
7170 #endif
7171  }},
7172  {{
7173 #if defined(BORINGSSL_CURVE25519_64BIT)
7174  535509430575217, 546885533737322, 1524675609547799, 2138095752851703,
7175  1260738089896827
7176 #else
7177  23208049, 7979712, 33071466, 8149229, 1758231, 22719437, 30945527, 31860109,
7178  33606523, 18786461
7179 #endif
7180  }},
7181  {{
7182 #if defined(BORINGSSL_CURVE25519_64BIT)
7183  1159906385590467, 2198530004321610, 714559485023225, 81880727882151,
7184  1484020820037082
7185 #else
7186  1439939, 17283952, 66028874, 32760649, 4625401, 10647766, 62065063, 1220117,
7187  30494170, 22113633
7188 #endif
7189  }},
7190  },
7191  {
7192  {{
7193 #if defined(BORINGSSL_CURVE25519_64BIT)
7194  1377485731340769, 2046328105512000, 1802058637158797, 62146136768173,
7195  1356993908853901
7196 #else
7197  62071265, 20526136, 64138304, 30492664, 15640973, 26852766, 40369837, 926049,
7198  65424525, 20220784
7199 #endif
7200  }},
7201  {{
7202 #if defined(BORINGSSL_CURVE25519_64BIT)
7203  2013612215646735, 1830770575920375, 536135310219832, 609272325580394,
7204  270684344495013
7205 #else
7206  13908495, 30005160, 30919927, 27280607, 45587000, 7989038, 9021034, 9078865,
7207  3353509, 4033511
7208 #endif
7209  }},
7210  {{
7211 #if defined(BORINGSSL_CURVE25519_64BIT)
7212  1237542585982777, 2228682050256790, 1385281931622824, 593183794882890,
7213  493654978552689
7214 #else
7215  37445433, 18440821, 32259990, 33209950, 24295848, 20642309, 23161162, 8839127,
7216  27485041, 7356032
7217 #endif
7218  }},
7219  },
7220  },
7221  {
7222  {
7223  {{
7224 #if defined(BORINGSSL_CURVE25519_64BIT)
7225  47341488007760, 1891414891220257, 983894663308928, 176161768286818, 1126261115179708
7226 #else
7227  9661008, 705443, 11980065, 28184278, 65480320, 14661172, 60762722, 2625014,
7228  28431036, 16782598
7229 #endif
7230  }},
7231  {{
7232 #if defined(BORINGSSL_CURVE25519_64BIT)
7233  1694030170963455, 502038567066200, 1691160065225467, 949628319562187,
7234  275110186693066
7235 #else
7236  43269631, 25243016, 41163352, 7480957, 49427195, 25200248, 44562891, 14150564,
7237  15970762, 4099461
7238 #endif
7239  }},
7240  {{
7241 #if defined(BORINGSSL_CURVE25519_64BIT)
7242  1124515748676336, 1661673816593408, 1499640319059718, 1584929449166988,
7243  558148594103306
7244 #else
7245  29262576, 16756590, 26350592, 24760869, 8529670, 22346382, 13617292, 23617289,
7246  11465738, 8317062
7247 #endif
7248  }},
7249  },
7250  {
7251  {{
7252 #if defined(BORINGSSL_CURVE25519_64BIT)
7253  1784525599998356, 1619698033617383, 2097300287550715, 258265458103756,
7254  1905684794832758
7255 #else
7256  41615764, 26591503, 32500199, 24135381, 44070139, 31252209, 14898636, 3848455,
7257  20969334, 28396916
7258 #endif
7259  }},
7260  {{
7261 #if defined(BORINGSSL_CURVE25519_64BIT)
7262  1288941072872766, 931787902039402, 190731008859042, 2006859954667190,
7263  1005931482221702
7264 #else
7265  46724414, 19206718, 48772458, 13884721, 34069410, 2842113, 45498038, 29904543,
7266  11177094, 14989547
7267 #endif
7268  }},
7269  {{
7270 #if defined(BORINGSSL_CURVE25519_64BIT)
7271  1465551264822703, 152905080555927, 680334307368453, 173227184634745, 666407097159852
7272 #else
7273  42612143, 21838415, 16959895, 2278463, 12066309, 10137771, 13515641, 2581286,
7274  38621356, 9930239
7275 #endif
7276  }},
7277  },
7278  {
7279  {{
7280 #if defined(BORINGSSL_CURVE25519_64BIT)
7281  2111017076203943, 1378760485794347, 1248583954016456, 1352289194864422,
7282  1895180776543896
7283 #else
7284  49357223, 31456605, 16544299, 20545132, 51194056, 18605350, 18345766, 20150679,
7285  16291480, 28240394
7286 #endif
7287  }},
7288  {{
7289 #if defined(BORINGSSL_CURVE25519_64BIT)
7290  171348223915638, 662766099800389, 462338943760497, 466917763340314, 656911292869115
7291 #else
7292  33879670, 2553287, 32678213, 9875984, 8534129, 6889387, 57432090, 6957616, 4368891,
7293  9788741
7294 #endif
7295  }},
7296  {{
7297 #if defined(BORINGSSL_CURVE25519_64BIT)
7298  488623681976577, 866497561541722, 1708105560937768, 1673781214218839,
7299  1506146329818807
7300 #else
7301  16660737, 7281060, 56278106, 12911819, 20108584, 25452756, 45386327, 24941283,
7302  16250551, 22443329
7303 #endif
7304  }},
7305  },
7306  {
7307  {{
7308 #if defined(BORINGSSL_CURVE25519_64BIT)
7309  160425464456957, 950394373239689, 430497123340934, 711676555398832, 320964687779005
7310 #else
7311  47343357, 2390525, 50557833, 14161979, 1905286, 6414907, 4689584, 10604807,
7312  36918461, 4782746
7313 #endif
7314  }},
7315  {{
7316 #if defined(BORINGSSL_CURVE25519_64BIT)
7317  988979367990485, 1359729327576302, 1301834257246029, 294141160829308, 29348272277475
7318 #else
7319  65754325, 14736940, 59741422, 20261545, 7710541, 19398842, 57127292, 4383044,
7320  22546403, 437323
7321 #endif
7322  }},
7323  {{
7324 #if defined(BORINGSSL_CURVE25519_64BIT)
7325  1434382743317910, 100082049942065, 221102347892623, 186982837860588,
7326  1305765053501834
7327 #else
7328  31665558, 21373968, 50922033, 1491338, 48740239, 3294681, 27343084, 2786261,
7329  36475274, 19457415
7330 #endif
7331  }},
7332  },
7333  {
7334  {{
7335 #if defined(BORINGSSL_CURVE25519_64BIT)
7336  2205916462268190, 499863829790820, 961960554686616, 158062762756985,
7337  1841471168298305
7338 #else
7339  52641566, 32870716, 33734756, 7448551, 19294360, 14334329, 47418233, 2355318,
7340  47824193, 27440058
7341 #endif
7342  }},
7343  {{
7344 #if defined(BORINGSSL_CURVE25519_64BIT)
7345  1191737341426592, 1847042034978363, 1382213545049056, 1039952395710448,
7346  788812858896859
7347 #else
7348  15121312, 17758270, 6377019, 27523071, 56310752, 20596586, 18952176, 15496498,
7349  37728731, 11754227
7350 #endif
7351  }},
7352  {{
7353 #if defined(BORINGSSL_CURVE25519_64BIT)
7354  1346965964571152, 1291881610839830, 2142916164336056, 786821641205979,
7355  1571709146321039
7356 #else
7357  64471568, 20071356, 8488726, 19250536, 12728760, 31931939, 7141595, 11724556,
7358  22761615, 23420291
7359 #endif
7360  }},
7361  },
7362  {
7363  {{
7364 #if defined(BORINGSSL_CURVE25519_64BIT)
7365  787164375951248, 202869205373189, 1356590421032140, 1431233331032510,
7366  786341368775957
7367 #else
7368  16918416, 11729663, 49025285, 3022986, 36093132, 20214772, 38367678, 21327038,
7369  32851221, 11717399
7370 #endif
7371  }},
7372  {{
7373 #if defined(BORINGSSL_CURVE25519_64BIT)
7374  492448143532951, 304105152670757, 1761767168301056, 233782684697790,
7375  1981295323106089
7376 #else
7377  11166615, 7338049, 60386341, 4531519, 37640192, 26252376, 31474878, 3483633,
7378  65915689, 29523600
7379 #endif
7380  }},
7381  {{
7382 #if defined(BORINGSSL_CURVE25519_64BIT)
7383  665807507761866, 1343384868355425, 895831046139653, 439338948736892,
7384  1986828765695105
7385 #else
7386  66923210, 9921304, 31456609, 20017994, 55095045, 13348922, 33142652, 6546660,
7387  47123585, 29606055
7388 #endif
7389  }},
7390  },
7391  {
7392  {{
7393 #if defined(BORINGSSL_CURVE25519_64BIT)
7394  756096210874553, 1721699973539149, 258765301727885, 1390588532210645,
7395  1212530909934781
7396 #else
7397  34648249, 11266711, 55911757, 25655328, 31703693, 3855903, 58571733, 20721383,
7398  36336829, 18068118
7399 #endif
7400  }},
7401  {{
7402 #if defined(BORINGSSL_CURVE25519_64BIT)
7403  852891097972275, 1816988871354562, 1543772755726524, 1174710635522444,
7404  202129090724628
7405 #else
7406  49102387, 12709067, 3991746, 27075244, 45617340, 23004006, 35973516, 17504552,
7407  10928916, 3011958
7408 #endif
7409  }},
7410  {{
7411 #if defined(BORINGSSL_CURVE25519_64BIT)
7412  1205281565824323, 22430498399418, 992947814485516, 1392458699738672, 688441466734558
7413 #else
7414  60151107, 17960094, 31696058, 334240, 29576716, 14796075, 36277808, 20749251,
7415  18008030, 10258577
7416 #endif
7417  }},
7418  },
7419  {
7420  {{
7421 #if defined(BORINGSSL_CURVE25519_64BIT)
7422  1050627428414972, 1955849529137135, 2171162376368357, 91745868298214,
7423  447733118757826
7424 #else
7425  44660220, 15655568, 7018479, 29144429, 36794597, 32352840, 65255398, 1367119,
7426  25127874, 6671743
7427 #endif
7428  }},
7429  {{
7430 #if defined(BORINGSSL_CURVE25519_64BIT)
7431  1287181461435438, 622722465530711, 880952150571872, 741035693459198, 311565274989772
7432 #else
7433  29701166, 19180498, 56230743, 9279287, 67091296, 13127209, 21382910, 11042292,
7434  25838796, 4642684
7435 #endif
7436  }},
7437  {{
7438 #if defined(BORINGSSL_CURVE25519_64BIT)
7439  1003649078149734, 545233927396469, 1849786171789880, 1318943684880434,
7440  280345687170552
7441 #else
7442  46678630, 14955536, 42982517, 8124618, 61739576, 27563961, 30468146, 19653792,
7443  18423288, 4177476
7444 #endif
7445  }},
7446  },
7447  },
7448 };
7449 
7450 #endif // OPENSSL_SMALL
7451 
7452 // Bi[i] = (2*i+1)*B
7453 static const ge_precomp Bi[8] = {
7454  {
7455  {{
7456 #if defined(BORINGSSL_CURVE25519_64BIT)
7457  1288382639258501, 245678601348599, 269427782077623, 1462984067271730, 137412439391563
7458 #else
7459  25967493, 19198397, 29566455, 3660896, 54414519, 4014786, 27544626, 21800161, 61029707,
7460  2047604
7461 #endif
7462  }},
7463  {{
7464 #if defined(BORINGSSL_CURVE25519_64BIT)
7465  62697248952638, 204681361388450, 631292143396476, 338455783676468, 1213667448819585
7466 #else
7467  54563134, 934261, 64385954, 3049989, 66381436, 9406985, 12720692, 5043384, 19500929,
7468  18085054
7469 #endif
7470  }},
7471  {{
7472 #if defined(BORINGSSL_CURVE25519_64BIT)
7473  301289933810280, 1259582250014073, 1422107436869536, 796239922652654, 1953934009299142
7474 #else
7475  58370664, 4489569, 9688441, 18769238, 10184608, 21191052, 29287918, 11864899, 42594502,
7476  29115885
7477 #endif
7478  }},
7479  },
7480  {
7481  {{
7482 #if defined(BORINGSSL_CURVE25519_64BIT)
7483  1601611775252272, 1720807796594148, 1132070835939856, 1260455018889551, 2147779492816911
7484 #else
7485  15636272, 23865875, 24204772, 25642034, 616976, 16869170, 27787599, 18782243, 28944399,
7486  32004408
7487 #endif
7488  }},
7489  {{
7490 #if defined(BORINGSSL_CURVE25519_64BIT)
7491  316559037616741, 2177824224946892, 1459442586438991, 1461528397712656, 751590696113597
7492 #else
7493  16568933, 4717097, 55552716, 32452109, 15682895, 21747389, 16354576, 21778470, 7689661,
7494  11199574
7495 #endif
7496  }},
7497  {{
7498 #if defined(BORINGSSL_CURVE25519_64BIT)
7499  1850748884277385, 1200145853858453, 1068094770532492, 672251375690438, 1586055907191707
7500 #else
7501  30464137, 27578307, 55329429, 17883566, 23220364, 15915852, 7512774, 10017326, 49359771,
7502  23634074
7503 #endif
7504  }},
7505  },
7506  {
7507  {{
7508 #if defined(BORINGSSL_CURVE25519_64BIT)
7509  769950342298419, 132954430919746, 844085933195555, 974092374476333, 726076285546016
7510 #else
7511  10861363, 11473154, 27284546, 1981175, 37044515, 12577860, 32867885, 14515107, 51670560,
7512  10819379
7513 #endif
7514  }},
7515  {{
7516 #if defined(BORINGSSL_CURVE25519_64BIT)
7517  425251763115706, 608463272472562, 442562545713235, 837766094556764, 374555092627893
7518 #else
7519  4708026, 6336745, 20377586, 9066809, 55836755, 6594695, 41455196, 12483687, 54440373,
7520  5581305
7521 #endif
7522  }},
7523  {{
7524 #if defined(BORINGSSL_CURVE25519_64BIT)
7525  1086255230780037, 274979815921559, 1960002765731872, 929474102396301, 1190409889297339
7526 #else
7527  19563141, 16186464, 37722007, 4097518, 10237984, 29206317, 28542349, 13850243, 43430843,
7528  17738489
7529 #endif
7530  }},
7531  },
7532  {
7533  {{
7534 #if defined(BORINGSSL_CURVE25519_64BIT)
7535  665000864555967, 2065379846933859, 370231110385876, 350988370788628, 1233371373142985
7536 #else
7537  5153727, 9909285, 1723747, 30776558, 30523604, 5516873, 19480852, 5230134, 43156425,
7538  18378665
7539 #endif
7540  }},
7541  {{
7542 #if defined(BORINGSSL_CURVE25519_64BIT)
7543  2019367628972465, 676711900706637, 110710997811333, 1108646842542025, 517791959672113
7544 #else
7545  36839857, 30090922, 7665485, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449,
7546  7715701
7547 #endif
7548  }},
7549  {{
7550 #if defined(BORINGSSL_CURVE25519_64BIT)
7551  965130719900578, 247011430587952, 526356006571389, 91986625355052, 2157223321444601
7552 #else
7553  28881826, 14381568, 9657904, 3680757, 46927229, 7843315, 35708204, 1370707, 29794553,
7554  32145132
7555 #endif
7556  }},
7557  },
7558  {
7559  {{
7560 #if defined(BORINGSSL_CURVE25519_64BIT)
7561  1802695059465007, 1664899123557221, 593559490740857, 2160434469266659, 927570450755031
7562 #else
7563  44589871, 26862249, 14201701, 24808930, 43598457, 8844725, 18474211, 32192982, 54046167,
7564  13821876
7565 #endif
7566  }},
7567  {{
7568 #if defined(BORINGSSL_CURVE25519_64BIT)
7569  1725674970513508, 1933645953859181, 1542344539275782, 1767788773573747, 1297447965928905
7570 #else
7571  60653668, 25714560, 3374701, 28813570, 40010246, 22982724, 31655027, 26342105, 18853321,
7572  19333481
7573 #endif
7574  }},
7575  {{
7576 #if defined(BORINGSSL_CURVE25519_64BIT)
7577  1381809363726107, 1430341051343062, 2061843536018959, 1551778050872521, 2036394857967624
7578 #else
7579  4566811, 20590564, 38133974, 21313742, 59506191, 30723862, 58594505, 23123294, 2207752,
7580  30344648
7581 #endif
7582  }},
7583  },
7584  {
7585  {{
7586 #if defined(BORINGSSL_CURVE25519_64BIT)
7587  1970894096313054, 528066325833207, 1619374932191227, 2207306624415883, 1169170329061080
7588 #else
7589  41954014, 29368610, 29681143, 7868801, 60254203, 24130566, 54671499, 32891431, 35997400,
7590  17421995
7591 #endif
7592  }},
7593  {{
7594 #if defined(BORINGSSL_CURVE25519_64BIT)
7595  2070390218572616, 1458919061857835, 624171843017421, 1055332792707765, 433987520732508
7596 #else
7597  25576264, 30851218, 7349803, 21739588, 16472781, 9300885, 3844789, 15725684, 171356,
7598  6466918
7599 #endif
7600  }},
7601  {{
7602 #if defined(BORINGSSL_CURVE25519_64BIT)
7603  893653801273833, 1168026499324677, 1242553501121234, 1306366254304474, 1086752658510815
7604 #else
7605  23103977, 13316479, 9739013, 17404951, 817874, 18515490, 8965338, 19466374, 36393951,
7606  16193876
7607 #endif
7608  }},
7609  },
7610  {
7611  {{
7612 #if defined(BORINGSSL_CURVE25519_64BIT)
7613  213454002618221, 939771523987438, 1159882208056014, 317388369627517, 621213314200687
7614 #else
7615  33587053, 3180712, 64714734, 14003686, 50205390, 17283591, 17238397, 4729455, 49034351,
7616  9256799
7617 #endif
7618  }},
7619  {{
7620 #if defined(BORINGSSL_CURVE25519_64BIT)
7621  1971678598905747, 338026507889165, 762398079972271, 655096486107477, 42299032696322
7622 #else
7623  41926547, 29380300, 32336397, 5036987, 45872047, 11360616, 22616405, 9761698, 47281666,
7624  630304
7625 #endif
7626  }},
7627  {{
7628 #if defined(BORINGSSL_CURVE25519_64BIT)
7629  177130678690680, 1754759263300204, 1864311296286618, 1180675631479880, 1292726903152791
7630 #else
7631  53388152, 2639452, 42871404, 26147950, 9494426, 27780403, 60554312, 17593437, 64659607,
7632  19263131
7633 #endif
7634  }},
7635  },
7636  {
7637  {{
7638 #if defined(BORINGSSL_CURVE25519_64BIT)
7639  1913163449625248, 460779200291993, 2193883288642314, 1008900146920800, 1721983679009502
7640 #else
7641  63957664, 28508356, 9282713, 6866145, 35201802, 32691408, 48168288, 15033783, 25105118,
7642  25659556
7643 #endif
7644  }},
7645  {{
7646 #if defined(BORINGSSL_CURVE25519_64BIT)
7647  1070401523076875, 1272492007800961, 1910153608563310, 2075579521696771, 1191169788841221
7648 #else
7649  42782475, 15950225, 35307649, 18961608, 55446126, 28463506, 1573891, 30928545, 2198789,
7650  17749813
7651 #endif
7652  }},
7653  {{
7654 #if defined(BORINGSSL_CURVE25519_64BIT)
7655  692896803108118, 500174642072499, 2068223309439677, 1162190621851337, 1426986007309901
7656 #else
7657  64009494, 10324966, 64867251, 7453182, 61661885, 30818928, 53296841, 17317989, 34647629,
7658  21263748
7659 #endif
7660  }},
7661  },
7662 };
d2
static const fe d2
Definition: mycurve25519_tables.h:46
sqrtm1
static const fe sqrtm1
Definition: mycurve25519_tables.h:38
Bi
static const ge_precomp Bi[8]
Definition: mycurve25519_tables.h:7453
ge_precomp
Definition: mycurve25519.h:109
fe
Definition: mycurve25519.h:66
d
static const fe d
Definition: mycurve25519_tables.h:30
k25519Precomp
static const ge_precomp k25519Precomp[32][8]
Definition: mycurve25519_tables.h:130