@bsv/wallet-toolbox 2.1.5 → 2.1.6
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/CHANGELOG.md +11 -4
- package/docs/client.md +34 -14
- package/docs/storage.md +24 -0
- package/docs/wallet.md +34 -14
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +153 -1
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +25 -0
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +79 -10
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ This document captures the history of significant changes to the wallet-toolbox
|
|
|
4
4
|
The git commit history contains the details but is unable to draw
|
|
5
5
|
attention to changes that materially alter behavior or extend functionality.
|
|
6
6
|
|
|
7
|
+
## wallet-toolbox 2.1.6
|
|
8
|
+
|
|
9
|
+
- Improve change-making algorithm: cap change outputs per transaction to 8 (gradual UTXO pool build-up, smaller BEEFs). Enforce dynamic dust floor so no change output is worth less than 2× the fee to spend it.
|
|
10
|
+
|
|
7
11
|
## wallet-toolbox 2.1.5
|
|
8
12
|
|
|
9
13
|
- Update deps, docs, lint
|
|
@@ -20,7 +24,7 @@ attention to changes that materially alter behavior or extend functionality.
|
|
|
20
24
|
## wallet-toolbox 2.1.2
|
|
21
25
|
|
|
22
26
|
- Fix Chaintracks no longer hangs if bulk ingestor fails to reach chain tip.
|
|
23
|
-
|
|
27
|
+
|
|
24
28
|
## wallet-toolbox 2.1.1
|
|
25
29
|
|
|
26
30
|
### Add `teratest` and `mock` chain types
|
|
@@ -28,12 +32,14 @@ attention to changes that materially alter behavior or extend functionality.
|
|
|
28
32
|
- Change `Chain` type from `'main' | 'test'` to `'main' | 'test' | 'teratest' | 'mock'`.
|
|
29
33
|
|
|
30
34
|
**`teratest` chain:**
|
|
35
|
+
|
|
31
36
|
- Add ARC URL `https://arc-teratest.taal.com` for the teratest network.
|
|
32
37
|
- Chaintracks URL follows existing `${chain}net-chaintracks.babbage.systems` pattern.
|
|
33
38
|
- WhatsOnChain URL follows existing `https://api.whatsonchain.com/v1/bsv/${network}` pattern.
|
|
34
39
|
- Bitails is not available on teratest (only `main` and `test`).
|
|
35
40
|
|
|
36
41
|
**`mock` chain — full self-contained mock blockchain:**
|
|
42
|
+
|
|
37
43
|
- Add new `src/mockchain/` module with `MockServices`, `MockChainTracker`, `MockMiner`, `MockChainStorage`, and merkle tree utilities.
|
|
38
44
|
- `MockServices` implements the `WalletServices` interface against a local SQLite database (3 tables: `mockchain_block_headers`, `mockchain_transactions`, `mockchain_utxos`).
|
|
39
45
|
- Transactions are validated with full script execution via `@bsv/sdk` `Transaction.verify()`.
|
|
@@ -45,6 +51,7 @@ attention to changes that materially alter behavior or extend functionality.
|
|
|
45
51
|
- `Services` class, `createDefaultWalletServicesOptions`, and external service providers (`WhatsOnChain`, `Bitails`) throw explicit errors if instantiated with `'mock'` chain.
|
|
46
52
|
|
|
47
53
|
**Explicit chain handling across codebase:**
|
|
54
|
+
|
|
48
55
|
- Convert chain-dependent ternaries to explicit switch statements in `toWalletNetwork`, `genesisHeader`, `Bitails` constructor, WoC WebSocket ingestors, and `ChaintracksStorageNoDb`.
|
|
49
56
|
- Each chain value (`main`, `test`, `teratest`, `mock`) is handled explicitly rather than falling through a catch-all else branch.
|
|
50
57
|
|
|
@@ -52,7 +59,7 @@ attention to changes that materially alter behavior or extend functionality.
|
|
|
52
59
|
|
|
53
60
|
Optimize createAction (fewer db transactions)
|
|
54
61
|
Add postBeef services soft timeout failover
|
|
55
|
-
PR 130 randomBytesHex in Setup
|
|
62
|
+
PR 130 randomBytesHex in Setup
|
|
56
63
|
|
|
57
64
|
## wallet-toolbox 2.0.23
|
|
58
65
|
|
|
@@ -358,7 +365,7 @@ Changes to improve computing balances (sum of satoshis) over various sets of wal
|
|
|
358
365
|
## wallet-toolbox 1.3.29
|
|
359
366
|
|
|
360
367
|
- add verifyUnlockScripts to both createAction and signAction flows
|
|
361
|
-
|
|
368
|
+
|
|
362
369
|
## wallet-toolbox 1.3.28
|
|
363
370
|
|
|
364
371
|
- adminStats now includes monitorStats and servicesStats of type ServicesCallHistory (wallet-toolbox/src/sdk/WalletServices.interfaces.ts)
|
|
@@ -389,7 +396,7 @@ New outputs created by `createAction` / `signAction` that are NOT assigned to a
|
|
|
389
396
|
Implications:
|
|
390
397
|
|
|
391
398
|
- Outputs transferred to a second party, either through internalizeAction or custom means, MUST NOT be assigned to a basket
|
|
392
|
-
as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
|
|
399
|
+
as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
|
|
393
400
|
- These outputs will NOT be returned by `listOutputs`, as it only returns spendable outputs.
|
|
394
401
|
- These outputs WILL be returned by `listActions` with the includeOutputs option set to true.
|
|
395
402
|
- Your wallet will mark any output you include as inputs in your own transactions as spent at the time of transaction creation.
|
package/docs/client.md
CHANGED
|
@@ -2917,6 +2917,7 @@ export interface GenerateChangeSdkParams {
|
|
|
2917
2917
|
changeFirstSatoshis: number;
|
|
2918
2918
|
changeLockingScriptLength: number;
|
|
2919
2919
|
changeUnlockingScriptLength: number;
|
|
2920
|
+
maxChangeOutputs?: number;
|
|
2920
2921
|
randomVals?: number[];
|
|
2921
2922
|
noLogging?: boolean;
|
|
2922
2923
|
log?: string;
|
|
@@ -2963,6 +2964,19 @@ For P2PKH template, 107 bytes
|
|
|
2963
2964
|
changeUnlockingScriptLength: number
|
|
2964
2965
|
```
|
|
2965
2966
|
|
|
2967
|
+
###### Property maxChangeOutputs
|
|
2968
|
+
|
|
2969
|
+
Maximum number of change outputs to create in this transaction.
|
|
2970
|
+
Defaults to `maxChangeOutputsPerTransaction` (8).
|
|
2971
|
+
|
|
2972
|
+
Callers may override this to allow more outputs in special cases (e.g.
|
|
2973
|
+
consolidation transactions) or fewer outputs when a compact transaction
|
|
2974
|
+
is preferred.
|
|
2975
|
+
|
|
2976
|
+
```ts
|
|
2977
|
+
maxChangeOutputs?: number
|
|
2978
|
+
```
|
|
2979
|
+
|
|
2966
2980
|
###### Property targetNetCount
|
|
2967
2981
|
|
|
2968
2982
|
Target for number of new change outputs added minus number of funding change outputs consumed.
|
|
@@ -19528,20 +19542,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
19528
19542
|
---
|
|
19529
19543
|
#### Variables
|
|
19530
19544
|
|
|
19531
|
-
| | |
|
|
19532
|
-
| --- | --- |
|
|
19533
|
-
| [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [
|
|
19534
|
-
| [DEFAULT_SETTINGS](#variable-default_settings) | [
|
|
19535
|
-
| [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [
|
|
19536
|
-
| [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [
|
|
19537
|
-
| [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [
|
|
19538
|
-
| [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [
|
|
19539
|
-
| [aggregateActionResults](#variable-aggregateactionresults) | [
|
|
19540
|
-
| [brc29ProtocolID](#variable-brc29protocolid) | [
|
|
19541
|
-
| [dirtyHashes](#variable-dirtyhashes) | [
|
|
19542
|
-
| [getLabelToSpecOp](#variable-getlabeltospecop) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
|
|
19543
|
-
| [logger](#variable-logger) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
|
|
19544
|
-
| [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
|
|
19545
|
+
| | | |
|
|
19546
|
+
| --- | --- | --- |
|
|
19547
|
+
| [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpNoSendActions](#variable-specopnosendactions) |
|
|
19548
|
+
| [DEFAULT_SETTINGS](#variable-default_settings) | [logger](#variable-logger) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
|
|
19549
|
+
| [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
|
|
19550
|
+
| [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [specOpWalletBalance](#variable-specopwalletbalance) |
|
|
19551
|
+
| [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
|
|
19552
|
+
| [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [parseResults](#variable-parseresults) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
|
|
19553
|
+
| [aggregateActionResults](#variable-aggregateactionresults) | [queryOverlay](#variable-queryoverlay) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
|
|
19554
|
+
| [brc29ProtocolID](#variable-brc29protocolid) | [specOpFailedActions](#variable-specopfailedactions) | |
|
|
19555
|
+
| [dirtyHashes](#variable-dirtyhashes) | [specOpInvalidChange](#variable-specopinvalidchange) | |
|
|
19545
19556
|
|
|
19546
19557
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19547
19558
|
|
|
@@ -19777,6 +19788,15 @@ logger = (message: string, ...optionalParams: any[]): void => {
|
|
|
19777
19788
|
|
|
19778
19789
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19779
19790
|
|
|
19791
|
+
---
|
|
19792
|
+
##### Variable: maxChangeOutputsPerTransaction
|
|
19793
|
+
|
|
19794
|
+
```ts
|
|
19795
|
+
maxChangeOutputsPerTransaction = 8
|
|
19796
|
+
```
|
|
19797
|
+
|
|
19798
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19799
|
+
|
|
19780
19800
|
---
|
|
19781
19801
|
##### Variable: maxPossibleSatoshis
|
|
19782
19802
|
|
package/docs/storage.md
CHANGED
|
@@ -176,6 +176,7 @@ export interface GenerateChangeSdkParams {
|
|
|
176
176
|
changeFirstSatoshis: number;
|
|
177
177
|
changeLockingScriptLength: number;
|
|
178
178
|
changeUnlockingScriptLength: number;
|
|
179
|
+
maxChangeOutputs?: number;
|
|
179
180
|
randomVals?: number[];
|
|
180
181
|
noLogging?: boolean;
|
|
181
182
|
log?: string;
|
|
@@ -222,6 +223,19 @@ For P2PKH template, 107 bytes
|
|
|
222
223
|
changeUnlockingScriptLength: number
|
|
223
224
|
```
|
|
224
225
|
|
|
226
|
+
###### Property maxChangeOutputs
|
|
227
|
+
|
|
228
|
+
Maximum number of change outputs to create in this transaction.
|
|
229
|
+
Defaults to `maxChangeOutputsPerTransaction` (8).
|
|
230
|
+
|
|
231
|
+
Callers may override this to allow more outputs in special cases (e.g.
|
|
232
|
+
consolidation transactions) or fewer outputs when a compact transaction
|
|
233
|
+
is preferred.
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
maxChangeOutputs?: number
|
|
237
|
+
```
|
|
238
|
+
|
|
225
239
|
###### Property targetNetCount
|
|
226
240
|
|
|
227
241
|
Target for number of new change outputs added minus number of funding change outputs consumed.
|
|
@@ -5142,6 +5156,7 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
5142
5156
|
| |
|
|
5143
5157
|
| --- |
|
|
5144
5158
|
| [getLabelToSpecOp](#variable-getlabeltospecop) |
|
|
5159
|
+
| [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) |
|
|
5145
5160
|
| [maxPossibleSatoshis](#variable-maxpossiblesatoshis) |
|
|
5146
5161
|
| [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) |
|
|
5147
5162
|
| [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
|
|
@@ -5192,6 +5207,15 @@ See also: [AuthId](./client.md#interface-authid), [ListActionsSpecOp](./storage.
|
|
|
5192
5207
|
|
|
5193
5208
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
5194
5209
|
|
|
5210
|
+
---
|
|
5211
|
+
##### Variable: maxChangeOutputsPerTransaction
|
|
5212
|
+
|
|
5213
|
+
```ts
|
|
5214
|
+
maxChangeOutputsPerTransaction = 8
|
|
5215
|
+
```
|
|
5216
|
+
|
|
5217
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
5218
|
+
|
|
5195
5219
|
---
|
|
5196
5220
|
##### Variable: maxPossibleSatoshis
|
|
5197
5221
|
|
package/docs/wallet.md
CHANGED
|
@@ -2917,6 +2917,7 @@ export interface GenerateChangeSdkParams {
|
|
|
2917
2917
|
changeFirstSatoshis: number;
|
|
2918
2918
|
changeLockingScriptLength: number;
|
|
2919
2919
|
changeUnlockingScriptLength: number;
|
|
2920
|
+
maxChangeOutputs?: number;
|
|
2920
2921
|
randomVals?: number[];
|
|
2921
2922
|
noLogging?: boolean;
|
|
2922
2923
|
log?: string;
|
|
@@ -2963,6 +2964,19 @@ For P2PKH template, 107 bytes
|
|
|
2963
2964
|
changeUnlockingScriptLength: number
|
|
2964
2965
|
```
|
|
2965
2966
|
|
|
2967
|
+
###### Property maxChangeOutputs
|
|
2968
|
+
|
|
2969
|
+
Maximum number of change outputs to create in this transaction.
|
|
2970
|
+
Defaults to `maxChangeOutputsPerTransaction` (8).
|
|
2971
|
+
|
|
2972
|
+
Callers may override this to allow more outputs in special cases (e.g.
|
|
2973
|
+
consolidation transactions) or fewer outputs when a compact transaction
|
|
2974
|
+
is preferred.
|
|
2975
|
+
|
|
2976
|
+
```ts
|
|
2977
|
+
maxChangeOutputs?: number
|
|
2978
|
+
```
|
|
2979
|
+
|
|
2966
2980
|
###### Property targetNetCount
|
|
2967
2981
|
|
|
2968
2982
|
Target for number of new change outputs added minus number of funding change outputs consumed.
|
|
@@ -19528,20 +19542,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
19528
19542
|
---
|
|
19529
19543
|
#### Variables
|
|
19530
19544
|
|
|
19531
|
-
| | |
|
|
19532
|
-
| --- | --- |
|
|
19533
|
-
| [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [
|
|
19534
|
-
| [DEFAULT_SETTINGS](#variable-default_settings) | [
|
|
19535
|
-
| [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [
|
|
19536
|
-
| [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [
|
|
19537
|
-
| [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [
|
|
19538
|
-
| [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [
|
|
19539
|
-
| [aggregateActionResults](#variable-aggregateactionresults) | [
|
|
19540
|
-
| [brc29ProtocolID](#variable-brc29protocolid) | [
|
|
19541
|
-
| [dirtyHashes](#variable-dirtyhashes) | [
|
|
19542
|
-
| [getLabelToSpecOp](#variable-getlabeltospecop) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
|
|
19543
|
-
| [logger](#variable-logger) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
|
|
19544
|
-
| [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
|
|
19545
|
+
| | | |
|
|
19546
|
+
| --- | --- | --- |
|
|
19547
|
+
| [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [getLabelToSpecOp](#variable-getlabeltospecop) | [specOpNoSendActions](#variable-specopnosendactions) |
|
|
19548
|
+
| [DEFAULT_SETTINGS](#variable-default_settings) | [logger](#variable-logger) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
|
|
19549
|
+
| [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [maxChangeOutputsPerTransaction](#variable-maxchangeoutputspertransaction) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
|
|
19550
|
+
| [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [specOpWalletBalance](#variable-specopwalletbalance) |
|
|
19551
|
+
| [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
|
|
19552
|
+
| [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [parseResults](#variable-parseresults) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
|
|
19553
|
+
| [aggregateActionResults](#variable-aggregateactionresults) | [queryOverlay](#variable-queryoverlay) | [validBulkHeaderFiles](#variable-validbulkheaderfiles) |
|
|
19554
|
+
| [brc29ProtocolID](#variable-brc29protocolid) | [specOpFailedActions](#variable-specopfailedactions) | |
|
|
19555
|
+
| [dirtyHashes](#variable-dirtyhashes) | [specOpInvalidChange](#variable-specopinvalidchange) | |
|
|
19545
19556
|
|
|
19546
19557
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19547
19558
|
|
|
@@ -19777,6 +19788,15 @@ logger = (message: string, ...optionalParams: any[]): void => {
|
|
|
19777
19788
|
|
|
19778
19789
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19779
19790
|
|
|
19791
|
+
---
|
|
19792
|
+
##### Variable: maxChangeOutputsPerTransaction
|
|
19793
|
+
|
|
19794
|
+
```ts
|
|
19795
|
+
maxChangeOutputsPerTransaction = 8
|
|
19796
|
+
```
|
|
19797
|
+
|
|
19798
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
19799
|
+
|
|
19780
19800
|
---
|
|
19781
19801
|
##### Variable: maxPossibleSatoshis
|
|
19782
19802
|
|
|
@@ -824,7 +824,10 @@ describe('generateChange tests', () => {
|
|
|
824
824
|
{
|
|
825
825
|
n: 14,
|
|
826
826
|
d: d14,
|
|
827
|
-
|
|
827
|
+
// targetNetCount=22 is capped to maxChangeOutputsPerTransaction=8; algorithm now
|
|
828
|
+
// allocates 8 inputs and creates 8 change outputs rather than starvation-reducing
|
|
829
|
+
// to 1 input / 1 output.
|
|
830
|
+
er: '{"allocatedChangeInputs":[{"satoshis":1000,"outputId":18495,"spendable":false},{"satoshis":1000,"outputId":18494,"spendable":false},{"satoshis":1000,"outputId":18493,"spendable":false},{"satoshis":1000,"outputId":18492,"spendable":false},{"satoshis":1000,"outputId":18491,"spendable":false},{"satoshis":1000,"outputId":18490,"spendable":false},{"satoshis":1000,"outputId":18489,"spendable":false},{"satoshis":995,"outputId":16190,"spendable":false}],"changeOutputs":[{"satoshis":988,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25},{"satoshis":1000,"lockingScriptLength":25}],"size":1616,"fee":4,"satsPerKb":2}'
|
|
828
831
|
},
|
|
829
832
|
{
|
|
830
833
|
n: 13,
|
|
@@ -882,6 +885,155 @@ describe('generateChange tests', () => {
|
|
|
882
885
|
expectTransactionSize(params, r);
|
|
883
886
|
}
|
|
884
887
|
});
|
|
888
|
+
// ── New tests for maxChangeOutputs cap and dust floor ───────────────────
|
|
889
|
+
test('9 maxChangeOutputs cap: large targetNetCount limited to maxChangeOutputsPerTransaction', async () => {
|
|
890
|
+
// targetNetCount of 50 should be capped to maxChangeOutputsPerTransaction (8)
|
|
891
|
+
const params = {
|
|
892
|
+
...defParams,
|
|
893
|
+
fixedInputs: [],
|
|
894
|
+
fixedOutputs: [],
|
|
895
|
+
targetNetCount: 50
|
|
896
|
+
};
|
|
897
|
+
// Provide plenty of funding (one large UTXO simulating a fresh import)
|
|
898
|
+
const availableChange = [
|
|
899
|
+
{ satoshis: 100000000, outputId: 1 } // 1 BSV
|
|
900
|
+
];
|
|
901
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
|
|
902
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
903
|
+
// Must not exceed the cap regardless of how large targetNetCount is
|
|
904
|
+
expect(r.changeOutputs.length).toBeLessThanOrEqual(generateChange_1.maxChangeOutputsPerTransaction);
|
|
905
|
+
// Should be exactly the cap since we have plenty of funds
|
|
906
|
+
expect(r.changeOutputs.length).toBe(generateChange_1.maxChangeOutputsPerTransaction);
|
|
907
|
+
// Sanity: transaction must balance
|
|
908
|
+
expectTransactionSize(params, r);
|
|
909
|
+
});
|
|
910
|
+
test('9a maxChangeOutputs cap: custom override via params', async () => {
|
|
911
|
+
// Caller can raise or lower the cap via the maxChangeOutputs param
|
|
912
|
+
const params = {
|
|
913
|
+
...defParams,
|
|
914
|
+
fixedInputs: [],
|
|
915
|
+
fixedOutputs: [],
|
|
916
|
+
targetNetCount: 50,
|
|
917
|
+
maxChangeOutputs: 3 // override to a smaller value
|
|
918
|
+
};
|
|
919
|
+
const availableChange = [{ satoshis: 100000000, outputId: 1 }];
|
|
920
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
|
|
921
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
922
|
+
expect(r.changeOutputs.length).toBeLessThanOrEqual(3);
|
|
923
|
+
expectTransactionSize(params, r);
|
|
924
|
+
});
|
|
925
|
+
test('9b maxChangeOutputs cap: gradual pool build-up over multiple transactions', async () => {
|
|
926
|
+
// Simulates a user importing one large UTXO and making sequential actions.
|
|
927
|
+
// Each action should add at most maxChangeOutputsPerTransaction net new outputs.
|
|
928
|
+
// After N rounds, the UTXO pool should equal N * maxChangeOutputsPerTransaction.
|
|
929
|
+
let nextId = 1;
|
|
930
|
+
// Start with a single large imported UTXO
|
|
931
|
+
let utxoPool = [{ satoshis: 100000000, outputId: nextId++ }];
|
|
932
|
+
const rounds = 3;
|
|
933
|
+
for (let round = 0; round < rounds; round++) {
|
|
934
|
+
const currentCount = utxoPool.length - 1; // one will be consumed as input
|
|
935
|
+
const params = {
|
|
936
|
+
...defParams,
|
|
937
|
+
fixedInputs: [],
|
|
938
|
+
fixedOutputs: [{ satoshis: 1000, lockingScriptLength: 25 }],
|
|
939
|
+
targetNetCount: 144 - currentCount, // always trying to reach 144
|
|
940
|
+
randomVals: undefined // use real random for this test
|
|
941
|
+
};
|
|
942
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)([...utxoPool]);
|
|
943
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
944
|
+
// Net new outputs per transaction must respect the cap
|
|
945
|
+
const netNew = r.changeOutputs.length - r.allocatedChangeInputs.length;
|
|
946
|
+
expect(netNew).toBeLessThanOrEqual(generateChange_1.maxChangeOutputsPerTransaction);
|
|
947
|
+
expectTransactionSize(params, r);
|
|
948
|
+
// Simulate the transaction confirming: remove spent inputs, add new outputs
|
|
949
|
+
const spentIds = new Set(r.allocatedChangeInputs.map(i => i.outputId));
|
|
950
|
+
utxoPool = utxoPool.filter(u => !spentIds.has(u.outputId));
|
|
951
|
+
// Add new change outputs to the pool (with fresh unique outputIds)
|
|
952
|
+
for (const o of r.changeOutputs) {
|
|
953
|
+
utxoPool.push({ satoshis: o.satoshis, outputId: nextId++ });
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
// After `rounds` transactions, we should have grown by at most
|
|
957
|
+
// rounds * maxChangeOutputsPerTransaction UTXOs net of the spent ones.
|
|
958
|
+
// (The initial large UTXO is consumed in round 0.)
|
|
959
|
+
expect(utxoPool.length).toBeLessThanOrEqual(rounds * generateChange_1.maxChangeOutputsPerTransaction);
|
|
960
|
+
});
|
|
961
|
+
test('10 dust floor: no change output below economically viable minimum', async () => {
|
|
962
|
+
// At 110 sat/kb the dust floor is:
|
|
963
|
+
// minSpendTxSize = transactionSize([107], [25]) = 4 + 1 + 148 + 1 + 34 + 4 = 192 bytes
|
|
964
|
+
// dustFloor = max(1, ceil(192/1000 * 110) * 2) = max(1, ceil(21.12) * 2) = 44 sats
|
|
965
|
+
const params = {
|
|
966
|
+
...defParams,
|
|
967
|
+
fixedInputs: [],
|
|
968
|
+
fixedOutputs: [{ satoshis: 1, lockingScriptLength: 25 }],
|
|
969
|
+
feeModel: { model: 'sat/kb', value: 110 },
|
|
970
|
+
changeInitialSatoshis: 1000,
|
|
971
|
+
changeFirstSatoshis: 285,
|
|
972
|
+
targetNetCount: 4
|
|
973
|
+
};
|
|
974
|
+
const availableChange = [
|
|
975
|
+
{ satoshis: 268076, outputId: 16671 },
|
|
976
|
+
{ satoshis: 2999799, outputId: 16677 },
|
|
977
|
+
{ satoshis: 14030, outputId: 21194 },
|
|
978
|
+
{ satoshis: 100925, outputId: 21224 }
|
|
979
|
+
];
|
|
980
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
|
|
981
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
982
|
+
// Every change output must be at or above the dust floor for 110 sat/kb
|
|
983
|
+
const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 110) * 2);
|
|
984
|
+
for (const o of r.changeOutputs) {
|
|
985
|
+
expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
|
|
986
|
+
}
|
|
987
|
+
expectTransactionSize(params, r);
|
|
988
|
+
});
|
|
989
|
+
test('10a dust floor: changeFirstSatoshis below floor is raised to floor', async () => {
|
|
990
|
+
// At 500 sat/kb:
|
|
991
|
+
// dustFloor = max(1, ceil(192/1000 * 500) * 2) = max(1, ceil(96) * 2) = 192 sats
|
|
992
|
+
// changeFirstSatoshis=10 and changeInitialSatoshis=30 are both below the floor.
|
|
993
|
+
const params = {
|
|
994
|
+
...defParams,
|
|
995
|
+
fixedInputs: [],
|
|
996
|
+
fixedOutputs: [{ satoshis: 100, lockingScriptLength: 25 }],
|
|
997
|
+
feeModel: { model: 'sat/kb', value: 500 },
|
|
998
|
+
changeInitialSatoshis: 30, // below dust floor at this fee rate
|
|
999
|
+
changeFirstSatoshis: 10, // below dust floor at this fee rate
|
|
1000
|
+
targetNetCount: 3,
|
|
1001
|
+
randomVals: undefined
|
|
1002
|
+
};
|
|
1003
|
+
const availableChange = [{ satoshis: 100000, outputId: 1 }];
|
|
1004
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
|
|
1005
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
1006
|
+
const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 500) * 2);
|
|
1007
|
+
for (const o of r.changeOutputs) {
|
|
1008
|
+
expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
|
|
1009
|
+
}
|
|
1010
|
+
expectTransactionSize(params, r);
|
|
1011
|
+
});
|
|
1012
|
+
test('10b dust floor: excess distribution sweep removes sub-floor outputs', async () => {
|
|
1013
|
+
// Use a very low fee rate so a single change input is enough to fund the
|
|
1014
|
+
// transaction, then use a high fee rate to make the changeFirstSatoshis
|
|
1015
|
+
// dangerously small. We want the sweep-after-distribution to kick in.
|
|
1016
|
+
// At 200 sat/kb: dustFloor = max(1, ceil(192/1000 * 200) * 2) = max(1, ceil(38.4)*2) = 78 sats.
|
|
1017
|
+
// With changeFirstSatoshis=50 (< 78) the first change output will be raised to 78.
|
|
1018
|
+
const params = {
|
|
1019
|
+
...defParams,
|
|
1020
|
+
fixedInputs: [],
|
|
1021
|
+
fixedOutputs: [{ satoshis: 500, lockingScriptLength: 25 }],
|
|
1022
|
+
feeModel: { model: 'sat/kb', value: 200 },
|
|
1023
|
+
changeInitialSatoshis: 1000,
|
|
1024
|
+
changeFirstSatoshis: 50, // below dust floor for 200 sat/kb
|
|
1025
|
+
targetNetCount: 2,
|
|
1026
|
+
randomVals: undefined
|
|
1027
|
+
};
|
|
1028
|
+
const availableChange = [{ satoshis: 50000, outputId: 1 }];
|
|
1029
|
+
const { allocateChangeInput, releaseChangeInput } = (0, generateChange_1.generateChangeSdkMakeStorage)(availableChange);
|
|
1030
|
+
const r = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput);
|
|
1031
|
+
const expectedDustFloor = Math.max(1, Math.ceil((192 / 1000) * 200) * 2);
|
|
1032
|
+
for (const o of r.changeOutputs) {
|
|
1033
|
+
expect(o.satoshis).toBeGreaterThanOrEqual(expectedDustFloor);
|
|
1034
|
+
}
|
|
1035
|
+
expectTransactionSize(params, r);
|
|
1036
|
+
});
|
|
885
1037
|
});
|
|
886
1038
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
887
1039
|
async function expectToThrowWERR(expectedClass, fn) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateChangeSdk.test.js","sourceRoot":"","sources":["../../../../../../src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts"],"names":[],"mappings":"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EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;gBAC7C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK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"}
|
|
1
|
+
{"version":3,"file":"generateChangeSdk.test.js","sourceRoot":"","sources":["../../../../../../src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts"],"names":[],"mappings":"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EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpC;KACF,CAAA;IACD,MAAM,EAAE,GAAa;QACnB,CAAC,EAAE;YACD,WAAW,EAAE,EAAE;YACf,YAAY,EAAE;gBACZ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE;gBAC7C,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE;aAC3C;YACD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,GAAG;YACxB,yBAAyB,EAAE,EAAE;YAC7B,2BAA2B,EAAE,GAAG;SACjC;QACD,eAAe,EAAE;YACf,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACnC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK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"}
|
|
@@ -4,6 +4,22 @@ import { StorageFeeModel } from '../../sdk/WalletStorage.interfaces';
|
|
|
4
4
|
* An output of this satoshis amount will be adjusted to the largest fundable amount.
|
|
5
5
|
*/
|
|
6
6
|
export declare const maxPossibleSatoshis = 2099999999999999;
|
|
7
|
+
/**
|
|
8
|
+
* Maximum number of change outputs to create in a single transaction.
|
|
9
|
+
*
|
|
10
|
+
* Limits how aggressively the wallet builds up its UTXO pool in one shot.
|
|
11
|
+
* When a user first imports a large UTXO, without this cap the wallet would
|
|
12
|
+
* attempt to create `numberOfDesiredUTXOs` change outputs in a single
|
|
13
|
+
* transaction. That produces a very large transaction whose raw bytes are
|
|
14
|
+
* embedded in the BEEF of every subsequent child transaction, bloating those
|
|
15
|
+
* BEEFs and slowing down external processors.
|
|
16
|
+
*
|
|
17
|
+
* With this cap the UTXO pool builds gradually — at most 8 net new change
|
|
18
|
+
* outputs per transaction — so no single transaction becomes unreasonably
|
|
19
|
+
* large. A pool of 144 desired UTXOs fills over roughly 18 transactions
|
|
20
|
+
* rather than 1.
|
|
21
|
+
*/
|
|
22
|
+
export declare const maxChangeOutputsPerTransaction = 8;
|
|
7
23
|
export interface GenerateChangeSdkResult {
|
|
8
24
|
allocatedChangeInputs: GenerateChangeSdkChangeInput[];
|
|
9
25
|
changeOutputs: GenerateChangeSdkChangeOutput[];
|
|
@@ -61,6 +77,15 @@ export interface GenerateChangeSdkParams {
|
|
|
61
77
|
* For P2PKH template, 107 bytes
|
|
62
78
|
*/
|
|
63
79
|
changeUnlockingScriptLength: number;
|
|
80
|
+
/**
|
|
81
|
+
* Maximum number of change outputs to create in this transaction.
|
|
82
|
+
* Defaults to `maxChangeOutputsPerTransaction` (8).
|
|
83
|
+
*
|
|
84
|
+
* Callers may override this to allow more outputs in special cases (e.g.
|
|
85
|
+
* consolidation transactions) or fewer outputs when a compact transaction
|
|
86
|
+
* is preferred.
|
|
87
|
+
*/
|
|
88
|
+
maxChangeOutputs?: number;
|
|
64
89
|
randomVals?: number[];
|
|
65
90
|
noLogging?: boolean;
|
|
66
91
|
log?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateChange.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAMpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,4BAA4B,EAAE,CAAA;IACrD,aAAa,EAAE,6BAA6B,EAAE,CAAA;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B,CAAC,EAAE;QAC9B,gBAAgB,EAAE,MAAM,CAAA;QACxB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,mBAAmB,EAAE,CACnB,cAAc,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,KACnB,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC,EACtD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACvD,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"generateChange.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.maxPossibleSatoshis = void 0;
|
|
3
|
+
exports.maxChangeOutputsPerTransaction = exports.maxPossibleSatoshis = void 0;
|
|
4
4
|
exports.generateChangeSdk = generateChangeSdk;
|
|
5
5
|
exports.validateGenerateChangeSdkResult = validateGenerateChangeSdkResult;
|
|
6
6
|
exports.validateGenerateChangeSdkParams = validateGenerateChangeSdkParams;
|
|
@@ -14,6 +14,22 @@ const utils_1 = require("./utils");
|
|
|
14
14
|
* An output of this satoshis amount will be adjusted to the largest fundable amount.
|
|
15
15
|
*/
|
|
16
16
|
exports.maxPossibleSatoshis = 2099999999999999;
|
|
17
|
+
/**
|
|
18
|
+
* Maximum number of change outputs to create in a single transaction.
|
|
19
|
+
*
|
|
20
|
+
* Limits how aggressively the wallet builds up its UTXO pool in one shot.
|
|
21
|
+
* When a user first imports a large UTXO, without this cap the wallet would
|
|
22
|
+
* attempt to create `numberOfDesiredUTXOs` change outputs in a single
|
|
23
|
+
* transaction. That produces a very large transaction whose raw bytes are
|
|
24
|
+
* embedded in the BEEF of every subsequent child transaction, bloating those
|
|
25
|
+
* BEEFs and slowing down external processors.
|
|
26
|
+
*
|
|
27
|
+
* With this cap the UTXO pool builds gradually — at most 8 net new change
|
|
28
|
+
* outputs per transaction — so no single transaction becomes unreasonably
|
|
29
|
+
* large. A pool of 144 desired UTXOs fills over roughly 18 transactions
|
|
30
|
+
* rather than 1.
|
|
31
|
+
*/
|
|
32
|
+
exports.maxChangeOutputsPerTransaction = 8;
|
|
17
33
|
/**
|
|
18
34
|
* Simplifications:
|
|
19
35
|
* - only support one change type with fixed length scripts.
|
|
@@ -25,6 +41,7 @@ exports.maxPossibleSatoshis = 2099999999999999;
|
|
|
25
41
|
* @returns
|
|
26
42
|
*/
|
|
27
43
|
async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput, logger) {
|
|
44
|
+
var _a;
|
|
28
45
|
if (params.noLogging === false)
|
|
29
46
|
logGenerateChangeSdkParams(params);
|
|
30
47
|
const r = {
|
|
@@ -38,6 +55,25 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
38
55
|
try {
|
|
39
56
|
const vgcpr = validateGenerateChangeSdkParams(params);
|
|
40
57
|
const satsPerKb = params.feeModel.value || 0;
|
|
58
|
+
/**
|
|
59
|
+
* Minimum satoshi value for a change output to be economically viable.
|
|
60
|
+
*
|
|
61
|
+
* A change output is worthless if the fee required to spend it in a
|
|
62
|
+
* future transaction equals or exceeds its value. We compute the size
|
|
63
|
+
* of the smallest possible spend transaction (1 change input, 1 change
|
|
64
|
+
* output) and require each change output to be worth at least 2× that
|
|
65
|
+
* fee so the output still has meaningful value after it is spent.
|
|
66
|
+
*
|
|
67
|
+
* The absolute floor of 1 prevents nonsensical behaviour at fee rate 0.
|
|
68
|
+
*/
|
|
69
|
+
const minSpendTxSize = (0, utils_1.transactionSize)([params.changeUnlockingScriptLength], [params.changeLockingScriptLength]);
|
|
70
|
+
const dustFloor = Math.max(1, Math.ceil((minSpendTxSize / 1000) * satsPerKb) * 2);
|
|
71
|
+
/**
|
|
72
|
+
* Effective cap on change outputs created in this transaction.
|
|
73
|
+
* Applies the per-transaction limit so that the UTXO pool grows
|
|
74
|
+
* gradually rather than all at once.
|
|
75
|
+
*/
|
|
76
|
+
const maxChangeOutputs = (_a = params.maxChangeOutputs) !== null && _a !== void 0 ? _a : exports.maxChangeOutputsPerTransaction;
|
|
41
77
|
const randomVals = [...(params.randomVals || [])];
|
|
42
78
|
const randomValsUsed = [];
|
|
43
79
|
const nextRandomVal = () => {
|
|
@@ -122,7 +158,9 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
122
158
|
let feeExcessNow = 0;
|
|
123
159
|
feeExcess();
|
|
124
160
|
const hasTargetNetCount = params.targetNetCount !== undefined;
|
|
125
|
-
|
|
161
|
+
// Cap targetNetCount to maxChangeOutputs so the UTXO pool grows gradually
|
|
162
|
+
// rather than trying to reach numberOfDesiredUTXOs in a single transaction.
|
|
163
|
+
const targetNetCount = Math.min(params.targetNetCount || 0, maxChangeOutputs);
|
|
126
164
|
// current net change in count of change outputs
|
|
127
165
|
const netChangeCount = () => {
|
|
128
166
|
return r.changeOutputs.length - r.allocatedChangeInputs.length;
|
|
@@ -130,6 +168,9 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
130
168
|
const addOutputToBalanceNewInput = () => {
|
|
131
169
|
if (!hasTargetNetCount)
|
|
132
170
|
return false;
|
|
171
|
+
// Also respect the absolute cap on change output count.
|
|
172
|
+
if (r.changeOutputs.length >= maxChangeOutputs)
|
|
173
|
+
return false;
|
|
133
174
|
return netChangeCount() - 1 < targetNetCount;
|
|
134
175
|
};
|
|
135
176
|
const releaseAllocatedChangeInputs = async () => {
|
|
@@ -143,10 +184,14 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
143
184
|
};
|
|
144
185
|
// If we'd like to have more change outputs create them now.
|
|
145
186
|
// They may be removed if it turns out we can't fund them.
|
|
146
|
-
|
|
147
|
-
|
|
187
|
+
// Respect the per-transaction cap and ensure each output meets the dust floor.
|
|
188
|
+
while (r.changeOutputs.length < maxChangeOutputs &&
|
|
189
|
+
((hasTargetNetCount && targetNetCount > netChangeCount()) || (r.changeOutputs.length === 0 && feeExcess() > 0))) {
|
|
190
|
+
const satoshis = r.changeOutputs.length === 0
|
|
191
|
+
? Math.max(dustFloor, params.changeFirstSatoshis)
|
|
192
|
+
: Math.max(dustFloor, params.changeInitialSatoshis);
|
|
148
193
|
r.changeOutputs.push({
|
|
149
|
-
satoshis
|
|
194
|
+
satoshis,
|
|
150
195
|
lockingScriptLength: params.changeLockingScriptLength
|
|
151
196
|
});
|
|
152
197
|
}
|
|
@@ -168,11 +213,16 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
168
213
|
}
|
|
169
214
|
r.allocatedChangeInputs.push(allocatedChangeInput);
|
|
170
215
|
if (!removingOutputs && feeExcess() > 0) {
|
|
171
|
-
if (ao == 1 || r.changeOutputs.length === 0) {
|
|
172
|
-
r.changeOutputs.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
216
|
+
if ((ao == 1 || r.changeOutputs.length === 0) && r.changeOutputs.length < maxChangeOutputs) {
|
|
217
|
+
const cap = r.changeOutputs.length === 0 ? params.changeFirstSatoshis : params.changeInitialSatoshis;
|
|
218
|
+
const satoshis = Math.min(feeExcess(), Math.max(dustFloor, cap));
|
|
219
|
+
// Only add the output if it can meet the dust floor.
|
|
220
|
+
if (satoshis >= dustFloor) {
|
|
221
|
+
r.changeOutputs.push({
|
|
222
|
+
satoshis,
|
|
223
|
+
lockingScriptLength: params.changeLockingScriptLength
|
|
224
|
+
});
|
|
225
|
+
}
|
|
176
226
|
}
|
|
177
227
|
}
|
|
178
228
|
return true;
|
|
@@ -262,6 +312,25 @@ async function generateChangeSdk(params, allocateChangeInput, releaseChangeInput
|
|
|
262
312
|
r.changeOutputs[index].satoshis += sats;
|
|
263
313
|
}
|
|
264
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Remove any change outputs that ended up below the dust floor after
|
|
317
|
+
* distribution, consolidating their satoshis into the largest remaining
|
|
318
|
+
* output. This can occur when the excess distribution leaves a small
|
|
319
|
+
* output that is uneconomical to spend in a future transaction.
|
|
320
|
+
*
|
|
321
|
+
* We iterate in reverse so that splicing does not disturb earlier indices.
|
|
322
|
+
* We always keep at least one change output — the loop guarantees at least
|
|
323
|
+
* one output remains because we only remove if `r.changeOutputs.length > 1`.
|
|
324
|
+
*/
|
|
325
|
+
for (let i = r.changeOutputs.length - 1; i >= 0; i--) {
|
|
326
|
+
if (r.changeOutputs[i].satoshis < dustFloor && r.changeOutputs.length > 1) {
|
|
327
|
+
const [removed] = r.changeOutputs.splice(i, 1);
|
|
328
|
+
// Add the removed sats to the largest remaining output so no sats are lost.
|
|
329
|
+
const largest = r.changeOutputs.reduce((best, o) => (o.satoshis > best.satoshis ? o : best), r.changeOutputs[0]);
|
|
330
|
+
largest.satoshis += removed.satoshis;
|
|
331
|
+
// feeExcessNow does not need updating: total change satoshis are unchanged.
|
|
332
|
+
}
|
|
333
|
+
}
|
|
265
334
|
r.size = size();
|
|
266
335
|
((r.fee = fee()), (r.satsPerKb = satsPerKb));
|
|
267
336
|
const { ok, log } = validateGenerateChangeSdkResult(params, r);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateChange.js","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":";;;AAmCA,8CA6SC;AAED,0EA0BC;AA+ED,0EAsCC;AAMD,oEAoEC;AA3iBD,kCAA4D;AAC5D,uDAAmD;AAEnD,uDAAsG;AACtG,wDAA4D;AAC5D,mCAAyC;AAGzC;;GAEG;AACU,QAAA,mBAAmB,GAAG,gBAAgB,CAAA;AAcnD;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAA+B,EAC/B,mBAGsD,EACtD,kBAAuD,EACvD,MAA8B;IAE9B,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK;QAAE,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAElE,MAAM,CAAC,GAA4B;QACjC,qBAAqB,EAAE,EAAE;QACzB,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,SAAS,EAAE,CAAC;KACb,CAAA;IAED,4CAA4C;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAA;QAE5C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;QACjD,MAAM,cAAc,GAAa,EAAE,CAAA;QAEnC,MAAM,aAAa,GAAG,GAAW,EAAE;YACjC,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;YACD,+CAA+C;YAC/C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE;YAChD,IAAI,GAAG,GAAG,GAAG;gBAAE,MAAM,IAAI,oCAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,GAAG,GAAG,CAAC,CAAA;YACjG,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QAExC;;WAEG;QACH,MAAM,OAAO,GAAG,GAAW,EAAE;YAC3B,OAAO,CACL,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC9G,CAAA;QACH,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,QAAQ,GAAG,GAAW,EAAE;YAC5B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,MAAM,GAAG,GAAW,EAAE;YAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,GAAW,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;QAE3D,MAAM,IAAI,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YAC/E,MAAM,kBAAkB,GAAG;gBACzB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAChD,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;aAC7G,CAAA;YACD,MAAM,mBAAmB,GAAG;gBAC1B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAC/C,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;aACpG,CAAA;YACD,MAAM,IAAI,GAAG,IAAA,uBAAe,EAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,SAAS,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YACvF,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;QAED;;;;;;;;;;WAUG;QACH,MAAM,SAAS,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YACpF,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;YAC/F,IAAI,CAAC,iBAAiB,IAAI,CAAC,kBAAkB;gBAAE,YAAY,GAAG,EAAE,CAAA;YAChE,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QAED,8BAA8B;QAC9B,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,SAAS,EAAE,CAAA;QAEX,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,KAAK,SAAS,CAAA;QAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAA;QAEjD,gDAAgD;QAChD,MAAM,cAAc,GAAG,GAAW,EAAE;YAClC,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAA;QAChE,CAAC,CAAA;QAED,MAAM,0BAA0B,GAAG,GAAY,EAAE;YAC/C,IAAI,CAAC,iBAAiB;gBAAE,OAAO,KAAK,CAAA;YACpC,OAAO,cAAc,EAAE,GAAG,CAAC,GAAG,cAAc,CAAA;QAC9C,CAAC,CAAA;QAED,MAAM,4BAA4B,GAAG,KAAK,IAAmB,EAAE;YAC7D,OAAO,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAA;gBACvC,IAAI,CAAC,EAAE,CAAC;oBACN,MAAM,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,YAAY,GAAG,SAAS,EAAE,CAAA;QAC5B,CAAC,CAAA;QAED,4DAA4D;QAC5D,0DAA0D;QAC1D,OACE,CAAC,iBAAiB,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;YACxD,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,EAAE,GAAG,CAAC,CAAC,EACjD,CAAC;YACD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;gBACnB,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB;gBAClG,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;aACtD,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;YAChD,IAAI,eAAe,GAAG,KAAK,CAAA;YAE3B,MAAM,wBAAwB,GAAG,KAAK,IAAsB,EAAE;gBAC5D,IAAI,SAAS,EAAE,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAEhC,IAAI,aAAa,GAAuB,SAAS,CAAA;gBACjD,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvD,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC/B,CAAC;gBACD,MAAM,EAAE,GAAG,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/C,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAE5F,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;gBAErF,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,6CAA6C;oBAC7C,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;gBAElD,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5C,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;4BACnB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAChB,SAAS,EAAE,EACX,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CACzF;4BACD,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;yBACtD,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC,CAAA;YAED,SAAS,CAAC;gBACR,4FAA4F;gBAC5F,MAAM,4BAA4B,EAAE,CAAA;gBAEpC,OAAO,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,MAAM,EAAE,GAAG,MAAM,wBAAwB,EAAE,CAAA;oBAC3C,IAAI,CAAC,EAAE;wBAAE,MAAK;gBAChB,CAAC;gBAED,gGAAgG;gBAChG,IAAI,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAK;gBAE3D,eAAe,GAAG,IAAI,CAAA;gBACtB,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACrD,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;gBACvB,CAAC;gBACD,IAAI,SAAS,EAAE,GAAG,CAAC;oBACjB,yDAAyD;oBACzD,MAAK;gBACP,qHAAqH;gBACrH,kDAAkD;gBAClD,+FAA+F;gBAC/F,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAA;gBACjD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAC1E,IAAI,CAAC,GAAG,CAAC;wBAAE,MAAK;oBAChB,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;oBACrB,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC3B,CAAC;gBACD,mBAAmB;YACrB,CAAC;QACH,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,eAAe,EAAE,CAAA;QAEvB,IAAI,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAChE,yGAAyG;YACzG,IAAI,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,KAAK,2BAAmB;gBAAE,MAAM,IAAI,2BAAa,EAAE,CAAA;YACxG,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAA;YAChE,CAAC,CAAC,6BAA6B,GAAG;gBAChC,gBAAgB,EAAE,KAAK,CAAC,oBAAoB;gBAC5C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ;aAC5D,CAAA;QACH,CAAC;QAED;;WAEG;QACH,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,qCAAuB,CAAC,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;YACjF,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,uDAAuD,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAA;YAC/F,MAAM,4BAA4B,EAAE,CAAA;YACpC,MAAM,IAAI,CAAA;QACZ,CAAC;QAED;;WAEG;QACH,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,4BAA4B,EAAE,CAAA;YACpC,MAAM,IAAI,qCAAuB,CAAC,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACzF,CAAC;QAED;;WAEG;QACH,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAA;gBAC3C,YAAY,GAAG,CAAC,CAAA;YAClB,CAAC;iBAAM,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBAC/F,YAAY,IAAI,IAAI,CAAA;gBACpB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,8EAA8E;gBAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAA;gBAC/E,YAAY,IAAI,IAAI,CAAA;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACjD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAA;YACzC,CAAC;QACH,CAAC;QAED,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CACd;QAAA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAA;QAE7C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,+BAA+B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,2BAAa,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;YAC9D,0BAA0B,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAAC,OAAO,EAAW,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAAE,MAAM,EAAE,CAAA;QAElD,mFAAmF;QACnF,yCAAyC;QAEzC,MAAM,EAAE,CAAA;IACV,CAAC;AACH,CAAC;AAED,SAAgB,+BAA+B,CAC7C,MAA+B,EAC/B,CAA0B;IAE1B,IAAI,EAAE,GAAG,IAAI,CAAA;IACb,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,KAAK,GACT,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACtH,MAAM,MAAM,GACV,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC/G,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAClD,GAAG,IAAI,mBAAmB,CAAC,CAAC,GAAG,GAAG,CAAA;QAClC,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,GAAG,IAAI,mBAAmB,OAAO,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAA;QACjD,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1E,IAAI,WAAW,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1B,GAAG,IAAI,sBAAsB,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAA;QACxD,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;AACpB,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+B,EAAE,EAAY;IAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACtF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACV,MAAM,MAAM,GAAG,KAAK,CAAA;IACpB,SAAS,CAAC;QACR,CAAC,EAAE,CAAA;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACxE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;YAAE,MAAK;IAC1B,CAAC;AACH,CAAC;AAkED,SAAgB,+BAA+B,CAC7C,MAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,oCAAsB,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAA;IAE9G,MAAM,CAAC,GAA0C,EAAE,CAAA;IAEnD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClC,gBAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;QACrE,gBAAU,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAC,yBAAyB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC9G,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,oCAAsB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAA;IAChH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,gBAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;QACtE,gBAAU,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACzG,IAAI,CAAC,CAAC,QAAQ,KAAK,2BAAmB,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,oBAAoB,KAAK,SAAS;gBACtC,MAAM,IAAI,oCAAsB,CAC9B,gBAAgB,CAAC,YAAY,EAC7B,uEAAuE,CACxE,CAAA;YACH,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,QAAQ,GAAG,IAAA,yCAAuB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,oCAAsB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;IAEtG,gBAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IAE3E,gBAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACjF,gBAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAA;IAErF,gBAAU,CAAC,eAAe,CAAC,MAAM,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAA;IACzF,gBAAU,CAAC,eAAe,CAAC,MAAM,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,CAAA;IAE7F,OAAO,CAAC,CAAA;AACV,CAAC;AAMD,SAAgB,4BAA4B,CAAC,eAA+C;IAQ1F,MAAM,MAAM,GAAqC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,GAAG,CAAC;QACJ,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC,CAAA;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;QACrB,CAAC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;gBACvB,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;oBACvB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CACZ,CAAA;IAED,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,GAAG,IAAI,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAA;IAErE,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,GAAG,CAAA;IAEhC,MAAM,QAAQ,GAAG,CAAC,CAAiC,EAAE,EAAE;QACrD,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,QAAQ,IAAI,CAAA;QACnD,CAAC,CAAC,SAAS,GAAG,KAAK,CAAA;QACnB,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAC/B,cAAsB,EACtB,aAAsB,EAC6B,EAAE;QACrD,GAAG,IAAI,mBAAmB,cAAc,UAAU,aAAa,EAAE,CAAA;QAEjE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAA;YAC3E,IAAI,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAA;QAC1E,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,GAA+C,SAAS,CAAA;QACjE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACjB,MAAK;YACP,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,GAAG,IAAI,IAAI,CAAA;QACX,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QACnE,GAAG,IAAI,cAAc,QAAQ,IAAI,CAAA;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,2BAAa,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,CAAC,SAAS;YAAE,MAAM,IAAI,2BAAa,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;IACpB,CAAC,CAAA;IAED,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAA;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"generateChange.js","sourceRoot":"","sources":["../../../../src/storage/methods/generateChange.ts"],"names":[],"mappings":";;;AAoDA,8CAiWC;AAED,0EA0BC;AAyFD,0EAsCC;AAMD,oEAoEC;AA1nBD,kCAA4D;AAC5D,uDAAmD;AAEnD,uDAAsG;AACtG,wDAA4D;AAC5D,mCAAyC;AAGzC;;GAEG;AACU,QAAA,mBAAmB,GAAG,gBAAgB,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACU,QAAA,8BAA8B,GAAG,CAAC,CAAA;AAc/C;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAA+B,EAC/B,mBAGsD,EACtD,kBAAuD,EACvD,MAA8B;;IAE9B,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK;QAAE,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAElE,MAAM,CAAC,GAA4B;QACjC,qBAAqB,EAAE,EAAE;QACzB,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,SAAS,EAAE,CAAC;KACb,CAAA;IAED,4CAA4C;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAA;QAE5C;;;;;;;;;;WAUG;QACH,MAAM,cAAc,GAAG,IAAA,uBAAe,EAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAA;QAChH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAEjF;;;;WAIG;QACH,MAAM,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,sCAA8B,CAAA;QAElF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;QACjD,MAAM,cAAc,GAAa,EAAE,CAAA;QAEnC,MAAM,aAAa,GAAG,GAAW,EAAE;YACjC,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;YACD,+CAA+C;YAC/C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE;YAChD,IAAI,GAAG,GAAG,GAAG;gBAAE,MAAM,IAAI,oCAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,GAAG,GAAG,CAAC,CAAA;YACjG,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QAExC;;WAEG;QACH,MAAM,OAAO,GAAG,GAAW,EAAE;YAC3B,OAAO,CACL,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC9G,CAAA;QACH,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,QAAQ,GAAG,GAAW,EAAE;YAC5B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,MAAM,GAAG,GAAW,EAAE;YAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,GAAW,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;QAE3D,MAAM,IAAI,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YAC/E,MAAM,kBAAkB,GAAG;gBACzB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAChD,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;aAC7G,CAAA;YACD,MAAM,mBAAmB,GAAG;gBAC1B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAC/C,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;aACpG,CAAA;YACD,MAAM,IAAI,GAAG,IAAA,uBAAe,EAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,SAAS,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YACvF,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;QAED;;;;;;;;;;WAUG;QACH,MAAM,SAAS,GAAG,CAAC,iBAA0B,EAAE,kBAA2B,EAAU,EAAE;YACpF,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAA;YAC/F,IAAI,CAAC,iBAAiB,IAAI,CAAC,kBAAkB;gBAAE,YAAY,GAAG,EAAE,CAAA;YAChE,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QAED,8BAA8B;QAC9B,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,SAAS,EAAE,CAAA;QAEX,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,KAAK,SAAS,CAAA;QAC7D,0EAA0E;QAC1E,4EAA4E;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAE7E,gDAAgD;QAChD,MAAM,cAAc,GAAG,GAAW,EAAE;YAClC,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAA;QAChE,CAAC,CAAA;QAED,MAAM,0BAA0B,GAAG,GAAY,EAAE;YAC/C,IAAI,CAAC,iBAAiB;gBAAE,OAAO,KAAK,CAAA;YACpC,wDAAwD;YACxD,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,IAAI,gBAAgB;gBAAE,OAAO,KAAK,CAAA;YAC5D,OAAO,cAAc,EAAE,GAAG,CAAC,GAAG,cAAc,CAAA;QAC9C,CAAC,CAAA;QAED,MAAM,4BAA4B,GAAG,KAAK,IAAmB,EAAE;YAC7D,OAAO,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAA;gBACvC,IAAI,CAAC,EAAE,CAAC;oBACN,MAAM,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,YAAY,GAAG,SAAS,EAAE,CAAA;QAC5B,CAAC,CAAA;QAED,4DAA4D;QAC5D,0DAA0D;QAC1D,+EAA+E;QAC/E,OACE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,gBAAgB;YACzC,CAAC,CAAC,iBAAiB,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAC/G,CAAC;YACD,MAAM,QAAQ,GACZ,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC;gBACjD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAA;YACvD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;gBACnB,QAAQ;gBACR,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;aACtD,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;YAChD,IAAI,eAAe,GAAG,KAAK,CAAA;YAE3B,MAAM,wBAAwB,GAAG,KAAK,IAAsB,EAAE;gBAC5D,IAAI,SAAS,EAAE,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAEhC,IAAI,aAAa,GAAuB,SAAS,CAAA;gBACjD,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvD,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC/B,CAAC;gBACD,MAAM,EAAE,GAAG,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/C,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAE5F,MAAM,oBAAoB,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;gBAErF,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,6CAA6C;oBAC7C,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;gBAElD,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;wBAC3F,MAAM,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAA;wBACpG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;wBAChE,qDAAqD;wBACrD,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;4BAC1B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;gCACnB,QAAQ;gCACR,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;6BACtD,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC,CAAA;YAED,SAAS,CAAC;gBACR,4FAA4F;gBAC5F,MAAM,4BAA4B,EAAE,CAAA;gBAEpC,OAAO,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,MAAM,EAAE,GAAG,MAAM,wBAAwB,EAAE,CAAA;oBAC3C,IAAI,CAAC,EAAE;wBAAE,MAAK;gBAChB,CAAC;gBAED,gGAAgG;gBAChG,IAAI,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAK;gBAE3D,eAAe,GAAG,IAAI,CAAA;gBACtB,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;oBACrD,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;gBACvB,CAAC;gBACD,IAAI,SAAS,EAAE,GAAG,CAAC;oBACjB,yDAAyD;oBACzD,MAAK;gBACP,qHAAqH;gBACrH,kDAAkD;gBAClD,+FAA+F;gBAC/F,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAA;gBACjD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAC1E,IAAI,CAAC,GAAG,CAAC;wBAAE,MAAK;oBAChB,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;oBACrB,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC3B,CAAC;gBACD,mBAAmB;YACrB,CAAC;QACH,CAAC,CAAA;QAED;;WAEG;QACH,MAAM,eAAe,EAAE,CAAA;QAEvB,IAAI,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAChE,yGAAyG;YACzG,IAAI,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,KAAK,2BAAmB;gBAAE,MAAM,IAAI,2BAAa,EAAE,CAAA;YACxG,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAA;YAChE,CAAC,CAAC,6BAA6B,GAAG;gBAChC,gBAAgB,EAAE,KAAK,CAAC,oBAAoB;gBAC5C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ;aAC5D,CAAA;QACH,CAAC;QAED;;WAEG;QACH,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,qCAAuB,CAAC,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;YACjF,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,uDAAuD,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAA;YAC/F,MAAM,4BAA4B,EAAE,CAAA;YACpC,MAAM,IAAI,CAAA;QACZ,CAAC;QAED;;WAEG;QACH,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,4BAA4B,EAAE,CAAA;YACpC,MAAM,IAAI,qCAAuB,CAAC,QAAQ,EAAE,GAAG,SAAS,EAAE,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACzF,CAAC;QAED;;WAEG;QACH,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAA;gBAC3C,YAAY,GAAG,CAAC,CAAA;YAClB,CAAC;iBAAM,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBAC/F,YAAY,IAAI,IAAI,CAAA;gBACpB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,8EAA8E;gBAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAA;gBAC/E,YAAY,IAAI,IAAI,CAAA;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACjD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAA;YACzC,CAAC;QACH,CAAC;QAED;;;;;;;;;WASG;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC9C,4EAA4E;gBAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;gBAChH,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;gBACpC,4EAA4E;YAC9E,CAAC;QACH,CAAC;QAED,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CACd;QAAA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAA;QAE7C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,+BAA+B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,2BAAa,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;YAC9D,0BAA0B,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAAC,OAAO,EAAW,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAAE,MAAM,EAAE,CAAA;QAElD,mFAAmF;QACnF,yCAAyC;QAEzC,MAAM,EAAE,CAAA;IACV,CAAC;AACH,CAAC;AAED,SAAgB,+BAA+B,CAC7C,MAA+B,EAC/B,CAA0B;IAE1B,IAAI,EAAE,GAAG,IAAI,CAAA;IACb,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,KAAK,GACT,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACtH,MAAM,MAAM,GACV,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC/G,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAClD,GAAG,IAAI,mBAAmB,CAAC,CAAC,GAAG,GAAG,CAAA;QAClC,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACtB,GAAG,IAAI,mBAAmB,OAAO,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAA;QACjD,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1E,IAAI,WAAW,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1B,GAAG,IAAI,sBAAsB,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAA;QACxD,EAAE,GAAG,KAAK,CAAA;IACZ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;AACpB,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+B,EAAE,EAAY;IAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACtF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACV,MAAM,MAAM,GAAG,KAAK,CAAA;IACpB,SAAS,CAAC;QACR,CAAC,EAAE,CAAA;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACxE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;YAAE,MAAK;IAC1B,CAAC;AACH,CAAC;AA4ED,SAAgB,+BAA+B,CAC7C,MAA+B;IAE/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,oCAAsB,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAA;IAE9G,MAAM,CAAC,GAA0C,EAAE,CAAA;IAEnD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClC,gBAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;QACrE,gBAAU,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAC,yBAAyB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC9G,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,oCAAsB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAA;IAChH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,gBAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;QACtE,gBAAU,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACzG,IAAI,CAAC,CAAC,QAAQ,KAAK,2BAAmB,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,oBAAoB,KAAK,SAAS;gBACtC,MAAM,IAAI,oCAAsB,CAC9B,gBAAgB,CAAC,YAAY,EAC7B,uEAAuE,CACxE,CAAA;YACH,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,QAAQ,GAAG,IAAA,yCAAuB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,oCAAsB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;IAEtG,gBAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IAE3E,gBAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACjF,gBAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAA;IAErF,gBAAU,CAAC,eAAe,CAAC,MAAM,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,CAAA;IACzF,gBAAU,CAAC,eAAe,CAAC,MAAM,CAAC,2BAA2B,EAAE,6BAA6B,CAAC,CAAA;IAE7F,OAAO,CAAC,CAAA;AACV,CAAC;AAMD,SAAgB,4BAA4B,CAAC,eAA+C;IAQ1F,MAAM,MAAM,GAAqC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,GAAG,CAAC;QACJ,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC,CAAA;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;QACrB,CAAC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;YACvB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;gBACvB,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;oBACvB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CACZ,CAAA;IAED,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,GAAG,IAAI,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAA;IAErE,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,GAAG,CAAA;IAEhC,MAAM,QAAQ,GAAG,CAAC,CAAiC,EAAE,EAAE;QACrD,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,QAAQ,IAAI,CAAA;QACnD,CAAC,CAAC,SAAS,GAAG,KAAK,CAAA;QACnB,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAC/B,cAAsB,EACtB,aAAsB,EAC6B,EAAE;QACrD,GAAG,IAAI,mBAAmB,cAAc,UAAU,aAAa,EAAE,CAAA;QAEjE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAA;YAC3E,IAAI,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAA;QAC1E,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,GAA+C,SAAS,CAAA;QACjE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACjB,MAAK;YACP,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,GAAG,IAAI,IAAI,CAAA;QACX,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QACnE,GAAG,IAAI,cAAc,QAAQ,IAAI,CAAA;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,2BAAa,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,CAAC,SAAS;YAAE,MAAM,IAAI,2BAAa,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;QACrF,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;IACpB,CAAC,CAAA;IAED,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAA;AAC5D,CAAC"}
|