@drift-labs/sdk 0.1.29-master.0 → 0.1.29-master.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/src/admin.js DELETED
@@ -1,443 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Admin = void 0;
23
- const web3_js_1 = require("@solana/web3.js");
24
- const types_1 = require("./types");
25
- const anchor_1 = require("@project-serum/anchor");
26
- const anchor = __importStar(require("@project-serum/anchor"));
27
- const addresses_1 = require("./addresses");
28
- const spl_token_1 = require("@solana/spl-token");
29
- const clearingHouse_1 = require("./clearingHouse");
30
- const numericConstants_1 = require("./constants/numericConstants");
31
- const trade_1 = require("./math/trade");
32
- const amm_1 = require("./math/amm");
33
- const clearingHouse_2 = require("./factory/clearingHouse");
34
- class Admin extends clearingHouse_1.ClearingHouse {
35
- static from(connection, wallet, clearingHouseProgramId, opts = anchor_1.Provider.defaultOptions()) {
36
- const config = (0, clearingHouse_2.getWebSocketClearingHouseConfig)(connection, wallet, clearingHouseProgramId, opts);
37
- return (0, clearingHouse_2.getAdmin)(config);
38
- }
39
- async initialize(usdcMint, adminControlsPrices) {
40
- const stateAccountRPCResponse = await this.connection.getParsedAccountInfo(await this.getStatePublicKey());
41
- if (stateAccountRPCResponse.value !== null) {
42
- throw new Error('Clearing house already initialized');
43
- }
44
- const [collateralVaultPublicKey, collateralVaultNonce] = await web3_js_1.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('collateral_vault'))], this.program.programId);
45
- const [collateralVaultAuthority, _collateralVaultAuthorityNonce] = await web3_js_1.PublicKey.findProgramAddress([collateralVaultPublicKey.toBuffer()], this.program.programId);
46
- const [insuranceVaultPublicKey, insuranceVaultNonce] = await web3_js_1.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('insurance_vault'))], this.program.programId);
47
- const [insuranceVaultAuthority, _insuranceVaultAuthorityNonce] = await web3_js_1.PublicKey.findProgramAddress([insuranceVaultPublicKey.toBuffer()], this.program.programId);
48
- const markets = anchor.web3.Keypair.generate();
49
- const depositHistory = anchor.web3.Keypair.generate();
50
- const fundingRateHistory = anchor.web3.Keypair.generate();
51
- const fundingPaymentHistory = anchor.web3.Keypair.generate();
52
- const tradeHistory = anchor.web3.Keypair.generate();
53
- const liquidationHistory = anchor.web3.Keypair.generate();
54
- const curveHistory = anchor.web3.Keypair.generate();
55
- const [clearingHouseStatePublicKey, clearingHouseNonce] = await (0, addresses_1.getClearingHouseStateAccountPublicKeyAndNonce)(this.program.programId);
56
- const initializeTx = await this.program.transaction.initialize(clearingHouseNonce, collateralVaultNonce, insuranceVaultNonce, adminControlsPrices, {
57
- accounts: {
58
- admin: this.wallet.publicKey,
59
- state: clearingHouseStatePublicKey,
60
- collateralMint: usdcMint,
61
- collateralVault: collateralVaultPublicKey,
62
- collateralVaultAuthority: collateralVaultAuthority,
63
- insuranceVault: insuranceVaultPublicKey,
64
- insuranceVaultAuthority: insuranceVaultAuthority,
65
- markets: markets.publicKey,
66
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
67
- systemProgram: anchor.web3.SystemProgram.programId,
68
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
69
- },
70
- instructions: [
71
- await this.program.account.markets.createInstruction(markets),
72
- ],
73
- });
74
- const initializeTxSig = await this.txSender.send(initializeTx, [markets], this.opts);
75
- const initializeHistoryTx = await this.program.transaction.initializeHistory({
76
- accounts: {
77
- admin: this.wallet.publicKey,
78
- state: clearingHouseStatePublicKey,
79
- depositHistory: depositHistory.publicKey,
80
- fundingRateHistory: fundingRateHistory.publicKey,
81
- fundingPaymentHistory: fundingPaymentHistory.publicKey,
82
- tradeHistory: tradeHistory.publicKey,
83
- liquidationHistory: liquidationHistory.publicKey,
84
- curveHistory: curveHistory.publicKey,
85
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
86
- systemProgram: anchor.web3.SystemProgram.programId,
87
- },
88
- instructions: [
89
- await this.program.account.fundingRateHistory.createInstruction(fundingRateHistory),
90
- await this.program.account.fundingPaymentHistory.createInstruction(fundingPaymentHistory),
91
- await this.program.account.tradeHistory.createInstruction(tradeHistory),
92
- await this.program.account.liquidationHistory.createInstruction(liquidationHistory),
93
- await this.program.account.depositHistory.createInstruction(depositHistory),
94
- await this.program.account.extendedCurveHistory.createInstruction(curveHistory),
95
- ],
96
- });
97
- const initializeHistoryTxSig = await this.txSender.send(initializeHistoryTx, [
98
- depositHistory,
99
- fundingPaymentHistory,
100
- tradeHistory,
101
- liquidationHistory,
102
- fundingRateHistory,
103
- curveHistory,
104
- ], this.opts);
105
- const initializeOrderStateTxSig = await this.initializeOrderState();
106
- return [initializeTxSig, initializeHistoryTxSig, initializeOrderStateTxSig];
107
- }
108
- async initializeOrderState() {
109
- const orderHistory = anchor.web3.Keypair.generate();
110
- const [orderStatePublicKey, orderStateNonce] = await (0, addresses_1.getOrderStateAccountPublicKeyAndNonce)(this.program.programId);
111
- const clearingHouseStatePublicKey = await (0, addresses_1.getClearingHouseStateAccountPublicKey)(this.program.programId);
112
- const initializeOrderStateTx = await this.program.transaction.initializeOrderState(orderStateNonce, {
113
- accounts: {
114
- admin: this.wallet.publicKey,
115
- state: clearingHouseStatePublicKey,
116
- orderHistory: orderHistory.publicKey,
117
- orderState: orderStatePublicKey,
118
- rent: web3_js_1.SYSVAR_RENT_PUBKEY,
119
- systemProgram: anchor.web3.SystemProgram.programId,
120
- },
121
- instructions: [
122
- await this.program.account.orderHistory.createInstruction(orderHistory),
123
- ],
124
- });
125
- return await this.txSender.send(initializeOrderStateTx, [orderHistory], this.opts);
126
- }
127
- async initializeMarket(marketIndex, priceOracle, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier = numericConstants_1.PEG_PRECISION, oracleSource = types_1.OracleSource.PYTH, marginRatioInitial = 2000, marginRatioPartial = 625, marginRatioMaintenance = 500) {
128
- if (this.getMarketsAccount().markets[marketIndex.toNumber()].initialized) {
129
- throw Error(`MarketIndex ${marketIndex.toNumber()} already initialized`);
130
- }
131
- const initializeMarketTx = await this.program.transaction.initializeMarket(marketIndex, baseAssetReserve, quoteAssetReserve, periodicity, pegMultiplier, oracleSource, marginRatioInitial, marginRatioPartial, marginRatioMaintenance, {
132
- accounts: {
133
- state: await this.getStatePublicKey(),
134
- admin: this.wallet.publicKey,
135
- oracle: priceOracle,
136
- markets: this.getStateAccount().markets,
137
- },
138
- });
139
- return await this.txSender.send(initializeMarketTx, [], this.opts);
140
- }
141
- async moveAmmPrice(baseAssetReserve, quoteAssetReserve, marketIndex) {
142
- const state = this.getStateAccount();
143
- return await this.program.rpc.moveAmmPrice(baseAssetReserve, quoteAssetReserve, marketIndex, {
144
- accounts: {
145
- state: await this.getStatePublicKey(),
146
- admin: this.wallet.publicKey,
147
- markets: state.markets,
148
- },
149
- });
150
- }
151
- async updateK(sqrtK, marketIndex) {
152
- const state = this.getStateAccount();
153
- const markets = this.getMarketsAccount();
154
- const marketData = markets.markets[marketIndex.toNumber()];
155
- const ammData = marketData.amm;
156
- return await this.program.rpc.updateK(sqrtK, marketIndex, {
157
- accounts: {
158
- state: await this.getStatePublicKey(),
159
- admin: this.wallet.publicKey,
160
- markets: state.markets,
161
- curveHistory: state.extendedCurveHistory,
162
- oracle: ammData.oracle,
163
- },
164
- });
165
- }
166
- async updateCurveHistory() {
167
- const extendedCurveHistory = anchor.web3.Keypair.generate();
168
- const state = this.getStateAccount();
169
- return await this.program.rpc.updateCurveHistory({
170
- accounts: {
171
- state: await this.getStatePublicKey(),
172
- admin: this.wallet.publicKey,
173
- curveHistory: state.curveHistory,
174
- extendedCurveHistory: extendedCurveHistory.publicKey,
175
- },
176
- instructions: [
177
- await this.program.account.extendedCurveHistory.createInstruction(extendedCurveHistory),
178
- ],
179
- signers: [extendedCurveHistory],
180
- });
181
- }
182
- async moveAmmToPrice(marketIndex, targetPrice) {
183
- const market = this.getMarket(marketIndex);
184
- const [direction, tradeSize, _] = (0, trade_1.calculateTargetPriceTrade)(market, targetPrice);
185
- const [newQuoteAssetAmount, newBaseAssetAmount] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, 'quote', tradeSize, (0, amm_1.getSwapDirection)('quote', direction));
186
- const state = this.getStateAccount();
187
- return await this.program.rpc.moveAmmPrice(newBaseAssetAmount, newQuoteAssetAmount, marketIndex, {
188
- accounts: {
189
- state: await this.getStatePublicKey(),
190
- admin: this.wallet.publicKey,
191
- markets: state.markets,
192
- },
193
- });
194
- }
195
- async repegAmmCurve(newPeg, marketIndex) {
196
- const state = this.getStateAccount();
197
- const markets = this.getMarketsAccount();
198
- const marketData = markets.markets[marketIndex.toNumber()];
199
- const ammData = marketData.amm;
200
- return await this.program.rpc.repegAmmCurve(newPeg, marketIndex, {
201
- accounts: {
202
- state: await this.getStatePublicKey(),
203
- admin: this.wallet.publicKey,
204
- oracle: ammData.oracle,
205
- markets: state.markets,
206
- curveHistory: state.extendedCurveHistory,
207
- },
208
- });
209
- }
210
- async updateAmmOracleTwap(marketIndex) {
211
- const state = this.getStateAccount();
212
- const markets = this.getMarketsAccount();
213
- const marketData = markets.markets[marketIndex.toNumber()];
214
- const ammData = marketData.amm;
215
- return await this.program.rpc.updateAmmOracleTwap(marketIndex, {
216
- accounts: {
217
- state: await this.getStatePublicKey(),
218
- admin: this.wallet.publicKey,
219
- oracle: ammData.oracle,
220
- markets: state.markets,
221
- curveHistory: state.extendedCurveHistory,
222
- },
223
- });
224
- }
225
- async resetAmmOracleTwap(marketIndex) {
226
- const state = this.getStateAccount();
227
- const markets = this.getMarketsAccount();
228
- const marketData = markets.markets[marketIndex.toNumber()];
229
- const ammData = marketData.amm;
230
- return await this.program.rpc.resetAmmOracleTwap(marketIndex, {
231
- accounts: {
232
- state: await this.getStatePublicKey(),
233
- admin: this.wallet.publicKey,
234
- oracle: ammData.oracle,
235
- markets: state.markets,
236
- curveHistory: state.extendedCurveHistory,
237
- },
238
- });
239
- }
240
- async withdrawFromInsuranceVault(amount, recipient) {
241
- const state = await this.getStateAccount();
242
- return await this.program.rpc.withdrawFromInsuranceVault(amount, {
243
- accounts: {
244
- admin: this.wallet.publicKey,
245
- state: await this.getStatePublicKey(),
246
- insuranceVault: state.insuranceVault,
247
- insuranceVaultAuthority: state.insuranceVaultAuthority,
248
- recipient: recipient,
249
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
250
- },
251
- });
252
- }
253
- async withdrawFees(marketIndex, amount, recipient) {
254
- const state = await this.getStateAccount();
255
- return await this.program.rpc.withdrawFees(marketIndex, amount, {
256
- accounts: {
257
- admin: this.wallet.publicKey,
258
- state: await this.getStatePublicKey(),
259
- markets: state.markets,
260
- collateralVault: state.collateralVault,
261
- collateralVaultAuthority: state.collateralVaultAuthority,
262
- recipient: recipient,
263
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
264
- },
265
- });
266
- }
267
- async withdrawFromInsuranceVaultToMarket(marketIndex, amount) {
268
- const state = await this.getStateAccount();
269
- return await this.program.rpc.withdrawFromInsuranceVaultToMarket(marketIndex, amount, {
270
- accounts: {
271
- admin: this.wallet.publicKey,
272
- state: await this.getStatePublicKey(),
273
- markets: state.markets,
274
- insuranceVault: state.insuranceVault,
275
- insuranceVaultAuthority: state.insuranceVaultAuthority,
276
- collateralVault: state.collateralVault,
277
- tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
278
- },
279
- });
280
- }
281
- async updateAdmin(admin) {
282
- return await this.program.rpc.updateAdmin(admin, {
283
- accounts: {
284
- admin: this.wallet.publicKey,
285
- state: await this.getStatePublicKey(),
286
- },
287
- });
288
- }
289
- async updateMarginRatio(marketIndex, marginRatioInitial, marginRatioPartial, marginRatioMaintenance) {
290
- return await this.program.rpc.updateMarginRatio(marketIndex, marginRatioInitial, marginRatioPartial, marginRatioMaintenance, {
291
- accounts: {
292
- admin: this.wallet.publicKey,
293
- state: await this.getStatePublicKey(),
294
- markets: this.getStateAccount().markets,
295
- },
296
- });
297
- }
298
- async updatePartialLiquidationClosePercentage(numerator, denominator) {
299
- return await this.program.rpc.updatePartialLiquidationClosePercentage(numerator, denominator, {
300
- accounts: {
301
- admin: this.wallet.publicKey,
302
- state: await this.getStatePublicKey(),
303
- },
304
- });
305
- }
306
- async updatePartialLiquidationPenaltyPercentage(numerator, denominator) {
307
- return await this.program.rpc.updatePartialLiquidationPenaltyPercentage(numerator, denominator, {
308
- accounts: {
309
- admin: this.wallet.publicKey,
310
- state: await this.getStatePublicKey(),
311
- },
312
- });
313
- }
314
- async updateFullLiquidationPenaltyPercentage(numerator, denominator) {
315
- return await this.program.rpc.updateFullLiquidationPenaltyPercentage(numerator, denominator, {
316
- accounts: {
317
- admin: this.wallet.publicKey,
318
- state: await this.getStatePublicKey(),
319
- },
320
- });
321
- }
322
- async updatePartialLiquidationShareDenominator(denominator) {
323
- return await this.program.rpc.updatePartialLiquidationLiquidatorShareDenominator(denominator, {
324
- accounts: {
325
- admin: this.wallet.publicKey,
326
- state: await this.getStatePublicKey(),
327
- },
328
- });
329
- }
330
- async updateFullLiquidationShareDenominator(denominator) {
331
- return await this.program.rpc.updateFullLiquidationLiquidatorShareDenominator(denominator, {
332
- accounts: {
333
- admin: this.wallet.publicKey,
334
- state: await this.getStatePublicKey(),
335
- },
336
- });
337
- }
338
- async updateOrderFillerRewardStructure(orderFillerRewardStructure) {
339
- return await this.program.rpc.updateOrderFillerRewardStructure(orderFillerRewardStructure, {
340
- accounts: {
341
- admin: this.wallet.publicKey,
342
- state: await this.getStatePublicKey(),
343
- orderState: await this.getOrderStatePublicKey(),
344
- },
345
- });
346
- }
347
- async updateFee(fees) {
348
- return await this.program.rpc.updateFee(fees, {
349
- accounts: {
350
- admin: this.wallet.publicKey,
351
- state: await this.getStatePublicKey(),
352
- },
353
- });
354
- }
355
- async updateOracleGuardRails(oracleGuardRails) {
356
- return await this.program.rpc.updateOracleGuardRails(oracleGuardRails, {
357
- accounts: {
358
- admin: this.wallet.publicKey,
359
- state: await this.getStatePublicKey(),
360
- },
361
- });
362
- }
363
- async updateMarketOracle(marketIndex, oracle, oracleSource) {
364
- const state = this.getStateAccount();
365
- return await this.program.rpc.updateMarketOracle(marketIndex, oracle, oracleSource, {
366
- accounts: {
367
- admin: this.wallet.publicKey,
368
- state: await this.getStatePublicKey(),
369
- markets: state.markets,
370
- },
371
- });
372
- }
373
- async updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize) {
374
- const state = this.getStateAccount();
375
- return await this.program.rpc.updateMarketMinimumQuoteAssetTradeSize(marketIndex, minimumTradeSize, {
376
- accounts: {
377
- admin: this.wallet.publicKey,
378
- state: await this.getStatePublicKey(),
379
- markets: state.markets,
380
- },
381
- });
382
- }
383
- async updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize) {
384
- const state = this.getStateAccount();
385
- return await this.program.rpc.updateMarketMinimumBaseAssetTradeSize(marketIndex, minimumTradeSize, {
386
- accounts: {
387
- admin: this.wallet.publicKey,
388
- state: await this.getStatePublicKey(),
389
- markets: state.markets,
390
- },
391
- });
392
- }
393
- async updateWhitelistMint(whitelistMint) {
394
- return await this.program.rpc.updateWhitelistMint(whitelistMint, {
395
- accounts: {
396
- admin: this.wallet.publicKey,
397
- state: await this.getStatePublicKey(),
398
- },
399
- });
400
- }
401
- async updateDiscountMint(discountMint) {
402
- return await this.program.rpc.updateDiscountMint(discountMint, {
403
- accounts: {
404
- admin: this.wallet.publicKey,
405
- state: await this.getStatePublicKey(),
406
- },
407
- });
408
- }
409
- async updateMaxDeposit(maxDeposit) {
410
- return await this.program.rpc.updateMaxDeposit(maxDeposit, {
411
- accounts: {
412
- admin: this.wallet.publicKey,
413
- state: await this.getStatePublicKey(),
414
- },
415
- });
416
- }
417
- async updateFundingPaused(fundingPaused) {
418
- return await this.program.rpc.updateFundingPaused(fundingPaused, {
419
- accounts: {
420
- admin: this.wallet.publicKey,
421
- state: await this.getStatePublicKey(),
422
- },
423
- });
424
- }
425
- async updateExchangePaused(exchangePaused) {
426
- return await this.program.rpc.updateExchangePaused(exchangePaused, {
427
- accounts: {
428
- admin: this.wallet.publicKey,
429
- state: await this.getStatePublicKey(),
430
- },
431
- });
432
- }
433
- async disableAdminControlsPrices() {
434
- return await this.program.rpc.disableAdminControlsPrices({
435
- accounts: {
436
- admin: this.wallet.publicKey,
437
- state: await this.getStatePublicKey(),
438
- },
439
- });
440
- }
441
- }
442
- exports.Admin = Admin;
443
- //# sourceMappingURL=admin.js.map
package/src/admin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["admin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAMyB;AACzB,mCAMiB;AACjB,kDAAqD;AACrD,8DAAgD;AAChD,2CAIqB;AACrB,iDAAqD;AACrD,mDAAgD;AAChD,mEAA6D;AAC7D,wCAAyD;AACzD,oCAA6E;AAC7E,2DAGiC;AAEjC,MAAa,KAAM,SAAQ,6BAAa;IAChC,MAAM,CAAC,IAAI,CACjB,UAAsB,EACtB,MAAe,EACf,sBAAiC,EACjC,OAAuB,iBAAQ,CAAC,cAAc,EAAE;QAEhD,MAAM,MAAM,GAAG,IAAA,+CAA+B,EAC7C,UAAU,EACV,MAAM,EACN,sBAAsB,EACtB,IAAI,CACJ,CAAC;QACF,OAAO,IAAA,wBAAQ,EAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,UAAU,CACtB,QAAmB,EACnB,mBAA4B;QAI5B,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACzE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAC9B,CAAC;QACF,IAAI,uBAAuB,CAAC,KAAK,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACtD;QAED,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GACrD,MAAM,mBAAS,CAAC,kBAAkB,CACjC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACjE,IAAI,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;QAEH,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,CAAC,GAC/D,MAAM,mBAAS,CAAC,kBAAkB,CACjC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,EACrC,IAAI,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;QAEH,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,GACnD,MAAM,mBAAS,CAAC,kBAAkB,CACjC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAChE,IAAI,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;QAEH,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,GAC7D,MAAM,mBAAS,CAAC,kBAAkB,CACjC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EACpC,IAAI,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEpD,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,GACtD,MAAM,IAAA,yDAA6C,EAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAC7D,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,2BAA2B;gBAClC,cAAc,EAAE,QAAQ;gBACxB,eAAe,EAAE,wBAAwB;gBACzC,wBAAwB,EAAE,wBAAwB;gBAClD,cAAc,EAAE,uBAAuB;gBACvC,uBAAuB,EAAE,uBAAuB;gBAChD,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,IAAI,EAAE,4BAAkB;gBACxB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS;gBAClD,YAAY,EAAE,4BAAgB;aAC9B;YACD,YAAY,EAAE;gBACb,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAC7D;SACD,CACD,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/C,YAAY,EACZ,CAAC,OAAO,CAAC,EACT,IAAI,CAAC,IAAI,CACT,CAAC;QAEF,MAAM,mBAAmB,GACxB,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAChD,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,2BAA2B;gBAClC,cAAc,EAAE,cAAc,CAAC,SAAS;gBACxC,kBAAkB,EAAE,kBAAkB,CAAC,SAAS;gBAChD,qBAAqB,EAAE,qBAAqB,CAAC,SAAS;gBACtD,YAAY,EAAE,YAAY,CAAC,SAAS;gBACpC,kBAAkB,EAAE,kBAAkB,CAAC,SAAS;gBAChD,YAAY,EAAE,YAAY,CAAC,SAAS;gBACpC,IAAI,EAAE,4BAAkB;gBACxB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS;aAClD;YACD,YAAY,EAAE;gBACb,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAC9D,kBAAkB,CAClB;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,iBAAiB,CACjE,qBAAqB,CACrB;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CACxD,YAAY,CACZ;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAC9D,kBAAkB,CAClB;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAC1D,cAAc,CACd;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAChE,YAAY,CACZ;aACD;SACD,CAAC,CAAC;QAEJ,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACtD,mBAAmB,EACnB;YACC,cAAc;YACd,qBAAqB;YACrB,YAAY;YACZ,kBAAkB;YAClB,kBAAkB;YAClB,YAAY;SACZ,EACD,IAAI,CAAC,IAAI,CACT,CAAC;QAEF,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEpE,OAAO,CAAC,eAAe,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAC3C,MAAM,IAAA,iDAAqC,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,2BAA2B,GAChC,MAAM,IAAA,iDAAqC,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErE,MAAM,sBAAsB,GAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,eAAe,EAAE;YACpE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,2BAA2B;gBAClC,YAAY,EAAE,YAAY,CAAC,SAAS;gBACpC,UAAU,EAAE,mBAAmB;gBAC/B,IAAI,EAAE,4BAAkB;gBACxB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS;aAClD;YACD,YAAY,EAAE;gBACb,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CACxD,YAAY,CACZ;aACD;SACD,CAAC,CAAC;QAEJ,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC9B,sBAAsB,EACtB,CAAC,YAAY,CAAC,EACd,IAAI,CAAC,IAAI,CACT,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC5B,WAAe,EACf,WAAsB,EACtB,gBAAoB,EACpB,iBAAqB,EACrB,WAAe,EACf,gBAAoB,gCAAa,EACjC,eAA6B,oBAAY,CAAC,IAAI,EAC9C,kBAAkB,GAAG,IAAI,EACzB,kBAAkB,GAAG,GAAG,EACxB,sBAAsB,GAAG,GAAG;QAE5B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE;YACzE,MAAM,KAAK,CAAC,eAAe,WAAW,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;SACzE;QAED,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CACzE,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO;aACvC;SACD,CACD,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,gBAAoB,EACpB,iBAAqB,EACrB,WAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CACzC,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CACnB,KAAS,EACT,WAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;QAE/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE;YACzD,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,oBAAoB;gBACxC,MAAM,EAAE,OAAO,CAAC,MAAM;aACtB;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC9B,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAChD,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,oBAAoB,EAAE,oBAAoB,CAAC,SAAS;aACpD;YACD,YAAY,EAAE;gBACb,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAChE,oBAAoB,CACpB;aACD;YACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAC/B,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,cAAc,CAC1B,WAAe,EACf,WAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE3C,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,IAAA,iCAAyB,EAC1D,MAAM,EACN,WAAW,CACX,CAAC;QAEF,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAC9C,IAAA,mCAA6B,EAC5B,MAAM,CAAC,GAAG,EACV,OAAO,EACP,SAAS,EACT,IAAA,sBAAgB,EAAC,OAAO,EAAE,SAAS,CAAC,CACpC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CACzC,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CACzB,MAAU,EACV,WAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;QAE/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE;YAChE,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,oBAAoB;aACxC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC/B,WAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;QAE/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE;YAC9D,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,oBAAoB;aACxC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,WAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;QAE/B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,WAAW,EAAE;YAC7D,QAAQ,EAAE;gBACT,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,YAAY,EAAE,KAAK,CAAC,oBAAoB;aACxC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,0BAA0B,CACtC,MAAU,EACV,SAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,MAAM,EAAE;YAChE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;gBACtD,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,4BAAgB;aAC9B;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CACxB,WAAe,EACf,MAAU,EACV,SAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE;YAC/D,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;gBACxD,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,4BAAgB;aAC9B;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kCAAkC,CAC9C,WAAe,EACf,MAAU;QAEV,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAC/D,WAAW,EACX,MAAM,EACN;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;gBACtD,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,YAAY,EAAE,4BAAgB;aAC9B;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAgB;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;YAChD,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC7B,WAAe,EACf,kBAA0B,EAC1B,kBAA0B,EAC1B,sBAA8B;QAE9B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAC9C,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO;aACvC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,uCAAuC,CACnD,SAAa,EACb,WAAe;QAEf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CACpE,SAAS,EACT,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,yCAAyC,CACrD,SAAa,EACb,WAAe;QAEf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CACtE,SAAS,EACT,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAClD,SAAa,EACb,WAAe;QAEf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CACnE,SAAS,EACT,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,wCAAwC,CACpD,WAAe;QAEf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAC/E,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,qCAAqC,CACjD,WAAe;QAEf,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAC5E,WAAW,EACX;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gCAAgC,CAC5C,0BAAsD;QAEtD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAC7D,0BAA0B,EAC1B;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,UAAU,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE;aAC/C;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAkB;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;YAC7C,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAClC,gBAAkC;QAElC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE;YACtE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,WAAe,EACf,MAAiB,EACjB,YAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAC/C,WAAW,EACX,MAAM,EACN,YAAY,EACZ;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sCAAsC,CAClD,WAAe,EACf,gBAAoB;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CACnE,WAAW,EACX,gBAAgB,EAChB;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,qCAAqC,CACjD,WAAe,EACf,gBAAoB;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAClE,WAAW,EACX,gBAAgB,EAChB;YACC,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB;SACD,CACD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC/B,aAAyB;QAEzB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE;YAChE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC9B,YAAuB;QAEvB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;YAC9D,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,UAAc;QAC3C,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC1D,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC/B,aAAsB;QAEtB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE;YAChE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAChC,cAAuB;QAEvB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,cAAc,EAAE;YAClE,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,0BAA0B;QACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACxD,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE;aACrC;SACD,CAAC,CAAC;IACJ,CAAC;CACD;AA/qBD,sBA+qBC"}