@hashgraphonline/standards-sdk 0.0.107 → 0.0.108-canary.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.
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es18.js +2 -2
- package/dist/es/standards-sdk.es19.js +411 -52
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +2 -2
- package/dist/es/standards-sdk.es24.js +10 -10
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es31.js +5 -36
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +36 -48
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +48 -5
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +1 -1
- package/dist/es/standards-sdk.es36.js +22 -100
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +174 -2
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +90 -15
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +190 -404
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es40.js +437 -2281
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +20 -159
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +137 -21
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +13 -169
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +21 -83
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +25 -191
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +15 -432
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +34 -15
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +10 -131
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +53 -10
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +1281 -21
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +144 -25
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +80 -17
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +27 -39
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +5 -17
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +149 -51
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +629 -1125
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +127 -132
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +96 -79
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +2 -32
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +15 -5
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +401 -151
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +24 -790
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +23 -140
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +34 -23
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +19 -24
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +2282 -38
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +159 -16
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +1 -1
- package/dist/es/utils/transaction-parser.d.ts +78 -5
- package/dist/es/utils/transaction-parser.d.ts.map +1 -1
- package/dist/umd/standards-sdk.umd.js +1 -1
- package/dist/umd/standards-sdk.umd.js.map +1 -1
- package/dist/umd/utils/transaction-parser.d.ts +78 -5
- package/dist/umd/utils/transaction-parser.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,104 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function requireMimeTypes() {
|
|
12
|
-
if (hasRequiredMimeTypes) return mimeTypes;
|
|
13
|
-
hasRequiredMimeTypes = 1;
|
|
14
|
-
(function(exports) {
|
|
15
|
-
var db = requireMimeDb();
|
|
16
|
-
var extname = requirePathBrowserify().extname;
|
|
17
|
-
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
|
|
18
|
-
var TEXT_TYPE_REGEXP = /^text\//i;
|
|
19
|
-
exports.charset = charset;
|
|
20
|
-
exports.charsets = { lookup: charset };
|
|
21
|
-
exports.contentType = contentType;
|
|
22
|
-
exports.extension = extension;
|
|
23
|
-
exports.extensions = /* @__PURE__ */ Object.create(null);
|
|
24
|
-
exports.lookup = lookup;
|
|
25
|
-
exports.types = /* @__PURE__ */ Object.create(null);
|
|
26
|
-
populateMaps(exports.extensions, exports.types);
|
|
27
|
-
function charset(type) {
|
|
28
|
-
if (!type || typeof type !== "string") {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
var match = EXTRACT_TYPE_REGEXP.exec(type);
|
|
32
|
-
var mime = match && db[match[1].toLowerCase()];
|
|
33
|
-
if (mime && mime.charset) {
|
|
34
|
-
return mime.charset;
|
|
35
|
-
}
|
|
36
|
-
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
|
|
37
|
-
return "UTF-8";
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
function contentType(str) {
|
|
42
|
-
if (!str || typeof str !== "string") {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
|
|
46
|
-
if (!mime) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
if (mime.indexOf("charset") === -1) {
|
|
50
|
-
var charset2 = exports.charset(mime);
|
|
51
|
-
if (charset2) mime += "; charset=" + charset2.toLowerCase();
|
|
52
|
-
}
|
|
53
|
-
return mime;
|
|
54
|
-
}
|
|
55
|
-
function extension(type) {
|
|
56
|
-
if (!type || typeof type !== "string") {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
var match = EXTRACT_TYPE_REGEXP.exec(type);
|
|
60
|
-
var exts = match && exports.extensions[match[1].toLowerCase()];
|
|
61
|
-
if (!exts || !exts.length) {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
return exts[0];
|
|
65
|
-
}
|
|
66
|
-
function lookup(path) {
|
|
67
|
-
if (!path || typeof path !== "string") {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
var extension2 = extname("x." + path).toLowerCase().substr(1);
|
|
71
|
-
if (!extension2) {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
return exports.types[extension2] || false;
|
|
75
|
-
}
|
|
76
|
-
function populateMaps(extensions, types) {
|
|
77
|
-
var preference = ["nginx", "apache", void 0, "iana"];
|
|
78
|
-
Object.keys(db).forEach(function forEachMimeType(type) {
|
|
79
|
-
var mime = db[type];
|
|
80
|
-
var exts = mime.extensions;
|
|
81
|
-
if (!exts || !exts.length) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
extensions[type] = exts;
|
|
85
|
-
for (var i = 0; i < exts.length; i++) {
|
|
86
|
-
var extension2 = exts[i];
|
|
87
|
-
if (types[extension2]) {
|
|
88
|
-
var from = preference.indexOf(db[types[extension2]].source);
|
|
89
|
-
var to = preference.indexOf(mime.source);
|
|
90
|
-
if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) {
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
types[extension2] = type;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
})(mimeTypes);
|
|
99
|
-
return mimeTypes;
|
|
1
|
+
import { keccak_256 } from "./standards-sdk.es37.js";
|
|
2
|
+
import { getBytes, hexlify } from "./standards-sdk.es38.js";
|
|
3
|
+
let locked = false;
|
|
4
|
+
const _keccak256 = function(data) {
|
|
5
|
+
return keccak_256(data);
|
|
6
|
+
};
|
|
7
|
+
let __keccak256 = _keccak256;
|
|
8
|
+
function keccak256(_data) {
|
|
9
|
+
const data = getBytes(_data, "data");
|
|
10
|
+
return hexlify(__keccak256(data));
|
|
100
11
|
}
|
|
12
|
+
keccak256._ = _keccak256;
|
|
13
|
+
keccak256.lock = function() {
|
|
14
|
+
locked = true;
|
|
15
|
+
};
|
|
16
|
+
keccak256.register = function(func) {
|
|
17
|
+
if (locked) {
|
|
18
|
+
throw new TypeError("keccak256 is locked");
|
|
19
|
+
}
|
|
20
|
+
__keccak256 = func;
|
|
21
|
+
};
|
|
22
|
+
Object.freeze(keccak256);
|
|
101
23
|
export {
|
|
102
|
-
|
|
24
|
+
keccak256
|
|
103
25
|
};
|
|
104
26
|
//# sourceMappingURL=standards-sdk.es36.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es36.js","sources":["../../node_modules/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es36.js","sources":["../../node_modules/ethers/lib.esm/crypto/keccak.js"],"sourcesContent":["/**\n * Cryptographic hashing functions\n *\n * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { getBytes, hexlify } from \"../utils/index.js\";\nlet locked = false;\nconst _keccak256 = function (data) {\n return keccak_256(data);\n};\nlet __keccak256 = _keccak256;\n/**\n * Compute the cryptographic KECCAK256 hash of %%data%%.\n *\n * The %%data%% **must** be a data representation, to compute the\n * hash of UTF-8 data use the [[id]] function.\n *\n * @returns DataHexstring\n * @example:\n * keccak256(\"0x\")\n * //_result:\n *\n * keccak256(\"0x1337\")\n * //_result:\n *\n * keccak256(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n *\n * // Strings are assumed to be DataHexString, otherwise it will\n * // throw. To hash UTF-8 data, see the note above.\n * keccak256(\"Hello World\")\n * //_error:\n */\nexport function keccak256(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__keccak256(data));\n}\nkeccak256._ = _keccak256;\nkeccak256.lock = function () { locked = true; };\nkeccak256.register = function (func) {\n if (locked) {\n throw new TypeError(\"keccak256 is locked\");\n }\n __keccak256 = func;\n};\nObject.freeze(keccak256);\n//# sourceMappingURL=keccak.js.map"],"names":[],"mappings":";;AAOA,IAAI,SAAS;AACb,MAAM,aAAa,SAAU,MAAM;AAC/B,SAAO,WAAW,IAAI;AAC1B;AACA,IAAI,cAAc;AAuBX,SAAS,UAAU,OAAO;AAC7B,QAAM,OAAO,SAAS,OAAO,MAAM;AACnC,SAAO,QAAQ,YAAY,IAAI,CAAC;AACpC;AACA,UAAU,IAAI;AACd,UAAU,OAAO,WAAY;AAAE,WAAS;AAAO;AAC/C,UAAU,WAAW,SAAU,MAAM;AACjC,MAAI,QAAQ;AACR,UAAM,IAAI,UAAU,qBAAqB;AAAA,EACjD;AACI,gBAAc;AAClB;AACA,OAAO,OAAO,SAAS;","x_google_ignoreList":[0]}
|
|
@@ -1,5 +1,177 @@
|
|
|
1
|
-
|
|
1
|
+
import { number, exists, bytes, output } from "./standards-sdk.es62.js";
|
|
2
|
+
import { rotlSH, rotlSL, rotlBH, rotlBL, split } from "./standards-sdk.es63.js";
|
|
3
|
+
import { wrapConstructor, Hash, u32, toBytes } from "./standards-sdk.es64.js";
|
|
4
|
+
const [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];
|
|
5
|
+
const _0n = /* @__PURE__ */ BigInt(0);
|
|
6
|
+
const _1n = /* @__PURE__ */ BigInt(1);
|
|
7
|
+
const _2n = /* @__PURE__ */ BigInt(2);
|
|
8
|
+
const _7n = /* @__PURE__ */ BigInt(7);
|
|
9
|
+
const _256n = /* @__PURE__ */ BigInt(256);
|
|
10
|
+
const _0x71n = /* @__PURE__ */ BigInt(113);
|
|
11
|
+
for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
|
|
12
|
+
[x, y] = [y, (2 * x + 3 * y) % 5];
|
|
13
|
+
SHA3_PI.push(2 * (5 * y + x));
|
|
14
|
+
SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64);
|
|
15
|
+
let t = _0n;
|
|
16
|
+
for (let j = 0; j < 7; j++) {
|
|
17
|
+
R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n;
|
|
18
|
+
if (R & _2n)
|
|
19
|
+
t ^= _1n << (_1n << /* @__PURE__ */ BigInt(j)) - _1n;
|
|
20
|
+
}
|
|
21
|
+
_SHA3_IOTA.push(t);
|
|
22
|
+
}
|
|
23
|
+
const [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);
|
|
24
|
+
const rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);
|
|
25
|
+
const rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);
|
|
26
|
+
function keccakP(s, rounds = 24) {
|
|
27
|
+
const B = new Uint32Array(5 * 2);
|
|
28
|
+
for (let round = 24 - rounds; round < 24; round++) {
|
|
29
|
+
for (let x = 0; x < 10; x++)
|
|
30
|
+
B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
|
|
31
|
+
for (let x = 0; x < 10; x += 2) {
|
|
32
|
+
const idx1 = (x + 8) % 10;
|
|
33
|
+
const idx0 = (x + 2) % 10;
|
|
34
|
+
const B0 = B[idx0];
|
|
35
|
+
const B1 = B[idx0 + 1];
|
|
36
|
+
const Th = rotlH(B0, B1, 1) ^ B[idx1];
|
|
37
|
+
const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
|
|
38
|
+
for (let y = 0; y < 50; y += 10) {
|
|
39
|
+
s[x + y] ^= Th;
|
|
40
|
+
s[x + y + 1] ^= Tl;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
let curH = s[2];
|
|
44
|
+
let curL = s[3];
|
|
45
|
+
for (let t = 0; t < 24; t++) {
|
|
46
|
+
const shift = SHA3_ROTL[t];
|
|
47
|
+
const Th = rotlH(curH, curL, shift);
|
|
48
|
+
const Tl = rotlL(curH, curL, shift);
|
|
49
|
+
const PI = SHA3_PI[t];
|
|
50
|
+
curH = s[PI];
|
|
51
|
+
curL = s[PI + 1];
|
|
52
|
+
s[PI] = Th;
|
|
53
|
+
s[PI + 1] = Tl;
|
|
54
|
+
}
|
|
55
|
+
for (let y = 0; y < 50; y += 10) {
|
|
56
|
+
for (let x = 0; x < 10; x++)
|
|
57
|
+
B[x] = s[y + x];
|
|
58
|
+
for (let x = 0; x < 10; x++)
|
|
59
|
+
s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];
|
|
60
|
+
}
|
|
61
|
+
s[0] ^= SHA3_IOTA_H[round];
|
|
62
|
+
s[1] ^= SHA3_IOTA_L[round];
|
|
63
|
+
}
|
|
64
|
+
B.fill(0);
|
|
65
|
+
}
|
|
66
|
+
class Keccak extends Hash {
|
|
67
|
+
// NOTE: we accept arguments in bytes instead of bits here.
|
|
68
|
+
constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
|
|
69
|
+
super();
|
|
70
|
+
this.blockLen = blockLen;
|
|
71
|
+
this.suffix = suffix;
|
|
72
|
+
this.outputLen = outputLen;
|
|
73
|
+
this.enableXOF = enableXOF;
|
|
74
|
+
this.rounds = rounds;
|
|
75
|
+
this.pos = 0;
|
|
76
|
+
this.posOut = 0;
|
|
77
|
+
this.finished = false;
|
|
78
|
+
this.destroyed = false;
|
|
79
|
+
number(outputLen);
|
|
80
|
+
if (0 >= this.blockLen || this.blockLen >= 200)
|
|
81
|
+
throw new Error("Sha3 supports only keccak-f1600 function");
|
|
82
|
+
this.state = new Uint8Array(200);
|
|
83
|
+
this.state32 = u32(this.state);
|
|
84
|
+
}
|
|
85
|
+
keccak() {
|
|
86
|
+
keccakP(this.state32, this.rounds);
|
|
87
|
+
this.posOut = 0;
|
|
88
|
+
this.pos = 0;
|
|
89
|
+
}
|
|
90
|
+
update(data) {
|
|
91
|
+
exists(this);
|
|
92
|
+
const { blockLen, state } = this;
|
|
93
|
+
data = toBytes(data);
|
|
94
|
+
const len = data.length;
|
|
95
|
+
for (let pos = 0; pos < len; ) {
|
|
96
|
+
const take = Math.min(blockLen - this.pos, len - pos);
|
|
97
|
+
for (let i = 0; i < take; i++)
|
|
98
|
+
state[this.pos++] ^= data[pos++];
|
|
99
|
+
if (this.pos === blockLen)
|
|
100
|
+
this.keccak();
|
|
101
|
+
}
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
finish() {
|
|
105
|
+
if (this.finished)
|
|
106
|
+
return;
|
|
107
|
+
this.finished = true;
|
|
108
|
+
const { state, suffix, pos, blockLen } = this;
|
|
109
|
+
state[pos] ^= suffix;
|
|
110
|
+
if ((suffix & 128) !== 0 && pos === blockLen - 1)
|
|
111
|
+
this.keccak();
|
|
112
|
+
state[blockLen - 1] ^= 128;
|
|
113
|
+
this.keccak();
|
|
114
|
+
}
|
|
115
|
+
writeInto(out) {
|
|
116
|
+
exists(this, false);
|
|
117
|
+
bytes(out);
|
|
118
|
+
this.finish();
|
|
119
|
+
const bufferOut = this.state;
|
|
120
|
+
const { blockLen } = this;
|
|
121
|
+
for (let pos = 0, len = out.length; pos < len; ) {
|
|
122
|
+
if (this.posOut >= blockLen)
|
|
123
|
+
this.keccak();
|
|
124
|
+
const take = Math.min(blockLen - this.posOut, len - pos);
|
|
125
|
+
out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
|
|
126
|
+
this.posOut += take;
|
|
127
|
+
pos += take;
|
|
128
|
+
}
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
xofInto(out) {
|
|
132
|
+
if (!this.enableXOF)
|
|
133
|
+
throw new Error("XOF is not possible for this instance");
|
|
134
|
+
return this.writeInto(out);
|
|
135
|
+
}
|
|
136
|
+
xof(bytes2) {
|
|
137
|
+
number(bytes2);
|
|
138
|
+
return this.xofInto(new Uint8Array(bytes2));
|
|
139
|
+
}
|
|
140
|
+
digestInto(out) {
|
|
141
|
+
output(out, this);
|
|
142
|
+
if (this.finished)
|
|
143
|
+
throw new Error("digest() was already called");
|
|
144
|
+
this.writeInto(out);
|
|
145
|
+
this.destroy();
|
|
146
|
+
return out;
|
|
147
|
+
}
|
|
148
|
+
digest() {
|
|
149
|
+
return this.digestInto(new Uint8Array(this.outputLen));
|
|
150
|
+
}
|
|
151
|
+
destroy() {
|
|
152
|
+
this.destroyed = true;
|
|
153
|
+
this.state.fill(0);
|
|
154
|
+
}
|
|
155
|
+
_cloneInto(to) {
|
|
156
|
+
const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
|
|
157
|
+
to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));
|
|
158
|
+
to.state32.set(this.state32);
|
|
159
|
+
to.pos = this.pos;
|
|
160
|
+
to.posOut = this.posOut;
|
|
161
|
+
to.finished = this.finished;
|
|
162
|
+
to.rounds = rounds;
|
|
163
|
+
to.suffix = suffix;
|
|
164
|
+
to.outputLen = outputLen;
|
|
165
|
+
to.enableXOF = enableXOF;
|
|
166
|
+
to.destroyed = this.destroyed;
|
|
167
|
+
return to;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));
|
|
171
|
+
const keccak_256 = /* @__PURE__ */ gen(1, 136, 256 / 8);
|
|
2
172
|
export {
|
|
3
|
-
|
|
173
|
+
Keccak,
|
|
174
|
+
keccakP,
|
|
175
|
+
keccak_256
|
|
4
176
|
};
|
|
5
177
|
//# sourceMappingURL=standards-sdk.es37.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es37.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es37.js","sources":["../../node_modules/@noble/hashes/esm/sha3.js"],"sourcesContent":["import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map"],"names":["bytes"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,19 +1,94 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { assert, assertArgument } from "./standards-sdk.es51.js";
|
|
2
|
+
function _getBytes(value, name, copy) {
|
|
3
|
+
if (value instanceof Uint8Array) {
|
|
4
|
+
if (copy) {
|
|
5
|
+
return new Uint8Array(value);
|
|
6
|
+
}
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
if (typeof value === "string" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) {
|
|
10
|
+
const result = new Uint8Array((value.length - 2) / 2);
|
|
11
|
+
let offset = 2;
|
|
12
|
+
for (let i = 0; i < result.length; i++) {
|
|
13
|
+
result[i] = parseInt(value.substring(offset, offset + 2), 16);
|
|
14
|
+
offset += 2;
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
assertArgument(false, "invalid BytesLike value", name || "value", value);
|
|
19
|
+
}
|
|
20
|
+
function getBytes(value, name) {
|
|
21
|
+
return _getBytes(value, name, false);
|
|
22
|
+
}
|
|
23
|
+
function getBytesCopy(value, name) {
|
|
24
|
+
return _getBytes(value, name, true);
|
|
25
|
+
}
|
|
26
|
+
function isHexString(value, length) {
|
|
27
|
+
if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (typeof length === "number" && value.length !== 2 + 2 * length) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (length === true && value.length % 2 !== 0) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
const HexCharacters = "0123456789abcdef";
|
|
39
|
+
function hexlify(data) {
|
|
40
|
+
const bytes = getBytes(data);
|
|
41
|
+
let result = "0x";
|
|
42
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
43
|
+
const v = bytes[i];
|
|
44
|
+
result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15];
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
function concat(datas) {
|
|
49
|
+
return "0x" + datas.map((d) => hexlify(d).substring(2)).join("");
|
|
50
|
+
}
|
|
51
|
+
function dataSlice(data, start, end) {
|
|
52
|
+
const bytes = getBytes(data);
|
|
53
|
+
if (end != null && end > bytes.length) {
|
|
54
|
+
assert(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", {
|
|
55
|
+
buffer: bytes,
|
|
56
|
+
length: bytes.length,
|
|
57
|
+
offset: end
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return hexlify(bytes.slice(start == null ? 0 : start, end == null ? bytes.length : end));
|
|
61
|
+
}
|
|
62
|
+
function zeroPad(data, length, left) {
|
|
63
|
+
const bytes = getBytes(data);
|
|
64
|
+
assert(length >= bytes.length, "padding exceeds data length", "BUFFER_OVERRUN", {
|
|
65
|
+
buffer: new Uint8Array(bytes),
|
|
66
|
+
length,
|
|
67
|
+
offset: length + 1
|
|
68
|
+
});
|
|
69
|
+
const result = new Uint8Array(length);
|
|
70
|
+
result.fill(0);
|
|
71
|
+
if (left) {
|
|
72
|
+
result.set(bytes, length - bytes.length);
|
|
73
|
+
} else {
|
|
74
|
+
result.set(bytes, 0);
|
|
75
|
+
}
|
|
76
|
+
return hexlify(result);
|
|
77
|
+
}
|
|
78
|
+
function zeroPadValue(data, length) {
|
|
79
|
+
return zeroPad(data, length, true);
|
|
80
|
+
}
|
|
81
|
+
function zeroPadBytes(data, length) {
|
|
82
|
+
return zeroPad(data, length, false);
|
|
15
83
|
}
|
|
16
84
|
export {
|
|
17
|
-
|
|
85
|
+
concat,
|
|
86
|
+
dataSlice,
|
|
87
|
+
getBytes,
|
|
88
|
+
getBytesCopy,
|
|
89
|
+
hexlify,
|
|
90
|
+
isHexString,
|
|
91
|
+
zeroPadBytes,
|
|
92
|
+
zeroPadValue
|
|
18
93
|
};
|
|
19
94
|
//# sourceMappingURL=standards-sdk.es38.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es38.js","sources":["../../node_modules/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es38.js","sources":["../../node_modules/ethers/lib.esm/utils/data.js"],"sourcesContent":["/**\n * Some data helpers.\n *\n *\n * @_subsection api/utils:Data Helpers [about-data]\n */\nimport { assert, assertArgument } from \"./errors.js\";\nfunction _getBytes(value, name, copy) {\n if (value instanceof Uint8Array) {\n if (copy) {\n return new Uint8Array(value);\n }\n return value;\n }\n if (typeof (value) === \"string\" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) {\n const result = new Uint8Array((value.length - 2) / 2);\n let offset = 2;\n for (let i = 0; i < result.length; i++) {\n result[i] = parseInt(value.substring(offset, offset + 2), 16);\n offset += 2;\n }\n return result;\n }\n assertArgument(false, \"invalid BytesLike value\", name || \"value\", value);\n}\n/**\n * Get a typed Uint8Array for %%value%%. If already a Uint8Array\n * the original %%value%% is returned; if a copy is required use\n * [[getBytesCopy]].\n *\n * @see: getBytesCopy\n */\nexport function getBytes(value, name) {\n return _getBytes(value, name, false);\n}\n/**\n * Get a typed Uint8Array for %%value%%, creating a copy if necessary\n * to prevent any modifications of the returned value from being\n * reflected elsewhere.\n *\n * @see: getBytes\n */\nexport function getBytesCopy(value, name) {\n return _getBytes(value, name, true);\n}\n/**\n * Returns true if %%value%% is a valid [[HexString]].\n *\n * If %%length%% is ``true`` or a //number//, it also checks that\n * %%value%% is a valid [[DataHexString]] of %%length%% (if a //number//)\n * bytes of data (e.g. ``0x1234`` is 2 bytes).\n */\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (typeof (length) === \"number\" && value.length !== 2 + 2 * length) {\n return false;\n }\n if (length === true && (value.length % 2) !== 0) {\n return false;\n }\n return true;\n}\n/**\n * Returns true if %%value%% is a valid representation of arbitrary\n * data (i.e. a valid [[DataHexString]] or a Uint8Array).\n */\nexport function isBytesLike(value) {\n return (isHexString(value, true) || (value instanceof Uint8Array));\n}\nconst HexCharacters = \"0123456789abcdef\";\n/**\n * Returns a [[DataHexString]] representation of %%data%%.\n */\nexport function hexlify(data) {\n const bytes = getBytes(data);\n let result = \"0x\";\n for (let i = 0; i < bytes.length; i++) {\n const v = bytes[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n}\n/**\n * Returns a [[DataHexString]] by concatenating all values\n * within %%data%%.\n */\nexport function concat(datas) {\n return \"0x\" + datas.map((d) => hexlify(d).substring(2)).join(\"\");\n}\n/**\n * Returns the length of %%data%%, in bytes.\n */\nexport function dataLength(data) {\n if (isHexString(data, true)) {\n return (data.length - 2) / 2;\n }\n return getBytes(data).length;\n}\n/**\n * Returns a [[DataHexString]] by slicing %%data%% from the %%start%%\n * offset to the %%end%% offset.\n *\n * By default %%start%% is 0 and %%end%% is the length of %%data%%.\n */\nexport function dataSlice(data, start, end) {\n const bytes = getBytes(data);\n if (end != null && end > bytes.length) {\n assert(false, \"cannot slice beyond data bounds\", \"BUFFER_OVERRUN\", {\n buffer: bytes, length: bytes.length, offset: end\n });\n }\n return hexlify(bytes.slice((start == null) ? 0 : start, (end == null) ? bytes.length : end));\n}\n/**\n * Return the [[DataHexString]] result by stripping all **leading**\n ** zero bytes from %%data%%.\n */\nexport function stripZerosLeft(data) {\n let bytes = hexlify(data).substring(2);\n while (bytes.startsWith(\"00\")) {\n bytes = bytes.substring(2);\n }\n return \"0x\" + bytes;\n}\nfunction zeroPad(data, length, left) {\n const bytes = getBytes(data);\n assert(length >= bytes.length, \"padding exceeds data length\", \"BUFFER_OVERRUN\", {\n buffer: new Uint8Array(bytes),\n length: length,\n offset: length + 1\n });\n const result = new Uint8Array(length);\n result.fill(0);\n if (left) {\n result.set(bytes, length - bytes.length);\n }\n else {\n result.set(bytes, 0);\n }\n return hexlify(result);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **left**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **values** are in Solidity\n * (e.g. ``uint128``).\n */\nexport function zeroPadValue(data, length) {\n return zeroPad(data, length, true);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **right**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **bytes** are in Solidity\n * (e.g. ``bytes16``).\n */\nexport function zeroPadBytes(data, length) {\n return zeroPad(data, length, false);\n}\n//# sourceMappingURL=data.js.map"],"names":[],"mappings":";AAOA,SAAS,UAAU,OAAO,MAAM,MAAM;AAClC,MAAI,iBAAiB,YAAY;AAC7B,QAAI,MAAM;AACN,aAAO,IAAI,WAAW,KAAK;AAAA,IACvC;AACQ,WAAO;AAAA,EACf;AACI,MAAI,OAAQ,UAAW,YAAY,MAAM,MAAM,4BAA4B,GAAG;AAC1E,UAAM,SAAS,IAAI,YAAY,MAAM,SAAS,KAAK,CAAC;AACpD,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,aAAO,CAAC,IAAI,SAAS,MAAM,UAAU,QAAQ,SAAS,CAAC,GAAG,EAAE;AAC5D,gBAAU;AAAA,IACtB;AACQ,WAAO;AAAA,EACf;AACI,iBAAe,OAAO,2BAA2B,QAAQ,SAAS,KAAK;AAC3E;AAQO,SAAS,SAAS,OAAO,MAAM;AAClC,SAAO,UAAU,OAAO,MAAM,KAAK;AACvC;AAQO,SAAS,aAAa,OAAO,MAAM;AACtC,SAAO,UAAU,OAAO,MAAM,IAAI;AACtC;AAQO,SAAS,YAAY,OAAO,QAAQ;AACvC,MAAI,OAAQ,UAAW,YAAY,CAAC,MAAM,MAAM,kBAAkB,GAAG;AACjE,WAAO;AAAA,EACf;AACI,MAAI,OAAQ,WAAY,YAAY,MAAM,WAAW,IAAI,IAAI,QAAQ;AACjE,WAAO;AAAA,EACf;AACI,MAAI,WAAW,QAAS,MAAM,SAAS,MAAO,GAAG;AAC7C,WAAO;AAAA,EACf;AACI,SAAO;AACX;AAQA,MAAM,gBAAgB;AAIf,SAAS,QAAQ,MAAM;AAC1B,QAAM,QAAQ,SAAS,IAAI;AAC3B,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,UAAM,IAAI,MAAM,CAAC;AACjB,cAAU,eAAe,IAAI,QAAS,CAAC,IAAI,cAAc,IAAI,EAAI;AAAA,EACzE;AACI,SAAO;AACX;AAKO,SAAS,OAAO,OAAO;AAC1B,SAAO,OAAO,MAAM,IAAI,CAAC,MAAM,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AACnE;AAgBO,SAAS,UAAU,MAAM,OAAO,KAAK;AACxC,QAAM,QAAQ,SAAS,IAAI;AAC3B,MAAI,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACnC,WAAO,OAAO,mCAAmC,kBAAkB;AAAA,MAC/D,QAAQ;AAAA,MAAO,QAAQ,MAAM;AAAA,MAAQ,QAAQ;AAAA,IACzD,CAAS;AAAA,EACT;AACI,SAAO,QAAQ,MAAM,MAAO,SAAS,OAAQ,IAAI,OAAQ,OAAO,OAAQ,MAAM,SAAS,GAAG,CAAC;AAC/F;AAYA,SAAS,QAAQ,MAAM,QAAQ,MAAM;AACjC,QAAM,QAAQ,SAAS,IAAI;AAC3B,SAAO,UAAU,MAAM,QAAQ,+BAA+B,kBAAkB;AAAA,IAC5E,QAAQ,IAAI,WAAW,KAAK;AAAA,IAC5B;AAAA,IACA,QAAQ,SAAS;AAAA,EACzB,CAAK;AACD,QAAM,SAAS,IAAI,WAAW,MAAM;AACpC,SAAO,KAAK,CAAC;AACb,MAAI,MAAM;AACN,WAAO,IAAI,OAAO,SAAS,MAAM,MAAM;AAAA,EAC/C,OACS;AACD,WAAO,IAAI,OAAO,CAAC;AAAA,EAC3B;AACI,SAAO,QAAQ,MAAM;AACzB;AAWO,SAAS,aAAa,MAAM,QAAQ;AACvC,SAAO,QAAQ,MAAM,QAAQ,IAAI;AACrC;AAWO,SAAS,aAAa,MAAM,QAAQ;AACvC,SAAO,QAAQ,MAAM,QAAQ,KAAK;AACtC;","x_google_ignoreList":[0]}
|