@ghostlytools/cli 1.1.2 → 1.1.4

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.
Files changed (32) hide show
  1. package/README.md +6 -6
  2. package/SKILL.md +1 -1
  3. package/dist/assets/argon2id-088uQfnH.js.map +1 -1
  4. package/dist/assets/bark_ffi_wasm_bg-EY2uc0Bx.js.map +1 -1
  5. package/dist/assets/bitcoindevkit_bg-B-iLWrmX.js.map +1 -1
  6. package/dist/assets/breez_sdk_spark_wasm_bg.wasm +0 -0
  7. package/dist/assets/fedimint_client_wasm_bg-BtHHlFpp.js.map +1 -1
  8. package/dist/assets/{hyperdhtRelay-CVLCuqVr.js → hyperdhtRelay-BoxPHp7v.js} +3 -3
  9. package/dist/assets/{hyperdhtRelay-CVLCuqVr.js.map → hyperdhtRelay-BoxPHp7v.js.map} +1 -1
  10. package/dist/assets/legacy_ciphers-JJOu0JXL.js.map +1 -1
  11. package/dist/assets/{mainline-CKFpwXcB.js → mainline-dkA94eh2.js} +2 -2
  12. package/dist/assets/{mainline-CKFpwXcB.js.map → mainline-dkA94eh2.js.map} +1 -1
  13. package/dist/assets/nacl-fast-CDhNCYHs.js.map +1 -1
  14. package/dist/assets/noble_curves-DDWn5AH0.js.map +1 -1
  15. package/dist/assets/noble_hashes-B7AZyFyS.js.map +1 -1
  16. package/dist/assets/openpgp-BBFr-zHQ.js.map +1 -1
  17. package/dist/assets/{server-vGoe9MET.js → server-CXFTDnFI.js} +285 -99
  18. package/dist/assets/server-CXFTDnFI.js.map +1 -0
  19. package/dist/assets/sha512-BYId-G-T.js.map +1 -1
  20. package/dist/assets/{src-CJdPTl7Q.js → src-K3NijMq-.js} +455 -87
  21. package/dist/assets/src-K3NijMq-.js.map +1 -0
  22. package/dist/assets/storage-Bya5b2Xt.js.map +1 -1
  23. package/dist/assets/tree-store-N362nuzZ.js.map +1 -1
  24. package/dist/assets/unbzip2-stream-B1C-JX9L.js.map +1 -1
  25. package/dist/assets/{web-OUQl4Q7L.js → web-DwgdhfcY.js} +16 -16
  26. package/dist/assets/{web-OUQl4Q7L.js.map → web-DwgdhfcY.js.map} +1 -1
  27. package/dist/ghostly.mjs +55 -40
  28. package/dist/ghostly.mjs.map +1 -1
  29. package/examples/call-echo.mjs +1 -1
  30. package/package.json +7 -7
  31. package/dist/assets/server-vGoe9MET.js.map +0 -1
  32. package/dist/assets/src-CJdPTl7Q.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { As as RelayTransport, Is as isDiscoveryBudgetError, Us as parseRelayPayload, Vs as newerPacket, qs as publicKeyFromZ32 } from "./src-CJdPTl7Q.js";
1
+ import { Hs as newerPacket, Js as publicKeyFromZ32, Ls as isDiscoveryBudgetError, Ws as parseRelayPayload, js as RelayTransport } from "./src-K3NijMq-.js";
2
2
  import { ed25519 } from "@noble/curves/ed25519.js";
3
3
  import { createHash } from "node:crypto";
4
4
  import DHT from "bittorrent-dht";
