@merkl/api 1.5.8 → 1.5.10

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.
Files changed (39) hide show
  1. package/dist/src/eden/index.d.ts +304 -199
  2. package/dist/src/index.d.ts +304 -199
  3. package/dist/src/jobs/update-dynamic-data.js.map +1 -1
  4. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +0 -28
  5. package/dist/src/modules/v4/campaign/campaign.formatter.js.map +1 -1
  6. package/dist/src/modules/v4/campaign/campaign.model.d.ts +0 -9
  7. package/dist/src/modules/v4/campaign/campaign.model.js.map +1 -1
  8. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +12 -66
  9. package/dist/src/modules/v4/campaign/campaign.service.d.ts +1 -5
  10. package/dist/src/modules/v4/campaign/campaign.service.js.map +1 -1
  11. package/dist/src/modules/v4/campaignBatch/campaignBatch.controller.d.ts +0 -2
  12. package/dist/src/modules/v4/campaignBatch/campaignBatch.repository.d.ts +0 -3
  13. package/dist/src/modules/v4/campaignBatch/campaignBatch.service.d.ts +0 -3
  14. package/dist/src/modules/v4/campaignGroup/campaignGroup.repository.d.ts +0 -6
  15. package/dist/src/modules/v4/campaignGroup/campaignGroup.service.d.ts +0 -6
  16. package/dist/src/modules/v4/carousel/carousel.controller.d.ts +208 -48
  17. package/dist/src/modules/v4/carousel/carousel.repository.d.ts +219 -74
  18. package/dist/src/modules/v4/carousel/carousel.repository.js.map +1 -1
  19. package/dist/src/modules/v4/carousel/carousel.service.d.ts +257 -72
  20. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +0 -28
  21. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +0 -14
  22. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +2 -24
  23. package/dist/src/modules/v4/opportunity/opportunity.repository.js.map +1 -1
  24. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +0 -7
  25. package/dist/src/modules/v4/program/program.controller.d.ts +96 -72
  26. package/dist/src/modules/v4/program/program.formatter.d.ts +4 -1
  27. package/dist/src/modules/v4/program/program.formatter.js.map +1 -1
  28. package/dist/src/modules/v4/program/program.model.d.ts +6 -4
  29. package/dist/src/modules/v4/program/program.model.js.map +1 -1
  30. package/dist/src/modules/v4/program/program.repository.d.ts +306 -82
  31. package/dist/src/modules/v4/program/program.repository.js.map +1 -1
  32. package/dist/src/modules/v4/program/program.service.d.ts +90 -68
  33. package/dist/src/modules/v4/program/program.service.js.map +1 -1
  34. package/dist/src/modules/v4/reward/reward.service.d.ts +0 -7
  35. package/dist/src/modules/v4/router.d.ts +304 -199
  36. package/dist/src/modules/v4/uniswap/uniswap.controller.d.ts +0 -14
  37. package/dist/src/modules/v4/uniswap/uniswap.service.d.ts +0 -7
  38. package/dist/src/modules/v4/user/user.controller.d.ts +0 -7
  39. package/package.json +1 -1
