@ic402/client 2.16.1 → 2.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/client.d.ts +12 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +40 -16
- package/dist/client.js.map +1 -1
- package/dist/voucher.d.ts +8 -0
- package/dist/voucher.d.ts.map +1 -1
- package/dist/voucher.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,21 +41,23 @@ const results = await client.call('search', ['what is x402?', []]);
|
|
|
41
41
|
import { Ed25519KeyIdentity } from '@icp-sdk/core/identity';
|
|
42
42
|
|
|
43
43
|
const voucherKey = Ed25519KeyIdentity.generate();
|
|
44
|
+
const sessionAgent = await HttpAgent.create({ host: 'https://icp-api.io', identity: voucherKey });
|
|
44
45
|
const session = await client.openSession(
|
|
45
46
|
{},
|
|
46
47
|
{
|
|
47
48
|
sign: (payload) => voucherKey.sign(payload),
|
|
48
49
|
getPublicKey: async () => voucherKey.getPublicKey().toRaw(),
|
|
50
|
+
actorFactory: (id) => Actor.createActor(exampleIdlFactory, { agent: sessionAgent, canisterId: id }),
|
|
49
51
|
},
|
|
50
52
|
);
|
|
51
53
|
|
|
52
|
-
const answer = await session.call('sessionQuery', ['question']); //
|
|
54
|
+
const answer = await session.call('sessionQuery', ['question']); // sent as the session key, no on-chain tx
|
|
53
55
|
console.log(session.consumed, session.remaining);
|
|
54
56
|
|
|
55
57
|
const receipt = await session.close(); // settle consumed + refund remainder
|
|
56
58
|
```
|
|
57
59
|
|
|
58
|
-
One escrow deposit on open, settle + refund on close — every call in between is
|
|
60
|
+
One escrow deposit on open, settle + refund on close — every call in between is a cumulative voucher, with no ledger call and no gas. Two modes (2.17.0): with `actorFactory` on the signer, each call is made **as the session key**, the IC authenticates it, and the canister (`consumeVoucherFrom`) runs no signature check (~8M cycles); without it, calls go through the client's actor and the canister verifies the voucher's Ed25519 signature (~420M cycles; see [costs-and-rails.md](https://github.com/vhew/ic402/blob/master/docs/costs-and-rails.md)) — only while its signed-voucher fallback is on (the library default; the example turns it off). Vouchers are signed either way, so a new client also works against older canisters. A session-paid endpoint that issues a content grant binds it to `msg.caller`, i.e. the session key: redeem it through the session agent (`fetchContent(delivery, { canisterId, actorFactory: (id) => Actor.createActor(exampleIdlFactory, { agent: sessionAgent, canisterId: id }) })`). `open`/`close` stay on the payer's actor.
|
|
59
61
|
|
|
60
62
|
### EIP-3009 EVM payment
|
|
61
63
|
|
|
@@ -99,14 +101,16 @@ Submit the signed authorization either in an x402 `X-PAYMENT` header (HTTP rail)
|
|
|
99
101
|
| `ledger?` | `string` | Ledger canister id for ICRC-2 auto-approval. |
|
|
100
102
|
| `ledgerActorFactory?` | `(ledgerCanisterId: string) => any` | Required for ICP auto-payment. |
|
|
101
103
|
| `evmRpcUrl?` | `string` | Custom EVM RPC; defaults to a public RPC per chain. |
|
|
102
|
-
| `approvalFeeBuffer?` | `bigint` |
|
|
104
|
+
| `approvalFeeBuffer?` | `bigint` | When set, used as the ledger fee instead of querying `icrc1_fee()`. ICRC-2 approvals are exactly `amount + fee` and expire after 5 minutes (a ledger actor without `icrc1_fee` uses `100_000n`). |
|
|
105
|
+
|
|
106
|
+
Approvals replace the allowance, so two payments from one identity in flight at once may fail with `InsufficientAllowance` — never a double payment; retry the one that failed. The payment `sender` must be the principal the `actorFactory`'s agent calls with: Candid paths refuse a mismatch (`Gateway.settleFrom`).
|
|
103
107
|
|
|
104
108
|
### `Ic402Client` methods
|
|
105
109
|
|
|
106
110
|
| Method | Description |
|
|
107
111
|
|--------|-------------|
|
|
108
112
|
| `call(method: string, args: unknown[], canisterId?: string): Promise<unknown>` | Call a paid method with auto-402 handling. The method's **last argument must be the `opt PaymentSignature`** — pass `[]` and the client retries with the signature in that slot. Unwraps `{ ok }` variants. |
|
|
109
|
-
| `openSession(sessionConfig
|
|
113
|
+
| `openSession(sessionConfig: Partial<SessionPreferences> \| undefined, signer: VoucherSigner, canisterId?: string): Promise<SessionHandle>` | Open a streaming session (`signer` is required since 2.17.0; it throws without one): fetch `requestSession()` intent → ICRC-2 approve the deposit, `min(suggestedDeposit, maxDeposit)` + fee (ICP, when `autoPayment`) → `openSession` on the canister. EVM sessions: pass `evmNetwork`/`evmSender`/`authorization` (and optionally `evmTxHash`/`evmToken`/`evmRecipient`) in `sessionConfig`. |
|
|
110
114
|
| `fetchContent(delivery: ContentDelivery, options?: { canisterId?: string; actorFactory?: (id: string) => any }): Promise<Uint8Array>` | Fetch paid content for any `DeliveryMethod`: `inline`, `httpUrl`, `assetCanister`, or chunked `canisterQuery` (needs `options`). |
|
|
111
115
|
| `fetchX402(url: string, options?: { init?: RequestInit; chainId?: number }): Promise<FetchX402Result>` | Buy from an external x402 API: probe → the canister signs the EIP-3009 header (`signX402Payment`) → retry with `X-Payment`. Requires an `eip155:*` network or explicit `chainId`. |
|
|
112
116
|
| `registerAgent(rpcUrl?: string, chainId?: number): Promise<{ tokenId: bigint \| null; txHash: string }>` | ERC-8004 registration: fetch nonce/fees → canister signs → broadcast → poll receipt (throws on revert). |
|
package/dist/client.d.ts
CHANGED
|
@@ -54,7 +54,10 @@ export interface Ic402ClientConfig {
|
|
|
54
54
|
ledgerActorFactory?: (ledgerCanisterId: string) => any;
|
|
55
55
|
/** Custom EVM RPC URL. If omitted, uses a public RPC for the chain. */
|
|
56
56
|
evmRpcUrl?: string;
|
|
57
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* When set, used as the ledger fee instead of querying `icrc1_fee()` (approvals are exactly
|
|
59
|
+
* `amount + fee`, expiring after 5 minutes). A ledger actor without `icrc1_fee` uses 100_000.
|
|
60
|
+
*/
|
|
58
61
|
approvalFeeBuffer?: bigint;
|
|
59
62
|
}
|
|
60
63
|
export interface SessionHandle {
|
|
@@ -75,6 +78,13 @@ export interface SessionHandle {
|
|
|
75
78
|
export declare class Ic402Client {
|
|
76
79
|
private config;
|
|
77
80
|
constructor(config: Ic402ClientConfig);
|
|
81
|
+
/**
|
|
82
|
+
* 2.17.0: approve exactly `amount` + the ledger fee (what `icrc2_transfer_from` deducts on top),
|
|
83
|
+
* expiring in 5 minutes (the canister's default nonce expiry), so no allowance stands afterwards
|
|
84
|
+
* — ICP settlement over HTTP is allowance-authenticated. Approvals REPLACE the allowance, so two
|
|
85
|
+
* overlapping payments from one identity may fail with InsufficientAllowance (never double-pay).
|
|
86
|
+
*/
|
|
87
|
+
private approvalFor;
|
|
78
88
|
/**
|
|
79
89
|
* Call a canister method, auto-handling 402 payment if needed.
|
|
80
90
|
*
|
|
@@ -86,7 +96,7 @@ export declare class Ic402Client {
|
|
|
86
96
|
*
|
|
87
97
|
* Flow: requestSession → calculate deposit → icrc2_approve → openSession → SessionHandle
|
|
88
98
|
*/
|
|
89
|
-
openSession(sessionConfig
|
|
99
|
+
openSession(sessionConfig: Partial<SessionPreferences> | undefined, signer: VoucherSigner, canisterId?: string): Promise<SessionHandle>;
|
|
90
100
|
/**
|
|
91
101
|
* Fetch content from a ContentDelivery response.
|
|
92
102
|
* Handles all delivery methods: inline, httpUrl, canisterQuery, assetCanister.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,YAAY,IAAI;QAAE,MAAM,IAAI,MAAM,CAAA;KAAE,CAAC;CACtC;AAQD,OAAO,KAAK,EACV,eAAe,EACf,GAAG,EACH,cAAc,EACd,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EASL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,EAAE,CAAC;QACZ,CAAC,EAAE,MAAM,EAAE,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAEhF,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,wCAAwC;IACxC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAEhE,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,GAAG,CAAC;IACvD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -31,6 +31,19 @@ export class Ic402Client {
|
|
|
31
31
|
constructor(config) {
|
|
32
32
|
this.config = config;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* 2.17.0: approve exactly `amount` + the ledger fee (what `icrc2_transfer_from` deducts on top),
|
|
36
|
+
* expiring in 5 minutes (the canister's default nonce expiry), so no allowance stands afterwards
|
|
37
|
+
* — ICP settlement over HTTP is allowance-authenticated. Approvals REPLACE the allowance, so two
|
|
38
|
+
* overlapping payments from one identity may fail with InsufficientAllowance (never double-pay).
|
|
39
|
+
*/
|
|
40
|
+
async approvalFor(ledgerActor, amount) {
|
|
41
|
+
const fee = this.config.approvalFeeBuffer ??
|
|
42
|
+
(typeof ledgerActor.icrc1_fee === 'function'
|
|
43
|
+
? BigInt(await ledgerActor.icrc1_fee())
|
|
44
|
+
: 100000n);
|
|
45
|
+
return { amount: amount + fee, expires_at: [BigInt(Date.now() + 300_000) * 1000000n] };
|
|
46
|
+
}
|
|
34
47
|
/**
|
|
35
48
|
* Call a canister method, auto-handling 402 payment if needed.
|
|
36
49
|
*
|
|
@@ -58,22 +71,24 @@ export class Ic402Client {
|
|
|
58
71
|
if (!this.config.ledger || !this.config.ledgerActorFactory) {
|
|
59
72
|
throw new Error('Auto-approval requires ledger and ledgerActorFactory in config');
|
|
60
73
|
}
|
|
61
|
-
// ICRC-2 approve: allow the target canister to spend amount + fee
|
|
74
|
+
// ICRC-2 approve: allow the target canister to spend exactly amount + fee (approvalFor)
|
|
62
75
|
const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
|
|
76
|
+
const approval = await this.approvalFor(ledgerActor, requirement.amount);
|
|
63
77
|
const approveResult = await ledgerActor.icrc2_approve({
|
|
64
78
|
spender: { owner: Principal.fromText(cid), subaccount: [] },
|
|
65
|
-
amount:
|
|
79
|
+
amount: approval.amount,
|
|
66
80
|
fee: [],
|
|
67
81
|
memo: [],
|
|
68
82
|
from_subaccount: [],
|
|
69
83
|
created_at_time: [],
|
|
70
84
|
expected_allowance: [],
|
|
71
|
-
expires_at:
|
|
85
|
+
expires_at: approval.expires_at,
|
|
72
86
|
});
|
|
73
87
|
if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
|
|
74
88
|
throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
|
|
75
89
|
}
|
|
76
|
-
// Construct PaymentSignature from the requirement's nonce and retry.
|
|
90
|
+
// Construct PaymentSignature from the requirement's nonce and retry. `sender` MUST be the
|
|
91
|
+
// principal the actor calls with: Candid paths refuse a mismatch (Gateway.settleFrom).
|
|
77
92
|
const nonce = toByteArray(requirement.nonce ?? new Uint8Array(32));
|
|
78
93
|
const sender = this.config.identity?.getPrincipal().toText() ?? '';
|
|
79
94
|
const sig = {
|
|
@@ -106,9 +121,17 @@ export class Ic402Client {
|
|
|
106
121
|
* Flow: requestSession → calculate deposit → icrc2_approve → openSession → SessionHandle
|
|
107
122
|
*/
|
|
108
123
|
async openSession(sessionConfig, signer, canisterId) {
|
|
124
|
+
// 2.17.0: no signer used to register an all-zero key, a small-order key anyone can sign as
|
|
125
|
+
// (the IC's ingress check is cofactored); canisters now refuse one, so fail before approving.
|
|
126
|
+
// Typed required since 2.17.1; the guard stays for JavaScript callers.
|
|
127
|
+
if (!signer)
|
|
128
|
+
throw new Error('openSession requires a VoucherSigner (the session key)');
|
|
109
129
|
const cid = canisterId ?? this.config.canisterId;
|
|
110
130
|
const config = sessionConfig;
|
|
111
131
|
const actor = this.config.actorFactory(cid);
|
|
132
|
+
// 2.17.0: session calls go out AS the session key when the signer supplies a factory (the
|
|
133
|
+
// canister then skips the signature check); open/close stay on the payer's actor.
|
|
134
|
+
const sessionActor = signer.actorFactory ? signer.actorFactory(cid) : actor;
|
|
112
135
|
let intent = await actor.requestSession();
|
|
113
136
|
// For EVM sessions, override the intent's network, token, and recipient
|
|
114
137
|
if (config?.evmNetwork) {
|
|
@@ -127,15 +150,19 @@ export class Ic402Client {
|
|
|
127
150
|
// ICRC-2 approve deposit amount (ICP sessions only)
|
|
128
151
|
if (!isEvm && this.config.autoPayment && this.config.ledger && this.config.ledgerActorFactory) {
|
|
129
152
|
const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
|
|
153
|
+
// Approve what the canister pulls, min(suggestedDeposit, maxDeposit) (Sessions.openSession),
|
|
154
|
+
// not the cap: any excess would stand as an allowance an HTTP settle could spend.
|
|
155
|
+
const deposit = maxDeposit < intent.suggestedDeposit ? maxDeposit : intent.suggestedDeposit;
|
|
156
|
+
const approval = await this.approvalFor(ledgerActor, deposit);
|
|
130
157
|
const approveResult = await ledgerActor.icrc2_approve({
|
|
131
158
|
spender: { owner: Principal.fromText(cid), subaccount: [] },
|
|
132
|
-
amount:
|
|
159
|
+
amount: approval.amount,
|
|
133
160
|
fee: [],
|
|
134
161
|
memo: [],
|
|
135
162
|
from_subaccount: [],
|
|
136
163
|
created_at_time: [],
|
|
137
164
|
expected_allowance: [],
|
|
138
|
-
expires_at:
|
|
165
|
+
expires_at: approval.expires_at,
|
|
139
166
|
});
|
|
140
167
|
if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
|
|
141
168
|
throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
|
|
@@ -150,10 +177,7 @@ export class Ic402Client {
|
|
|
150
177
|
// publicKey: Ed25519 public key for voucher verification (both ICP and EVM).
|
|
151
178
|
// signature: empty for ICP, EVM tx hash bytes for EVM.
|
|
152
179
|
// sender: empty for ICP (filled by identity), payer's EVM address for EVM.
|
|
153
|
-
|
|
154
|
-
if (signer) {
|
|
155
|
-
pubKey = new Uint8Array(await signer.getPublicKey());
|
|
156
|
-
}
|
|
180
|
+
const pubKey = new Uint8Array(await signer.getPublicKey());
|
|
157
181
|
const evmAuth = config?.authorization;
|
|
158
182
|
const sig = {
|
|
159
183
|
scheme: 'exact',
|
|
@@ -230,7 +254,7 @@ export class Ic402Client {
|
|
|
230
254
|
sequence: nextSequence,
|
|
231
255
|
signature,
|
|
232
256
|
};
|
|
233
|
-
const callResult = await
|
|
257
|
+
const callResult = await sessionActor[method](voucher, ...callArgs);
|
|
234
258
|
if (callResult && typeof callResult === 'object' && 'error' in callResult) {
|
|
235
259
|
throw new Error(callResult.error);
|
|
236
260
|
}
|
|
@@ -261,7 +285,7 @@ export class Ic402Client {
|
|
|
261
285
|
sequence: nextSequence,
|
|
262
286
|
signature: sig,
|
|
263
287
|
};
|
|
264
|
-
const callResult = await
|
|
288
|
+
const callResult = await sessionActor[method](v, ...callArgs);
|
|
265
289
|
if (callResult && typeof callResult === 'object' && 'error' in callResult) {
|
|
266
290
|
throw new Error(callResult.error);
|
|
267
291
|
}
|
|
@@ -529,18 +553,18 @@ export class Ic402Client {
|
|
|
529
553
|
}
|
|
530
554
|
const req0 = unwrapOpt(result.paymentRequired);
|
|
531
555
|
const amount = req0?.amount ?? 0n;
|
|
532
|
-
// Approve amount + fee
|
|
533
|
-
const approveAmount = amount + (this.config.approvalFeeBuffer ?? 100000n);
|
|
556
|
+
// Approve exactly amount + fee (ICRC-2 transfer_from deducts the fee from the allowance)
|
|
534
557
|
const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
|
|
558
|
+
const approval = await this.approvalFor(ledgerActor, amount);
|
|
535
559
|
const approveResult = await ledgerActor.icrc2_approve({
|
|
536
560
|
spender: { owner: Principal.fromText(this.config.canisterId), subaccount: [] },
|
|
537
|
-
amount:
|
|
561
|
+
amount: approval.amount,
|
|
538
562
|
fee: [],
|
|
539
563
|
memo: [],
|
|
540
564
|
from_subaccount: [],
|
|
541
565
|
created_at_time: [],
|
|
542
566
|
expected_allowance: [],
|
|
543
|
-
expires_at:
|
|
567
|
+
expires_at: approval.expires_at,
|
|
544
568
|
});
|
|
545
569
|
if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
|
|
546
570
|
throw new Ic402Error('sign_failed', `ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO5E,iDAAiD;AACjD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAY,EAAE,GAAY,EAAE,EAAE,CAC1D,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAC/C,CAAC;AACJ,CAAC;AAWD,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,SAAS,IAAI,YAAY,EACzB,eAAe,EACf,WAAW,EACX,UAAU,EACV,oBAAoB,IAAI,WAAW,EACnC,aAAa,IAAI,iBAAiB,GAEnC,MAAM,UAAU,CAAC;AAkElB;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAElD;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAoB;IAElC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAe,EAAE,UAAmB;QAC7D,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE5C,sCAAsC;QACtC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,8MAA8M,CAC/M,CAAC;YACJ,CAAC;YAED,uFAAuF;YACvF,6EAA6E;YAC7E,mFAAmF;YACnF,kFAAkF;YAClF,oFAAoF;YACpF,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC;YAC9C,MAAM,WAAW,GAAG,SAAS,CAAqC,cAAc,CAAC,CAAC;YAClF,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,uCAAuC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACpF,CAAC;YAED,yEAAyE;YACzE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;gBACpD,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC3D,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAQ,CAAC;gBACxE,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,kBAAkB,EAAE,EAAE;gBACtB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,qEAAqE;YACrE,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG;gBACV,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,EAAE;gBACb,MAAM;gBACN,KAAK;gBACL,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE,EAAE,EAAE,0EAA0E;aACtF,CAAC;YAEF,uEAAuE;YACvE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5B,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;YAEtD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC1E,OAAO,WAAW,CAAC,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CACf,aAA2C,EAC3C,MAAsB,EACtB,UAAmB;QAEnB,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,MAAM,MAAM,GAAG,aAAa,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAkB,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAEzD,wEAAwE;QACxE,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,UAAU;gBAC1B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACpF,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;QAC/E,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;QAE7E,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1D,oDAAoD;QACpD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;gBACpD,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC3D,MAAM,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAQ,CAAC;gBAChE,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,kBAAkB,EAAE,EAAE;gBACtB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YAEH,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CAAC,0BAA0B,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,UAAU;YACV,SAAS;YACT,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;SAC9C,CAAC;QAEF,iCAAiC;QACjC,6EAA6E;QAC7E,uDAAuD;QACvD,2EAA2E;QAC3E,IAAI,MAAM,GAAe,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,aAAa,CAAC;QACtC,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,OAAO;YACf,OAAO;YACP,SAAS,EAAE,KAAK;gBACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAO,CAAC,SAAU,CAAC,CAAC;gBAC1D,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;YACrB,SAAS,EAAE,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,EAAE,EAAE,gEAAgE;YAC3E,MAAM,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE;YAC/B,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,OAAO;gBACpB,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;wBAChF,UAAU,EACR,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;4BACpC,CAAC,CAAC,OAAO,CAAC,UAAU;4BACpB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;wBAChC,WAAW,EACT,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;4BACrC,CAAC,CAAC,OAAO,CAAC,WAAW;4BACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;wBACjC,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,CAAC,EAAE,OAAO,CAAC,CAAC;wBACZ,CAAC,EAAE,OAAO,CAAC,CAAC;wBACZ,CAAC,EAAE,OAAO,CAAC,CAAC;qBACb;iBACF;gBACH,CAAC,CAAC,EAAE;SACP,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAExD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACpB,2FAA2F;YAC3F,yFAAyF;YACzF,MAAM,WAAW,CAAC,2BAA2B,MAAM,CAAC,GAAa,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,KAAK,GAAiB,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,6EAA6E;QAC7E,6EAA6E;QAC7E,iFAAiF;QACjF,qFAAqF;QACrF,MAAM,cAAc,GAAG,GAAG,CAAC;QAE3B,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,QAAQ;gBACV,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,SAAS;gBACX,OAAO,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACpC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,QAAmB;gBAC5C,uEAAuE;gBACvE,4DAA4D;gBAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAClD,kFAAkF;gBAClF,oFAAoF;gBACpF,sFAAsF;gBACtF,sFAAsF;gBACtF,+EAA+E;gBAC/E,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;gBACrC,MAAM,YAAY,GAAG,QAAQ,GAAG,EAAE,CAAC;gBAEnC,eAAe;gBACf,IAAI,SAAS,GAAe,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC/C,IAAI,MAAM,EAAE,CAAC;oBACX,SAAS,GAAG,IAAI,UAAU,CACxB,MAAM,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAChF,CAAC;gBACJ,CAAC;gBAED,MAAM,OAAO,GAAY;oBACvB,SAAS,EAAE,KAAK,CAAC,EAAE;oBACnB,gBAAgB,EAAE,YAAY;oBAC9B,QAAQ,EAAE,YAAY;oBACtB,SAAS;iBACV,CAAC;gBAEF,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAC7D,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;oBAC1E,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBACD,+CAA+C;gBAC/C,QAAQ,GAAG,YAAY,CAAC;gBACxB,QAAQ,GAAG,YAAY,CAAC;gBACxB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;oBACvE,OAAO,UAAU,CAAC,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,QAAmB;gBACtD,+EAA+E;gBAC/E,8EAA8E;gBAC9E,mEAAmE;gBACnE,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAClD,6EAA6E;gBAC7E,2EAA2E;gBAC3E,MAAM,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;gBACrC,MAAM,YAAY,GAAG,QAAQ,GAAG,EAAE,CAAC;gBAEnC,IAAI,GAAG,GAAe,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACX,GAAG,GAAG,IAAI,UAAU,CAClB,MAAM,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAChF,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,GAAY;oBACjB,SAAS,EAAE,KAAK,CAAC,EAAE;oBACnB,gBAAgB,EAAE,YAAY;oBAC9B,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,GAAG;iBACf,CAAC;gBAEF,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;gBACvD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;oBAC1E,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC;gBAC9C,CAAC;gBACD,QAAQ,GAAG,YAAY,CAAC;gBACxB,QAAQ,GAAG,YAAY,CAAC;gBACxB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;oBACvE,OAAO,UAAU,CAAC,EAAqB,CAAC;gBAC1C,CAAC;gBACD,OAAO,UAA6B,CAAC;YACvC,CAAC;YAED,KAAK,CAAC,KAAK;gBACT,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;oBACxB,OAAO,WAAW,CAAC,EAAE,CAAC;gBACxB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;SACF,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,QAAyB,EACzB,OAIC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEjC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,2CAA2C;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,0EAA0E;YAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,MAAM,WAAW,IAAI,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/E,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;YACjE,MAAM,GAAG,GAAG,OAAO,EAAE,UAAU,CAAC;YAChC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,6EAA6E;gBAC7E,mFAAmF;gBACnF,iFAAiF;gBACjF,8EAA8E;gBAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,oDAAoD,CAAC,CAAC;gBAC1F,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2BAA2B;IAE3B;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CACb,GAAW,EACX,OAAkD;QAElD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,IAAI,UAAU,CACnB,cAAc,EACd,8FAA8F,CAC/F;aACF,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE/D,WAAW;QACX,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,WAAW,CAAC;QACtD,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,WAAW,CAAC;QACvD,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;QAEtC,uBAAuB;QACvB,IAAI,MAA2B,CAAC;QAChC,IAAI,CAAC;YACH,8EAA8E;YAC9E,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;YACxF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CACxC,aAAa,EACb,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,YAAY,CAC3B,CAAC;YACF,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/E,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3E,CAAC;QAED,gCAAgC;QAChC,wFAAwF;QACxF,wFAAwF;QACxF,0FAA0F;QAC1F,wFAAwF;QACxF,0FAA0F;QAC1F,+DAA+D;QAC/D,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,aAAa,CAAC,cAAc;oBAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC1F,IAAI,aAAa,CAAC,UAAU;oBAAE,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;gBACxE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;YAC/C,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,MAAe,EACf,OAAgB;QAEhB,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAW,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACxE,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC,EAAE,CAAC;QACd,CAAC,EACD,UAAU,EACV,GAAG,EACH,GAAG,CACJ,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CACrB,YAAoB,EACpB,SAAiB,EACjB,MAAc,EACd,MAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAW,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAE5C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE/F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC1C,OAAO,EACP,YAAY,EACZ,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QACF,IAAI,KAAK,IAAI,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,SAAiB,EACjB,MAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAW,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAE5C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE/F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CACxC,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QACF,IAAI,KAAK,IAAI,MAAM;YAAE,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,+EAA+E;IACvE,iBAAiB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,iCAAiC;IACzB,cAAc;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpC,IAAI,EAAE,IAAI,IAAI;YACZ,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,yCAAyC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAC/D,CAAC;QACJ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,4BAA4B;IAE5B;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,MAAkB;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,8MAA8M,CAC/M,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,sDAAsD,CACvD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAqC,MAAM,CAAC,eAAe,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;YAElC,gFAAgF;YAChF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAQ,CAAC,CAAC;YAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC;gBACpD,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9E,MAAM,EAAE,aAAa;gBACrB,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,kBAAkB,EAAE,EAAE;gBACtB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;gBACjF,MAAM,IAAI,UAAU,CAClB,aAAa,EACb,0BAA0B,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAC7D,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,4EAA4E;YAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnE,MAAM,GAAG,GAAG;gBACV,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,EAAE;gBACb,MAAM;gBACN,KAAK;gBACL,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE,EAAE,EAAE,0EAA0E;aACtF,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC1E,OAAO,WAAW,CAAC,EAAuB,CAAC;YAC7C,CAAC;YACD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC7E,MAAM,WAAW,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,sBAAsB,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,EAAuB,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YAC9D,MAAM,WAAW,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,sBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,iCAAiC;YACjC,6FAA6F;YAC7F,iFAAiF;YACjF,MAAM,CAAC,GAAe,SAAS,CAAM,GAAG,CAAC,IAAI,IAAI,CAAC;YAClD,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,kBAAkB,KAAK,EAAE,CAAC,CAAC;YAEnE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,IAAI,SAAS,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;gBACzE,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,iBAAiB,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,SAAS,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,UAAU,CAAC,eAAe,EAAE,4BAA4B,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,OAAO,KAAK,yBAAyB,WAAW,WAAW,CAC5D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAc;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5D,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,GAAa,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,MAKpB;QACC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/voucher.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ declare function encodeVoucherPayload(canisterId: string, sessionId: string, cum
|
|
|
11
11
|
export interface VoucherSigner {
|
|
12
12
|
sign(payload: Uint8Array): Promise<Uint8Array>;
|
|
13
13
|
getPublicKey(): Promise<Uint8Array>;
|
|
14
|
+
/**
|
|
15
|
+
* 2.17.0: an actor factory whose agent authenticates AS this key. When present, the SDK submits
|
|
16
|
+
* every session call through it, so the canister sees the session key as `msg.caller` and needs
|
|
17
|
+
* no in-canister signature check (`Gateway.consumeVoucherFrom`). When absent, calls go through
|
|
18
|
+
* the client's `actorFactory` and are authenticated by the voucher signature alone (legacy —
|
|
19
|
+
* needs the canister's signed-voucher fallback: on by default in the library, off in the example).
|
|
20
|
+
*/
|
|
21
|
+
actorFactory?: (canisterId: string) => any;
|
|
14
22
|
}
|
|
15
23
|
/**
|
|
16
24
|
* Sign a cumulative voucher for a session.
|
package/dist/voucher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,UAAU,CAEZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,UAAU,CAEZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC;;;;;;OAMG;IAEH,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,GAAG,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
package/dist/voucher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voucher.js","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,oDAAoD;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,MAAM,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;
|
|
1
|
+
{"version":3,"file":"voucher.js","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,oDAAoD;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,MAAM,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAgBD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|