@@ -187,4 +187,4 @@ var RelaysAndDht = class {
187
187
  //#endregion
188
188
  export { Mainline, RelaysAndDht };
189
189
 
190
- //# sourceMappingURL=mainline-CKFpwXcB.js.map
190
+ //# sourceMappingURL=mainline-dkA94eh2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mainline-CKFpwXcB.js","names":[],"sources":["../../src/runtime/mainline.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport DHT from \"bittorrent-dht\";\nimport { ed25519 } from \"@noble/curves/ed25519.js\";\nimport {\n RelayTransport, isDiscoveryBudgetError, newerPacket, parseRelayPayload, publicKeyFromZ32,\n type DiscoveryStatus, type GhostRecord, type Identity, type PkarrRequestOptions, type PkarrTransport, type RelayTransportOptions, type SignedPacket,\n} from \"@ghostly/core\";\n\n/**\n * Pkarr over the Mainline DHT (BEP44), from Node, as the Desktop reaches it from Rust: the relays are HTTP bridges to\n * this same DHT, so a headless Ghostly that speaks it directly keeps finding its contacts while the relays fail (they\n * answered HTTP 500 for more than ten minutes on 2026-09-27, and a group's edges stayed down all that while).\n *\n * A Pkarr packet is a BEP44 mutable item: the key is the Ed25519 public key, the value the DNS packet, the sequence\n * number its timestamp in microseconds, and the signature the one the relay payload already carries (over\n * `3:seqi<seq>e1:v<len>:<v>`). So one signed payload goes to the relays and to the DHT unchanged.\n */\n\nexport interface MainlineOptions {\n /** `host:port` nodes to start from; the public routers when absent; none with `false` (a testnet's first node). */\n bootstrap?: string[] | false;\n /** Address to bind (a loopback testnet binds 127.0.0.1). */\n host?: string;\n /** How long a lookup may take before it is given up, in ms. */\n timeoutMs?: number;\n}\n\nconst SIGNATURE = 64, TIMESTAMP = 8;\nconst verify = (sig: Uint8Array, message: Uint8Array, key: Uint8Array) => { try { return ed25519.verify(sig, message, key); } catch { return false; } };\n\n/** A DHT node of this process: puts and gets Pkarr packets. */\nexport class Mainline {\n private readonly dht: DHT;\n /** Its UDP socket is bound. */\n readonly listening: Promise<void>;\n private readonly timeoutMs: number;\n\n constructor(options: MainlineOptions = {}) {\n this.timeoutMs = options.timeoutMs ?? 20_000;\n const bootstrap = options.bootstrap === false ? false : options.bootstrap?.length ? options.bootstrap : undefined;\n this.dht = new DHT({ verify, ...(bootstrap !== undefined ? { bootstrap } : {}), ...(options.host ? { host: options.host } : {}) });\n this.listening = new Promise((resolve) => this.dht.listen(0, options.host, () => resolve()));\n // A node of the table that errors must not end the process.\n this.dht.on(\"error\", () => {});\n }\n\n /** Adds a node (a testnet's peers). */\n addNode(host: string, port: number): void { this.dht.addNode({ host, port }); }\n address(): { port: number } { return this.dht.address() as { port: number }; }\n\n /** Puts a relay payload (`<signature><timestamp><DNS packet>`) as the mutable item of `pubKeyZ32`; resolves with the nodes that took it. */\n put(pubKeyZ32: string, payload: Uint8Array): Promise<number> {\n const k = Buffer.from(publicKeyFromZ32(pubKeyZ32));\n const sig = Buffer.from(payload.subarray(0, SIGNATURE));\n const seq = Number(new DataView(payload.buffer, payload.byteOffset + SIGNATURE, TIMESTAMP).getBigUint64(0));\n const v = Buffer.from(payload.subarray(SIGNATURE + TIMESTAMP));\n return this.bounded(new Promise((resolve, reject) => {\n this.dht.put({ k, v, seq, sig }, (error, _hash, nodes) => {\n if (error) reject(error); else if (!nodes) reject(new Error(\"No DHT node took the packet\")); else resolve(nodes);\n });\n }));\n }\n\n /** The newest packet of `pubKeyZ32` the DHT holds, checked; null when nobody has one. */\n get(pubKeyZ32: string): Promise<SignedPacket | null> {\n const k = Buffer.from(publicKeyFromZ32(pubKeyZ32));\n // A mutable item without salt is found under the SHA-1 of its public key (BEP44).\n const target = createHash(\"sha1\").update(k).digest();\n return this.bounded(new Promise((resolve, reject) => {\n this.dht.get(target, { cache: false }, (error, found) => {\n if (error) return reject(error);\n if (!found?.v || !found.sig) return resolve(null);\n const timestamp = new Uint8Array(TIMESTAMP);\n new DataView(timestamp.buffer).setBigUint64(0, BigInt(found.seq));\n const payload = new Uint8Array(SIGNATURE + TIMESTAMP + found.v.length);\n payload.set(found.sig, 0); payload.set(timestamp, SIGNATURE); payload.set(found.v, SIGNATURE + TIMESTAMP);\n try { resolve(parseRelayPayload(pubKeyZ32, payload)); } catch { resolve(null); }\n });\n }));\n }\n\n private bounded<T>(work: Promise<T>): Promise<T> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => reject(new Error(\"DHT lookup timed out\")), this.timeoutMs);\n work.then((value) => { clearTimeout(timer); resolve(value); }, (error) => { clearTimeout(timer); reject(error); });\n });\n }\n\n destroy(): Promise<void> { return new Promise((resolve) => this.dht.destroy(() => resolve())); }\n}\n\n/**\n * The relays first, as the web app reaches Pkarr (its contacts read only the relays), and the DHT beside them: every\n * packet also goes to the DHT, and a read goes there when every relay is failing or the read failed for anything but\n * this app's own request budget (that is a wait, not an outage).\n *\n * `pinned`: the relays given are the only ones (`GHOSTLY_PKARR_RELAYS`, a private network): the profile's `relays`\n * setting does not replace them. With no DHT (`dht` null), the relays alone carry every packet.\n */\nexport class RelaysAndDht implements PkarrTransport {\n readonly relays: RelayTransport;\n private lastVia: \"relay\" | \"dht\" = \"relay\";\n\n constructor(private readonly dht: Mainline | null, relays: RelayTransportOptions = {}, private readonly pinned = false) {\n this.relays = new RelayTransport(relays);\n }\n\n async publish(identity: Identity, records: GhostRecord[], options: PkarrRequestOptions = {}): Promise<void> {\n // BEP44 sequence numbers must strictly increase, on the relays and on the DHT alike: one payload for both, dated\n // past every packet put or read under the key (`RelayTransport.publishDated`), whichever clock dated those.\n await this.relays.publishDated(identity, records, (key, payload, _timestamp, conflict) => this.putBoth(key, payload, options, conflict), options);\n }\n\n publishPayload(pubKeyZ32: string, payload: Uint8Array, options: PkarrRequestOptions = {}): Promise<void> {\n return this.putBoth(pubKeyZ32, payload, options);\n }\n\n private async putBoth(pubKeyZ32: string, payload: Uint8Array, options: PkarrRequestOptions, conflict?: (relay: string) => void): Promise<void> {\n if (!this.dht) return this.relays.publishPayload(pubKeyZ32, payload, options, conflict);\n const onDht = this.dht.put(pubKeyZ32, payload);\n onDht.catch(() => {});\n try {\n await this.relays.publishPayload(pubKeyZ32, payload, options, conflict);\n } catch (error) {\n // Held back by this app's budget: the relays take it when it frees (browser contacts read only them).\n if (isDiscoveryBudgetError(error)) throw error;\n // The relays failed: out on the DHT is out (a Pkarr relay reads the DHT for a key it has not got).\n await onDht.catch(() => { throw error; });\n }\n }\n\n async resolve(pubKeyZ32: string, options: PkarrRequestOptions = {}): Promise<SignedPacket | null> {\n if (!this.dht) return this.relays.resolve(pubKeyZ32, options);\n let fromRelays: SignedPacket | null = null, failed: unknown = null;\n // Every relay left alone for failing: the relays answer from what they last saw, if anything; the DHT is asked.\n const down = () => this.relays.discovery().relays.every((relay) => relay.state === \"failing\");\n if (!down()) {\n try { fromRelays = await this.relays.resolve(pubKeyZ32, options); this.lastVia = \"relay\"; } catch (error) {\n if (isDiscoveryBudgetError(error)) throw error;\n failed = error;\n }\n if (!failed && !down()) return fromRelays;\n }\n try {\n const fromDht = await this.dht.get(pubKeyZ32);\n this.lastVia = \"dht\";\n if (fromDht) this.relays.sawTimestamp(pubKeyZ32, fromDht.timestampMicros);\n return newerPacket(fromRelays, fromDht);\n } catch (error) {\n if (fromRelays) return fromRelays;\n throw failed ?? error;\n }\n }\n\n describe(): { protocol: string; relays: string[] } {\n return { protocol: this.dht ? \"Pkarr relays (HTTP), and the Mainline DHT (BEP44) directly\" : \"Pkarr relays (HTTP)\", relays: this.relays.describe().relays };\n }\n discovery(): DiscoveryStatus {\n const status = this.relays.discovery();\n return this.lastVia === \"dht\" ? { ...status, path: { via: \"dht\" } } : status;\n }\n subscribe(listener: Parameters<RelayTransport[\"subscribe\"]>[0]): () => void { return this.relays.subscribe(listener); }\n /** A relay's answer only: a packet the DHT hands back when the relays are down may be older than one already read. */\n readAnsweredAt(pubKeyZ32: string): number | undefined { return this.relays.readAnsweredAt(pubKeyZ32); }\n onServerTime(listener: Parameters<RelayTransport[\"onServerTime\"]>[0]): () => void { return this.relays.onServerTime(listener); }\n configure({ relays }: { relays: string[]; readRelays: boolean }): void { if (!this.pinned) this.relays.setRelays(relays); }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"mainline-dkA94eh2.js","names":[],"sources":["../../src/runtime/mainline.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport DHT from \"bittorrent-dht\";\nimport { ed25519 } from \"@noble/curves/ed25519.js\";\nimport {\n RelayTransport, isDiscoveryBudgetError, newerPacket, parseRelayPayload, publicKeyFromZ32,\n type DiscoveryStatus, type GhostRecord, type Identity, type PkarrRequestOptions, type PkarrTransport, type RelayTransportOptions, type SignedPacket,\n} from \"@ghostly/core\";\n\n/**\n * Pkarr over the Mainline DHT (BEP44), from Node, as the Desktop reaches it from Rust: the relays are HTTP bridges to\n * this same DHT, so a headless Ghostly that speaks it directly keeps finding its contacts while the relays fail (they\n * answered HTTP 500 for more than ten minutes on 2026-09-27, and a group's edges stayed down all that while).\n *\n * A Pkarr packet is a BEP44 mutable item: the key is the Ed25519 public key, the value the DNS packet, the sequence\n * number its timestamp in microseconds, and the signature the one the relay payload already carries (over\n * `3:seqi<seq>e1:v<len>:<v>`). So one signed payload goes to the relays and to the DHT unchanged.\n */\n\nexport interface MainlineOptions {\n /** `host:port` nodes to start from; the public routers when absent; none with `false` (a testnet's first node). */\n bootstrap?: string[] | false;\n /** Address to bind (a loopback testnet binds 127.0.0.1). */\n host?: string;\n /** How long a lookup may take before it is given up, in ms. */\n timeoutMs?: number;\n}\n\nconst SIGNATURE = 64, TIMESTAMP = 8;\nconst verify = (sig: Uint8Array, message: Uint8Array, key: Uint8Array) => { try { return ed25519.verify(sig, message, key); } catch { return false; } };\n\n/** A DHT node of this process: puts and gets Pkarr packets. */\nexport class Mainline {\n private readonly dht: DHT;\n /** Its UDP socket is bound. */\n readonly listening: Promise<void>;\n private readonly timeoutMs: number;\n\n constructor(options: MainlineOptions = {}) {\n this.timeoutMs = options.timeoutMs ?? 20_000;\n const bootstrap = options.bootstrap === false ? false : options.bootstrap?.length ? options.bootstrap : undefined;\n this.dht = new DHT({ verify, ...(bootstrap !== undefined ? { bootstrap } : {}), ...(options.host ? { host: options.host } : {}) });\n this.listening = new Promise((resolve) => this.dht.listen(0, options.host, () => resolve()));\n // A node of the table that errors must not end the process.\n this.dht.on(\"error\", () => {});\n }\n\n /** Adds a node (a testnet's peers). */\n addNode(host: string, port: number): void { this.dht.addNode({ host, port }); }\n address(): { port: number } { return this.dht.address() as { port: number }; }\n\n /** Puts a relay payload (`<signature><timestamp><DNS packet>`) as the mutable item of `pubKeyZ32`; resolves with the nodes that took it. */\n put(pubKeyZ32: string, payload: Uint8Array): Promise<number> {\n const k = Buffer.from(publicKeyFromZ32(pubKeyZ32));\n const sig = Buffer.from(payload.subarray(0, SIGNATURE));\n const seq = Number(new DataView(payload.buffer, payload.byteOffset + SIGNATURE, TIMESTAMP).getBigUint64(0));\n const v = Buffer.from(payload.subarray(SIGNATURE + TIMESTAMP));\n return this.bounded(new Promise((resolve, reject) => {\n this.dht.put({ k, v, seq, sig }, (error, _hash, nodes) => {\n if (error) reject(error); else if (!nodes) reject(new Error(\"No DHT node took the packet\")); else resolve(nodes);\n });\n }));\n }\n\n /** The newest packet of `pubKeyZ32` the DHT holds, checked; null when nobody has one. */\n get(pubKeyZ32: string): Promise<SignedPacket | null> {\n const k = Buffer.from(publicKeyFromZ32(pubKeyZ32));\n // A mutable item without salt is found under the SHA-1 of its public key (BEP44).\n const target = createHash(\"sha1\").update(k).digest();\n return this.bounded(new Promise((resolve, reject) => {\n this.dht.get(target, { cache: false }, (error, found) => {\n if (error) return reject(error);\n if (!found?.v || !found.sig) return resolve(null);\n const timestamp = new Uint8Array(TIMESTAMP);\n new DataView(timestamp.buffer).setBigUint64(0, BigInt(found.seq));\n const payload = new Uint8Array(SIGNATURE + TIMESTAMP + found.v.length);\n payload.set(found.sig, 0); payload.set(timestamp, SIGNATURE); payload.set(found.v, SIGNATURE + TIMESTAMP);\n try { resolve(parseRelayPayload(pubKeyZ32, payload)); } catch { resolve(null); }\n });\n }));\n }\n\n private bounded<T>(work: Promise<T>): Promise<T> {\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => reject(new Error(\"DHT lookup timed out\")), this.timeoutMs);\n work.then((value) => { clearTimeout(timer); resolve(value); }, (error) => { clearTimeout(timer); reject(error); });\n });\n }\n\n destroy(): Promise<void> { return new Promise((resolve) => this.dht.destroy(() => resolve())); }\n}\n\n/**\n * The relays first, as the web app reaches Pkarr (its contacts read only the relays), and the DHT beside them: every\n * packet also goes to the DHT, and a read goes there when every relay is failing or the read failed for anything but\n * this app's own request budget (that is a wait, not an outage).\n *\n * `pinned`: the relays given are the only ones (`GHOSTLY_PKARR_RELAYS`, a private network): the profile's `relays`\n * setting does not replace them. With no DHT (`dht` null), the relays alone carry every packet.\n */\nexport class RelaysAndDht implements PkarrTransport {\n readonly relays: RelayTransport;\n private lastVia: \"relay\" | \"dht\" = \"relay\";\n\n constructor(private readonly dht: Mainline | null, relays: RelayTransportOptions = {}, private readonly pinned = false) {\n this.relays = new RelayTransport(relays);\n }\n\n async publish(identity: Identity, records: GhostRecord[], options: PkarrRequestOptions = {}): Promise<void> {\n // BEP44 sequence numbers must strictly increase, on the relays and on the DHT alike: one payload for both, dated\n // past every packet put or read under the key (`RelayTransport.publishDated`), whichever clock dated those.\n await this.relays.publishDated(identity, records, (key, payload, _timestamp, conflict) => this.putBoth(key, payload, options, conflict), options);\n }\n\n publishPayload(pubKeyZ32: string, payload: Uint8Array, options: PkarrRequestOptions = {}): Promise<void> {\n return this.putBoth(pubKeyZ32, payload, options);\n }\n\n private async putBoth(pubKeyZ32: string, payload: Uint8Array, options: PkarrRequestOptions, conflict?: (relay: string) => void): Promise<void> {\n if (!this.dht) return this.relays.publishPayload(pubKeyZ32, payload, options, conflict);\n const onDht = this.dht.put(pubKeyZ32, payload);\n onDht.catch(() => {});\n try {\n await this.relays.publishPayload(pubKeyZ32, payload, options, conflict);\n } catch (error) {\n // Held back by this app's budget: the relays take it when it frees (browser contacts read only them).\n if (isDiscoveryBudgetError(error)) throw error;\n // The relays failed: out on the DHT is out (a Pkarr relay reads the DHT for a key it has not got).\n await onDht.catch(() => { throw error; });\n }\n }\n\n async resolve(pubKeyZ32: string, options: PkarrRequestOptions = {}): Promise<SignedPacket | null> {\n if (!this.dht) return this.relays.resolve(pubKeyZ32, options);\n let fromRelays: SignedPacket | null = null, failed: unknown = null;\n // Every relay left alone for failing: the relays answer from what they last saw, if anything; the DHT is asked.\n const down = () => this.relays.discovery().relays.every((relay) => relay.state === \"failing\");\n if (!down()) {\n try { fromRelays = await this.relays.resolve(pubKeyZ32, options); this.lastVia = \"relay\"; } catch (error) {\n if (isDiscoveryBudgetError(error)) throw error;\n failed = error;\n }\n if (!failed && !down()) return fromRelays;\n }\n try {\n const fromDht = await this.dht.get(pubKeyZ32);\n this.lastVia = \"dht\";\n if (fromDht) this.relays.sawTimestamp(pubKeyZ32, fromDht.timestampMicros);\n return newerPacket(fromRelays, fromDht);\n } catch (error) {\n if (fromRelays) return fromRelays;\n throw failed ?? error;\n }\n }\n\n describe(): { protocol: string; relays: string[] } {\n return { protocol: this.dht ? \"Pkarr relays (HTTP), and the Mainline DHT (BEP44) directly\" : \"Pkarr relays (HTTP)\", relays: this.relays.describe().relays };\n }\n discovery(): DiscoveryStatus {\n const status = this.relays.discovery();\n return this.lastVia === \"dht\" ? { ...status, path: { via: \"dht\" } } : status;\n }\n subscribe(listener: Parameters<RelayTransport[\"subscribe\"]>[0]): () => void { return this.relays.subscribe(listener); }\n /** A relay's answer only: a packet the DHT hands back when the relays are down may be older than one already read. */\n readAnsweredAt(pubKeyZ32: string): number | undefined { return this.relays.readAnsweredAt(pubKeyZ32); }\n onServerTime(listener: Parameters<RelayTransport[\"onServerTime\"]>[0]): () => void { return this.relays.onServerTime(listener); }\n configure({ relays }: { relays: string[]; readRelays: boolean }): void { if (!this.pinned) this.relays.setRelays(relays); }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nacl-fast-CDhNCYHs.js","names":["globalThis"],"sources":["../../../../node_modules/openpgp/dist/lightweight/nacl-fast.mjs"],"sourcesContent":["/*! OpenPGP.js v6.3.2 - 2026-09-24 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */\nconst globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n// declare const globalThis: Record<string, any> | undefined;\nconst crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\nconst nacl = {};\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32;\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.box = {};\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n if (crypto && crypto.getRandomValues) {\n // Browsers and Node v16+\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n})();\n\nexport { nacl as default };\n"],"x_google_ignoreList":[0],"mappings":"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;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CAEX,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,MAAO,KAAK;CACZ,OAAO,KAAK;CACZ,OAAO,KAAK;CACZ,OAAO,KAAK;CACZ,OAAO,KAAK;CACZ,OAAO,KAAK;CAIZ,IAAI;CACJ,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,MAAM,IAAE,IAAI,MAAM,IAAE;CAGpB,IAAI;CACJ,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAK,KAAK,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAI,KAAK,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,IAAI,MAAM,IAAI;CAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAAG,MAAM,IAAI,IAAI;CAC9D,MAAM,IAAE,IAAI,MAAM,IAAE;CAEpB,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAG,KAAK;CACR,EAAE,MAAM;CACR,EAAE,MAAM;CACR,EAAE,MAAM;CACR,EAAE,MAAM;CACR,EAAE,MAAM;CACR,EAAE,MAAM;AACV;AAEA,SAAS,EAAE,GAAG,GAAG;CACf,EAAE,GAAG,GAAG,CAAC;AACX;AAEA,SAAS,SAAS,GAAG,GAAG;CACtB,IAAI,IAAI,GAAG;CACX,IAAI,IACK;CAAT,OAAY,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;CAClC,KAAK,IAAI,KAAK,KAAK,GAAG,KAAK;EACzB,EAAE,GAAG,CAAC;EACN,IAAG,MAAM,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;CAClC;CACA,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;AACpC;AAEA,SAAS,QAAQ,GAAG,GAAG;CACrB,IAAI,IAAI,GAAG;CACX,IAAI,IACK;CAAT,OAAY,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;CAClC,KAAK,IAAI,KAAK,KAAK,GAAG,KAAK;EACvB,EAAE,GAAG,CAAC;EACN,IAAG,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC;CACzB;CACA,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;AACpC;AAEA,SAAS,kBAAkB,GAAG,GAAG,GAAG;CAClC,IAAI,oBAAI,IAAI,WAAW,EAAE;CACzB,IAAI,oBAAI,IAAI,aAAa,EAAE,GAAG,GAAG;CACjC,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAC3B,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG;CAC/B,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;CAClC,EAAE,MAAK,EAAE,MAAI,MAAK;CAClB,EAAE,MAAI;CACN,YAAY,GAAE,CAAC;CACf,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;EACvB,EAAE,KAAG,EAAE;EACP,EAAE,KAAG,EAAE,KAAG,EAAE,KAAG;CACjB;CACA,EAAE,KAAG,EAAE,KAAG;CACV,KAAK,IAAE,KAAK,KAAG,GAAG,EAAE,GAAG;EACrB,IAAG,EAAE,MAAI,QAAM,IAAE,KAAI;EACrB,SAAS,GAAE,GAAE,CAAC;EACd,SAAS,GAAE,GAAE,CAAC;EACd,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,CAAC;EACL,EAAE,GAAE,CAAC;EACL,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,CAAC;EACL,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,OAAO;EACb,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,GAAE,CAAC;EACP,EAAE,GAAE,CAAC;EACL,SAAS,GAAE,GAAE,CAAC;EACd,SAAS,GAAE,GAAE,CAAC;CAChB;CACA,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;EACvB,EAAE,IAAE,MAAI,EAAE;EACV,EAAE,IAAE,MAAI,EAAE;EACV,EAAE,IAAE,MAAI,EAAE;EACV,EAAE,IAAE,MAAI,EAAE;CACZ;CACA,IAAI,MAAM,EAAE,SAAS,EAAE;CACvB,IAAI,MAAM,EAAE,SAAS,EAAE;CACvB,SAAS,KAAI,GAAG;CAChB,EAAE,KAAI,KAAI,GAAG;CACb,UAAU,GAAE,GAAG;CACf,OAAO;AACT;AAEA,SAAS,uBAAuB,GAAG,GAAG;CACpC,OAAO,kBAAkB,GAAG,GAAG,EAAE;AACnC;AAEA,SAAS,mBAAmB,GAAG,GAAG;CAChC,YAAY,GAAG,EAAE;CACjB,OAAO,uBAAuB,GAAG,CAAC;AACpC;AAEA,IAAI,IAAI;CACN;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;CACpC;CAAY;CAAY;CAAY;AACtC;AAEA,SAAS,qBAAqB,IAAI,IAAI,GAAG,GAAG;CAC1C,IAAI,qBAAK,IAAI,WAAW,EAAE,GAAG,qBAAK,IAAI,WAAW,EAAE,GAC/C,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KACnC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KACnC,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;CAEjC,IAAI,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IAET,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG,IACT,MAAM,GAAG;CAEb,IAAI,MAAM;CACV,OAAO,KAAK,KAAK;EACf,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;GACvB,IAAI,IAAI,IAAI;GACZ,GAAG,KAAM,EAAE,IAAE,MAAM,KAAO,EAAE,IAAE,MAAM,KAAO,EAAE,IAAE,MAAM,IAAK,EAAE,IAAE;GAC9D,GAAG,KAAM,EAAE,IAAE,MAAM,KAAO,EAAE,IAAE,MAAM,KAAO,EAAE,IAAE,MAAM,IAAK,EAAE,IAAE;EAChE;EACA,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;GACvB,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GAEN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GAGN,IAAI;GACJ,IAAI;GAEJ,IAAI,IAAI;GAAQ,IAAI,MAAM;GAC1B,IAAI,IAAI;GAAQ,IAAI,MAAM;GAG1B,KAAM,QAAQ,KAAO,OAAQ,OAAa,QAAQ,KAAO,OAAQ,OAAa,QAAS,IAAW,OAAQ;GAC1G,KAAM,QAAQ,KAAO,OAAQ,OAAa,QAAQ,KAAO,OAAQ,OAAa,QAAS,IAAW,OAAQ;GAE1G,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAG5B,IAAK,MAAM,MAAQ,CAAC,MAAM;GAC1B,IAAK,MAAM,MAAQ,CAAC,MAAM;GAE1B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAG5B,IAAI,EAAE,IAAE;GACR,IAAI,EAAE,IAAE,IAAE;GAEV,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAG5B,IAAI,GAAG,IAAE;GACT,IAAI,GAAG,IAAE;GAET,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAE5B,KAAK,MAAM;GACX,KAAK,MAAM;GACX,KAAK,MAAM;GAEX,KAAK,IAAI,QAAS,KAAK;GACvB,KAAK,IAAI,QAAS,KAAK;GAGvB,IAAI;GACJ,IAAI;GAEJ,IAAI,IAAI;GAAQ,IAAI,MAAM;GAC1B,IAAI,IAAI;GAAQ,IAAI,MAAM;GAG1B,KAAM,QAAQ,KAAO,OAAQ,MAAa,QAAS,IAAW,OAAQ,OAAkB,QAAS,IAAW,OAAQ;GACpH,KAAM,QAAQ,KAAO,OAAQ,MAAa,QAAS,IAAW,OAAQ,OAAkB,QAAS,IAAW,OAAQ;GAEpH,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAG5B,IAAK,MAAM,MAAQ,MAAM,MAAQ,MAAM;GACvC,IAAK,MAAM,MAAQ,MAAM,MAAQ,MAAM;GAEvC,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAE5B,KAAK,MAAM;GACX,KAAK,MAAM;GACX,KAAK,MAAM;GAEX,MAAO,IAAI,QAAW,KAAK;GAC3B,MAAO,IAAI,QAAW,KAAK;GAG3B,IAAI;GACJ,IAAI;GAEJ,IAAI,IAAI;GAAQ,IAAI,MAAM;GAC1B,IAAI,IAAI;GAAQ,IAAI,MAAM;GAE1B,IAAI;GACJ,IAAI;GAEJ,KAAK,IAAI;GAAQ,KAAK,MAAM;GAC5B,KAAK,IAAI;GAAQ,KAAK,MAAM;GAE5B,KAAK,MAAM;GACX,KAAK,MAAM;GACX,KAAK,MAAM;GAEX,MAAO,IAAI,QAAW,KAAK;GAC3B,MAAO,IAAI,QAAW,KAAK;GAE3B,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GAEN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GACN,MAAM;GAEN,IAAI,IAAE,OAAO,IACX,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;IAEvB,IAAI,GAAG;IACP,IAAI,GAAG;IAEP,IAAI,IAAI;IAAQ,IAAI,MAAM;IAC1B,IAAI,IAAI;IAAQ,IAAI,MAAM;IAE1B,IAAI,IAAI,IAAE,KAAG;IACb,IAAI,IAAI,IAAE,KAAG;IAEb,KAAK,IAAI;IAAQ,KAAK,MAAM;IAC5B,KAAK,IAAI;IAAQ,KAAK,MAAM;IAG5B,KAAK,IAAI,IAAE,KAAG;IACd,KAAK,IAAI,IAAE,KAAG;IACd,KAAM,OAAO,IAAM,MAAO,OAAY,OAAO,IAAM,MAAO,MAAW,OAAO;IAC5E,KAAM,OAAO,IAAM,MAAO,OAAY,OAAO,IAAM,MAAO,OAAY,OAAO,IAAM,MAAO;IAE1F,KAAK,IAAI;IAAQ,KAAK,MAAM;IAC5B,KAAK,IAAI;IAAQ,KAAK,MAAM;IAG5B,KAAK,IAAI,IAAE,MAAI;IACf,KAAK,IAAI,IAAE,MAAI;IACf,KAAM,OAAO,KAAO,MAAO,OAAa,OAAQ,KAAW,MAAO,KAAiB,OAAO;IAC1F,KAAM,OAAO,KAAO,MAAO,OAAa,OAAQ,KAAW,MAAO,MAAkB,OAAO,IAAM,MAAO;IAExG,KAAK,IAAI;IAAQ,KAAK,MAAM;IAC5B,KAAK,IAAI;IAAQ,KAAK,MAAM;IAE5B,KAAK,MAAM;IACX,KAAK,MAAM;IACX,KAAK,MAAM;IAEX,GAAG,KAAM,IAAI,QAAW,KAAK;IAC7B,GAAG,KAAM,IAAI,QAAW,KAAK;GAC/B;EAEJ;EAGA,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,IAAI;EACJ,IAAI;EAEJ,IAAI,IAAI;EAAQ,IAAI,MAAM;EAC1B,IAAI,IAAI;EAAQ,IAAI,MAAM;EAE1B,IAAI,GAAG;EACP,IAAI,GAAG;EAEP,KAAK,IAAI;EAAQ,KAAK,MAAM;EAC5B,KAAK,IAAI;EAAQ,KAAK,MAAM;EAE5B,KAAK,MAAM;EACX,KAAK,MAAM;EACX,KAAK,MAAM;EAEX,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EACnC,GAAG,KAAK,MAAO,IAAI,QAAW,KAAK;EAEnC,OAAO;EACP,KAAK;CACP;CAEA,OAAO;AACT;AAEA,SAAS,YAAY,KAAK,GAAG,GAAG;CAC9B,IAAI,qBAAK,IAAI,WAAW,CAAC,GACrB,qBAAK,IAAI,WAAW,CAAC,GACrB,oBAAI,IAAI,WAAW,GAAG,GACtB,GAAG,IAAI;CAEX,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CAER,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CACR,GAAG,KAAK;CAER,qBAAqB,IAAI,IAAI,GAAG,CAAC;CACjC,KAAK;CAEL,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE,IAAE,IAAE;CACrC,EAAE,KAAK;CAEP,IAAI,MAAI,OAAK,IAAE,MAAI,IAAE;CACrB,EAAE,IAAE,KAAK;CACT,KAAK,GAAG,IAAE,GAAK,IAAI,YAAc,GAAG,KAAK,CAAC;CAC1C,qBAAqB,IAAI,IAAI,GAAG,CAAC;CAEjC,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,KAAK,IAAE,GAAG,GAAG,IAAI,GAAG,EAAE;CAEnD,OAAO;AACT;AAEA,SAAS,IAAI,GAAG,GAAG;CACjB,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAC3B,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAC3B,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG;CAE/B,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,GAAG,EAAE;CACV,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;CACf,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,GAAG,CAAC;CACT,EAAE,GAAG,GAAG,CAAC;CAET,EAAE,EAAE,IAAI,GAAG,CAAC;CACZ,EAAE,EAAE,IAAI,GAAG,CAAC;CACZ,EAAE,EAAE,IAAI,GAAG,CAAC;CACZ,EAAE,EAAE,IAAI,GAAG,CAAC;AACd;AAEA,SAAS,MAAM,GAAG,GAAG,GAAG;CACtB,IAAI,IACK;CAAT,OAAY,IAAI,GAAG,KACjB,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;AAE1B;AAEA,SAAS,KAAK,GAAG,GAAG;CAClB,IAAI,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG;CAClC,SAAS,IAAI,EAAE,EAAE;CACjB,EAAE,IAAI,EAAE,IAAI,EAAE;CACd,EAAE,IAAI,EAAE,IAAI,EAAE;CACd,UAAU,GAAG,EAAE;CACf,EAAE,OAAO,SAAS,EAAE,KAAK;AAC3B;AAEA,SAAS,WAAW,GAAG,GAAG,GAAG;CAC3B,IAAI,GAAG;CACP,SAAS,EAAE,IAAI,GAAG;CAClB,SAAS,EAAE,IAAI,GAAG;CAClB,SAAS,EAAE,IAAI,GAAG;CAClB,SAAS,EAAE,IAAI,GAAG;CAClB,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,GAAG;EACzB,IAAK,EAAG,IAAE,IAAG,OAAO,IAAE,KAAM;EAC5B,MAAM,GAAG,GAAG,CAAC;EACb,IAAI,GAAG,CAAC;EACR,IAAI,GAAG,CAAC;EACR,MAAM,GAAG,GAAG,CAAC;CACf;AACF;AAEA,SAAS,WAAW,GAAG,GAAG;CACxB,IAAI,IAAI;EAAC,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC;CAC/B,SAAS,EAAE,IAAI,CAAC;CAChB,SAAS,EAAE,IAAI,CAAC;CAChB,SAAS,EAAE,IAAI,GAAG;CAClB,EAAE,EAAE,IAAI,GAAG,CAAC;CACZ,WAAW,GAAG,GAAG,CAAC;AACpB;AAEA,SAAS,oBAAoB,IAAI,IAAI,QAAQ;CAC3C,IAAI,oBAAI,IAAI,WAAW,EAAE;CACzB,IAAI,IAAI;EAAC,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC;CAC/B,IAAI;CAEJ,IAAI,CAAC,QAAQ,YAAY,IAAI,EAAE;CAC/B,YAAY,GAAG,IAAI,EAAE;CACrB,EAAE,MAAM;CACR,EAAE,OAAO;CACT,EAAE,OAAO;CAET,WAAW,GAAG,CAAC;CACf,KAAK,IAAI,CAAC;CAEV,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,IAAE,MAAM,GAAG;CACvC,OAAO;AACT;AAEA,IAAI,IAAI,IAAI,aAAa;CAAC;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;CAAG;AAAI,CAAC;AAE5K,SAAS,KAAK,GAAG,GAAG;CAClB,IAAI,OAAO,IACF,IADK,GAAG;CACjB,OAAa,KAAK,IAAI,EAAE,GAAG;EACzB,QAAQ;EACR,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG;GACvC,EAAE,MAAM,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI;GACvC,QAAQ,KAAK,OAAO,EAAE,KAAK,OAAO,GAAG;GACrC,EAAE,MAAM,QAAQ;EAClB;EACA,EAAE,MAAM;EACR,EAAE,KAAK;CACT;CACA,QAAQ;CACR,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;EACvB,EAAE,MAAM,SAAS,EAAE,OAAO,KAAK,EAAE;EACjC,QAAQ,EAAE,MAAM;EAChB,EAAE,MAAM;CACV;CACA,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,QAAQ,EAAE;CAC3C,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK;EACvB,EAAE,IAAE,MAAM,EAAE,MAAM;EAClB,EAAE,KAAK,EAAE,KAAK;CAChB;AACF;AAEA,SAAS,OAAO,GAAG;CACjB,IAAI,oBAAI,IAAI,aAAa,EAAE,GAAG,IACrB;CAAT,OAAY,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;CAClC,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK;CAChC,KAAK,GAAG,CAAC;AACX;AAGA,SAAS,YAAY,IAAI,GAAG,GAAG,IAAI;CACjC,IAAI,oBAAI,IAAI,WAAW,EAAE,GAAG,oBAAI,IAAI,WAAW,EAAE,GAAG,oBAAI,IAAI,WAAW,EAAE;CACzE,IAAI,GAAG,GAAG,oBAAI,IAAI,aAAa,EAAE;CACjC,IAAI,IAAI;EAAC,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC;CAE/B,YAAY,GAAG,IAAI,EAAE;CACrB,EAAE,MAAM;CACR,EAAE,OAAO;CACT,EAAE,OAAO;CAET,IAAI,QAAQ,IAAI;CAChB,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,KAAK,EAAE;CACvC,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,EAAE,KAAK;CAE7C,YAAY,GAAG,GAAG,SAAS,EAAE,GAAG,IAAE,EAAE;CACpC,OAAO,CAAC;CACR,WAAW,GAAG,CAAC;CACf,KAAK,IAAI,CAAC;CAEV,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG;CACrC,YAAY,GAAG,IAAI,IAAI,EAAE;CACzB,OAAO,CAAC;CAER,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK;CAChC,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;CAClC,KAAK,IAAI,GAAG,IAAI,IAAI,KAClB,KAAK,IAAI,GAAG,IAAI,IAAI,KAClB,EAAE,IAAE,MAAM,EAAE,KAAK,EAAE;CAIvB,KAAK,GAAG,SAAS,EAAE,GAAG,CAAC;CACvB,OAAO;AACT;AAEA,SAAS,UAAU,GAAG,GAAG;CACvB,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG,GAC/B,MAAM,GAAG,GAAG,OAAO,GAAG,GAAG,OAAO,GAAG,GACnC,OAAO,GAAG;CAEd,SAAS,EAAE,IAAI,GAAG;CAClB,YAAY,EAAE,IAAI,CAAC;CACnB,EAAE,KAAK,EAAE,EAAE;CACX,EAAE,KAAK,KAAK,CAAC;CACb,EAAE,KAAK,KAAK,EAAE,EAAE;CAChB,EAAE,KAAK,EAAE,IAAI,GAAG;CAEhB,EAAE,MAAM,GAAG;CACX,EAAE,MAAM,IAAI;CACZ,EAAE,MAAM,MAAM,IAAI;CAClB,EAAE,GAAG,MAAM,GAAG;CACd,EAAE,GAAG,GAAG,GAAG;CAEX,QAAQ,GAAG,CAAC;CACZ,EAAE,GAAG,GAAG,GAAG;CACX,EAAE,GAAG,GAAG,GAAG;CACX,EAAE,GAAG,GAAG,GAAG;CACX,EAAE,EAAE,IAAI,GAAG,GAAG;CAEd,EAAE,KAAK,EAAE,EAAE;CACX,EAAE,KAAK,KAAK,GAAG;CACf,IAAI,SAAS,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;CAEvC,EAAE,KAAK,EAAE,EAAE;CACX,EAAE,KAAK,KAAK,GAAG;CACf,IAAI,SAAS,KAAK,GAAG,GAAG,OAAO;CAE/B,IAAI,SAAS,EAAE,EAAE,MAAO,EAAE,OAAK,GAAI,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE;CAEpD,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;CAClB,OAAO;AACT;AAEA,SAAS,iBAAiB,GAAG,IAAI,GAAG,IAAI;CACtC,IAAI;CACJ,IAAI,oBAAI,IAAI,WAAW,EAAE,GAAG,oBAAI,IAAI,WAAW,EAAE;CACjD,IAAI,IAAI;EAAC,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC,GAC3B,IAAI;EAAC,GAAG;EAAG,GAAG;EAAG,GAAG;EAAG,GAAG;CAAC;CAE/B,IAAI,IAAI,IAAI,OAAO;CAEnB,IAAI,UAAU,GAAG,EAAE,GAAG,OAAO;CAE7B,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG;CAClC,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,IAAE,MAAM,GAAG;CACtC,YAAY,GAAG,GAAG,CAAC;CACnB,OAAO,CAAC;CACR,WAAW,GAAG,GAAG,CAAC;CAElB,WAAW,GAAG,GAAG,SAAS,EAAE,CAAC;CAC7B,IAAI,GAAG,CAAC;CACR,KAAK,GAAG,CAAC;CAET,KAAK;CACL,IAAI,iBAAiB,IAAI,GAAG,GAAG,CAAC,GAAG;EACjC,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK;EAC/B,OAAO;CACT;CAEA,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI;CACtC,OAAO;AACT;AAEA,IAAI,0BAA0B;AAC1B,IAAA,gCAAgC;AAChC,IAAA,4BAA4B;AAC5B,IAAA,4BAA4B;AAC5B,IAAA,oBAAoB;AACpB,IAAA,6BAA6B;AAC7B,IAAA,6BAA6B;AAC7B,IAAA,wBAAwB;AAE5B,SAAS,kBAAkB;CACzB,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KACpC,IAAI,EAAE,UAAU,cAAc,aAC5B,MAAM,IAAI,UAAU,iCAAiC;AAE3D;AAEA,SAAS,QAAQ,KAAK;CACpB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,IAAI,KAAK;AAChD;AAEA,KAAK,aAAa,SAAS,GAAG,GAAG;CAC/B,gBAAgB,GAAG,CAAC;CACpB,IAAI,EAAE,WAAW,+BAA+B,MAAM,IAAI,MAAM,YAAY;CAC5E,IAAI,EAAE,WAAW,yBAAyB,MAAM,IAAI,MAAM,YAAY;CACtE,IAAI,IAAI,IAAI,WAAW,uBAAuB;CAC9C,kBAAkB,GAAG,GAAG,CAAC;CACzB,OAAO;AACT;AAEA,KAAK,MAAM,CAAC;AAEZ,KAAK,IAAI,UAAU,WAAW;CAC5B,IAAI,KAAK,IAAI,WAAW,yBAAyB;CACjD,IAAI,KAAK,IAAI,WAAW,yBAAyB;CACjD,mBAAmB,IAAI,EAAE;CACzB,OAAO;EAAC,WAAW;EAAI,WAAW;CAAE;AACtC;AAEA,KAAK,IAAI,QAAQ,gBAAgB,SAAS,WAAW;CACnD,gBAAgB,SAAS;CACzB,IAAI,UAAU,WAAW,2BACvB,MAAM,IAAI,MAAM,qBAAqB;CACvC,IAAI,KAAK,IAAI,WAAW,yBAAyB;CACjD,uBAAuB,IAAI,SAAS;CACpC,OAAO;EAAC,WAAW;EAAI,WAAW,IAAI,WAAW,SAAS;CAAC;AAC7D;AAEA,KAAK,OAAO,SAAS,KAAK,WAAW;CACnC,gBAAgB,KAAK,SAAS;CAC9B,IAAI,UAAU,WAAW,4BACvB,MAAM,IAAI,MAAM,qBAAqB;CACvC,IAAI,YAAY,IAAI,WAAW,oBAAkB,IAAI,MAAM;CAC3D,YAAY,WAAW,KAAK,IAAI,QAAQ,SAAS;CACjD,OAAO;AACT;AAEA,KAAK,KAAK,WAAW,SAAS,KAAK,WAAW;CAC5C,IAAI,YAAY,KAAK,KAAK,KAAK,SAAS;CACxC,IAAI,MAAM,IAAI,WAAW,iBAAiB;CAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,IAAI,KAAK,UAAU;CACxD,OAAO;AACT;AAEA,KAAK,KAAK,SAAS,SAAS,SAAS,KAAK,KAAK,WAAW;CACxD,gBAAgB,KAAK,KAAK,SAAS;CACnC,IAAI,IAAI,WAAW,mBACjB,MAAM,IAAI,MAAM,oBAAoB;CACtC,IAAI,UAAU,WAAW,4BACvB,MAAM,IAAI,MAAM,qBAAqB;CACvC,IAAI,KAAK,IAAI,WAAW,oBAAoB,IAAI,MAAM;CACtD,IAAI,IAAI,IAAI,WAAW,oBAAoB,IAAI,MAAM;CACrD,IAAI,IACK;CAAT,OAAY,IAAI,mBAAmB,KAAK,GAAG,KAAK,IAAI;CACpD,KAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAE,qBAAqB,IAAI;CAC/D,OAAQ,iBAAiB,GAAG,IAAI,GAAG,QAAQ,SAAS,KAAK;AAC3D;AAEA,KAAK,KAAK,UAAU,WAAW;CAC7B,IAAI,KAAK,IAAI,WAAW,0BAA0B;CAClD,IAAI,KAAK,IAAI,WAAW,0BAA0B;CAClD,oBAAoB,IAAI,EAAE;CAC1B,OAAO;EAAC,WAAW;EAAI,WAAW;CAAE;AACtC;AAEA,KAAK,KAAK,QAAQ,gBAAgB,SAAS,WAAW;CACpD,gBAAgB,SAAS;CACzB,IAAI,UAAU,WAAW,4BACvB,MAAM,IAAI,MAAM,qBAAqB;CACvC,IAAI,KAAK,IAAI,WAAW,0BAA0B;CAClD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,KAAK,GAAG,KAAK,UAAU,KAAG;CACzD,OAAO;EAAC,WAAW;EAAI,WAAW,IAAI,WAAW,SAAS;CAAC;AAC7D;AAEA,KAAK,KAAK,QAAQ,WAAW,SAAS,MAAM;CAC1C,gBAAgB,IAAI;CACpB,IAAI,KAAK,WAAW,uBAClB,MAAM,IAAI,MAAM,eAAe;CACjC,IAAI,KAAK,IAAI,WAAW,0BAA0B;CAClD,IAAI,KAAK,IAAI,WAAW,0BAA0B;CAClD,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK;CAC1C,oBAAoB,IAAI,IAAI,IAAI;CAChC,OAAO;EAAC,WAAW;EAAI,WAAW;CAAE;AACtC;AAEA,KAAK,UAAU,SAAS,IAAI;CAC1B,cAAc;AAChB;CAEC,WAAW;CAGV,IAAI,UAAU,OAAO,iBAAiB;EAEpC,IAAI,QAAQ;EACZ,KAAK,QAAQ,SAAS,GAAG,GAAG;GAC1B,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC;GAC3B,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,OACtB,OAAO,gBAAgB,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC;GAElE,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;GACjC,QAAQ,CAAC;EACX,CAAC;CACH;AACF,EAAA,CAAG"}
1
+ {"version":3,"file":"nacl-fast-CDhNCYHs.js","names":["globalThis"],"sources":["../../../../node_modules/openpgp/dist/lightweight/nacl-fast.mjs"],"sourcesContent":["/*! OpenPGP.js v6.3.2 - 2026-09-24 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */\nconst globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n// declare const globalThis: Record<string, any> | undefined;\nconst crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\nconst nacl = {};\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32;\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.box = {};\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n if (crypto && crypto.getRandomValues) {\n // Browsers and Node v16+\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n})();\n\nexport { nacl as default };\n"],"ignoreList":[0],"mappings":"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;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,MAAM,IAAI;CACV,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,OAAO,IAAI;CACX,IAAI,EAAE;CACN,OAAO,IAAI;CACX,OAAO,IAAI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"}