@@ -28,64 +28,32 @@ export declare const ProgramController: Elysia<"/programs", {
28
28
  response: {
29
29
  200: {
30
30
  id: string;
31
- slug: string | null;
32
31
  name: string;
32
+ slug?: string | undefined;
33
33
  description: string;
34
34
  icon: string;
35
- liveCampaigns: number;
36
- dailyRewards: number;
37
- campaignGroup: ({
38
- campaigns: ({
39
- Opportunity: {
40
- id: string;
41
- chainId: number;
42
- type: string;
43
- identifier: string;
44
- name: string;
45
- description: string;
46
- howToSteps: string[];
47
- depositUrl: string | null;
48
- explorerAddress: string | null;
49
- status: import("@package/databases").Status;
50
- action: import("@package/databases").OpportunityAction;
51
- mainProtocolId: string | null;
52
- tvl: number;
53
- apr: number;
54
- maxApr: number | null;
55
- dailyRewards: number;
56
- tags: string[];
57
- lastCampaignCreatedAt: Date;
58
- manualOverrides: import("@package/databases").OpportunityManualOverride[];
59
- liveCampaigns: number;
60
- };
61
- } & {
62
- id: string;
63
- computeChainId: number;
64
- distributionChainId: number;
65
- campaignId: string;
66
- type: string;
67
- distributionType: import("@package/databases").DistributionType;
68
- subType: number | null;
69
- rewardTokenId: string;
70
- amount: string;
71
- opportunityId: string;
72
- startTimestamp: bigint;
73
- endTimestamp: bigint;
74
- params: import("@prisma/client/runtime/client").JsonValue;
75
- description: string | null;
76
- dailyRewards: number;
77
- apr: number;
78
- creatorAddress: string;
79
- manualOverrides: import("@package/databases").CampaignManualOverride[];
80
- createdAt: Date;
81
- rootCampaignId: string | null;
82
- parentCampaignId: string | null;
83
- })[];
84
- } & {
35
+ dailyRewards?: number | undefined;
36
+ liveCampaigns?: number | undefined;
37
+ opportunities: {
85
38
  id: string;
86
- slug: string | null;
87
- programId: string | null;
88
- })[];
39
+ type: string;
40
+ identifier: string;
41
+ name?: string | undefined;
42
+ status: "LIVE" | "NONE" | "PAST" | "SOON";
43
+ action: "BORROW" | "DROP" | "HOLD" | "INVALID" | "LEND" | "LONG" | "POOL" | "SHORT" | "STAKE" | "SWAP";
44
+ description?: string | undefined;
45
+ howToSteps?: string[] | undefined;
46
+ protocols?: string[] | undefined;
47
+ mainProtocol?: string | undefined;
48
+ depositUrl?: string | undefined;
49
+ explorerAddress?: string | undefined;
50
+ tags?: string[] | undefined;
51
+ chainId: number;
52
+ apr?: number | undefined;
53
+ dailyRewards?: number | undefined;
54
+ tvl?: number | undefined;
55
+ liveCampaigns?: number | undefined;
56
+ }[];
89
57
  }[];
90
58
  422: {
91
59
  type: "validation";
@@ -116,6 +84,28 @@ export declare const ProgramController: Elysia<"/programs", {
116
84
  slug?: string | undefined;
117
85
  description: string;
118
86
  icon: string;
87
+ dailyRewards?: number | undefined;
88
+ liveCampaigns?: number | undefined;
89
+ opportunities: {
90
+ id: string;
91
+ type: string;
92
+ identifier: string;
93
+ name?: string | undefined;
94
+ status: "LIVE" | "NONE" | "PAST" | "SOON";
95
+ action: "BORROW" | "DROP" | "HOLD" | "INVALID" | "LEND" | "LONG" | "POOL" | "SHORT" | "STAKE" | "SWAP";
96
+ description?: string | undefined;
97
+ howToSteps?: string[] | undefined;
98
+ protocols?: string[] | undefined;
99
+ mainProtocol?: string | undefined;
100
+ depositUrl?: string | undefined;
101
+ explorerAddress?: string | undefined;
102
+ tags?: string[] | undefined;
103
+ chainId: number;
104
+ apr?: number | undefined;
105
+ dailyRewards?: number | undefined;
106
+ tvl?: number | undefined;
107
+ liveCampaigns?: number | undefined;
108
+ }[];
119
109
  };
120
110
  422: {
121
111
  type: "validation";
@@ -152,8 +142,7 @@ export declare const ProgramController: Elysia<"/programs", {
152
142
  name: string;
153
143
  description?: string | undefined;
154
144
  icon?: string | undefined;
155
- groupSlug?: string | undefined;
156
- campaigns?: string[] | undefined;
145
+ opportunities?: string[] | undefined;
157
146
  };
158
147
  params: {};
159
148
  query: unknown;
@@ -162,17 +151,33 @@ export declare const ProgramController: Elysia<"/programs", {
162
151
  };
163
152
  response: {
164
153
  200: {
165
- campaignGroup: {
166
- id: string;
167
- slug: string | null;
168
- programId: string | null;
169
- }[];
170
- } & {
171
154
  id: string;
172
- slug: string | null;
173
155
  name: string;
156
+ slug?: string | undefined;
174
157
  description: string;
175
158
  icon: string;
159
+ dailyRewards?: number | undefined;
160
+ liveCampaigns?: number | undefined;
161
+ opportunities: {
162
+ id: string;
163
+ type: string;
164
+ identifier: string;
165
+ name?: string | undefined;
166
+ status: "LIVE" | "NONE" | "PAST" | "SOON";
167
+ action: "BORROW" | "DROP" | "HOLD" | "INVALID" | "LEND" | "LONG" | "POOL" | "SHORT" | "STAKE" | "SWAP";
168
+ description?: string | undefined;
169
+ howToSteps?: string[] | undefined;
170
+ protocols?: string[] | undefined;
171
+ mainProtocol?: string | undefined;
172
+ depositUrl?: string | undefined;
173
+ explorerAddress?: string | undefined;
174
+ tags?: string[] | undefined;
175
+ chainId: number;
176
+ apr?: number | undefined;
177
+ dailyRewards?: number | undefined;
178
+ tvl?: number | undefined;
179
+ liveCampaigns?: number | undefined;
180
+ }[];
176
181
  };
177
182
  422: {
178
183
  type: "validation";
@@ -192,8 +197,11 @@ export declare const ProgramController: Elysia<"/programs", {
192
197
  patch: {
193
198
  body: {
194
199
  slug?: string | undefined;
195
- campaignsToAdd?: string[] | undefined;
196
- campaignsToRemove?: string[] | undefined;
200
+ description?: string | undefined;
201
+ name?: string | undefined;
202
+ icon?: string | undefined;
203
+ opportunitiesToAdd?: string[] | undefined;
204
+ opportunitiesToRemove?: string[] | undefined;
197
205
  };
198
206
  params: {
199
207
  idOrSlug: string;
@@ -204,17 +212,33 @@ export declare const ProgramController: Elysia<"/programs", {
204
212
  };
205
213
  response: {
206
214
  200: {
207
- campaignGroup: {
208
- id: string;
209
- slug: string | null;
210
- programId: string | null;
211
- }[];
212
- } & {
213
215
  id: string;
214
- slug: string | null;
215
216
  name: string;
217
+ slug?: string | undefined;
216
218
  description: string;
217
219
  icon: string;
220
+ dailyRewards?: number | undefined;
221
+ liveCampaigns?: number | undefined;
222
+ opportunities: {
223
+ id: string;
224
+ type: string;
225
+ identifier: string;
226
+ name?: string | undefined;
227
+ status: "LIVE" | "NONE" | "PAST" | "SOON";
228
+ action: "BORROW" | "DROP" | "HOLD" | "INVALID" | "LEND" | "LONG" | "POOL" | "SHORT" | "STAKE" | "SWAP";
229
+ description?: string | undefined;
230
+ howToSteps?: string[] | undefined;
231
+ protocols?: string[] | undefined;
232
+ mainProtocol?: string | undefined;
233
+ depositUrl?: string | undefined;
234
+ explorerAddress?: string | undefined;
235
+ tags?: string[] | undefined;
236
+ chainId: number;
237
+ apr?: number | undefined;
238
+ dailyRewards?: number | undefined;
239
+ tvl?: number | undefined;
240
+ liveCampaigns?: number | undefined;
241
+ }[];
218
242
  };
219
243
  422: {
220
244
  type: "validation";
@@ -1,5 +1,8 @@
1
1
  import type { Program } from "@package/resources/schemas";
2
2
  import type { ProgramRepository } from "./program.repository";
3
3
  export declare abstract class ProgramFormatter {
4
- static format(obj: NonNullable<Awaited<ReturnType<(typeof ProgramRepository)["findUnique"]>>>): Program;
4
+ static format(obj: NonNullable<Awaited<ReturnType<(typeof ProgramRepository)["findUnique"]>>> & {
5
+ dailyRewards?: number;
6
+ liveCampaigns?: number;
7
+ }): Program;
5
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"program.formatter.js","sourceRoot":"","sources":["../../../../../../../apps/api/src/modules/v4/program/program.formatter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,gBAAgB;IACpC,MAAM,CAAC,MAAM,CAAC,GAA+E,EAAW;QACtG,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;SACrB,CAAC;IAAA,CACH;CACF"}
1
+ {"version":3,"file":"program.formatter.js","sourceRoot":"","sources":["../../../../../../../apps/api/src/modules/v4/program/program.formatter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAG5E,MAAM,OAAgB,gBAAgB;IACpC,MAAM,CAAC,MAAM,CACX,GAGC,EACQ;QACT,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;YAClC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;YAC3C,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC7C,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtF,CAAC;IAAA,CACH;CACF"}
@@ -17,13 +17,15 @@ export declare const CreateProgramDto: import("@sinclair/typebox").TObject<{
17
17
  name: import("@sinclair/typebox").TString;
18
18
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
19
  icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
- groupSlug: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
- campaigns: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
20
+ opportunities: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
22
21
  }>;
23
22
  export declare const UpdateProgramDto: import("@sinclair/typebox").TObject<{
24
23
  slug: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
- campaignsToAdd: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
26
- campaignsToRemove: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
24
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
27
+ opportunitiesToAdd: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
28
+ opportunitiesToRemove: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
27
29
  }>;
28
30
  export type GetProgramQueryDtoModel = typeof GetProgramQueryDto.static;
29
31
  export type CreateProgramDtoModel = typeof CreateProgramDto.static;
@@ -1 +1 @@
1
- {"version":3,"file":"program.model.js","sourceRoot":"","sources":["../../../../../../../apps/api/src/modules/v4/program/program.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,MAAM,CAAC;QACP,WAAW,EACT,uJAAuJ;KAC1J,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CAAC;IACnG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC,CAAC;IAC9G,SAAS,EAAE,CAAC,CAAC,QAAQ,CACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,WAAW,EAAE,uDAAuD;KACrE,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CAAC;IACnG,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC,CAAC;IAC9G,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CACxF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"program.model.js","sourceRoot":"","sources":["../../../../../../../apps/api/src/modules/v4/program/program.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKlE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,GAAG,qBAAqB,CAAC,EAAE,EAAE,GAAG,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,MAAM,CAAC;QACP,WAAW,EACT,uJAAuJ;KAC1J,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CAAC;IACnG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,QAAQ,CACvB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,WAAW,EAAE,mDAAmD;KACjE,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CAAC;IACnG,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACtE,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,WAAW,EAAE,gDAAgD;KAC9D,CAAC,CACH;IACD,qBAAqB,EAAE,CAAC,CAAC,QAAQ,CAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,WAAW,EAAE,qDAAqD;KACnE,CAAC,CACH;CACF,CAAC,CAAC"}