@semaphore-protocol/group 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module @semaphore-protocol/group
3
- * @version 3.6.0
3
+ * @version 3.8.0
4
4
  * @file A library to create and manage Semaphore groups.
5
5
  * @copyright Ethereum Foundation 2022
6
6
  * @license MIT
@@ -11,965 +11,32 @@
11
11
  Object.defineProperty(exports, '__esModule', { value: true });
12
12
 
13
13
  var incrementalMerkleTree = require('@zk-kit/incremental-merkle-tree');
14
- var require$$1 = require('crypto');
15
14
  var bignumber = require('@ethersproject/bignumber');
16
15
  var bytes = require('@ethersproject/bytes');
17
16
  var keccak256 = require('@ethersproject/keccak256');
18
17
 
19
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
-
21
- var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
22
-
23
18
  var poseidon2$1 = {};
24
19
 
25
- var scalar = {};
26
-
27
- Object.defineProperty(scalar, "__esModule", {
28
- value: true
29
- });
30
- scalar.abs = abs;
31
- scalar.add = add;
32
- scalar.band = band;
33
- scalar.bitLength = bitLength;
34
- scalar.bits = bits;
35
- scalar.bor = bor;
36
- scalar.bxor = bxor;
37
- scalar.div = div;
38
- scalar.e = void 0;
39
- scalar.eq = eq;
40
- scalar.exp = exp$1;
41
- scalar.fromArray = fromArray;
42
- scalar.fromRprBE = fromRprBE;
43
- scalar.fromRprLE = fromRprLE;
44
- scalar.fromString = fromString;
45
- scalar.geq = geq;
46
- scalar.gt = gt;
47
- scalar.isNegative = isNegative;
48
- scalar.isOdd = isOdd;
49
- scalar.isZero = isZero;
50
- scalar.land = land;
51
- scalar.leq = leq;
52
- scalar.lnot = lnot;
53
- scalar.lor = lor;
54
- scalar.lt = lt;
55
- scalar.mod = mod;
56
- scalar.mul = mul;
57
- scalar.naf = naf;
58
- scalar.neg = neg;
59
- scalar.neq = neq;
60
- scalar.one = void 0;
61
- scalar.pow = pow;
62
- scalar.shiftLeft = shiftLeft;
63
- scalar.shiftRight = shiftRight;
64
- scalar.shr = scalar.shl = void 0;
65
- scalar.square = square;
66
- scalar.sub = sub;
67
- scalar.toArray = toArray;
68
- scalar.toLEBuff = toLEBuff;
69
- scalar.toNumber = toNumber;
70
- scalar.toRprBE = toRprBE;
71
- scalar.toRprLE = toRprLE;
72
- scalar.toString = toString;
73
- scalar.zero = void 0;
74
- const hexLen = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];
75
- function fromString(s, radix) {
76
- if (!radix || radix == 10) {
77
- return BigInt(s);
78
- } else if (radix == 16) {
79
- if (s.slice(0, 2) == "0x") {
80
- return BigInt(s);
81
- } else {
82
- return BigInt("0x" + s);
83
- }
84
- }
85
- }
86
- const e = fromString;
87
- scalar.e = e;
88
- function fromArray(a, radix) {
89
- let acc = BigInt(0);
90
- radix = BigInt(radix);
91
- for (let i = 0; i < a.length; i++) {
92
- acc = acc * radix + BigInt(a[i]);
93
- }
94
- return acc;
95
- }
96
- function bitLength(a) {
97
- const aS = a.toString(16);
98
- return (aS.length - 1) * 4 + hexLen[parseInt(aS[0], 16)];
99
- }
100
- function isNegative(a) {
101
- return BigInt(a) < BigInt(0);
102
- }
103
- function isZero(a) {
104
- return !a;
105
- }
106
- function shiftLeft(a, n) {
107
- return BigInt(a) << BigInt(n);
108
- }
109
- function shiftRight(a, n) {
110
- return BigInt(a) >> BigInt(n);
111
- }
112
- const shl = shiftLeft;
113
- scalar.shl = shl;
114
- const shr = shiftRight;
115
- scalar.shr = shr;
116
- function isOdd(a) {
117
- return (BigInt(a) & BigInt(1)) == BigInt(1);
118
- }
119
- function naf(n) {
120
- let E = BigInt(n);
121
- const res = [];
122
- while (E) {
123
- if (E & BigInt(1)) {
124
- const z = 2 - Number(E % BigInt(4));
125
- res.push(z);
126
- E = E - BigInt(z);
127
- } else {
128
- res.push(0);
129
- }
130
- E = E >> BigInt(1);
131
- }
132
- return res;
133
- }
134
- function bits(n) {
135
- let E = BigInt(n);
136
- const res = [];
137
- while (E) {
138
- if (E & BigInt(1)) {
139
- res.push(1);
140
- } else {
141
- res.push(0);
142
- }
143
- E = E >> BigInt(1);
144
- }
145
- return res;
146
- }
147
- function toNumber(s) {
148
- if (s > BigInt(Number.MAX_SAFE_INTEGER)) {
149
- throw new Error("Number too big");
150
- }
151
- return Number(s);
152
- }
153
- function toArray(s, radix) {
154
- const res = [];
155
- let rem = BigInt(s);
156
- radix = BigInt(radix);
157
- while (rem) {
158
- res.unshift(Number(rem % radix));
159
- rem = rem / radix;
160
- }
161
- return res;
162
- }
163
- function add(a, b) {
164
- return BigInt(a) + BigInt(b);
165
- }
166
- function sub(a, b) {
167
- return BigInt(a) - BigInt(b);
168
- }
169
- function neg(a) {
170
- return -BigInt(a);
171
- }
172
- function mul(a, b) {
173
- return BigInt(a) * BigInt(b);
174
- }
175
- function square(a) {
176
- return BigInt(a) * BigInt(a);
177
- }
178
- function pow(a, b) {
179
- return BigInt(a) ** BigInt(b);
180
- }
181
- function exp$1(a, b) {
182
- return BigInt(a) ** BigInt(b);
183
- }
184
- function abs(a) {
185
- return BigInt(a) >= 0 ? BigInt(a) : -BigInt(a);
186
- }
187
- function div(a, b) {
188
- return BigInt(a) / BigInt(b);
189
- }
190
- function mod(a, b) {
191
- return BigInt(a) % BigInt(b);
192
- }
193
- function eq(a, b) {
194
- return BigInt(a) == BigInt(b);
195
- }
196
- function neq(a, b) {
197
- return BigInt(a) != BigInt(b);
198
- }
199
- function lt(a, b) {
200
- return BigInt(a) < BigInt(b);
201
- }
202
- function gt(a, b) {
203
- return BigInt(a) > BigInt(b);
204
- }
205
- function leq(a, b) {
206
- return BigInt(a) <= BigInt(b);
207
- }
208
- function geq(a, b) {
209
- return BigInt(a) >= BigInt(b);
210
- }
211
- function band(a, b) {
212
- return BigInt(a) & BigInt(b);
213
- }
214
- function bor(a, b) {
215
- return BigInt(a) | BigInt(b);
216
- }
217
- function bxor(a, b) {
218
- return BigInt(a) ^ BigInt(b);
219
- }
220
- function land(a, b) {
221
- return BigInt(a) && BigInt(b);
222
- }
223
- function lor(a, b) {
224
- return BigInt(a) || BigInt(b);
225
- }
226
- function lnot(a) {
227
- return !BigInt(a);
228
- }
229
- function toRprLE(buff, o, e, n8) {
230
- const s = "0000000" + e.toString(16);
231
- const v = new Uint32Array(buff.buffer, o, n8 / 4);
232
- const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
233
- for (let i = 0; i < l; i++) v[i] = parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16);
234
- for (let i = l; i < v.length; i++) v[i] = 0;
235
- for (let i = v.length * 4; i < n8; i++) buff[i] = toNumber(band(shiftRight(e, i * 8), 0xFF));
236
- }
237
- function toRprBE(buff, o, e, n8) {
238
- const s = "0000000" + e.toString(16);
239
- const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
240
- const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
241
- for (let i = 0; i < l; i++) v.setUint32(n8 - i * 4 - 4, parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16), false);
242
- for (let i = 0; i < n8 / 4 - l; i++) v[i] = 0;
243
- }
244
- function fromRprLE(buff, o, n8) {
245
- n8 = n8 || buff.byteLength;
246
- o = o || 0;
247
- const v = new Uint32Array(buff.buffer, o, n8 / 4);
248
- const a = new Array(n8 / 4);
249
- v.forEach((ch, i) => a[a.length - i - 1] = ch.toString(16).padStart(8, "0"));
250
- return fromString(a.join(""), 16);
251
- }
252
- function fromRprBE(buff, o, n8) {
253
- n8 = n8 || buff.byteLength;
254
- o = o || 0;
255
- const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
256
- const a = new Array(n8 / 4);
257
- for (let i = 0; i < n8 / 4; i++) {
258
- a[i] = v.getUint32(i * 4, false).toString(16).padStart(8, "0");
259
- }
260
- return fromString(a.join(""), 16);
261
- }
262
- function toString(a, radix) {
263
- return a.toString(radix);
264
- }
265
- function toLEBuff(a) {
266
- const buff = new Uint8Array(Math.floor((bitLength(a) - 1) / 8) + 1);
267
- toRprLE(buff, 0, a, buff.byteLength);
268
- return buff;
269
- }
270
- const zero = e(0);
271
- scalar.zero = zero;
272
- const one = e(1);
273
- scalar.one = one;
274
-
275
- var f1field = {};
276
-
277
- var futils$1 = {};
278
-
279
- Object.defineProperty(futils$1, "__esModule", {
280
- value: true
281
- });
282
- futils$1.exp = exp;
283
- futils$1.mulScalar = mulScalar;
284
- var Scalar$4 = _interopRequireWildcard$3(scalar);
285
- function _getRequireWildcardCache$3(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$3 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
286
- function _interopRequireWildcard$3(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$3(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
287
- function mulScalar(F, base, e) {
288
- let res;
289
- if (Scalar$4.isZero(e)) return F.zero;
290
- const n = Scalar$4.naf(e);
291
- if (n[n.length - 1] == 1) {
292
- res = base;
293
- } else if (n[n.length - 1] == -1) {
294
- res = F.neg(base);
295
- } else {
296
- throw new Error("invlaud NAF");
297
- }
298
- for (let i = n.length - 2; i >= 0; i--) {
299
- res = F.double(res);
300
- if (n[i] == 1) {
301
- res = F.add(res, base);
302
- } else if (n[i] == -1) {
303
- res = F.sub(res, base);
304
- }
305
- }
306
- return res;
307
- }
308
- function exp(F, base, e) {
309
- if (Scalar$4.isZero(e)) return F.one;
310
- const n = Scalar$4.bits(e);
311
- if (n.length == 0) return F.one;
312
- let res = base;
313
- for (let i = n.length - 2; i >= 0; i--) {
314
- res = F.square(res);
315
- if (n[i]) {
316
- res = F.mul(res, base);
317
- }
318
- }
319
- return res;
320
- }
321
-
322
- var fsqrt = {};
323
-
324
- Object.defineProperty(fsqrt, "__esModule", {
325
- value: true
326
- });
327
- fsqrt.default = buildSqrt;
328
- var Scalar$3 = _interopRequireWildcard$2(scalar);
329
- function _getRequireWildcardCache$2(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$2 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
330
- function _interopRequireWildcard$2(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$2(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
331
- function buildSqrt(F) {
332
- if (F.m % 2 == 1) {
333
- if (Scalar$3.eq(Scalar$3.mod(F.p, 4), 1)) {
334
- if (Scalar$3.eq(Scalar$3.mod(F.p, 8), 1)) {
335
- if (Scalar$3.eq(Scalar$3.mod(F.p, 16), 1)) {
336
- alg5_tonelliShanks(F);
337
- } else if (Scalar$3.eq(Scalar$3.mod(F.p, 16), 9)) {
338
- alg4_kong(F);
339
- } else {
340
- throw new Error("Field withot sqrt");
341
- }
342
- } else if (Scalar$3.eq(Scalar$3.mod(F.p, 8), 5)) {
343
- alg3_atkin(F);
344
- } else {
345
- throw new Error("Field withot sqrt");
346
- }
347
- } else if (Scalar$3.eq(Scalar$3.mod(F.p, 4), 3)) {
348
- alg2_shanks(F);
349
- }
350
- } else {
351
- const pm2mod4 = Scalar$3.mod(Scalar$3.pow(F.p, F.m / 2), 4);
352
- if (pm2mod4 == 1) {
353
- alg10_adj(F);
354
- } else if (pm2mod4 == 3) {
355
- alg9_adj(F);
356
- } else {
357
- alg8_complex(F);
358
- }
359
- }
360
- }
361
- function alg5_tonelliShanks(F) {
362
- F.sqrt_q = Scalar$3.pow(F.p, F.m);
363
- F.sqrt_s = 0;
364
- F.sqrt_t = Scalar$3.sub(F.sqrt_q, 1);
365
- while (!Scalar$3.isOdd(F.sqrt_t)) {
366
- F.sqrt_s = F.sqrt_s + 1;
367
- F.sqrt_t = Scalar$3.div(F.sqrt_t, 2);
368
- }
369
- let c0 = F.one;
370
- while (F.eq(c0, F.one)) {
371
- const c = F.random();
372
- F.sqrt_z = F.pow(c, F.sqrt_t);
373
- c0 = F.pow(F.sqrt_z, 2 ** (F.sqrt_s - 1));
374
- }
375
- F.sqrt_tm1d2 = Scalar$3.div(Scalar$3.sub(F.sqrt_t, 1), 2);
376
- F.sqrt = function (a) {
377
- const F = this;
378
- if (F.isZero(a)) return F.zero;
379
- let w = F.pow(a, F.sqrt_tm1d2);
380
- const a0 = F.pow(F.mul(F.square(w), a), 2 ** (F.sqrt_s - 1));
381
- if (F.eq(a0, F.negone)) return null;
382
- let v = F.sqrt_s;
383
- let x = F.mul(a, w);
384
- let b = F.mul(x, w);
385
- let z = F.sqrt_z;
386
- while (!F.eq(b, F.one)) {
387
- let b2k = F.square(b);
388
- let k = 1;
389
- while (!F.eq(b2k, F.one)) {
390
- b2k = F.square(b2k);
391
- k++;
392
- }
393
- w = z;
394
- for (let i = 0; i < v - k - 1; i++) {
395
- w = F.square(w);
396
- }
397
- z = F.square(w);
398
- b = F.mul(b, z);
399
- x = F.mul(x, w);
400
- v = k;
401
- }
402
- return F.geq(x, F.zero) ? x : F.neg(x);
403
- };
404
- }
405
- function alg4_kong(F) {
406
- F.sqrt = function () {
407
- throw new Error("Sqrt alg 4 not implemented");
408
- };
409
- }
410
- function alg3_atkin(F) {
411
- F.sqrt = function () {
412
- throw new Error("Sqrt alg 3 not implemented");
413
- };
414
- }
415
- function alg2_shanks(F) {
416
- F.sqrt_q = Scalar$3.pow(F.p, F.m);
417
- F.sqrt_e1 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 3), 4);
418
- F.sqrt = function (a) {
419
- if (this.isZero(a)) return this.zero;
420
- const a1 = this.pow(a, this.sqrt_e1);
421
- const a0 = this.mul(this.square(a1), a);
422
- if (this.eq(a0, this.negone)) return null;
423
- const x = this.mul(a1, a);
424
- return F.geq(x, F.zero) ? x : F.neg(x);
425
- };
426
- }
427
- function alg10_adj(F) {
428
- F.sqrt = function () {
429
- throw new Error("Sqrt alg 10 not implemented");
430
- };
431
- }
432
- function alg9_adj(F) {
433
- F.sqrt_q = Scalar$3.pow(F.p, F.m / 2);
434
- F.sqrt_e34 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 3), 4);
435
- F.sqrt_e12 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 1), 2);
436
- F.frobenius = function (n, x) {
437
- if (n % 2 == 1) {
438
- return F.conjugate(x);
439
- } else {
440
- return x;
441
- }
442
- };
443
- F.sqrt = function (a) {
444
- const F = this;
445
- const a1 = F.pow(a, F.sqrt_e34);
446
- const alfa = F.mul(F.square(a1), a);
447
- const a0 = F.mul(F.frobenius(1, alfa), alfa);
448
- if (F.eq(a0, F.negone)) return null;
449
- const x0 = F.mul(a1, a);
450
- let x;
451
- if (F.eq(alfa, F.negone)) {
452
- x = F.mul(x0, [F.F.zero, F.F.one]);
453
- } else {
454
- const b = F.pow(F.add(F.one, alfa), F.sqrt_e12);
455
- x = F.mul(b, x0);
456
- }
457
- return F.geq(x, F.zero) ? x : F.neg(x);
458
- };
459
- }
460
- function alg8_complex(F) {
461
- F.sqrt = function () {
462
- throw new Error("Sqrt alg 8 not implemented");
463
- };
464
- }
465
-
466
- var random = {};
467
-
468
- var chacha = {};
469
-
470
- Object.defineProperty(chacha, "__esModule", {
471
- value: true
472
- });
473
- chacha.default = void 0;
474
- var Scalar$2 = _interopRequireWildcard$1(scalar);
475
- function _getRequireWildcardCache$1(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$1 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
476
- function _interopRequireWildcard$1(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$1(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
477
- function quarterRound(st, a, b, c, d) {
478
- st[a] = st[a] + st[b] >>> 0;
479
- st[d] = (st[d] ^ st[a]) >>> 0;
480
- st[d] = (st[d] << 16 | st[d] >>> 16 & 0xFFFF) >>> 0;
481
- st[c] = st[c] + st[d] >>> 0;
482
- st[b] = (st[b] ^ st[c]) >>> 0;
483
- st[b] = (st[b] << 12 | st[b] >>> 20 & 0xFFF) >>> 0;
484
- st[a] = st[a] + st[b] >>> 0;
485
- st[d] = (st[d] ^ st[a]) >>> 0;
486
- st[d] = (st[d] << 8 | st[d] >>> 24 & 0xFF) >>> 0;
487
- st[c] = st[c] + st[d] >>> 0;
488
- st[b] = (st[b] ^ st[c]) >>> 0;
489
- st[b] = (st[b] << 7 | st[b] >>> 25 & 0x7F) >>> 0;
490
- }
491
- function doubleRound(st) {
492
- quarterRound(st, 0, 4, 8, 12);
493
- quarterRound(st, 1, 5, 9, 13);
494
- quarterRound(st, 2, 6, 10, 14);
495
- quarterRound(st, 3, 7, 11, 15);
496
- quarterRound(st, 0, 5, 10, 15);
497
- quarterRound(st, 1, 6, 11, 12);
498
- quarterRound(st, 2, 7, 8, 13);
499
- quarterRound(st, 3, 4, 9, 14);
500
- }
501
- class ChaCha {
502
- constructor(seed) {
503
- seed = seed || [0, 0, 0, 0, 0, 0, 0, 0];
504
- this.state = [0x61707865, 0x3320646E, 0x79622D32, 0x6B206574, seed[0], seed[1], seed[2], seed[3], seed[4], seed[5], seed[6], seed[7], 0, 0, 0, 0];
505
- this.idx = 16;
506
- this.buff = new Array(16);
507
- }
508
- nextU32() {
509
- if (this.idx == 16) this.update();
510
- return this.buff[this.idx++];
511
- }
512
- nextU64() {
513
- return Scalar$2.add(Scalar$2.mul(this.nextU32(), 0x100000000), this.nextU32());
514
- }
515
- nextBool() {
516
- return (this.nextU32() & 1) == 1;
517
- }
518
- update() {
519
- for (let i = 0; i < 16; i++) this.buff[i] = this.state[i];
520
- for (let i = 0; i < 10; i++) doubleRound(this.buff);
521
- for (let i = 0; i < 16; i++) this.buff[i] = this.buff[i] + this.state[i] >>> 0;
522
- this.idx = 0;
523
- this.state[12] = this.state[12] + 1 >>> 0;
524
- if (this.state[12] != 0) return;
525
- this.state[13] = this.state[13] + 1 >>> 0;
526
- if (this.state[13] != 0) return;
527
- this.state[14] = this.state[14] + 1 >>> 0;
528
- if (this.state[14] != 0) return;
529
- this.state[15] = this.state[15] + 1 >>> 0;
530
- }
531
- }
532
- chacha.default = ChaCha;
533
-
534
- Object.defineProperty(random, "__esModule", {
535
- value: true
536
- });
537
- random.getRandomBytes = getRandomBytes;
538
- random.getRandomSeed = getRandomSeed;
539
- random.getThreadRng = getThreadRng;
540
- var _chacha = _interopRequireDefault$2(chacha);
541
- function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
542
- function getRandomBytes(n) {
543
- let array = new Uint8Array(n);
544
- if (typeof window !== 'undefined') {
545
- if (typeof window.crypto !== "undefined") {
546
- window.crypto.getRandomValues(array);
547
- } else {
548
- for (let i = 0; i < n; i++) {
549
- array[i] = Math.random() * 4294967296 >>> 0;
550
- }
551
- }
552
- } else {
553
- const crypto = require$$1__default["default"];
554
- crypto.randomFillSync(array);
555
- }
556
- return array;
557
- }
558
- function getRandomSeed() {
559
- const arr = getRandomBytes(32);
560
- const arrV = new Uint32Array(arr.buffer);
561
- const seed = [];
562
- for (let i = 0; i < 8; i++) {
563
- seed.push(arrV[i]);
564
- }
565
- return seed;
566
- }
567
- let threadRng = null;
568
- function getThreadRng() {
569
- if (threadRng) return threadRng;
570
- threadRng = new _chacha.default(getRandomSeed());
571
- return threadRng;
572
- }
573
-
574
- var fft = {};
575
-
576
- Object.defineProperty(fft, "__esModule", {
577
- value: true
578
- });
579
- fft.default = void 0;
580
- class FFT {
581
- constructor(G, F, opMulGF) {
582
- this.F = F;
583
- this.G = G;
584
- this.opMulGF = opMulGF;
585
- let rem = F.sqrt_t || F.t;
586
- let s = F.sqrt_s || F.s;
587
- let nqr = F.one;
588
- while (F.eq(F.pow(nqr, F.half), F.one)) nqr = F.add(nqr, F.one);
589
- this.w = new Array(s + 1);
590
- this.wi = new Array(s + 1);
591
- this.w[s] = this.F.pow(nqr, rem);
592
- this.wi[s] = this.F.inv(this.w[s]);
593
- let n = s - 1;
594
- while (n >= 0) {
595
- this.w[n] = this.F.square(this.w[n + 1]);
596
- this.wi[n] = this.F.square(this.wi[n + 1]);
597
- n--;
598
- }
599
- this.roots = [];
600
- this._setRoots(Math.min(s, 15));
601
- }
602
- _setRoots(n) {
603
- for (let i = n; i >= 0 && !this.roots[i]; i--) {
604
- let r = this.F.one;
605
- const nroots = 1 << i;
606
- const rootsi = new Array(nroots);
607
- for (let j = 0; j < nroots; j++) {
608
- rootsi[j] = r;
609
- r = this.F.mul(r, this.w[i]);
610
- }
611
- this.roots[i] = rootsi;
612
- }
613
- }
614
- fft(p) {
615
- if (p.length <= 1) return p;
616
- const bits = log2(p.length - 1) + 1;
617
- this._setRoots(bits);
618
- const m = 1 << bits;
619
- if (p.length != m) {
620
- throw new Error("Size must be multiple of 2");
621
- }
622
- const res = __fft(this, p, bits, 0, 1);
623
- return res;
624
- }
625
- ifft(p) {
626
- if (p.length <= 1) return p;
627
- const bits = log2(p.length - 1) + 1;
628
- this._setRoots(bits);
629
- const m = 1 << bits;
630
- if (p.length != m) {
631
- throw new Error("Size must be multiple of 2");
632
- }
633
- const res = __fft(this, p, bits, 0, 1);
634
- const twoinvm = this.F.inv(this.F.mulScalar(this.F.one, m));
635
- const resn = new Array(m);
636
- for (let i = 0; i < m; i++) {
637
- resn[i] = this.opMulGF(res[(m - i) % m], twoinvm);
20
+ const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
21
+ const N_ROUNDS_F = 8;
22
+ const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
23
+ const pow5 = v => {
24
+ let o = v * v;
25
+ return v * o * o % F;
26
+ };
27
+ function mix(state, M) {
28
+ const out = [];
29
+ for (let x = 0; x < state.length; x++) {
30
+ let o = 0n;
31
+ for (let y = 0; y < state.length; y++) {
32
+ o = o + M[x][y] * state[y];
638
33
  }
639
- return resn;
640
- }
641
- }
642
- fft.default = FFT;
643
- function log2(V) {
644
- return ((V & 0xFFFF0000) !== 0 ? (V &= 0xFFFF0000, 16) : 0) | ((V & 0xFF00FF00) !== 0 ? (V &= 0xFF00FF00, 8) : 0) | ((V & 0xF0F0F0F0) !== 0 ? (V &= 0xF0F0F0F0, 4) : 0) | ((V & 0xCCCCCCCC) !== 0 ? (V &= 0xCCCCCCCC, 2) : 0) | (V & 0xAAAAAAAA) !== 0;
645
- }
646
- function __fft(PF, pall, bits, offset, step) {
647
- const n = 1 << bits;
648
- if (n == 1) {
649
- return [pall[offset]];
650
- } else if (n == 2) {
651
- return [PF.G.add(pall[offset], pall[offset + step]), PF.G.sub(pall[offset], pall[offset + step])];
652
- }
653
- const ndiv2 = n >> 1;
654
- const p1 = __fft(PF, pall, bits - 1, offset, step * 2);
655
- const p2 = __fft(PF, pall, bits - 1, offset + step, step * 2);
656
- const out = new Array(n);
657
- for (let i = 0; i < ndiv2; i++) {
658
- out[i] = PF.G.add(p1[i], PF.opMulGF(p2[i], PF.roots[bits][i]));
659
- out[i + ndiv2] = PF.G.sub(p1[i], PF.opMulGF(p2[i], PF.roots[bits][i]));
34
+ out.push(o % F);
660
35
  }
661
36
  return out;
662
37
  }
663
-
664
- Object.defineProperty(f1field, "__esModule", {
665
- value: true
666
- });
667
- f1field.default = void 0;
668
- var Scalar$1 = _interopRequireWildcard(scalar);
669
- var futils = _interopRequireWildcard(futils$1);
670
- var _fsqrt = _interopRequireDefault$1(fsqrt);
671
- var _random = random;
672
- var _fft = _interopRequireDefault$1(fft);
673
- function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
674
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
675
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
676
- class ZqField$1 {
677
- constructor(p) {
678
- this.type = "F1";
679
- this.one = BigInt(1);
680
- this.zero = BigInt(0);
681
- this.p = BigInt(p);
682
- this.m = 1;
683
- this.negone = this.p - this.one;
684
- this.two = BigInt(2);
685
- this.half = this.p >> this.one;
686
- this.bitLength = Scalar$1.bitLength(this.p);
687
- this.mask = (this.one << BigInt(this.bitLength)) - this.one;
688
- this.n64 = Math.floor((this.bitLength - 1) / 64) + 1;
689
- this.n32 = this.n64 * 2;
690
- this.n8 = this.n64 * 8;
691
- this.R = this.e(this.one << BigInt(this.n64 * 64));
692
- this.Ri = this.inv(this.R);
693
- const e = this.negone >> this.one;
694
- this.nqr = this.two;
695
- let r = this.pow(this.nqr, e);
696
- while (!this.eq(r, this.negone)) {
697
- this.nqr = this.nqr + this.one;
698
- r = this.pow(this.nqr, e);
699
- }
700
- this.s = 0;
701
- this.t = this.negone;
702
- while ((this.t & this.one) == this.zero) {
703
- this.s = this.s + 1;
704
- this.t = this.t >> this.one;
705
- }
706
- this.nqr_to_t = this.pow(this.nqr, this.t);
707
- (0, _fsqrt.default)(this);
708
- this.FFT = new _fft.default(this, this, this.mul.bind(this));
709
- this.fft = this.FFT.fft.bind(this.FFT);
710
- this.ifft = this.FFT.ifft.bind(this.FFT);
711
- this.w = this.FFT.w;
712
- this.wi = this.FFT.wi;
713
- this.shift = this.square(this.nqr);
714
- this.k = this.exp(this.nqr, 2 ** this.s);
715
- }
716
- e(a, b) {
717
- let res;
718
- if (!b) {
719
- res = BigInt(a);
720
- } else if (b == 16) {
721
- res = BigInt("0x" + a);
722
- }
723
- if (res < 0) {
724
- let nres = -res;
725
- if (nres >= this.p) nres = nres % this.p;
726
- return this.p - nres;
727
- } else {
728
- return res >= this.p ? res % this.p : res;
729
- }
730
- }
731
- add(a, b) {
732
- const res = a + b;
733
- return res >= this.p ? res - this.p : res;
734
- }
735
- sub(a, b) {
736
- return a >= b ? a - b : this.p - b + a;
737
- }
738
- neg(a) {
739
- return a ? this.p - a : a;
740
- }
741
- mul(a, b) {
742
- return a * b % this.p;
743
- }
744
- mulScalar(base, s) {
745
- return base * this.e(s) % this.p;
746
- }
747
- square(a) {
748
- return a * a % this.p;
749
- }
750
- eq(a, b) {
751
- return a == b;
752
- }
753
- neq(a, b) {
754
- return a != b;
755
- }
756
- lt(a, b) {
757
- const aa = a > this.half ? a - this.p : a;
758
- const bb = b > this.half ? b - this.p : b;
759
- return aa < bb;
760
- }
761
- gt(a, b) {
762
- const aa = a > this.half ? a - this.p : a;
763
- const bb = b > this.half ? b - this.p : b;
764
- return aa > bb;
765
- }
766
- leq(a, b) {
767
- const aa = a > this.half ? a - this.p : a;
768
- const bb = b > this.half ? b - this.p : b;
769
- return aa <= bb;
770
- }
771
- geq(a, b) {
772
- const aa = a > this.half ? a - this.p : a;
773
- const bb = b > this.half ? b - this.p : b;
774
- return aa >= bb;
775
- }
776
- div(a, b) {
777
- return this.mul(a, this.inv(b));
778
- }
779
- idiv(a, b) {
780
- if (!b) throw new Error("Division by zero");
781
- return a / b;
782
- }
783
- inv(a) {
784
- if (!a) throw new Error("Division by zero");
785
- let t = this.zero;
786
- let r = this.p;
787
- let newt = this.one;
788
- let newr = a % this.p;
789
- while (newr) {
790
- let q = r / newr;
791
- [t, newt] = [newt, t - q * newt];
792
- [r, newr] = [newr, r - q * newr];
793
- }
794
- if (t < this.zero) t += this.p;
795
- return t;
796
- }
797
- mod(a, b) {
798
- return a % b;
799
- }
800
- pow(b, e) {
801
- return futils.exp(this, b, e);
802
- }
803
- exp(b, e) {
804
- return futils.exp(this, b, e);
805
- }
806
- band(a, b) {
807
- const res = a & b & this.mask;
808
- return res >= this.p ? res - this.p : res;
809
- }
810
- bor(a, b) {
811
- const res = (a | b) & this.mask;
812
- return res >= this.p ? res - this.p : res;
813
- }
814
- bxor(a, b) {
815
- const res = (a ^ b) & this.mask;
816
- return res >= this.p ? res - this.p : res;
817
- }
818
- bnot(a) {
819
- const res = a ^ this.mask;
820
- return res >= this.p ? res - this.p : res;
821
- }
822
- shl(a, b) {
823
- if (Number(b) < this.bitLength) {
824
- const res = a << b & this.mask;
825
- return res >= this.p ? res - this.p : res;
826
- } else {
827
- const nb = this.p - b;
828
- if (Number(nb) < this.bitLength) {
829
- return a >> nb;
830
- } else {
831
- return this.zero;
832
- }
833
- }
834
- }
835
- shr(a, b) {
836
- if (Number(b) < this.bitLength) {
837
- return a >> b;
838
- } else {
839
- const nb = this.p - b;
840
- if (Number(nb) < this.bitLength) {
841
- const res = a << nb & this.mask;
842
- return res >= this.p ? res - this.p : res;
843
- } else {
844
- return 0;
845
- }
846
- }
847
- }
848
- land(a, b) {
849
- return a && b ? this.one : this.zero;
850
- }
851
- lor(a, b) {
852
- return a || b ? this.one : this.zero;
853
- }
854
- lnot(a) {
855
- return a ? this.zero : this.one;
856
- }
857
- sqrt_old(n) {
858
- if (n == this.zero) return this.zero;
859
- const res = this.pow(n, this.negone >> this.one);
860
- if (res != this.one) return null;
861
- let m = this.s;
862
- let c = this.nqr_to_t;
863
- let t = this.pow(n, this.t);
864
- let r = this.pow(n, this.add(this.t, this.one) >> this.one);
865
- while (t != this.one) {
866
- let sq = this.square(t);
867
- let i = 1;
868
- while (sq != this.one) {
869
- i++;
870
- sq = this.square(sq);
871
- }
872
- let b = c;
873
- for (let j = 0; j < m - i - 1; j++) b = this.square(b);
874
- m = i;
875
- c = this.square(b);
876
- t = this.mul(t, c);
877
- r = this.mul(r, b);
878
- }
879
- if (r > this.p >> this.one) {
880
- r = this.neg(r);
881
- }
882
- return r;
883
- }
884
- normalize(a, b) {
885
- a = BigInt(a, b);
886
- if (a < 0) {
887
- let na = -a;
888
- if (na >= this.p) na = na % this.p;
889
- return this.p - na;
890
- } else {
891
- return a >= this.p ? a % this.p : a;
892
- }
893
- }
894
- random() {
895
- const nBytes = this.bitLength * 2 / 8;
896
- let res = this.zero;
897
- for (let i = 0; i < nBytes; i++) {
898
- res = (res << BigInt(8)) + BigInt((0, _random.getRandomBytes)(1)[0]);
899
- }
900
- return res % this.p;
901
- }
902
- toString(a, base) {
903
- base = base || 10;
904
- let vs;
905
- if (a > this.half && base == 10) {
906
- const v = this.p - a;
907
- vs = "-" + v.toString(base);
908
- } else {
909
- vs = a.toString(base);
910
- }
911
- return vs;
912
- }
913
- isZero(a) {
914
- return a == this.zero;
915
- }
916
- fromRng(rng) {
917
- let v;
918
- do {
919
- v = this.zero;
920
- for (let i = 0; i < this.n64; i++) {
921
- v += rng.nextU64() << BigInt(64 * i);
922
- }
923
- v &= this.mask;
924
- } while (v >= this.p);
925
- v = v * this.Ri % this.p;
926
- return v;
927
- }
928
- fft(a) {
929
- return this.FFT.fft(a);
930
- }
931
- ifft(a) {
932
- return this.FFT.ifft(a);
933
- }
934
- toRprLE(buff, o, e) {
935
- Scalar$1.toRprLE(buff, o, e, this.n64 * 8);
936
- }
937
- toRprBE(buff, o, e) {
938
- Scalar$1.toRprBE(buff, o, e, this.n64 * 8);
939
- }
940
- toRprBEM(buff, o, e) {
941
- return this.toRprBE(buff, o, this.mul(this.R, e));
942
- }
943
- toRprLEM(buff, o, e) {
944
- return this.toRprLE(buff, o, this.mul(this.R, e));
945
- }
946
- fromRprLE(buff, o) {
947
- return Scalar$1.fromRprLE(buff, o, this.n8);
948
- }
949
- fromRprBE(buff, o) {
950
- return Scalar$1.fromRprBE(buff, o, this.n8);
951
- }
952
- fromRprLEM(buff, o) {
953
- return this.mul(this.fromRprLE(buff, o), this.Ri);
954
- }
955
- fromRprBEM(buff, o) {
956
- return this.mul(this.fromRprBE(buff, o), this.Ri);
957
- }
958
- toObject(a) {
959
- return a;
960
- }
961
- }
962
- f1field.default = ZqField$1;
963
-
964
- const Scalar = scalar;
965
- const {
966
- default: ZqField
967
- } = f1field;
968
- const F = new ZqField(Scalar.fromString("21888242871839275222246405745257275088548364400416034343698204186575808495617"));
969
- const N_ROUNDS_F = 8;
970
- const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
971
- const pow5 = a => F.mul(a, F.square(F.square(a, a)));
972
- function poseidon(inputs, opt) {
38
+ function poseidon(_inputs, opt) {
39
+ const inputs = _inputs.map(i => BigInt(i));
973
40
  if (inputs.length <= 0) {
974
41
  throw new Error('poseidon-lite: Not enough inputs');
975
42
  }
@@ -986,19 +53,17 @@ function poseidon(inputs, opt) {
986
53
  if (M.length !== t) {
987
54
  throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
988
55
  }
989
- let state = [F.zero, ...inputs.map(a => F.e(a))];
990
- for (let r = 0; r < nRoundsF + nRoundsP; r++) {
991
- state = state.map((a, i) => F.add(a, C[r * t + i]));
992
- if (r < nRoundsF / 2 || r >= nRoundsF / 2 + nRoundsP) {
993
- state = state.map(a => pow5(a));
994
- } else {
995
- state[0] = pow5(state[0]);
56
+ let state = [0n, ...inputs];
57
+ for (let x = 0; x < nRoundsF + nRoundsP; x++) {
58
+ for (let y = 0; y < state.length; y++) {
59
+ state[y] = state[y] + C[x * t + y];
60
+ if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
996
61
  }
997
- state = state.map((_, i) => state.reduce((acc, a, j) => F.add(acc, F.mul(M[i][j], a)), F.zero));
62
+ state = mix(state, M);
998
63
  }
999
- return F.normalize(state[0]);
64
+ return state[0];
1000
65
  }
1001
- var slow = poseidon;
66
+ var poseidon_1 = poseidon;
1002
67
 
1003
68
  var unstringify = {};
1004
69
 
@@ -1007,27 +72,18 @@ Object.defineProperty(unstringify, "__esModule", {
1007
72
  });
1008
73
  unstringify.default = unstringifyBigInts;
1009
74
  function unstringifyBigInts(o) {
1010
- if (typeof o == "string" && /^[0-9]+$/.test(o)) {
1011
- return BigInt(o);
1012
- } else if (typeof o == "string" && /^0x[0-9a-fA-F]+$/.test(o)) {
1013
- return BigInt(o);
1014
- } else if (typeof o == 'string' && /^[a-zA-Z0-9+\/]+={0,2}$/.test(o)) {
1015
- const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
1016
- const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
1017
- return BigInt(`0x${hex}`);
1018
- } else if (Array.isArray(o)) {
75
+ if (Array.isArray(o)) {
1019
76
  return o.map(unstringifyBigInts);
1020
- } else if (typeof o == "object") {
1021
- if (o === null) return null;
77
+ } else if (typeof o == 'object') {
1022
78
  const res = {};
1023
- const keys = Object.keys(o);
1024
- keys.forEach(k => {
1025
- res[k] = unstringifyBigInts(o[k]);
1026
- });
79
+ for (const [key, val] of Object.entries(o)) {
80
+ res[key] = unstringifyBigInts(val);
81
+ }
1027
82
  return res;
1028
- } else {
1029
- return o;
1030
83
  }
84
+ const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
85
+ const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
86
+ return BigInt(`0x${hex}`);
1031
87
  }
1032
88
 
1033
89
  var _2 = {};
@@ -1037,8 +93,8 @@ Object.defineProperty(_2, "__esModule", {
1037
93
  });
1038
94
  _2.default = void 0;
1039
95
  var _default = {
1040
- "C": ["DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=", "APFEUjXyFIxZhlhxafwbzYh7CNTQCGjfVpb/9AlW6GQ=", "CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=", "Lye+aQ/a7kbDzij3UysTyFbDU0LIS9puIJZjEPrcAdA=", "KyrhrPaLe40kFr6/PU9iNLdj/gS4BD7ki4MnvryhbPI=", "AxnQYgcr737MperAb5fU1VlSwXWrawPq5ktEx9vxHPo=", "KIE9yuuuqoKKN234evSmO8i3vyetScYpjvezh78oUm0=", "JydnOyzLyQPxgb844cHUDSAzhlIAw1K8FQkord35y3g=", "I07EXKJ3J8LnSr0rKhSUzW771D40BYfWuPueMeZcxjI=", "FbUlNAMa4Y9/hiyyz3z3YKsQqBUKM3sczZn/boeX1Cg=", "Dcj61tnks19e2aPRhrec444Oio0bWLEy1wHU7s9o0fY=", "G82V/8IR+8pgD3BfrT+1Z+pOs3j2Lh/sl4BVGKR+TZw=", "EFILCrchyt/p7/gbAW/DTcdto2wleJN4F8uXjQad5Vk=", "H21IFJuOf32bJX2O1fu69CkySYB1/tCs6IqeuB9WJ/Y=", "HZZV9lIwkBTSngDvNaIIm//43ByBbw3JyjS9tUYMhwU=", "BN9aVv+VvK+wUfexzUOpm6cx/2fkcDIFj+PUGFaXzH0=", "BnLZlfj/9kAVGz0pDO2vFIaQoQqMhCSn9uwoK25L6Cg=", "CZlStBSIRFSyEgDX/6/dXwyancwG8nCOn8HYIJtcdbk=", "BSy6IlXf0Ax8SDFDuo1GlEjkNYaptM2Rg/0OhDprn6Y=", "C4ut7mkK246wvXRxK3mZr4LeVXByUa13Fgd8uTxGTdw=", "EZsVkPEzB69aHuZRAgwHx0nBXWBoOoBQuWPQqOSyvdE=", "AxULfNbV0XslKdNr4PZ7gyxKz8iE707lzhW+C/tKjQk=", "LMYYLF4UVG488ZUfFzkSNVN077g9gImKvmnLMXyepWU=", "AFAyVR5jeMRQz+EppASzdkIYyt7awU4rktLNcxEb8Pk=", "IzI34yibqjS7FH6XLry5UWRpw5n8wGn7iPnaLMKCdrU=", "Bcj09OvUpuPJgNMWdL++YyMDfyGzSuWk6AwtTCTWAoA=", "CnsdsTBC05a6BdgYoxnyUlK8817zru2R7h8JslkPxls=", "KnO3H5shDPWxQpZXLJ0y2/FW4rCG/0fcXfVCNlpATsA=", "GsmwQXq8yaGTUQfp/8kdw+wY8sTb5/Ipdqdgu1xQxGA=", "EsAzmuCDdII/q7B2cH70eSafPk1ssQQ0kBXuBG3JP8A=", "C3R1sQKhZa1/WxjbTh5wT1KQCqMlO6rGgkZoLlbpoo4=", "A3woSeGRyj7bHF5J9ui4kXyEPjeTZvLqMqs6qI1/hEg=", "BaaBH4VW8BTpJnRmHiF+m9UgbFyToH3BRf2xdqcWNG8=", "KaeV59mAKJRulHt11U6fBEB26Hp7KIO0e2de9fOL1m4=", "IEOaDISzIutFo4V6/Bj1gm6Mc4LIoVhcUHvhmZgf0i8=", "Lguo2U2ez0qU7CBQxzcf8btQ8neZqEttSipvKgmCyIc=", "FD/RFc4I+yfKOOt8zoIrRReCLNIQkEjS5tDdzKF9ccg=", "DGTL7LHHNLhXlo273PgTzfhhFlkyPby/yEMjYjvpyvE=", "AoowWEfGg/ZG/KklwWP/WudPNI1iwrZw8UJs75QD2lM=", "Lk71EP8Lb9pfqUCrTEOA8mpry2TYlCe4JNZ1W1254ww=", "AIHJW8QzhOZj15JwyVbOO4kltPbQM7B4uWOE9QV5QA4=", "LtXwyRy9l0kYfi+t5ofgXuJJGzScA5oLuoqfQCOguzg=", "MFCZkfiNo1BLvzdO1ari8DRIoix2I0yMmQ8B8zpzUgY=", "HD8g/VVAmlMiG3xNSaNWufChEZ+yBntBp1KQlEJOxq0=", "ELTn86td8AMElRRFm24Y7sRrsiE+jhMeFwiHtH3cuWw=", "KhmCl5w/9/Q93VQ9iRwqvd2A+ATAd9d1A5qjUC5Dre8=", "HHTuZPFeHbb+3b6tVtbVXbpDHrw5bJr5XK0PExW9XJE=", "B1M+yFC6f5jquTA8rOAbS55PLouCcIz6nC/kWgrhRqA=", "IVdrQ45QBEmhUeTurxexVChcaPQtQsGAihGr83ZMB1A=", "LxfAVZuP55YIrVyhk9YvELzoOEyBXwkGdD1pMINtSp4=", "LUd+OGLQdwinnoqulGFwvJd1pCATGEdK5mWwsbficw4=", "Fi9SQ5ZwZMOQ4JVXeYTyka+6ImbDj1q82Jvg9bJ0fqs=", "K0yyM+3pukgmTs0siuUNGteoWWqH8p+Kd3enAJI5MxE=", "LI+8st2Fc9wduvj0YihUd22y7s5thcTPQlTnw14DsHo=", "HW80dyXkgWry/0U/DNVrGZ4bYen2Aemt5eiNuHCUnak=", "IEsMOX9OvnHrwtiz31uRPfnmrAK2jTEyTNSa9cRWVSk=", "DEy53DxP2BdPEUmzxjw8L57LgnzX3CVTT/j7dbx5xQI=", "F0rWGhRIyJmiVBZHT0kwMB5cSUdSeeBjmmFt3EW8e1Q=", "GpYXe89NjYn3Wd9OwvPN4uqqKMF3zA+hOpgW1Jo40u8=", "Bm0EskMx1xzQ74BUvGDE/wUgLBJqIzwagkKs42C4owo=", "KkxPxuwLDPUhlXgoccbdOzgcxl9y4CrVJwN6Yqob2AQ=", "E6stE2zPN9RH6fLhSnztyV5yf4RG9tnX5Vr8ASGf1kk=", "ESFVL8omBhYZ0k2EPcgnacGwT87Cb1UZTC4+hprMapo=", "AO9lMyKxPWyIm8gXFcN9d6bNJn1ZXEqJCaVUbHyXz/E=", "DiVIPkWmZSCLJh2Lp0BR5kAMd21lJZXZhFrKNdijl9M=", "KfU23LnddoIkUmRlnhXYjjlaw9Td6S2MRkSNuXnuuok=", "KlbvnyxT/rrf2jNXXb29iFoSTieAu+oXDkVrqs4Ppb4=", "HINhx461z13s+3otF7XECfKuKZmkZ2Lo7kFiQKjLmvE=", "FRr/XziyCg/ARzCJqvAga4Po5op2RQe/09CrS+dDGcU=", "BMYYfkHtiB3BsjnIj3+dQ6n1L8jIts3R525HYVtR8QA=", "E7N72A9NJ/sQ2EMx9vttU0uBxh7RV3ZEnoAbfdycKWc=", "AaXFNic8LZ31eL+9MsF7eizjZkwqUgMskyHOscToqOQ=", "KrNWGDTKc4Na0F9desuVC0qaLGZrlybagyI5Blt8OwI=", "HU2OwpHnINsgD+bWhsDWE6yvavTpXTv2n37VFqWXtkY=", "BBKU0sxITSKPV4T+eRn9K7klNRJAoEtxFRTJyAtlrx0=", "FUrJjgFwjGEcT6cVmR8ASJj1eTnRJuOSBClx3ZDoH8Y=", "CzOdisyn1Pg+7dhAk671EFCzaEyI+LCwRSRWO8bqTaQ=", "CVXknmYQyUJUpPhM+6s0RZjw5x6v9Kfdge2VtQg5yC4=", "BnRqYVbrpUQmueIiBvFavKmm9B5vU1xvNSVAHqBlRiY=", "Dxj1oOzRQjxJbzggxUnCeDjleQ4r0KGWrJF8f/Mgd/s=", "BPbuyhdR9zCKxZ7/W+smHku1Y1g+3nvJKnOCI9b3bhM=", "K1aXM2TExPXBo+xNo83OA4gR6xFvs+RbwXaNJvwLN1g=", "Ejdp3UnVsFTc12uJgEsby44TkrOFcWpdg/62XUN/Ke8=", "IUe0JPxIyAqI7lK5EWmqzqmJ9kRkcRUJlCV7L7AcY+k=", "D9wfWFSLhXAabFUF6jMqKWR+bzStQkPC6lStiXzr5U0=", "Ejc6glH+oATfaKvPD3eG1Lzv8oxdu+DDlE9oXMCgsfI=", "IeT06l81+FutfqUv90LJ6KZCdWtq9EID3YofNcGpADU=", "FiQ5FtadLKPftHIiJNTEYrVzZkkvRekNioGTTxvDsUc=", "HvvkbdeleLT2b5rbyItDeKvCFWbhoEU8oTpBWcrASsI=", "B+pehTfPXdCIhgIOI6fzh9Ro1VJb5m+FO2csyWqIlpo=", "BajE+ZaLiqO3tHijD5pbY2UPGadefOEcqf4WwLdsALw=", "IPBXcSzCFlT7/lm9NF6NrD94GMcBuceILZ1Xtyoy6D8=", "BKEu3tqd/WiWcvjGf+4xY23NjojQHUkBm9kLM+sz22k=", "J+iNjBXzfc7kTx5UJaUd7L0TbOUJGmdn5J7JVEzNEBo=", "L+7Re4QoXtm4pcjF6VpB9m4JZhmncDIjF2xB7kM95NE=", "HtfMdu30XHxAQkFCD3Kc85TllCkRMSoNaXK4vVOv8rg=", "FXQumbm/oyMVf/jFhvVmDqxng0dhRM3K3yh0vkVGaxo=", "GqwoU4f2XoLIlfxoh930BXcQdFTG7AMXKE8DPyfQx4U=", "JYUcPIRdR5D53a29tgVzV4MuLnpJd19x7HWpZVTWfHc=", "FaWCFWXMLsLOeEV9sZft81O367osVSM3DdzMPZ8Uamc=", "JBHVekgTuZgO+n4xodtZZtz2TzYEQndQLxVIXyjHFyc=", "AC5vjWUgzUcT4zW4wLbS5kfpqY4S9M0lWIKLXvbLTJs=", "L/e8j0OAzemX2gC2FrD80a+PDpHi/h7XOYg0YJ4DFdI=", "ALmDG5SFJVle4CckRxvNGC6VIfa3u2jx6Tvk/rsNPL4=", "Ci9TdouOv2qGkTsOV8BOARykCGSKR0OofXetvwycNRI=", "ACSBVhQv0Dc6R5+R/yOelg9Zn/fpS+abfyopAwXhGY0=", "Fx1WILh7+xMoz4wCqz8MmjlxlqpqVCwjUOtRKisrzak=", "FwpPVVNvfclwCHx8ENb612DJUhct1U3ZnRBF5Ow0qAg=", "KaujP3mf5mwu8xNK6gQzbsw344wc0hG6SC7KF+Lb+uE=", "HpvBeaT911j90bsZRQiNR+cNEUoD9qDotbplA2nmSXM=", "HdJpeZtmD61Y9/SJLfsLWv6q2GmpxLRPnJ4cQ72vjwk=", "Is28i3ARetFAEYHQLhVFnnzNQm/oacfJXR3Syw8krzg=", "DvBC5FR3HFM6n1elXFA/zv0xUPUu2Up81bqTucfazv0=", "EWCeBq1sj+Lyh/MDYDfohRMY6LCKA1mgOzBP/KYugoQ=", "EWbZ5VRhbbqedT7qQnwXt/7NWMB23+QnCLCPW3g6qa8=", "LeUpiUMahZWTQTAmNUQT2xd/v0zSrAtW+FWoiDV+5GY=", "MAbrT/x6hYGabaSS86isHfUa7lsXuOiddL8Bz19x6a0=", "KvQfu2G6ioD9z2//nj9vQimT/o8KRjn5YjRMgiUUUIY=", "EZ5oTeR2FV/lprQajryF24cYqyeInoXngbIUus5IJ8M=", "GDW3huLokl4Yi+pZrjY1N7USSMI4KPBHz/eEuXs/2AA=", "KCAaNMWU36NNeUmWxkM6INFSusKnkFySbEDihasy7rY=", "CD79eifRdRCU6A/vr3iwAIZMgutXEYdySnYfiMIsxOc=", "C2+Io1dxmVJhWOYc7qJ76BHBbfd3TdhRngeVZPYf0Ts=", "Dsho5tFeUdlkT2bh1kcalFiVEcoA0p4QFDkObuQlT1s=", "KvM+P4ZncScawMmz7S4RQuzT50uTnNQNANk3q4TJhZE=", "C1ICEfkEtefQm12WHGrOdzRWjFR91oWLNkzl5HlR8Xg=", "Cy1yLQkZoarY21jxAGKpLqDFasQnDoIsyiKGIBiKHUA=", "H3kNTX+M8JTZgM6zfCRT6Ve1SpmRyji74AYdHtblYtQ=", "AXHrld+/fR6uqXzThfeAFQiFwWI1oqao2pLOsB5QQjM=", "DC0OO1/VdUkym/aIXaZrm3kLQN79LIZQdiMFOBsWiHM=", "EWL7KGicJxVOWoIotOcrN3y8r6WJ4oPDXTgDBUQHoY0=", "LxRZtl3uRBtkrThqkegxDygsWpKonhmSFiPvgklxG8A=", "Hm/zIWtojD2ZbXQ2fVzUwbxInUZ1TrcSwkP3DRtTz7s=", "AcqL5zgyuNBoFIfSfRV4AtdBpvNs3CoFdogfkyZHiHU=", "H3c1cG/+n8WG+XbVvfIj3GgChggLEM6gC5td4xX5ZQ4=", "JSK2D06jMHZAoMLc4EH7qSGsEKPV8JbvR0XKg4KF8Bk=", "I/C+4AGxAp1SVQdd3JV/gzQYytT1K2w/jOFsI1VyV1s=", "K8Gui43buB/KrC1EVV7VaF0UJjPp35BfZtlAEJMILVk=", "D5QGuCllZKNzBFB7jbo+0WI3EnOgex/JgBH81q1yIF8=", "I2Co6wzH3vpntymY3pBxThfnWxdKUu5KyxJsjNmV8Kg=", "FYcaXN3q2XaATIA8uu8lXrSBWl6W34sAbcu8J2f4iUg=", "GTpWdmmY7p4KhlLdLzsdoDYvT1T3I3lUT5V8ze77Qg8=", "KjlKQ5NPhpgvm+Vv9PqxcDsuY8itM0g05DCYBed3rg8=", "GFmVTP64aV8+i2NdyzRRkoks0RIjRDuntBZuiHbA0UI=", "BOEYF2MFDlgBNETby5nxkCsRvCXZC73KQI04GfT+0ys=", "D9slPe6Dhp1AwzXqZN6MW7EOuC2wi16LH15VUr/QXyM=", "BYy+ippQJ72qTvtiOt6tYnXwhobxwImEqdfFuum08cA=", "E4Ltzplx4YZJfq2xrrH1KyO0uDvvAjqw0VIotMzspZo=", "A0ZJkPBFxu4IGcpR/RGwvn9huOuZ8Ut34eZjRgHZ6LU=", "I/e/yHINwpb/8ztB+Y/4PG/KtGBdsutaqlvBN663Clg=", "ClmhWOPuwhF+bpTn8OnezxjD/9XhUxqSGWNhWLuvYvI=", "BuxUyAOBwFK1i/I7MS/9POLE66BlQgr49MI+0Adf0Hs=", "EYhy3IMuDrVHa1ZkjoZ+yLCTQPenvLG0li8P+e0fnQE=", "E9afoSfYNBZa1cfLp61Z7VLgsPDkLX/qleGQa1IJIbE=", "FpoXf2PqaBJwscaHenPSG94UOUL7cdxV/YpJ8Z8Qx3s=", "BO9RWRxurZfvQvKHrc5A2Tq+sDK5IvZv+36aWnRQVE0=", "JW4XWh3AeTkOzXynA/suOxnsYYBdTwPO1fRe5t0Paew=", "MBAtKGNqvV/l8q9BL/YAT3XMNg0yBd0toAKBPT4s7rI=", "EJmOQt/NO78cBxS8c+sb9ARDo/qZvvSjH9Mb4YL8x5I=", "GT7djp/PPXYl+n0ktZih2J8zYur01YLv7K12+HnjaGA=", "GBaK/TTy2RXQNozoC3szR9HHpWHOYRQl8mZNeqUfC10=", "KTg8AevTtqsMAXZW6+ZYtqMo7He8M2JuKeLpWzPqYRE=", "EGRtLyYD3jmh9K5ed3GmSnAttuhvt2q2AL9XP5AQxxE=", "C+teB9GycUX1dfE5WlW/Ey+QwltA2ns4ZNAkLcsRF/s=", "FtaFJSB4wTPcDT7K1itciDD5W7LlS1mr3/vwGNlvozY=", "Cmq9HYM5OPM8dBVOBAS0tApVW7vsId36/Wct1iBH8Bo=", "GmefXTbre1yOoSpMLe3I/rEt/+7EUDFycKbxmzTPGGA=", "CYD7IzvUVsI5dNUODr/eRyakI+raTo9v+8dZLj8bk9Y=", "FhtCIy5huEy/GBCvk6OPwM7OPVYoySggA+ustcMSxys=", "CtoQqQx/BSCVD31Hpg1eakk/CXh/FWTl0JID20feGgs=", "GnMNNyMQuoIyA0WimsQjjtPweoorThIbtQ3bmvQH9FE=", "LIEg8mjvBU+BcGTDad2n6pCDd/6rpcTf+9oQ71joxVY=", "HHyIJPdYdT+lfAB4nGhCF7kw6VMTvLc+bnuGSaSWj3A=", "LNntMfX4aRyOOeQHenT6oPQArYtJHrP3tHsn+j/Rz3c=", "I/9PnUaBNFfPYNkvV2GDmaXgIqwyHKVQhUriORiiLuo=", "CZRaXRR6T2bO7OZAXd3Z0K9aLFEDUpQH3/HqWPGAQm0=", "GI2cUoAl1MK2dmDGt3G5D3x9puqinT8mim3SI+xvxjA=", "MFDjeZZZa3+B9oMRQx2HNNun2SbTYzWV4MDY3fTw9H8=", "Fa8RaTloMKkWAMqBAsNcQmzq5UYeP5XYnYKVGNMK/Xg=", "HabQmIVDLqmgbZ83+HPZhdrpM+NRRmspBChNozINisw=", "J5bqkNJpryn1+KzzOSESTk5PrT2+ZYlF5UbuQR3aqcs=", "IC190doPa0sDJcizMHdC8B4VYS7I6TBKfLAxngHTLWA=", "CW1nkNBbt1kVapUromPWcqLX+ceI9Mgxop2s5MD4vl8=", "BU76H2Ww/OKDgIllJ12He0ONojzlsT4ZY3mMsUR9JaQ=", "GxYvg9kX6T7bMwjCmALeudiqaQETsuFIZMz24Y5BZfE=", "IeUkHhJWTdb9nxzdKg3jnu3+/BRmzFaOxc63RaBQbtw=", "HPtWYujPWskiaoDuF7Nqvstzq1+H4WGSe0NJ4Q5L3wg=", "DyEXfjAqdxu65tjR7LNztiyZrzRiIKwBKcU/Zm6yQQA=", "FnFSI3RgaZKv+w3X9xsSvsQjau3mKQVGvO9+H1FcIyA=", "D6PsW5SIJZwutM8kUBv62b4uyeQsXMjM1BnSppLK2HA=", "GTwOBOC9KYNXyyZsFQYIDtNu3OhcZIzAhejFexq1S7o=", "ECrfjvdHNaJ+kSgwbcvDyZ9vcpHNQGV4zhTqKtq6aPg=", "D+CveFjkmFnipU1vGtlFsTFqokv73SOuQKbQy3DD6rE=", "IW9nF7vH3tsIU2oiIIQ/Ti2l8dqp69796KXqc0R5jSI=", "HaVcyQDw0h9KPmlDkZGKGzwjsqx3PGs++I4uQigyUWE="],
1041
- "M": [["EJt/QRug5MmytwyvXDansZS+fBGtJDeL/ttoWSuoEYs=", "Fu1B4Tu5wMZq4RlCT928vJMU3J/b3upV1sZFQ9xJA+A=", "K5C7oA/KBYn2F+fcv+guDfcGq2QM6yR7eRqTt042c20="], ["KWnyfu0xpIC5w2x2Q3nbyizI/dFBXD3e1ilAvN4L13E=", "LiQZ+ewC7DlMmHHIMpY9wbiddDyMe5ZAKbIxFoex/iM=", "EBBx8AMjebaXMVh2aQ8FPRSNThCfX7BlyKrMVaD4m/o="], ["FDAh7GhqPzMNX55lRjgGXObNeeKMWzdTMmJE7mWhsac=", "F2zAKWla0CWCpw7/CKb9mdBX4S5Y59e2sWzfq8juKRE=", "GaP8ClZwK/QXun/uOAJZP6ZERwMHBD93cyec1x0l1eA="]]
96
+ C: ['DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=', 'APFEUjXyFIxZhlhxafwbzYh7CNTQCGjfVpb/9AlW6GQ=', 'CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=', 'Lye+aQ/a7kbDzij3UysTyFbDU0LIS9puIJZjEPrcAdA=', 'KyrhrPaLe40kFr6/PU9iNLdj/gS4BD7ki4MnvryhbPI=', 'AxnQYgcr737MperAb5fU1VlSwXWrawPq5ktEx9vxHPo=', 'KIE9yuuuqoKKN234evSmO8i3vyetScYpjvezh78oUm0=', 'JydnOyzLyQPxgb844cHUDSAzhlIAw1K8FQkord35y3g=', 'I07EXKJ3J8LnSr0rKhSUzW771D40BYfWuPueMeZcxjI=', 'FbUlNAMa4Y9/hiyyz3z3YKsQqBUKM3sczZn/boeX1Cg=', 'Dcj61tnks19e2aPRhrec444Oio0bWLEy1wHU7s9o0fY=', 'G82V/8IR+8pgD3BfrT+1Z+pOs3j2Lh/sl4BVGKR+TZw=', 'EFILCrchyt/p7/gbAW/DTcdto2wleJN4F8uXjQad5Vk=', 'H21IFJuOf32bJX2O1fu69CkySYB1/tCs6IqeuB9WJ/Y=', 'HZZV9lIwkBTSngDvNaIIm//43ByBbw3JyjS9tUYMhwU=', 'BN9aVv+VvK+wUfexzUOpm6cx/2fkcDIFj+PUGFaXzH0=', 'BnLZlfj/9kAVGz0pDO2vFIaQoQqMhCSn9uwoK25L6Cg=', 'CZlStBSIRFSyEgDX/6/dXwyancwG8nCOn8HYIJtcdbk=', 'BSy6IlXf0Ax8SDFDuo1GlEjkNYaptM2Rg/0OhDprn6Y=', 'C4ut7mkK246wvXRxK3mZr4LeVXByUa13Fgd8uTxGTdw=', 'EZsVkPEzB69aHuZRAgwHx0nBXWBoOoBQuWPQqOSyvdE=', 'AxULfNbV0XslKdNr4PZ7gyxKz8iE707lzhW+C/tKjQk=', 'LMYYLF4UVG488ZUfFzkSNVN077g9gImKvmnLMXyepWU=', 'AFAyVR5jeMRQz+EppASzdkIYyt7awU4rktLNcxEb8Pk=', 'IzI34yibqjS7FH6XLry5UWRpw5n8wGn7iPnaLMKCdrU=', 'Bcj09OvUpuPJgNMWdL++YyMDfyGzSuWk6AwtTCTWAoA=', 'CnsdsTBC05a6BdgYoxnyUlK8817zru2R7h8JslkPxls=', 'KnO3H5shDPWxQpZXLJ0y2/FW4rCG/0fcXfVCNlpATsA=', 'GsmwQXq8yaGTUQfp/8kdw+wY8sTb5/Ipdqdgu1xQxGA=', 'EsAzmuCDdII/q7B2cH70eSafPk1ssQQ0kBXuBG3JP8A=', 'C3R1sQKhZa1/WxjbTh5wT1KQCqMlO6rGgkZoLlbpoo4=', 'A3woSeGRyj7bHF5J9ui4kXyEPjeTZvLqMqs6qI1/hEg=', 'BaaBH4VW8BTpJnRmHiF+m9UgbFyToH3BRf2xdqcWNG8=', 'KaeV59mAKJRulHt11U6fBEB26Hp7KIO0e2de9fOL1m4=', 'IEOaDISzIutFo4V6/Bj1gm6Mc4LIoVhcUHvhmZgf0i8=', 'Lguo2U2ez0qU7CBQxzcf8btQ8neZqEttSipvKgmCyIc=', 'FD/RFc4I+yfKOOt8zoIrRReCLNIQkEjS5tDdzKF9ccg=', 'DGTL7LHHNLhXlo273PgTzfhhFlkyPby/yEMjYjvpyvE=', 'AoowWEfGg/ZG/KklwWP/WudPNI1iwrZw8UJs75QD2lM=', 'Lk71EP8Lb9pfqUCrTEOA8mpry2TYlCe4JNZ1W1254ww=', 'AIHJW8QzhOZj15JwyVbOO4kltPbQM7B4uWOE9QV5QA4=', 'LtXwyRy9l0kYfi+t5ofgXuJJGzScA5oLuoqfQCOguzg=', 'MFCZkfiNo1BLvzdO1ari8DRIoix2I0yMmQ8B8zpzUgY=', 'HD8g/VVAmlMiG3xNSaNWufChEZ+yBntBp1KQlEJOxq0=', 'ELTn86td8AMElRRFm24Y7sRrsiE+jhMeFwiHtH3cuWw=', 'KhmCl5w/9/Q93VQ9iRwqvd2A+ATAd9d1A5qjUC5Dre8=', 'HHTuZPFeHbb+3b6tVtbVXbpDHrw5bJr5XK0PExW9XJE=', 'B1M+yFC6f5jquTA8rOAbS55PLouCcIz6nC/kWgrhRqA=', 'IVdrQ45QBEmhUeTurxexVChcaPQtQsGAihGr83ZMB1A=', 'LxfAVZuP55YIrVyhk9YvELzoOEyBXwkGdD1pMINtSp4=', 'LUd+OGLQdwinnoqulGFwvJd1pCATGEdK5mWwsbficw4=', 'Fi9SQ5ZwZMOQ4JVXeYTyka+6ImbDj1q82Jvg9bJ0fqs=', 'K0yyM+3pukgmTs0siuUNGteoWWqH8p+Kd3enAJI5MxE=', 'LI+8st2Fc9wduvj0YihUd22y7s5thcTPQlTnw14DsHo=', 'HW80dyXkgWry/0U/DNVrGZ4bYen2Aemt5eiNuHCUnak=', 'IEsMOX9OvnHrwtiz31uRPfnmrAK2jTEyTNSa9cRWVSk=', 'DEy53DxP2BdPEUmzxjw8L57LgnzX3CVTT/j7dbx5xQI=', 'F0rWGhRIyJmiVBZHT0kwMB5cSUdSeeBjmmFt3EW8e1Q=', 'GpYXe89NjYn3Wd9OwvPN4uqqKMF3zA+hOpgW1Jo40u8=', 'Bm0EskMx1xzQ74BUvGDE/wUgLBJqIzwagkKs42C4owo=', 'KkxPxuwLDPUhlXgoccbdOzgcxl9y4CrVJwN6Yqob2AQ=', 'E6stE2zPN9RH6fLhSnztyV5yf4RG9tnX5Vr8ASGf1kk=', 'ESFVL8omBhYZ0k2EPcgnacGwT87Cb1UZTC4+hprMapo=', 'AO9lMyKxPWyIm8gXFcN9d6bNJn1ZXEqJCaVUbHyXz/E=', 'DiVIPkWmZSCLJh2Lp0BR5kAMd21lJZXZhFrKNdijl9M=', 'KfU23LnddoIkUmRlnhXYjjlaw9Td6S2MRkSNuXnuuok=', 'KlbvnyxT/rrf2jNXXb29iFoSTieAu+oXDkVrqs4Ppb4=', 'HINhx461z13s+3otF7XECfKuKZmkZ2Lo7kFiQKjLmvE=', 'FRr/XziyCg/ARzCJqvAga4Po5op2RQe/09CrS+dDGcU=', 'BMYYfkHtiB3BsjnIj3+dQ6n1L8jIts3R525HYVtR8QA=', 'E7N72A9NJ/sQ2EMx9vttU0uBxh7RV3ZEnoAbfdycKWc=', 'AaXFNic8LZ31eL+9MsF7eizjZkwqUgMskyHOscToqOQ=', 'KrNWGDTKc4Na0F9desuVC0qaLGZrlybagyI5Blt8OwI=', 'HU2OwpHnINsgD+bWhsDWE6yvavTpXTv2n37VFqWXtkY=', 'BBKU0sxITSKPV4T+eRn9K7klNRJAoEtxFRTJyAtlrx0=', 'FUrJjgFwjGEcT6cVmR8ASJj1eTnRJuOSBClx3ZDoH8Y=', 'CzOdisyn1Pg+7dhAk671EFCzaEyI+LCwRSRWO8bqTaQ=', 'CVXknmYQyUJUpPhM+6s0RZjw5x6v9Kfdge2VtQg5yC4=', 'BnRqYVbrpUQmueIiBvFavKmm9B5vU1xvNSVAHqBlRiY=', 'Dxj1oOzRQjxJbzggxUnCeDjleQ4r0KGWrJF8f/Mgd/s=', 'BPbuyhdR9zCKxZ7/W+smHku1Y1g+3nvJKnOCI9b3bhM=', 'K1aXM2TExPXBo+xNo83OA4gR6xFvs+RbwXaNJvwLN1g=', 'Ejdp3UnVsFTc12uJgEsby44TkrOFcWpdg/62XUN/Ke8=', 'IUe0JPxIyAqI7lK5EWmqzqmJ9kRkcRUJlCV7L7AcY+k=', 'D9wfWFSLhXAabFUF6jMqKWR+bzStQkPC6lStiXzr5U0=', 'Ejc6glH+oATfaKvPD3eG1Lzv8oxdu+DDlE9oXMCgsfI=', 'IeT06l81+FutfqUv90LJ6KZCdWtq9EID3YofNcGpADU=', 'FiQ5FtadLKPftHIiJNTEYrVzZkkvRekNioGTTxvDsUc=', 'HvvkbdeleLT2b5rbyItDeKvCFWbhoEU8oTpBWcrASsI=', 'B+pehTfPXdCIhgIOI6fzh9Ro1VJb5m+FO2csyWqIlpo=', 'BajE+ZaLiqO3tHijD5pbY2UPGadefOEcqf4WwLdsALw=', 'IPBXcSzCFlT7/lm9NF6NrD94GMcBuceILZ1Xtyoy6D8=', 'BKEu3tqd/WiWcvjGf+4xY23NjojQHUkBm9kLM+sz22k=', 'J+iNjBXzfc7kTx5UJaUd7L0TbOUJGmdn5J7JVEzNEBo=', 'L+7Re4QoXtm4pcjF6VpB9m4JZhmncDIjF2xB7kM95NE=', 'HtfMdu30XHxAQkFCD3Kc85TllCkRMSoNaXK4vVOv8rg=', 'FXQumbm/oyMVf/jFhvVmDqxng0dhRM3K3yh0vkVGaxo=', 'GqwoU4f2XoLIlfxoh930BXcQdFTG7AMXKE8DPyfQx4U=', 'JYUcPIRdR5D53a29tgVzV4MuLnpJd19x7HWpZVTWfHc=', 'FaWCFWXMLsLOeEV9sZft81O367osVSM3DdzMPZ8Uamc=', 'JBHVekgTuZgO+n4xodtZZtz2TzYEQndQLxVIXyjHFyc=', 'AC5vjWUgzUcT4zW4wLbS5kfpqY4S9M0lWIKLXvbLTJs=', 'L/e8j0OAzemX2gC2FrD80a+PDpHi/h7XOYg0YJ4DFdI=', 'ALmDG5SFJVle4CckRxvNGC6VIfa3u2jx6Tvk/rsNPL4=', 'Ci9TdouOv2qGkTsOV8BOARykCGSKR0OofXetvwycNRI=', 'ACSBVhQv0Dc6R5+R/yOelg9Zn/fpS+abfyopAwXhGY0=', 'Fx1WILh7+xMoz4wCqz8MmjlxlqpqVCwjUOtRKisrzak=', 'FwpPVVNvfclwCHx8ENb612DJUhct1U3ZnRBF5Ow0qAg=', 'KaujP3mf5mwu8xNK6gQzbsw344wc0hG6SC7KF+Lb+uE=', 'HpvBeaT911j90bsZRQiNR+cNEUoD9qDotbplA2nmSXM=', 'HdJpeZtmD61Y9/SJLfsLWv6q2GmpxLRPnJ4cQ72vjwk=', 'Is28i3ARetFAEYHQLhVFnnzNQm/oacfJXR3Syw8krzg=', 'DvBC5FR3HFM6n1elXFA/zv0xUPUu2Up81bqTucfazv0=', 'EWCeBq1sj+Lyh/MDYDfohRMY6LCKA1mgOzBP/KYugoQ=', 'EWbZ5VRhbbqedT7qQnwXt/7NWMB23+QnCLCPW3g6qa8=', 'LeUpiUMahZWTQTAmNUQT2xd/v0zSrAtW+FWoiDV+5GY=', 'MAbrT/x6hYGabaSS86isHfUa7lsXuOiddL8Bz19x6a0=', 'KvQfu2G6ioD9z2//nj9vQimT/o8KRjn5YjRMgiUUUIY=', 'EZ5oTeR2FV/lprQajryF24cYqyeInoXngbIUus5IJ8M=', 'GDW3huLokl4Yi+pZrjY1N7USSMI4KPBHz/eEuXs/2AA=', 'KCAaNMWU36NNeUmWxkM6INFSusKnkFySbEDihasy7rY=', 'CD79eifRdRCU6A/vr3iwAIZMgutXEYdySnYfiMIsxOc=', 'C2+Io1dxmVJhWOYc7qJ76BHBbfd3TdhRngeVZPYf0Ts=', 'Dsho5tFeUdlkT2bh1kcalFiVEcoA0p4QFDkObuQlT1s=', 'KvM+P4ZncScawMmz7S4RQuzT50uTnNQNANk3q4TJhZE=', 'C1ICEfkEtefQm12WHGrOdzRWjFR91oWLNkzl5HlR8Xg=', 'Cy1yLQkZoarY21jxAGKpLqDFasQnDoIsyiKGIBiKHUA=', 'H3kNTX+M8JTZgM6zfCRT6Ve1SpmRyji74AYdHtblYtQ=', 'AXHrld+/fR6uqXzThfeAFQiFwWI1oqao2pLOsB5QQjM=', 'DC0OO1/VdUkym/aIXaZrm3kLQN79LIZQdiMFOBsWiHM=', 'EWL7KGicJxVOWoIotOcrN3y8r6WJ4oPDXTgDBUQHoY0=', 'LxRZtl3uRBtkrThqkegxDygsWpKonhmSFiPvgklxG8A=', 'Hm/zIWtojD2ZbXQ2fVzUwbxInUZ1TrcSwkP3DRtTz7s=', 'AcqL5zgyuNBoFIfSfRV4AtdBpvNs3CoFdogfkyZHiHU=', 'H3c1cG/+n8WG+XbVvfIj3GgChggLEM6gC5td4xX5ZQ4=', 'JSK2D06jMHZAoMLc4EH7qSGsEKPV8JbvR0XKg4KF8Bk=', 'I/C+4AGxAp1SVQdd3JV/gzQYytT1K2w/jOFsI1VyV1s=', 'K8Gui43buB/KrC1EVV7VaF0UJjPp35BfZtlAEJMILVk=', 'D5QGuCllZKNzBFB7jbo+0WI3EnOgex/JgBH81q1yIF8=', 'I2Co6wzH3vpntymY3pBxThfnWxdKUu5KyxJsjNmV8Kg=', 'FYcaXN3q2XaATIA8uu8lXrSBWl6W34sAbcu8J2f4iUg=', 'GTpWdmmY7p4KhlLdLzsdoDYvT1T3I3lUT5V8ze77Qg8=', 'KjlKQ5NPhpgvm+Vv9PqxcDsuY8itM0g05DCYBed3rg8=', 'GFmVTP64aV8+i2NdyzRRkoks0RIjRDuntBZuiHbA0UI=', 'BOEYF2MFDlgBNETby5nxkCsRvCXZC73KQI04GfT+0ys=', 'D9slPe6Dhp1AwzXqZN6MW7EOuC2wi16LH15VUr/QXyM=', 'BYy+ippQJ72qTvtiOt6tYnXwhobxwImEqdfFuum08cA=', 'E4Ltzplx4YZJfq2xrrH1KyO0uDvvAjqw0VIotMzspZo=', 'A0ZJkPBFxu4IGcpR/RGwvn9huOuZ8Ut34eZjRgHZ6LU=', 'I/e/yHINwpb/8ztB+Y/4PG/KtGBdsutaqlvBN663Clg=', 'ClmhWOPuwhF+bpTn8OnezxjD/9XhUxqSGWNhWLuvYvI=', 'BuxUyAOBwFK1i/I7MS/9POLE66BlQgr49MI+0Adf0Hs=', 'EYhy3IMuDrVHa1ZkjoZ+yLCTQPenvLG0li8P+e0fnQE=', 'E9afoSfYNBZa1cfLp61Z7VLgsPDkLX/qleGQa1IJIbE=', 'FpoXf2PqaBJwscaHenPSG94UOUL7cdxV/YpJ8Z8Qx3s=', 'BO9RWRxurZfvQvKHrc5A2Tq+sDK5IvZv+36aWnRQVE0=', 'JW4XWh3AeTkOzXynA/suOxnsYYBdTwPO1fRe5t0Paew=', 'MBAtKGNqvV/l8q9BL/YAT3XMNg0yBd0toAKBPT4s7rI=', 'EJmOQt/NO78cBxS8c+sb9ARDo/qZvvSjH9Mb4YL8x5I=', 'GT7djp/PPXYl+n0ktZih2J8zYur01YLv7K12+HnjaGA=', 'GBaK/TTy2RXQNozoC3szR9HHpWHOYRQl8mZNeqUfC10=', 'KTg8AevTtqsMAXZW6+ZYtqMo7He8M2JuKeLpWzPqYRE=', 'EGRtLyYD3jmh9K5ed3GmSnAttuhvt2q2AL9XP5AQxxE=', 'C+teB9GycUX1dfE5WlW/Ey+QwltA2ns4ZNAkLcsRF/s=', 'FtaFJSB4wTPcDT7K1itciDD5W7LlS1mr3/vwGNlvozY=', 'Cmq9HYM5OPM8dBVOBAS0tApVW7vsId36/Wct1iBH8Bo=', 'GmefXTbre1yOoSpMLe3I/rEt/+7EUDFycKbxmzTPGGA=', 'CYD7IzvUVsI5dNUODr/eRyakI+raTo9v+8dZLj8bk9Y=', 'FhtCIy5huEy/GBCvk6OPwM7OPVYoySggA+ustcMSxys=', 'CtoQqQx/BSCVD31Hpg1eakk/CXh/FWTl0JID20feGgs=', 'GnMNNyMQuoIyA0WimsQjjtPweoorThIbtQ3bmvQH9FE=', 'LIEg8mjvBU+BcGTDad2n6pCDd/6rpcTf+9oQ71joxVY=', 'HHyIJPdYdT+lfAB4nGhCF7kw6VMTvLc+bnuGSaSWj3A=', 'LNntMfX4aRyOOeQHenT6oPQArYtJHrP3tHsn+j/Rz3c=', 'I/9PnUaBNFfPYNkvV2GDmaXgIqwyHKVQhUriORiiLuo=', 'CZRaXRR6T2bO7OZAXd3Z0K9aLFEDUpQH3/HqWPGAQm0=', 'GI2cUoAl1MK2dmDGt3G5D3x9puqinT8mim3SI+xvxjA=', 'MFDjeZZZa3+B9oMRQx2HNNun2SbTYzWV4MDY3fTw9H8=', 'Fa8RaTloMKkWAMqBAsNcQmzq5UYeP5XYnYKVGNMK/Xg=', 'HabQmIVDLqmgbZ83+HPZhdrpM+NRRmspBChNozINisw=', 'J5bqkNJpryn1+KzzOSESTk5PrT2+ZYlF5UbuQR3aqcs=', 'IC190doPa0sDJcizMHdC8B4VYS7I6TBKfLAxngHTLWA=', 'CW1nkNBbt1kVapUromPWcqLX+ceI9Mgxop2s5MD4vl8=', 'BU76H2Ww/OKDgIllJ12He0ONojzlsT4ZY3mMsUR9JaQ=', 'GxYvg9kX6T7bMwjCmALeudiqaQETsuFIZMz24Y5BZfE=', 'IeUkHhJWTdb9nxzdKg3jnu3+/BRmzFaOxc63RaBQbtw=', 'HPtWYujPWskiaoDuF7Nqvstzq1+H4WGSe0NJ4Q5L3wg=', 'DyEXfjAqdxu65tjR7LNztiyZrzRiIKwBKcU/Zm6yQQA=', 'FnFSI3RgaZKv+w3X9xsSvsQjau3mKQVGvO9+H1FcIyA=', 'D6PsW5SIJZwutM8kUBv62b4uyeQsXMjM1BnSppLK2HA=', 'GTwOBOC9KYNXyyZsFQYIDtNu3OhcZIzAhejFexq1S7o=', 'ECrfjvdHNaJ+kSgwbcvDyZ9vcpHNQGV4zhTqKtq6aPg=', 'D+CveFjkmFnipU1vGtlFsTFqokv73SOuQKbQy3DD6rE=', 'IW9nF7vH3tsIU2oiIIQ/Ti2l8dqp69796KXqc0R5jSI=', 'HaVcyQDw0h9KPmlDkZGKGzwjsqx3PGs++I4uQigyUWE='],
97
+ M: [['EJt/QRug5MmytwyvXDansZS+fBGtJDeL/ttoWSuoEYs=', 'Fu1B4Tu5wMZq4RlCT928vJMU3J/b3upV1sZFQ9xJA+A=', 'K5C7oA/KBYn2F+fcv+guDfcGq2QM6yR7eRqTt042c20='], ['KWnyfu0xpIC5w2x2Q3nbyizI/dFBXD3e1ilAvN4L13E=', 'LiQZ+ewC7DlMmHHIMpY9wbiddDyMe5ZAKbIxFoex/iM=', 'EBBx8AMjebaXMVh2aQ8FPRSNThCfX7BlyKrMVaD4m/o='], ['FDAh7GhqPzMNX55lRjgGXObNeeKMWzdTMmJE7mWhsac=', 'F2zAKWla0CWCpw7/CKb9mdBX4S5Y59e2sWzfq8juKRE=', 'GaP8ClZwK/QXun/uOAJZP6ZERwMHBD93cyec1x0l1eA=']]
1042
98
  };
1043
99
  _2.default = _default;
1044
100
 
@@ -1046,13 +102,13 @@ Object.defineProperty(poseidon2$1, "__esModule", {
1046
102
  value: true
1047
103
  });
1048
104
  var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
1049
- var _slow = _interopRequireDefault(slow);
105
+ var _poseidon = _interopRequireDefault(poseidon_1);
1050
106
  var _unstringify = _interopRequireDefault(unstringify);
1051
107
  var _ = _interopRequireDefault(_2);
1052
108
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1053
109
  const c = (0, _unstringify.default)(_.default);
1054
110
  function poseidon2(inputs) {
1055
- return (0, _slow.default)(inputs, c);
111
+ return (0, _poseidon.default)(inputs, c);
1056
112
  }
1057
113
 
1058
114
  /**