@black-market/sdk 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -20
- package/dist/abyss.d.ts +4 -2748
- package/dist/abyss.d.ts.map +1 -1
- package/dist/abyss.js +3 -1029
- package/dist/abyss.js.map +1 -1
- package/dist/addresses.d.ts +3 -7
- package/dist/addresses.d.ts.map +1 -1
- package/dist/addresses.js +6 -21
- package/dist/addresses.js.map +1 -1
- package/dist/auction.d.ts +2 -2
- package/dist/auction.d.ts.map +1 -1
- package/dist/auction.js +2 -2
- package/dist/auction.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/launch-api.d.ts +151 -0
- package/dist/launch-api.d.ts.map +1 -0
- package/dist/launch-api.js +117 -0
- package/dist/launch-api.js.map +1 -0
- package/dist/launch.d.ts +23 -185
- package/dist/launch.d.ts.map +1 -1
- package/dist/launch.js +35 -272
- package/dist/launch.js.map +1 -1
- package/dist/lifecycle/abi.d.ts +6391 -0
- package/dist/lifecycle/abi.d.ts.map +1 -0
- package/dist/lifecycle/abi.js +335 -0
- package/dist/lifecycle/abi.js.map +1 -0
- package/dist/lifecycle/authors.d.ts +133 -0
- package/dist/lifecycle/authors.d.ts.map +1 -0
- package/dist/lifecycle/authors.js +217 -0
- package/dist/lifecycle/authors.js.map +1 -0
- package/dist/lifecycle/fork.d.ts +15 -0
- package/dist/lifecycle/fork.d.ts.map +1 -0
- package/dist/lifecycle/fork.js +36 -0
- package/dist/lifecycle/fork.js.map +1 -0
- package/dist/lifecycle/index.d.ts +10 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +10 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/markets.d.ts +349 -0
- package/dist/lifecycle/markets.d.ts.map +1 -0
- package/dist/lifecycle/markets.js +186 -0
- package/dist/lifecycle/markets.js.map +1 -0
- package/dist/lifecycle/planner.d.ts +20 -0
- package/dist/lifecycle/planner.d.ts.map +1 -0
- package/dist/lifecycle/planner.js +481 -0
- package/dist/lifecycle/planner.js.map +1 -0
- package/dist/lifecycle/progress.d.ts +43 -0
- package/dist/lifecycle/progress.d.ts.map +1 -0
- package/dist/lifecycle/progress.js +449 -0
- package/dist/lifecycle/progress.js.map +1 -0
- package/dist/lifecycle/rpc.d.ts +17 -0
- package/dist/lifecycle/rpc.d.ts.map +1 -0
- package/dist/lifecycle/rpc.js +100 -0
- package/dist/lifecycle/rpc.js.map +1 -0
- package/dist/lifecycle/schema.d.ts +1068 -0
- package/dist/lifecycle/schema.d.ts.map +1 -0
- package/dist/lifecycle/schema.js +335 -0
- package/dist/lifecycle/schema.js.map +1 -0
- package/dist/lifecycle/simulation.d.ts +3 -0
- package/dist/lifecycle/simulation.d.ts.map +1 -0
- package/dist/lifecycle/simulation.js +393 -0
- package/dist/lifecycle/simulation.js.map +1 -0
- package/dist/lifecycle/types.d.ts +273 -0
- package/dist/lifecycle/types.d.ts.map +1 -0
- package/dist/lifecycle/types.js +11 -0
- package/dist/lifecycle/types.js.map +1 -0
- package/docs/launch-lifecycle.md +243 -0
- package/package.json +12 -3
- package/src/abyss.ts +3 -1059
- package/src/addresses.ts +9 -26
- package/src/auction.ts +2 -2
- package/src/index.ts +2 -0
- package/src/launch-api.ts +110 -0
- package/src/launch.ts +43 -411
- package/src/lifecycle/abi.ts +343 -0
- package/src/lifecycle/authors.ts +203 -0
- package/src/lifecycle/fork.ts +36 -0
- package/src/lifecycle/index.ts +9 -0
- package/src/lifecycle/markets.ts +205 -0
- package/src/lifecycle/planner.ts +396 -0
- package/src/lifecycle/progress.ts +378 -0
- package/src/lifecycle/rpc.ts +88 -0
- package/src/lifecycle/schema.ts +387 -0
- package/src/lifecycle/simulation.ts +329 -0
- package/src/lifecycle/types.ts +132 -0
package/dist/launch.js
CHANGED
|
@@ -1,139 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ABYSS_FEE_TIERS, AbyssPoolProfile, atomicLaunchFactoryAbi, TokenKind } from "./abyss.js";
|
|
1
|
+
import { ABYSS_FEE_TIERS } from "./abyss.js";
|
|
3
2
|
import { AUCTION_SUPPLY } from "./auction.js";
|
|
4
|
-
export const INITIAL_TEMPLATE_VERSION = 1;
|
|
5
|
-
export const STANDARD_TEMPLATE_ID = keccak256(stringToHex("black-market.standard"));
|
|
6
|
-
export const QUOTE_STAKING_TEMPLATE_ID = keccak256(stringToHex("black-market.quote-staking"));
|
|
7
|
-
export const QUOTE_DIVIDENDS_TEMPLATE_ID = keccak256(stringToHex("black-market.quote-dividends"));
|
|
8
|
-
export const DUAL_STAKING_TEMPLATE_ID = keccak256(stringToHex("black-market.dual-staking"));
|
|
9
|
-
export const DUAL_DIVIDENDS_TEMPLATE_ID = keccak256(stringToHex("black-market.dual-dividends"));
|
|
10
|
-
export const FEE_BURN_TEMPLATE_ID = keccak256(stringToHex("black-market.fee-burn"));
|
|
11
|
-
export const STANDARD_TEMPLATE_VERSION = INITIAL_TEMPLATE_VERSION;
|
|
12
3
|
export const LAUNCH_REWARD_DURATION = 7 * 24 * 60 * 60;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export const
|
|
18
|
-
/** Existing Abyss execution policy: Atomic launch requests expire after 20 minutes. */
|
|
19
|
-
export const ATOMIC_LAUNCH_DEADLINE_SECONDS = 20 * 60;
|
|
20
|
-
/** Existing Abyss execution policy: initial Atomic buys tolerate 50 basis points of price movement. */
|
|
21
|
-
export const ATOMIC_LAUNCH_BUY_SLIPPAGE_BPS = 50;
|
|
22
|
-
/**
|
|
23
|
-
* Atomic lifecycle recipes and tests use a $5,000 initial fully diluted market cap.
|
|
24
|
-
* The form converts this editable whole-USD default to an X18 value before recipe derivation.
|
|
25
|
-
*/
|
|
26
|
-
export const DEFAULT_ATOMIC_LAUNCH_TARGET_MARKET_CAP_USD = 5_000;
|
|
27
|
-
export var LaunchRewardMode;
|
|
28
|
-
(function (LaunchRewardMode) {
|
|
29
|
-
LaunchRewardMode[LaunchRewardMode["None"] = 0] = "None";
|
|
30
|
-
LaunchRewardMode[LaunchRewardMode["Staking"] = 1] = "Staking";
|
|
31
|
-
LaunchRewardMode[LaunchRewardMode["Dividends"] = 2] = "Dividends";
|
|
32
|
-
})(LaunchRewardMode || (LaunchRewardMode = {}));
|
|
33
|
-
export var LaunchFeeAssetMode;
|
|
34
|
-
(function (LaunchFeeAssetMode) {
|
|
35
|
-
LaunchFeeAssetMode[LaunchFeeAssetMode["Profile"] = 0] = "Profile";
|
|
36
|
-
LaunchFeeAssetMode[LaunchFeeAssetMode["PairedOnly"] = 1] = "PairedOnly";
|
|
37
|
-
LaunchFeeAssetMode[LaunchFeeAssetMode["Both"] = 2] = "Both";
|
|
38
|
-
LaunchFeeAssetMode[LaunchFeeAssetMode["LaunchedOnly"] = 3] = "LaunchedOnly";
|
|
39
|
-
})(LaunchFeeAssetMode || (LaunchFeeAssetMode = {}));
|
|
40
|
-
export var LaunchFeeDestination;
|
|
41
|
-
(function (LaunchFeeDestination) {
|
|
42
|
-
LaunchFeeDestination[LaunchFeeDestination["Owner"] = 1] = "Owner";
|
|
43
|
-
LaunchFeeDestination[LaunchFeeDestination["Rewards"] = 2] = "Rewards";
|
|
44
|
-
LaunchFeeDestination[LaunchFeeDestination["Burn"] = 4] = "Burn";
|
|
45
|
-
})(LaunchFeeDestination || (LaunchFeeDestination = {}));
|
|
46
|
-
const OWNER = LaunchFeeDestination.Owner;
|
|
47
|
-
const REWARDS = LaunchFeeDestination.Rewards;
|
|
48
|
-
const BURN = LaunchFeeDestination.Burn;
|
|
49
|
-
const BURNABLE_ONLY = [TokenKind.Burnable];
|
|
50
|
-
const DIVIDEND_ONLY = [TokenKind.HolderDividend];
|
|
51
|
-
export const LAUNCH_TEMPLATES = [
|
|
52
|
-
{
|
|
53
|
-
id: "standard",
|
|
54
|
-
templateId: STANDARD_TEMPLATE_ID,
|
|
55
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
56
|
-
label: "Standard",
|
|
57
|
-
tokenKinds: BURNABLE_ONLY,
|
|
58
|
-
poolProfiles: [AbyssPoolProfile.StandardOracle, AbyssPoolProfile.QuoteOracle],
|
|
59
|
-
launchedTokenIsQuote: false,
|
|
60
|
-
rewardMode: LaunchRewardMode.None,
|
|
61
|
-
rewardDuration: 0,
|
|
62
|
-
feeAssetMode: LaunchFeeAssetMode.Profile,
|
|
63
|
-
launchedTokenDestinations: OWNER,
|
|
64
|
-
pairedTokenDestinations: OWNER,
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
id: "quote-staking",
|
|
68
|
-
templateId: QUOTE_STAKING_TEMPLATE_ID,
|
|
69
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
70
|
-
label: "Quote Staking",
|
|
71
|
-
tokenKinds: BURNABLE_ONLY,
|
|
72
|
-
poolProfiles: [AbyssPoolProfile.QuoteOracle],
|
|
73
|
-
launchedTokenIsQuote: false,
|
|
74
|
-
rewardMode: LaunchRewardMode.Staking,
|
|
75
|
-
rewardDuration: LAUNCH_REWARD_DURATION,
|
|
76
|
-
feeAssetMode: LaunchFeeAssetMode.PairedOnly,
|
|
77
|
-
launchedTokenDestinations: 0,
|
|
78
|
-
pairedTokenDestinations: OWNER | REWARDS,
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
id: "quote-dividends",
|
|
82
|
-
templateId: QUOTE_DIVIDENDS_TEMPLATE_ID,
|
|
83
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
84
|
-
label: "Quote Dividends",
|
|
85
|
-
tokenKinds: DIVIDEND_ONLY,
|
|
86
|
-
poolProfiles: [AbyssPoolProfile.QuoteOracle],
|
|
87
|
-
launchedTokenIsQuote: false,
|
|
88
|
-
rewardMode: LaunchRewardMode.Dividends,
|
|
89
|
-
rewardDuration: LAUNCH_REWARD_DURATION,
|
|
90
|
-
feeAssetMode: LaunchFeeAssetMode.PairedOnly,
|
|
91
|
-
launchedTokenDestinations: 0,
|
|
92
|
-
pairedTokenDestinations: OWNER | REWARDS,
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
id: "dual-staking",
|
|
96
|
-
templateId: DUAL_STAKING_TEMPLATE_ID,
|
|
97
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
98
|
-
label: "Dual Staking",
|
|
99
|
-
tokenKinds: BURNABLE_ONLY,
|
|
100
|
-
poolProfiles: [AbyssPoolProfile.StandardOracle],
|
|
101
|
-
launchedTokenIsQuote: false,
|
|
102
|
-
rewardMode: LaunchRewardMode.Staking,
|
|
103
|
-
rewardDuration: LAUNCH_REWARD_DURATION,
|
|
104
|
-
feeAssetMode: LaunchFeeAssetMode.Both,
|
|
105
|
-
launchedTokenDestinations: OWNER | REWARDS | BURN,
|
|
106
|
-
pairedTokenDestinations: OWNER | REWARDS,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
id: "dual-dividends",
|
|
110
|
-
templateId: DUAL_DIVIDENDS_TEMPLATE_ID,
|
|
111
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
112
|
-
label: "Dual Dividends",
|
|
113
|
-
tokenKinds: DIVIDEND_ONLY,
|
|
114
|
-
poolProfiles: [AbyssPoolProfile.StandardOracle],
|
|
115
|
-
launchedTokenIsQuote: false,
|
|
116
|
-
rewardMode: LaunchRewardMode.Dividends,
|
|
117
|
-
rewardDuration: LAUNCH_REWARD_DURATION,
|
|
118
|
-
feeAssetMode: LaunchFeeAssetMode.Both,
|
|
119
|
-
launchedTokenDestinations: OWNER | REWARDS | BURN,
|
|
120
|
-
pairedTokenDestinations: OWNER | REWARDS,
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
id: "fee-burn",
|
|
124
|
-
templateId: FEE_BURN_TEMPLATE_ID,
|
|
125
|
-
version: INITIAL_TEMPLATE_VERSION,
|
|
126
|
-
label: "Fee Burn",
|
|
127
|
-
tokenKinds: BURNABLE_ONLY,
|
|
128
|
-
poolProfiles: [AbyssPoolProfile.QuoteOracle],
|
|
129
|
-
launchedTokenIsQuote: true,
|
|
130
|
-
rewardMode: LaunchRewardMode.None,
|
|
131
|
-
rewardDuration: 0,
|
|
132
|
-
feeAssetMode: LaunchFeeAssetMode.LaunchedOnly,
|
|
133
|
-
launchedTokenDestinations: BURN,
|
|
134
|
-
pairedTokenDestinations: 0,
|
|
135
|
-
},
|
|
136
|
-
];
|
|
4
|
+
/** Canonical P3 oracle default; reviewed V4 markets may select any valid registered oracle within their cardinality bounds. */
|
|
5
|
+
export const LAUNCH_ORACLE_CONFIG_ID = "0xc0e9bed88d70a13fd3ab31451fefdd073b7266e838aee0ad1c236c8c9eff855d";
|
|
6
|
+
export const LAUNCH_DEADLINE_SECONDS = 20 * 60;
|
|
7
|
+
export const LAUNCH_BUY_SLIPPAGE_BPS = 50;
|
|
8
|
+
export const DEFAULT_LAUNCH_TARGET_MARKET_CAP_USD = 5_000;
|
|
137
9
|
const Q32 = 1n << 32n;
|
|
138
10
|
const Q96 = 1n << 96n;
|
|
139
11
|
const MAX_UINT128 = (1n << 128n) - 1n;
|
|
@@ -146,8 +18,6 @@ const MIN_TICK = -887_272;
|
|
|
146
18
|
const MAX_TICK = 887_272;
|
|
147
19
|
const MIN_SQRT_RATIO = 4295128739n;
|
|
148
20
|
const MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342n;
|
|
149
|
-
const ZERO_BYTES32 = `0x${"00".repeat(32)}`;
|
|
150
|
-
const BYTES32_HEX = /^0x[0-9a-fA-F]{64}$/;
|
|
151
21
|
// Canonical Uniswap v3 TickMath multipliers, matching contracts/src/oracles/TickMathLib.sol.
|
|
152
22
|
const TICK_MULTIPLIERS = [
|
|
153
23
|
0xfffcb933bd6fad37aa2d162d1a594001n,
|
|
@@ -194,13 +64,6 @@ function assertTokenDecimals(value, name) {
|
|
|
194
64
|
throw new Error(`${name} must be a uint8 integer`);
|
|
195
65
|
}
|
|
196
66
|
}
|
|
197
|
-
function assertOracleConfigId(value) {
|
|
198
|
-
if (typeof value !== "string" ||
|
|
199
|
-
!BYTES32_HEX.test(value) ||
|
|
200
|
-
value.toLowerCase() === ZERO_BYTES32) {
|
|
201
|
-
throw new Error("pool.oracleConfigId must be a nonzero bytes32");
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
67
|
function assertCanonicalSqrtPrice(value, name) {
|
|
205
68
|
assertUint(value, MAX_UINT160, name);
|
|
206
69
|
if (value < MIN_SQRT_RATIO || value >= MAX_SQRT_RATIO) {
|
|
@@ -256,7 +119,7 @@ function getTickAtSqrtRatio(sqrtPriceX96) {
|
|
|
256
119
|
}
|
|
257
120
|
return low;
|
|
258
121
|
}
|
|
259
|
-
//
|
|
122
|
+
// Signed-remainder alignment matches the canonical Solidity range geometry.
|
|
260
123
|
function alignDown(tick, tickSpacing) {
|
|
261
124
|
const remainder = tick % tickSpacing;
|
|
262
125
|
return remainder === 0 ? tick : tick - remainder;
|
|
@@ -275,7 +138,7 @@ function launchBand(launchTick, tickSpacing, launchedTokenIsQuote) {
|
|
|
275
138
|
if (tickLower < MIN_TICK ||
|
|
276
139
|
tickUpper > MAX_TICK ||
|
|
277
140
|
tickLower >= tickUpper) {
|
|
278
|
-
throw new Error("launchTick cannot form a valid
|
|
141
|
+
throw new Error("launchTick cannot form a valid one-sided launch band");
|
|
279
142
|
}
|
|
280
143
|
return { tickLower, tickUpper };
|
|
281
144
|
}
|
|
@@ -286,32 +149,40 @@ function liquidityForAmount1(amount1, sqrtLowerX96, sqrtUpperX96) {
|
|
|
286
149
|
return (amount1 * Q96) / (sqrtUpperX96 - sqrtLowerX96);
|
|
287
150
|
}
|
|
288
151
|
/**
|
|
289
|
-
* Derives
|
|
152
|
+
* Derives one-sided launch geometry from explicit supply, budget and fully diluted market cap.
|
|
290
153
|
* The raw price remains a rational bigint until the canonical Q64.96 square root conversion.
|
|
291
154
|
*/
|
|
292
|
-
export function
|
|
155
|
+
export function deriveLaunchPoolRecipe(input) {
|
|
293
156
|
assertTokenDecimals(input.pairedTokenDecimals, "pairedTokenDecimals");
|
|
294
157
|
assertPositiveUint(input.pairedTokenUsdPriceX18, MAX_UINT256, "pairedTokenUsdPriceX18");
|
|
295
158
|
assertPositiveUint(input.targetMarketCapUsdX18, MAX_UINT256, "targetMarketCapUsdX18");
|
|
296
159
|
if (typeof input.launchedTokenIsQuote !== "boolean") {
|
|
297
160
|
throw new Error("launchedTokenIsQuote must be a boolean");
|
|
298
161
|
}
|
|
299
|
-
const
|
|
162
|
+
const supply = input.supply ?? AUCTION_SUPPLY;
|
|
163
|
+
const tokenBudget = input.tokenBudget ?? supply;
|
|
164
|
+
assertPositiveUint(supply, MAX_UINT256, "supply");
|
|
165
|
+
assertPositiveUint(tokenBudget, MAX_UINT256, "tokenBudget");
|
|
166
|
+
if (tokenBudget > supply)
|
|
167
|
+
throw new Error("tokenBudget cannot exceed supply");
|
|
168
|
+
const tickSpacing = input.tickSpacing ?? getFeeTier(input.fee).tickSpacing;
|
|
169
|
+
if (!Number.isInteger(tickSpacing) || tickSpacing < 1 || tickSpacing > 32767)
|
|
170
|
+
throw new Error("tickSpacing must be 1..32767");
|
|
300
171
|
const pairedTokenUnit = 10n ** BigInt(input.pairedTokenDecimals);
|
|
301
|
-
const [priceNumerator, priceDenominator] = input.launchedTokenIsQuote ? [input.targetMarketCapUsdX18 * pairedTokenUnit, input.pairedTokenUsdPriceX18 *
|
|
172
|
+
const [priceNumerator, priceDenominator] = input.launchedTokenIsQuote ? [input.targetMarketCapUsdX18 * pairedTokenUnit, input.pairedTokenUsdPriceX18 * supply] : [input.pairedTokenUsdPriceX18 * supply, input.targetMarketCapUsdX18 * pairedTokenUnit];
|
|
302
173
|
const targetSqrtPriceX96 = integerSqrt((priceNumerator << 192n) / priceDenominator);
|
|
303
174
|
const rawTick = getTickAtSqrtRatio(targetSqrtPriceX96);
|
|
304
175
|
const launchTick = input.launchedTokenIsQuote
|
|
305
|
-
? Math.ceil(rawTick /
|
|
306
|
-
: Math.floor(rawTick /
|
|
176
|
+
? Math.ceil(rawTick / tickSpacing) * tickSpacing
|
|
177
|
+
: Math.floor(rawTick / tickSpacing) * tickSpacing;
|
|
307
178
|
assertInt24(launchTick, "launchTick");
|
|
308
|
-
const { tickLower, tickUpper } = launchBand(launchTick,
|
|
179
|
+
const { tickLower, tickUpper } = launchBand(launchTick, tickSpacing, input.launchedTokenIsQuote);
|
|
309
180
|
const sqrtLowerX96 = getSqrtRatioAtTick(tickLower);
|
|
310
181
|
const sqrtUpperX96 = getSqrtRatioAtTick(tickUpper);
|
|
311
182
|
const launchSqrtPriceX96 = input.launchedTokenIsQuote ? sqrtLowerX96 : sqrtUpperX96;
|
|
312
183
|
const liquidity = input.launchedTokenIsQuote
|
|
313
|
-
? liquidityForAmount0(
|
|
314
|
-
: liquidityForAmount1(
|
|
184
|
+
? liquidityForAmount0(tokenBudget, sqrtLowerX96, sqrtUpperX96)
|
|
185
|
+
: liquidityForAmount1(tokenBudget, sqrtLowerX96, sqrtUpperX96);
|
|
315
186
|
if (liquidity <= 0n || liquidity > MAX_UINT128) {
|
|
316
187
|
throw new Error("Derived liquidity is outside the uint128 range");
|
|
317
188
|
}
|
|
@@ -319,21 +190,24 @@ export function deriveAtomicLaunchPoolRecipe(input) {
|
|
|
319
190
|
launchTick,
|
|
320
191
|
launchSqrtPriceX96,
|
|
321
192
|
liquidity,
|
|
322
|
-
launchedTokenAmountMaximum:
|
|
193
|
+
launchedTokenAmountMaximum: tokenBudget,
|
|
323
194
|
pairedTokenAmountMaximum: 0n,
|
|
195
|
+
tickLower, tickUpper,
|
|
324
196
|
};
|
|
325
197
|
}
|
|
326
198
|
/**
|
|
327
|
-
* Pure estimate for the first exact-input buy against a fresh one-sided
|
|
199
|
+
* Pure estimate for the first exact-input buy against a fresh one-sided
|
|
328
200
|
* launch position. No wallet balance, allowance, pool deployment, or RPC state.
|
|
329
201
|
* Uses conservative input-fee rounding; execution simulation remains the final
|
|
330
202
|
* authority before submission.
|
|
331
203
|
*/
|
|
332
|
-
export function
|
|
204
|
+
export function estimateLaunchInitialBuy(input) {
|
|
333
205
|
assertCanonicalSqrtPrice(input.launchSqrtPriceX96, "launchSqrtPriceX96");
|
|
334
206
|
assertPositiveUint(input.liquidity, MAX_UINT128, "liquidity");
|
|
335
207
|
assertUint(input.pairedTokenAmountIn, MAX_UINT256, "pairedTokenAmountIn");
|
|
336
|
-
|
|
208
|
+
if (!Number.isInteger(input.fee) || input.fee < 0 || input.fee >= 1000000)
|
|
209
|
+
throw new Error("fee must be pips below 1000000");
|
|
210
|
+
const fee = BigInt(input.fee);
|
|
337
211
|
const amountAfterFee = (input.pairedTokenAmountIn * (1000000n - fee)) / 1000000n;
|
|
338
212
|
if (amountAfterFee === 0n) {
|
|
339
213
|
return {
|
|
@@ -377,14 +251,14 @@ function ceilSqrtRatio(numerator, denominator) {
|
|
|
377
251
|
}
|
|
378
252
|
/**
|
|
379
253
|
* Produces the router's exclusive sqrt-price guard for the paired-token initial buy.
|
|
380
|
-
* A paired input moves down
|
|
254
|
+
* A paired input moves down when the launch token is currency1 and up when it is currency0.
|
|
381
255
|
*/
|
|
382
|
-
export function
|
|
256
|
+
export function deriveLaunchBuySqrtPriceLimitX96(input) {
|
|
383
257
|
assertCanonicalSqrtPrice(input.launchSqrtPriceX96, "launchSqrtPriceX96");
|
|
384
258
|
if (typeof input.launchedTokenIsQuote !== "boolean") {
|
|
385
259
|
throw new Error("launchedTokenIsQuote must be a boolean");
|
|
386
260
|
}
|
|
387
|
-
const slippageBps = input.slippageBps ??
|
|
261
|
+
const slippageBps = input.slippageBps ?? LAUNCH_BUY_SLIPPAGE_BPS;
|
|
388
262
|
if (!Number.isInteger(slippageBps) || slippageBps < 1 || slippageBps > 9_999) {
|
|
389
263
|
throw new Error("slippageBps must be an integer from 1 through 9,999");
|
|
390
264
|
}
|
|
@@ -397,115 +271,4 @@ export function deriveAtomicLaunchBuySqrtPriceLimitX96(input) {
|
|
|
397
271
|
const limit = ceilSqrtRatio(squaredLaunchSqrt * (10000n - slippage), 10000n);
|
|
398
272
|
return limit <= MIN_SQRT_RATIO ? MIN_SQRT_RATIO + 1n : limit;
|
|
399
273
|
}
|
|
400
|
-
export function getLaunchTemplate(id) {
|
|
401
|
-
const template = LAUNCH_TEMPLATES.find((candidate) => candidate.id === id);
|
|
402
|
-
if (!template)
|
|
403
|
-
throw new Error(`Unknown launch template: ${id}`);
|
|
404
|
-
return template;
|
|
405
|
-
}
|
|
406
|
-
export function getLaunchTemplateByHash(templateId) {
|
|
407
|
-
const template = LAUNCH_TEMPLATES.find((candidate) => candidate.templateId.toLowerCase() === templateId.toLowerCase());
|
|
408
|
-
if (!template)
|
|
409
|
-
throw new Error(`Unknown launch template id: ${templateId}`);
|
|
410
|
-
return template;
|
|
411
|
-
}
|
|
412
|
-
function dispositionTotal(disposition) {
|
|
413
|
-
return disposition.ownerBps + disposition.rewardsBps + disposition.burnBps;
|
|
414
|
-
}
|
|
415
|
-
function dispositionDestinations(disposition) {
|
|
416
|
-
return ((disposition.ownerBps === 0 ? 0 : OWNER) |
|
|
417
|
-
(disposition.rewardsBps === 0 ? 0 : REWARDS) |
|
|
418
|
-
(disposition.burnBps === 0 ? 0 : BURN));
|
|
419
|
-
}
|
|
420
|
-
function validateDisposition(name, disposition, active, allowedDestinations) {
|
|
421
|
-
if (!Number.isInteger(disposition.ownerBps) ||
|
|
422
|
-
!Number.isInteger(disposition.rewardsBps) ||
|
|
423
|
-
!Number.isInteger(disposition.burnBps) ||
|
|
424
|
-
disposition.ownerBps < 0 ||
|
|
425
|
-
disposition.rewardsBps < 0 ||
|
|
426
|
-
disposition.burnBps < 0) {
|
|
427
|
-
throw new Error(`${name} must contain nonnegative integer basis points`);
|
|
428
|
-
}
|
|
429
|
-
const total = dispositionTotal(disposition);
|
|
430
|
-
if (active ? total !== 10_000 : total !== 0) {
|
|
431
|
-
throw new Error(`${name} must total ${active ? "10,000" : "zero"} basis points`);
|
|
432
|
-
}
|
|
433
|
-
if (dispositionDestinations(disposition) & ~allowedDestinations) {
|
|
434
|
-
throw new Error(`${name} uses a destination not allowed by the template`);
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
export function buildAtomicLaunchCalldata(request, nativeBuyAmount = 0n) {
|
|
438
|
-
if (!isAddress(request.creator) || request.creator.toLowerCase() === zeroAddress) {
|
|
439
|
-
throw new Error("creator must be a nonzero address");
|
|
440
|
-
}
|
|
441
|
-
const template = getLaunchTemplateByHash(request.templateId);
|
|
442
|
-
if (request.templateVersion !== template.version)
|
|
443
|
-
throw new Error("Unsupported template version");
|
|
444
|
-
if (!template.tokenKinds.includes(request.token.kind)) {
|
|
445
|
-
throw new Error("Token kind is not supported by the template");
|
|
446
|
-
}
|
|
447
|
-
if (!template.poolProfiles.includes(request.pool.profile)) {
|
|
448
|
-
throw new Error("Pool profile is not supported by the template");
|
|
449
|
-
}
|
|
450
|
-
if (!isAddress(request.pool.pairedToken) || request.pool.pairedToken.toLowerCase() === zeroAddress) {
|
|
451
|
-
throw new Error("pairedToken must be a nonzero address");
|
|
452
|
-
}
|
|
453
|
-
if (request.pool.launchedTokenIsQuote !== template.launchedTokenIsQuote) {
|
|
454
|
-
throw new Error("Pool orientation does not match the template");
|
|
455
|
-
}
|
|
456
|
-
const feeTier = getFeeTier(request.pool.fee);
|
|
457
|
-
assertOracleConfigId(request.pool.oracleConfigId);
|
|
458
|
-
assertInt24(request.pool.launchTick, "pool.launchTick");
|
|
459
|
-
assertTokenDecimals(request.token.decimals, "token.decimals");
|
|
460
|
-
assertPositiveUint(request.token.supply, MAX_UINT256, "token.supply");
|
|
461
|
-
assertPositiveUint(request.pool.liquidity, MAX_UINT128, "pool.liquidity");
|
|
462
|
-
assertPositiveUint(request.pool.launchedTokenAmountMaximum, MAX_UINT256, "pool.launchedTokenAmountMaximum");
|
|
463
|
-
assertUint(request.pool.pairedTokenAmountMaximum, MAX_UINT256, "pool.pairedTokenAmountMaximum");
|
|
464
|
-
if (request.pool.pairedTokenAmountMaximum !== 0n) {
|
|
465
|
-
throw new Error("pool.pairedTokenAmountMaximum must be zero for a single-sided Atomic launch");
|
|
466
|
-
}
|
|
467
|
-
if (request.pool.launchedTokenAmountMaximum > request.token.supply) {
|
|
468
|
-
throw new Error("pool.launchedTokenAmountMaximum cannot exceed token.supply");
|
|
469
|
-
}
|
|
470
|
-
assertPositiveUint(request.deadline, MAX_UINT256, "deadline");
|
|
471
|
-
assertUint(request.initialBuy.pairedTokenAmountIn, MAX_UINT256, "initialBuy.pairedTokenAmountIn");
|
|
472
|
-
assertUint(nativeBuyAmount, MAX_UINT256, "nativeBuyAmount");
|
|
473
|
-
assertUint(request.initialBuy.launchedTokenAmountOutMinimum, MAX_UINT256, "initialBuy.launchedTokenAmountOutMinimum");
|
|
474
|
-
assertUint(request.initialBuy.sqrtPriceLimitX96, MAX_UINT160, "initialBuy.sqrtPriceLimitX96");
|
|
475
|
-
const effectiveBuyAmount = request.initialBuy.pairedTokenAmountIn + nativeBuyAmount;
|
|
476
|
-
if (effectiveBuyAmount === 0n) {
|
|
477
|
-
if (request.initialBuy.launchedTokenAmountOutMinimum !== 0n ||
|
|
478
|
-
request.initialBuy.sqrtPriceLimitX96 !== 0n) {
|
|
479
|
-
throw new Error("zero initial buy cannot set output or price limits");
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
else {
|
|
483
|
-
if (request.initialBuy.sqrtPriceLimitX96 === 0n) {
|
|
484
|
-
throw new Error("nonzero initial buy requires a directional price limit");
|
|
485
|
-
}
|
|
486
|
-
assertCanonicalSqrtPrice(request.initialBuy.sqrtPriceLimitX96, "initialBuy.sqrtPriceLimitX96");
|
|
487
|
-
const { tickLower, tickUpper } = launchBand(request.pool.launchTick, feeTier.tickSpacing, request.pool.launchedTokenIsQuote);
|
|
488
|
-
const launchSqrtPriceX96 = getSqrtRatioAtTick(request.pool.launchedTokenIsQuote ? tickLower : tickUpper);
|
|
489
|
-
if ((!request.pool.launchedTokenIsQuote &&
|
|
490
|
-
request.initialBuy.sqrtPriceLimitX96 >= launchSqrtPriceX96) ||
|
|
491
|
-
(request.pool.launchedTokenIsQuote &&
|
|
492
|
-
request.initialBuy.sqrtPriceLimitX96 <= launchSqrtPriceX96)) {
|
|
493
|
-
throw new Error("initial buy price limit does not protect the paired-token swap direction");
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
const launchedFeesActive = template.feeAssetMode === LaunchFeeAssetMode.Both ||
|
|
497
|
-
template.feeAssetMode === LaunchFeeAssetMode.LaunchedOnly ||
|
|
498
|
-
(template.feeAssetMode === LaunchFeeAssetMode.Profile &&
|
|
499
|
-
request.pool.profile === AbyssPoolProfile.StandardOracle);
|
|
500
|
-
const pairedFeesActive = template.feeAssetMode === LaunchFeeAssetMode.Profile ||
|
|
501
|
-
template.feeAssetMode === LaunchFeeAssetMode.PairedOnly ||
|
|
502
|
-
template.feeAssetMode === LaunchFeeAssetMode.Both;
|
|
503
|
-
validateDisposition("launchedTokenFees", request.launchedTokenFees, launchedFeesActive, template.launchedTokenDestinations);
|
|
504
|
-
validateDisposition("pairedTokenFees", request.pairedTokenFees, pairedFeesActive, template.pairedTokenDestinations);
|
|
505
|
-
return encodeFunctionData({
|
|
506
|
-
abi: atomicLaunchFactoryAbi,
|
|
507
|
-
functionName: "deployAndLaunch",
|
|
508
|
-
args: [request],
|
|
509
|
-
});
|
|
510
|
-
}
|
|
511
274
|
//# sourceMappingURL=launch.js.map
|
package/dist/launch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAElB,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAClG,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAAC;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,oEAA6E,CAAC;AAEhF,uFAAuF;AACvF,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,CAAC;AAEtD,uGAAuG;AACvG,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG,KAAK,CAAC;AAGjE,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uDAAI,CAAA;IACJ,6DAAO,CAAA;IACP,iEAAS,CAAA;AACX,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,iEAAO,CAAA;IACP,uEAAU,CAAA;IACV,2DAAI,CAAA;IACJ,2EAAY,CAAA;AACd,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,iEAAc,CAAA;IACd,qEAAgB,CAAA;IAChB,+DAAa,CAAA;AACf,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAgCD,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC;AACzC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC;AAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;AACvC,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAU,CAAC;AACpD,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,cAAc,CAAU,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,EAAE,EAAE,UAAU;QACd,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAC;QAC7E,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,gBAAgB,CAAC,IAAI;QACjC,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,kBAAkB,CAAC,OAAO;QACxC,yBAAyB,EAAE,KAAK;QAChC,uBAAuB,EAAE,KAAK;KAC/B;IACD;QACE,EAAE,EAAE,eAAe;QACnB,UAAU,EAAE,yBAAyB;QACrC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC5C,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,gBAAgB,CAAC,OAAO;QACpC,cAAc,EAAE,sBAAsB;QACtC,YAAY,EAAE,kBAAkB,CAAC,UAAU;QAC3C,yBAAyB,EAAE,CAAC;QAC5B,uBAAuB,EAAE,KAAK,GAAG,OAAO;KACzC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,UAAU,EAAE,2BAA2B;QACvC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC5C,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,gBAAgB,CAAC,SAAS;QACtC,cAAc,EAAE,sBAAsB;QACtC,YAAY,EAAE,kBAAkB,CAAC,UAAU;QAC3C,yBAAyB,EAAE,CAAC;QAC5B,uBAAuB,EAAE,KAAK,GAAG,OAAO;KACzC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,UAAU,EAAE,wBAAwB;QACpC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAC/C,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,gBAAgB,CAAC,OAAO;QACpC,cAAc,EAAE,sBAAsB;QACtC,YAAY,EAAE,kBAAkB,CAAC,IAAI;QACrC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI;QACjD,uBAAuB,EAAE,KAAK,GAAG,OAAO;KACzC;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,UAAU,EAAE,0BAA0B;QACtC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAC/C,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,gBAAgB,CAAC,SAAS;QACtC,cAAc,EAAE,sBAAsB;QACtC,YAAY,EAAE,kBAAkB,CAAC,IAAI;QACrC,yBAAyB,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI;QACjD,uBAAuB,EAAE,KAAK,GAAG,OAAO;KACzC;IACD;QACE,EAAE,EAAE,UAAU;QACd,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,wBAAwB;QACjC,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAC5C,oBAAoB,EAAE,IAAI;QAC1B,UAAU,EAAE,gBAAgB,CAAC,IAAI;QACjC,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY;QAC7C,yBAAyB,EAAE,IAAI;QAC/B,uBAAuB,EAAE,CAAC;KAC3B;CAC2C,CAAC;AAwD/C,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC;AACtB,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AAEhC,qFAAqF;AACrF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC;AAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC;AACzB,MAAM,cAAc,GAAG,WAAc,CAAC;AACtC,MAAM,cAAc,GAAG,kDAAkE,CAAC;AAC1F,MAAM,YAAY,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5C,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,6FAA6F;AAC7F,MAAM,gBAAgB,GAAG;IACvB,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,kCAAkC;IAClC,iCAAiC;IACjC,+BAA+B;IAC/B,0BAA0B;CAClB,CAAC;AAEX,SAAS,UAAU,CAAC,KAAc,EAAE,OAAe,EAAE,IAAY;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,yDAAyD,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,OAAe,EAAE,IAAY;IACvE,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAY;IAC/C,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,GAAG,SAAS;QACjB,KAAK,GAAG,SAAS,EACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,2BAA2B,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAY;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,IAAY;IAC5D,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,cAAc,IAAI,KAAK,IAAI,cAAc,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6CAA6C,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3E,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAE7B,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACjC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACf,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,GACP,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC;IAChF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1D,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAE,CAAC,IAAI,IAAI,CAAC;QACnD,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,CAAC;QAAE,KAAK,GAAG,WAAW,GAAG,KAAK,CAAC;IAC1C,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,wBAAwB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC/C,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gGAAgG;AAChG,SAAS,SAAS,CAAC,IAAY,EAAE,WAAmB;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC;IACrC,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,WAAmB;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC;IACrC,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CACjB,UAAkB,EAClB,WAAmB,EACnB,oBAA6B;IAE7B,MAAM,SAAS,GAAG,oBAAoB;QACpC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC;QAClC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,oBAAoB;QACpC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACvC,IACE,SAAS,GAAG,QAAQ;QACpB,SAAS,GAAG,QAAQ;QACpB,SAAS,IAAI,SAAS,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,YAAoB,EAAE,YAAoB;IACtF,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,YAAoB,EAAE,YAAoB;IACtF,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,KAAkC;IAElC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IACtE,kBAAkB,CAAC,KAAK,CAAC,sBAAsB,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;IACxF,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;IACtF,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAqB,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,eAAe,EAAE,KAAK,CAAC,sBAAsB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,GAAG,cAAc,EAAE,KAAK,CAAC,qBAAqB,GAAG,eAAe,CAAC,CAAC;IAC1R,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB;QAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW;QAChE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAEtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CACzC,UAAU,EACV,OAAO,CAAC,WAAW,EACnB,KAAK,CAAC,oBAAoB,CAC3B,CAAC;IACF,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,kBAAkB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IACpF,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB;QAC1C,CAAC,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC;QACjE,CAAC,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpE,IAAI,SAAS,IAAI,EAAE,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,UAAU;QACV,kBAAkB;QAClB,SAAS;QACT,0BAA0B,EAAE,cAAc;QAC1C,wBAAwB,EAAE,EAAE;KAC7B,CAAC;AACJ,CAAC;AAiBD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAA0C;IAE1C,wBAAwB,CAAC,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACzE,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9D,UAAU,CAAC,KAAK,CAAC,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,cAAc,GAClB,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,QAAU,GAAG,GAAG,CAAC,CAAC,GAAG,QAAU,CAAC;IAChE,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;QAC1B,OAAO;YACL,sBAAsB,EAAE,EAAE;YAC1B,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;YACpD,iBAAiB,EAAE,KAAK,CAAC,kBAAkB;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACtC,IAAI,iBAAyB,CAAC;IAC9B,IAAI,sBAA8B,CAAC;IACnC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,iFAAiF;QACjF,MAAM,KAAK,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QACvD,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,IAAI,iBAAiB,GAAG,KAAK;YAAE,iBAAiB,GAAG,KAAK,CAAC;QAChF,sBAAsB;YACpB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC;gBACxE,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,mFAAmF;QACnF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,cAAc,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACtF,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,iBAAiB,GAAG,KAAK;YAAE,iBAAiB,GAAG,KAAK,CAAC;QAChF,sBAAsB;YACpB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7E,CAAC;IACD,OAAO;QACL,sBAAsB;QACtB,yBAAyB,EAAE,KAAK,CAAC,mBAAmB;QACpD,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,WAAmB;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IAClD,OAAO,IAAI,GAAG,IAAI,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sCAAsC,CACpD,KAAyC;IAEzC,wBAAwB,CAAC,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACzE,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,8BAA8B,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAC9E,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,iBAAiB,GAAG,CAAC,MAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,MAAO,CAAC,CAAC;QAChF,OAAO,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,GAAG,CAAC,MAAO,GAAG,QAAQ,CAAC,EAAE,MAAO,CAAC,CAAC;IAC/E,OAAO,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,EAAoB;IACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAe;IACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CACpC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAC/E,CAAC;IACF,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,WAA2B;IACnD,OAAO,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAAC,WAA2B;IAC1D,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA6C,EAC7C,WAA2B,EAC3B,MAAe,EACf,mBAA2B;IAE3B,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC;QACvC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC;QACzC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;QACtC,WAAW,CAAC,QAAQ,GAAG,CAAC;QACxB,WAAW,CAAC,UAAU,GAAG,CAAC;QAC1B,WAAW,CAAC,OAAO,GAAG,CAAC,EACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gDAAgD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,eAAe,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,uBAAuB,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iDAAiD,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAA4B,EAC5B,eAAe,GAAG,EAAE;IAEpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,oBAAoB,KAAK,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACxD,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC9D,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACtE,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC1E,kBAAkB,CAChB,OAAO,CAAC,IAAI,CAAC,0BAA0B,EACvC,WAAW,EACX,iCAAiC,CAClC,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,WAAW,EAAE,+BAA+B,CAAC,CAAC;IAChG,IAAI,OAAO,CAAC,IAAI,CAAC,wBAAwB,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE9D,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;IAClG,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5D,UAAU,CACR,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAChD,WAAW,EACX,0CAA0C,CAC3C,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,8BAA8B,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,eAAe,CAAC;IACpF,IAAI,kBAAkB,KAAK,EAAE,EAAE,CAAC;QAC9B,IACE,OAAO,CAAC,UAAU,CAAC,6BAA6B,KAAK,EAAE;YACvD,OAAO,CAAC,UAAU,CAAC,iBAAiB,KAAK,EAAE,EAC3C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,UAAU,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,wBAAwB,CACtB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EACpC,8BAA8B,CAC/B,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CACzC,OAAO,CAAC,IAAI,CAAC,UAAU,EACvB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAClC,CAAC;QACF,MAAM,kBAAkB,GAAG,kBAAkB,CAC3C,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC;QACF,IACE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB;YACjC,OAAO,CAAC,UAAU,CAAC,iBAAiB,IAAI,kBAAkB,CAAC;YAC7D,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB;gBAChC,OAAO,CAAC,UAAU,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,EAC7D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GACtB,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,IAAI;QACjD,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,YAAY;QACzD,CAAC,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,OAAO;YACnD,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GACpB,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,OAAO;QACpD,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,UAAU;QACvD,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,IAAI,CAAC;IACpD,mBAAmB,CACjB,mBAAmB,EACnB,OAAO,CAAC,iBAAiB,EACzB,kBAAkB,EAClB,QAAQ,CAAC,yBAAyB,CACnC,CAAC;IACF,mBAAmB,CACjB,iBAAiB,EACjB,OAAO,CAAC,eAAe,EACvB,gBAAgB,EAChB,QAAQ,CAAC,uBAAuB,CACjC,CAAC;IAEF,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,sBAAsB;QAC3B,YAAY,EAAE,iBAAiB;QAC/B,IAAI,EAAE,CAAC,OAAO,CAAC;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
|