@helium/helium-admin-cli 0.10.0-alpha.0 → 0.10.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/backfill-mobile-deployment-infos.js +29 -14
- package/lib/cjs/backfill-mobile-deployment-infos.js.map +1 -1
- package/lib/cjs/end-epoch.js +237 -68
- package/lib/cjs/end-epoch.js.map +1 -1
- package/lib/cjs/queue-hotspot-claims.js +135 -0
- package/lib/cjs/queue-hotspot-claims.js.map +1 -0
- package/lib/cjs/queue-position-claims.js +160 -0
- package/lib/cjs/queue-position-claims.js.map +1 -0
- package/lib/cjs/remove-authorities.js +134 -0
- package/lib/cjs/remove-authorities.js.map +1 -0
- package/lib/cjs/requeue-hotspot-claims.js +111 -0
- package/lib/cjs/requeue-hotspot-claims.js.map +1 -0
- package/lib/cjs/start-cron.js +155 -0
- package/lib/cjs/start-cron.js.map +1 -0
- package/lib/esm/src/backfill-mobile-deployment-infos.js +32 -13
- package/lib/esm/src/backfill-mobile-deployment-infos.js.map +1 -1
- package/lib/esm/src/end-epoch.js +234 -69
- package/lib/esm/src/end-epoch.js.map +1 -1
- package/lib/esm/src/queue-hotspot-claims.js +94 -0
- package/lib/esm/src/queue-hotspot-claims.js.map +1 -0
- package/lib/esm/src/queue-position-claims.js +119 -0
- package/lib/esm/src/queue-position-claims.js.map +1 -0
- package/lib/esm/src/remove-authorities.js +93 -0
- package/lib/esm/src/remove-authorities.js.map +1 -0
- package/lib/esm/src/requeue-hotspot-claims.js +70 -0
- package/lib/esm/src/requeue-hotspot-claims.js.map +1 -0
- package/lib/esm/src/start-cron.js +114 -0
- package/lib/esm/src/start-cron.js.map +1 -0
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/backfill-mobile-deployment-infos.d.ts.map +1 -1
- package/lib/types/src/end-epoch.d.ts.map +1 -1
- package/lib/types/src/queue-hotspot-claims.d.ts +2 -0
- package/lib/types/src/queue-hotspot-claims.d.ts.map +1 -0
- package/lib/types/src/queue-position-claims.d.ts +2 -0
- package/lib/types/src/queue-position-claims.d.ts.map +1 -0
- package/lib/types/src/remove-authorities.d.ts +2 -0
- package/lib/types/src/remove-authorities.d.ts.map +1 -0
- package/lib/types/src/requeue-hotspot-claims.d.ts +2 -0
- package/lib/types/src/requeue-hotspot-claims.d.ts.map +1 -0
- package/lib/types/src/start-cron.d.ts +2 -0
- package/lib/types/src/start-cron.d.ts.map +1 -0
- package/package.json +19 -16
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { daoKey, init as initHsd, subDaoKey } from "@helium/helium-sub-daos-sdk";
|
|
3
|
+
import { init as initCircuitBreaker, mintWindowedBreakerKey } from "@helium/circuit-breaker-sdk";
|
|
4
|
+
import { HNT_MINT, IOT_MINT, MOBILE_MINT } from "@helium/spl-utils";
|
|
5
|
+
import { PublicKey } from "@solana/web3.js";
|
|
6
|
+
import Squads from "@sqds/sdk";
|
|
7
|
+
import os from "os";
|
|
8
|
+
import yargs from "yargs/yargs";
|
|
9
|
+
import { loadKeypair, sendInstructionsOrSquads } from "./utils";
|
|
10
|
+
export async function run(args = process.argv) {
|
|
11
|
+
const yarg = yargs(args).options({
|
|
12
|
+
wallet: {
|
|
13
|
+
alias: "k",
|
|
14
|
+
describe: "Anchor wallet keypair",
|
|
15
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
16
|
+
},
|
|
17
|
+
url: {
|
|
18
|
+
alias: "u",
|
|
19
|
+
default: "http://127.0.0.1:8899",
|
|
20
|
+
describe: "The solana url",
|
|
21
|
+
},
|
|
22
|
+
executeTransaction: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
},
|
|
25
|
+
multisig: {
|
|
26
|
+
type: "string",
|
|
27
|
+
describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
|
|
28
|
+
},
|
|
29
|
+
authorityIndex: {
|
|
30
|
+
type: "number",
|
|
31
|
+
describe: "Authority index for squads. Defaults to 1",
|
|
32
|
+
default: 1,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const argv = await yarg.argv;
|
|
36
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
37
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
38
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
39
|
+
const provider = anchor.getProvider();
|
|
40
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
41
|
+
const program = await initHsd(provider);
|
|
42
|
+
const cbProgram = await initCircuitBreaker(provider);
|
|
43
|
+
const instructions = [];
|
|
44
|
+
const dao = daoKey(HNT_MINT)[0];
|
|
45
|
+
const daoAcc = await program.account.daoV0.fetch(dao);
|
|
46
|
+
instructions.push(await program.methods
|
|
47
|
+
.tempRemoveMintAndFreezeAuthorities()
|
|
48
|
+
.accountsPartial({
|
|
49
|
+
authority: daoAcc.authority,
|
|
50
|
+
dao,
|
|
51
|
+
mobileMint: MOBILE_MINT,
|
|
52
|
+
iotMint: IOT_MINT,
|
|
53
|
+
hntMint: HNT_MINT,
|
|
54
|
+
iotSubDao: subDaoKey(IOT_MINT)[0],
|
|
55
|
+
mobileSubDao: subDaoKey(MOBILE_MINT)[0],
|
|
56
|
+
})
|
|
57
|
+
.instruction());
|
|
58
|
+
const mobileCB = mintWindowedBreakerKey(MOBILE_MINT)[0];
|
|
59
|
+
const mobileCBAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(mobileCB);
|
|
60
|
+
instructions.push(await cbProgram.methods
|
|
61
|
+
.removeMintAuthorityV0()
|
|
62
|
+
.accountsPartial({
|
|
63
|
+
mint: MOBILE_MINT,
|
|
64
|
+
circuitBreaker: mobileCB,
|
|
65
|
+
rentRefund: mobileCBAcc.authority,
|
|
66
|
+
authority: mobileCBAcc.authority,
|
|
67
|
+
})
|
|
68
|
+
.instruction());
|
|
69
|
+
const iotCB = mintWindowedBreakerKey(IOT_MINT)[0];
|
|
70
|
+
const iotCBAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(iotCB);
|
|
71
|
+
instructions.push(await cbProgram.methods
|
|
72
|
+
.removeMintAuthorityV0()
|
|
73
|
+
.accountsPartial({
|
|
74
|
+
mint: IOT_MINT,
|
|
75
|
+
circuitBreaker: iotCB,
|
|
76
|
+
rentRefund: iotCBAcc.authority,
|
|
77
|
+
authority: iotCBAcc.authority,
|
|
78
|
+
})
|
|
79
|
+
.instruction());
|
|
80
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
81
|
+
commitmentOrConfig: "finalized",
|
|
82
|
+
});
|
|
83
|
+
await sendInstructionsOrSquads({
|
|
84
|
+
provider,
|
|
85
|
+
instructions,
|
|
86
|
+
executeTransaction: argv.executeTransaction,
|
|
87
|
+
squads,
|
|
88
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
89
|
+
authorityIndex: argv.authorityIndex,
|
|
90
|
+
signers: [],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=remove-authorities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-authorities.js","sourceRoot":"","sources":["../../../src/remove-authorities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { cronJobKey, cronJobNameMappingKey, init as initCron } from "@helium/cron-sdk";
|
|
3
|
+
import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
|
|
4
|
+
import { init as initTuktuk, taskKey } from "@helium/tuktuk-sdk";
|
|
5
|
+
import { PublicKey, SystemProgram } from "@solana/web3.js";
|
|
6
|
+
import os from "os";
|
|
7
|
+
import yargs from "yargs/yargs";
|
|
8
|
+
import { init as initHplCrons, entityCronAuthorityKey, nextAvailableTaskIds, } from "@helium/hpl-crons-sdk";
|
|
9
|
+
export async function run(args = process.argv) {
|
|
10
|
+
const yarg = yargs(args).options({
|
|
11
|
+
wallet: {
|
|
12
|
+
alias: "k",
|
|
13
|
+
describe: "Anchor wallet keypair",
|
|
14
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
15
|
+
},
|
|
16
|
+
url: {
|
|
17
|
+
alias: "u",
|
|
18
|
+
default: "http://127.0.0.1:8899",
|
|
19
|
+
describe: "The solana url",
|
|
20
|
+
},
|
|
21
|
+
taskQueue: {
|
|
22
|
+
required: true,
|
|
23
|
+
type: "string",
|
|
24
|
+
alias: "t",
|
|
25
|
+
describe: "The task queue to queue",
|
|
26
|
+
default: "H39gEszvsi6AT4rYBiJTuZHJSF5hMHy6CKGTd7wzhsg7",
|
|
27
|
+
},
|
|
28
|
+
fundingAmount: {
|
|
29
|
+
required: true,
|
|
30
|
+
type: "string",
|
|
31
|
+
describe: "The amount of lamports to fund the cron job with",
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
const argv = await yarg.argv;
|
|
35
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
36
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
37
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
38
|
+
const provider = anchor.getProvider();
|
|
39
|
+
const taskQueue = new PublicKey(argv.taskQueue);
|
|
40
|
+
const program = await initHplCrons(provider);
|
|
41
|
+
const cronProgram = await initCron(provider);
|
|
42
|
+
const tuktukProgram = await initTuktuk(provider);
|
|
43
|
+
const taskQueueAcc = await tuktukProgram.account.taskQueueV0.fetch(taskQueue);
|
|
44
|
+
const nextAvailable = nextAvailableTaskIds(taskQueueAcc.taskBitmap, 1)[0];
|
|
45
|
+
const [task] = taskKey(taskQueue, nextAvailable);
|
|
46
|
+
const authority = entityCronAuthorityKey(provider.wallet.publicKey)[0];
|
|
47
|
+
const cronJob = cronJobKey(authority, 0)[0];
|
|
48
|
+
const cronJobAcc = await cronProgram.account.cronJobV0.fetch(cronJob);
|
|
49
|
+
if (cronJobAcc.removedFromQueue) {
|
|
50
|
+
await sendInstructionsWithPriorityFee(provider, [
|
|
51
|
+
await program.methods
|
|
52
|
+
.requeueEntityClaimCronV0()
|
|
53
|
+
.accounts({
|
|
54
|
+
taskQueue,
|
|
55
|
+
cronJob,
|
|
56
|
+
task,
|
|
57
|
+
cronJobNameMapping: cronJobNameMappingKey(authority, "entity_claim")[0],
|
|
58
|
+
})
|
|
59
|
+
.instruction(),
|
|
60
|
+
SystemProgram.transfer({
|
|
61
|
+
fromPubkey: provider.wallet.publicKey,
|
|
62
|
+
toPubkey: cronJob,
|
|
63
|
+
lamports: BigInt(argv.fundingAmount),
|
|
64
|
+
}),
|
|
65
|
+
], {
|
|
66
|
+
computeUnitLimit: 500000,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=requeue-hotspot-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requeue-hotspot-claims.js","sourceRoot":"","sources":["../../../src/requeue-hotspot-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
|
|
3
|
+
import { compileTransaction, customSignerKey, init as initTuktuk, taskKey, } from "@helium/tuktuk-sdk";
|
|
4
|
+
import { PublicKey, SystemProgram, } from "@solana/web3.js";
|
|
5
|
+
import os from "os";
|
|
6
|
+
import yargs from "yargs/yargs";
|
|
7
|
+
import { init as initHplCrons, epochTrackerKey, taskReturnAccountKey } from "@helium/hpl-crons-sdk";
|
|
8
|
+
export async function run(args = process.argv) {
|
|
9
|
+
const yarg = yargs(args).options({
|
|
10
|
+
wallet: {
|
|
11
|
+
alias: "k",
|
|
12
|
+
describe: "Anchor wallet keypair",
|
|
13
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
14
|
+
},
|
|
15
|
+
url: {
|
|
16
|
+
alias: "u",
|
|
17
|
+
default: "http://127.0.0.1:8899",
|
|
18
|
+
describe: "The solana url",
|
|
19
|
+
},
|
|
20
|
+
index: {
|
|
21
|
+
type: "number",
|
|
22
|
+
alias: "i",
|
|
23
|
+
default: 0,
|
|
24
|
+
describe: "The index of the task to queue",
|
|
25
|
+
},
|
|
26
|
+
taskQueue: {
|
|
27
|
+
required: true,
|
|
28
|
+
type: "string",
|
|
29
|
+
alias: "t",
|
|
30
|
+
describe: "The task queue to queue",
|
|
31
|
+
},
|
|
32
|
+
epoch: {
|
|
33
|
+
optional: true,
|
|
34
|
+
type: "number",
|
|
35
|
+
describe: "The epoch to set",
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
const argv = await yarg.argv;
|
|
39
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
40
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
41
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
42
|
+
const provider = anchor.getProvider();
|
|
43
|
+
const taskQueue = new PublicKey(argv.taskQueue);
|
|
44
|
+
const program = await initHplCrons(provider);
|
|
45
|
+
const tuktukProgram = await initTuktuk(provider);
|
|
46
|
+
const [task] = taskKey(taskQueue, argv.index);
|
|
47
|
+
const dao = new PublicKey("BQ3MCuTT5zVBhNfQ4SjMh3NPVhFy73MPV8rjfq5d1zie");
|
|
48
|
+
const iotSubDao = new PublicKey("39Lw1RH6zt8AJvKn3BTxmUDofzduCM2J3kSaGDZ8L7Sk");
|
|
49
|
+
const mobileSubDao = new PublicKey("Gm9xDCJawDEKDrrQW6haw94gABaYzQwCq4ZQU8h8bd22");
|
|
50
|
+
const [customWallet, bump] = customSignerKey(taskQueue, [
|
|
51
|
+
Buffer.from("helium", "utf-8"),
|
|
52
|
+
]);
|
|
53
|
+
const bumpBuffer = Buffer.alloc(1);
|
|
54
|
+
bumpBuffer.writeUint8(bump);
|
|
55
|
+
console.log("Using custom wallet", customWallet.toBase58());
|
|
56
|
+
const [epochTracker, etBumpSeed] = epochTrackerKey(dao);
|
|
57
|
+
let ixs = [];
|
|
58
|
+
if (argv.epoch) {
|
|
59
|
+
ixs.push(await program.methods
|
|
60
|
+
.updateEpochTracker({
|
|
61
|
+
epoch: new anchor.BN(argv.epoch),
|
|
62
|
+
authority: provider.wallet.publicKey,
|
|
63
|
+
})
|
|
64
|
+
.accountsStrict({
|
|
65
|
+
authority: provider.wallet.publicKey,
|
|
66
|
+
epochTracker,
|
|
67
|
+
})
|
|
68
|
+
.instruction());
|
|
69
|
+
}
|
|
70
|
+
if (!(await provider.connection.getAccountInfo(epochTracker))) {
|
|
71
|
+
ixs.push(await program.methods
|
|
72
|
+
.initEpochTracker()
|
|
73
|
+
.accountsPartial({
|
|
74
|
+
dao,
|
|
75
|
+
authority: provider.wallet.publicKey,
|
|
76
|
+
})
|
|
77
|
+
.instruction());
|
|
78
|
+
}
|
|
79
|
+
const epochTrackerAcc = await program.account.epochTrackerV0.fetch(epochTracker);
|
|
80
|
+
const { transaction, remainingAccounts } = compileTransaction([
|
|
81
|
+
await program.methods
|
|
82
|
+
.queueEndEpoch()
|
|
83
|
+
.accountsStrict({
|
|
84
|
+
payer: customWallet,
|
|
85
|
+
taskReturnAccount: taskReturnAccountKey()[0],
|
|
86
|
+
epochTracker: epochTrackerKey(dao)[0],
|
|
87
|
+
taskQueue,
|
|
88
|
+
dao,
|
|
89
|
+
iotSubDao,
|
|
90
|
+
mobileSubDao,
|
|
91
|
+
systemProgram: SystemProgram.programId,
|
|
92
|
+
})
|
|
93
|
+
.instruction(),
|
|
94
|
+
], [[Buffer.from("helium", "utf-8"), bumpBuffer]]);
|
|
95
|
+
ixs.push(await tuktukProgram.methods
|
|
96
|
+
.queueTaskV0({
|
|
97
|
+
id: argv.index,
|
|
98
|
+
trigger: { now: {} },
|
|
99
|
+
crankReward: null,
|
|
100
|
+
freeTasks: 2,
|
|
101
|
+
transaction: {
|
|
102
|
+
compiledV0: [transaction],
|
|
103
|
+
},
|
|
104
|
+
description: `queue end epoch ${epochTrackerAcc.epoch}`,
|
|
105
|
+
})
|
|
106
|
+
.accountsPartial({
|
|
107
|
+
task,
|
|
108
|
+
taskQueue,
|
|
109
|
+
})
|
|
110
|
+
.remainingAccounts(remainingAccounts)
|
|
111
|
+
.instruction());
|
|
112
|
+
await sendInstructionsWithPriorityFee(provider, ixs);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=start-cron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-cron.js","sourceRoot":"","sources":["../../../src/start-cron.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,IAAI,IAAI,UAAU,EAClB,OAAO,GACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpG,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,gCAAgC;SAC3C;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,yBAAyB;SACpC;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B,8CAA8C,CAC/C,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,SAAS,CAChC,8CAA8C,CAC/C,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,EAAE;QACtD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC/B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,GAAG,GAA6B,EAAE,CAAC;IACvC,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,GAAG,CAAC,IAAI,CACN,MAAM,OAAO,CAAC,OAAO;aAClB,kBAAkB,CAAC;YAClB,KAAK,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;SACrC,CAAC;aACD,cAAc,CAAC;YACd,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;YACpC,YAAY;SACb,CAAC;aACD,WAAW,EAAE,CACjB,CAAC;KACH;IACD,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE;QAC7D,GAAG,CAAC,IAAI,CACN,MAAM,OAAO,CAAC,OAAO;aAClB,gBAAgB,EAAE;aAClB,eAAe,CAAC;YACf,GAAG;YACH,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;SACrC,CAAC;aACD,WAAW,EAAE,CACjB,CAAC;KACH;IACD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjF,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,CAC3D;QACE,MAAM,OAAO,CAAC,OAAO;aAClB,aAAa,EAAE;aACf,cAAc,CAAC;YACd,KAAK,EAAE,YAAY;YACnB,iBAAiB,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;YAC5C,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,SAAS;YACT,GAAG;YACH,SAAS;YACT,YAAY;YACZ,aAAa,EAAE,aAAa,CAAC,SAAS;SACvC,CAAC;aACD,WAAW,EAAE;KACjB,EACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/C,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,MAAM,aAAa,CAAC,OAAO;SACxB,WAAW,CAAC;QACX,EAAE,EAAE,IAAI,CAAC,KAAK;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACpB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,WAAW,CAAC;SAC1B;QACD,WAAW,EAAE,mBAAmB,eAAe,CAAC,KAAK,EAAE;KACxD,CAAC;SACD,eAAe,CAAC;QACf,IAAI;QACJ,SAAS;KACV,CAAC;SACD,iBAAiB,CAAC,iBAAiB,CAAC;SACpC,WAAW,EAAE,CACjB,CAAC;IAEF,MAAM,+BAA+B,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC"}
|