@agoric/orchestration 0.3.0-u23.0 → 0.3.0-u23.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.
Files changed (170) hide show
  1. package/index.d.ts +9 -0
  2. package/package.json +15 -15
  3. package/src/axelar-types.d.ts +53 -0
  4. package/src/axelar-types.d.ts.map +1 -0
  5. package/src/cctp-chain-info.d.ts +65 -0
  6. package/src/cctp-chain-info.d.ts.map +1 -0
  7. package/src/chain-capabilities.d.ts +12 -0
  8. package/src/chain-capabilities.d.ts.map +1 -0
  9. package/src/chain-info.d.ts +10267 -0
  10. package/src/chain-info.d.ts.map +1 -0
  11. package/src/cosmos-api.d.ts +437 -0
  12. package/src/cosmos-api.d.ts.map +1 -0
  13. package/src/ethereum-api.d.ts +9 -0
  14. package/src/ethereum-api.d.ts.map +1 -0
  15. package/src/examples/auto-stake-it-tap-kit.d.ts +50 -0
  16. package/src/examples/auto-stake-it-tap-kit.d.ts.map +1 -0
  17. package/src/examples/auto-stake-it.contract.d.ts +34 -0
  18. package/src/examples/auto-stake-it.contract.d.ts.map +1 -0
  19. package/src/examples/auto-stake-it.flows.d.ts +24 -0
  20. package/src/examples/auto-stake-it.flows.d.ts.map +1 -0
  21. package/src/examples/axelar-gmp-account-kit.d.ts +80 -0
  22. package/src/examples/axelar-gmp-account-kit.d.ts.map +1 -0
  23. package/src/examples/axelar-gmp.contract.d.ts +52 -0
  24. package/src/examples/axelar-gmp.contract.d.ts.map +1 -0
  25. package/src/examples/axelar-gmp.flows.d.ts +21 -0
  26. package/src/examples/axelar-gmp.flows.d.ts.map +1 -0
  27. package/src/examples/basic-flows.contract.d.ts +32 -0
  28. package/src/examples/basic-flows.contract.d.ts.map +1 -0
  29. package/src/examples/basic-flows.flows.d.ts +20 -0
  30. package/src/examples/basic-flows.flows.d.ts.map +1 -0
  31. package/src/examples/send-anywhere.contract.d.ts +60 -0
  32. package/src/examples/send-anywhere.contract.d.ts.map +1 -0
  33. package/src/examples/send-anywhere.flows.d.ts +576 -0
  34. package/src/examples/send-anywhere.flows.d.ts.map +1 -0
  35. package/src/examples/shared.flows.d.ts +4 -0
  36. package/src/examples/shared.flows.d.ts.map +1 -0
  37. package/src/examples/stake-bld.contract.d.ts +237 -0
  38. package/src/examples/stake-bld.contract.d.ts.map +1 -0
  39. package/src/examples/stake-ica.contract.d.ts +573 -0
  40. package/src/examples/stake-ica.contract.d.ts.map +1 -0
  41. package/src/examples/staking-combinations.contract.d.ts +19 -0
  42. package/src/examples/staking-combinations.contract.d.ts.map +1 -0
  43. package/src/examples/staking-combinations.flows.d.ts +32 -0
  44. package/src/examples/staking-combinations.flows.d.ts.map +1 -0
  45. package/src/examples/swap-anything.contract.d.ts +55 -0
  46. package/src/examples/swap-anything.contract.d.ts.map +1 -0
  47. package/src/examples/swap-anything.flows.d.ts +32 -0
  48. package/src/examples/swap-anything.flows.d.ts.map +1 -0
  49. package/src/examples/swap.contract.d.ts +56 -0
  50. package/src/examples/swap.contract.d.ts.map +1 -0
  51. package/src/examples/swap.flows.d.ts +12 -0
  52. package/src/examples/swap.flows.d.ts.map +1 -0
  53. package/src/examples/unbond.contract.d.ts +21 -0
  54. package/src/examples/unbond.contract.d.ts.map +1 -0
  55. package/src/examples/unbond.flows.d.ts +6 -0
  56. package/src/examples/unbond.flows.d.ts.map +1 -0
  57. package/src/exos/chain-hub-admin.d.ts +27 -0
  58. package/src/exos/chain-hub-admin.d.ts.map +1 -0
  59. package/src/exos/chain-hub.d.ts +225 -0
  60. package/src/exos/chain-hub.d.ts.map +1 -0
  61. package/src/exos/combine-invitation-makers.d.ts +7 -0
  62. package/src/exos/combine-invitation-makers.d.ts.map +1 -0
  63. package/src/exos/cosmos-interchain-service.d.ts +49 -0
  64. package/src/exos/cosmos-interchain-service.d.ts.map +1 -0
  65. package/src/exos/cosmos-orchestration-account.d.ts +950 -0
  66. package/src/exos/cosmos-orchestration-account.d.ts.map +1 -0
  67. package/src/exos/exo-interfaces.d.ts +27 -0
  68. package/src/exos/exo-interfaces.d.ts.map +1 -0
  69. package/src/exos/ibc-packet.d.ts +101 -0
  70. package/src/exos/ibc-packet.d.ts.map +1 -0
  71. package/src/exos/ica-account-kit.d.ts +98 -0
  72. package/src/exos/ica-account-kit.d.ts.map +1 -0
  73. package/src/exos/icq-connection-kit.d.ts +67 -0
  74. package/src/exos/icq-connection-kit.d.ts.map +1 -0
  75. package/src/exos/local-chain-facade.d.ts +1587 -0
  76. package/src/exos/local-chain-facade.d.ts.map +1 -0
  77. package/src/exos/local-orchestration-account.d.ts +405 -0
  78. package/src/exos/local-orchestration-account.d.ts.map +1 -0
  79. package/src/exos/orchestrator.d.ts +35857 -0
  80. package/src/exos/orchestrator.d.ts.map +1 -0
  81. package/src/exos/packet-tools.d.ts +63 -0
  82. package/src/exos/packet-tools.d.ts.map +1 -0
  83. package/src/exos/portfolio-holder-kit.d.ts +154 -0
  84. package/src/exos/portfolio-holder-kit.d.ts.map +1 -0
  85. package/src/exos/remote-chain-facade.d.ts +1549 -0
  86. package/src/exos/remote-chain-facade.d.ts.map +1 -0
  87. package/src/facade.d.ts +33 -0
  88. package/src/facade.d.ts.map +1 -0
  89. package/src/fetched-chain-info.d.ts +10275 -0
  90. package/src/fetched-chain-info.d.ts.map +1 -0
  91. package/src/fixtures/query-flows.contract.d.ts +33 -0
  92. package/src/fixtures/query-flows.contract.d.ts.map +1 -0
  93. package/src/fixtures/query-flows.flows.d.ts +20 -0
  94. package/src/fixtures/query-flows.flows.d.ts.map +1 -0
  95. package/src/orchestration-api.d.ts +315 -0
  96. package/src/orchestration-api.d.ts.map +1 -0
  97. package/src/typeGuards.d.ts +163 -0
  98. package/src/typeGuards.d.ts.map +1 -0
  99. package/src/types.d.ts +25 -0
  100. package/src/types.d.ts.map +1 -0
  101. package/src/utils/abitype.d.ts +6 -0
  102. package/src/utils/abitype.d.ts.map +1 -0
  103. package/src/utils/address.d.ts +44 -0
  104. package/src/utils/address.d.ts.map +1 -0
  105. package/src/utils/agd-lib.d.ts +58 -0
  106. package/src/utils/agd-lib.d.ts.map +1 -0
  107. package/src/utils/amounts.d.ts +11 -0
  108. package/src/utils/amounts.d.ts.map +1 -0
  109. package/src/utils/asset.d.ts +6 -0
  110. package/src/utils/asset.d.ts.map +1 -0
  111. package/src/utils/axelar-static-config.d.ts +34 -0
  112. package/src/utils/axelar-static-config.d.ts.map +1 -0
  113. package/src/utils/chain-hub-helper.d.ts +14 -0
  114. package/src/utils/chain-hub-helper.d.ts.map +1 -0
  115. package/src/utils/chain-info.d.ts +5 -0
  116. package/src/utils/chain-info.d.ts.map +1 -0
  117. package/src/utils/codecs.d.ts +145 -0
  118. package/src/utils/codecs.d.ts.map +1 -0
  119. package/src/utils/cosmos.d.ts +61 -0
  120. package/src/utils/cosmos.d.ts.map +1 -0
  121. package/src/utils/denomHash.d.ts +7 -0
  122. package/src/utils/denomHash.d.ts.map +1 -0
  123. package/src/utils/exo-helpers.d.ts +156 -0
  124. package/src/utils/exo-helpers.d.ts.map +1 -0
  125. package/src/utils/gmp.d.ts +30 -0
  126. package/src/utils/gmp.d.ts.map +1 -0
  127. package/src/utils/orc.d.ts +17 -0
  128. package/src/utils/orc.d.ts.map +1 -0
  129. package/src/utils/orchestrationAccount.d.ts +91 -0
  130. package/src/utils/orchestrationAccount.d.ts.map +1 -0
  131. package/src/utils/packet.d.ts +57 -0
  132. package/src/utils/packet.d.ts.map +1 -0
  133. package/src/utils/permit2/signatureTransfer.d.ts +221 -0
  134. package/src/utils/permit2/signatureTransfer.d.ts.map +1 -0
  135. package/src/utils/permit2/signatureTransferHelpers.d.ts +334 -0
  136. package/src/utils/permit2/signatureTransferHelpers.d.ts.map +1 -0
  137. package/src/utils/permit2.d.ts +11 -0
  138. package/src/utils/permit2.d.ts.map +1 -0
  139. package/src/utils/progress.d.ts +41 -0
  140. package/src/utils/progress.d.ts.map +1 -0
  141. package/src/utils/registry.d.ts +6 -0
  142. package/src/utils/registry.d.ts.map +1 -0
  143. package/src/utils/start-helper.d.ts +129 -0
  144. package/src/utils/start-helper.d.ts.map +1 -0
  145. package/src/utils/time.d.ts +38 -0
  146. package/src/utils/time.d.ts.map +1 -0
  147. package/src/utils/viem-utils/hashTypedData.d.ts +21 -0
  148. package/src/utils/viem-utils/hashTypedData.d.ts.map +1 -0
  149. package/src/utils/viem-utils/types.d.ts +6 -0
  150. package/src/utils/viem-utils/types.d.ts.map +1 -0
  151. package/src/utils/viem.d.ts +11 -0
  152. package/src/utils/viem.d.ts.map +1 -0
  153. package/src/utils/zcf-tools.d.ts +19 -0
  154. package/src/utils/zcf-tools.d.ts.map +1 -0
  155. package/src/utils/zoe-tools.d.ts +19 -0
  156. package/src/utils/zoe-tools.d.ts.map +1 -0
  157. package/src/vat-orchestration.d.ts +21 -0
  158. package/src/vat-orchestration.d.ts.map +1 -0
  159. package/tools/contract-tests.d.ts +1832 -0
  160. package/tools/contract-tests.d.ts.map +1 -0
  161. package/tools/ibc-mock-fixtures.d.ts +49 -0
  162. package/tools/ibc-mock-fixtures.d.ts.map +1 -0
  163. package/tools/ibc-mocks.d.ts +168 -0
  164. package/tools/ibc-mocks.d.ts.map +1 -0
  165. package/tools/make-test-address.d.ts +3 -0
  166. package/tools/make-test-address.d.ts.map +1 -0
  167. package/tools/network-fakes.d.ts +143 -0
  168. package/tools/network-fakes.d.ts.map +1 -0
  169. package/tools/protobuf-decoder.d.ts +19 -0
  170. package/tools/protobuf-decoder.d.ts.map +1 -0
@@ -0,0 +1,237 @@
1
+ export function start(zcf: ZCF, privateArgs: {
2
+ agoricNames: Remote<NameHub>;
3
+ localchain: Remote<LocalChain>;
4
+ marshaller: Remote<Marshaller>;
5
+ storageNode: Remote<StorageNode>;
6
+ timerService: TimerService;
7
+ }, baggage: Baggage): Promise<{
8
+ publicFacet: import("@endo/exo").Guarded<{
9
+ /**
10
+ * Invitation to make an account, initialized with the give's BLD
11
+ */
12
+ makeStakeBldInvitation(): Promise<import("@agoric/zoe").Invitation<import("@agoric/vow").Vow<{
13
+ invitationMakers: {
14
+ [x: string]: (...args: any[]) => import("@agoric/vow").Vow<import("@endo/marshal").RemotableObject & {
15
+ getAllegedBrand: () => import("@agoric/ertp").Brand<"set">;
16
+ } & {
17
+ readonly "Symbol(tag)": {
18
+ "Set-like value type": import("@agoric/zoe").InvitationDetails;
19
+ };
20
+ }>;
21
+ };
22
+ publicSubscribers: {
23
+ [x: string]: {
24
+ description?: string | undefined;
25
+ subscriber: {
26
+ getUpdateSince: (updateCount?: number | bigint | undefined) => import("@agoric/vow").Vow<{
27
+ value: any;
28
+ updateCount?: bigint | undefined | undefined;
29
+ }>;
30
+ subscribeAfter: (publishCount?: bigint | undefined) => import("@agoric/vow").Vow<{
31
+ head: {
32
+ done: true;
33
+ value: any;
34
+ } | {
35
+ done?: false | undefined;
36
+ value: any;
37
+ };
38
+ publishCount: bigint;
39
+ tail: {
40
+ "Symbol(passStyle)": "tagged";
41
+ [Symbol.toStringTag]: "Vow";
42
+ payload: import("@agoric/vow").VowPayload</*elided*/ any>;
43
+ };
44
+ }>;
45
+ } | {};
46
+ storagePath: string;
47
+ };
48
+ };
49
+ }>, undefined>>;
50
+ makeAccount(): Promise<import("@endo/exo").Guarded<{
51
+ makeProgressTracker(): import("../utils/progress.js").ProgressTracker;
52
+ asContinuingOffer(): import("@agoric/vow").Vow<{
53
+ invitationMakers: {
54
+ [x: string]: (...args: any[]) => import("@agoric/vow").Vow<import("@endo/marshal").RemotableObject & {
55
+ getAllegedBrand: () => import("@agoric/ertp").Brand<"set">;
56
+ } & {
57
+ readonly "Symbol(tag)": {
58
+ "Set-like value type": import("@agoric/zoe").InvitationDetails;
59
+ };
60
+ }>;
61
+ };
62
+ publicSubscribers: {
63
+ [x: string]: {
64
+ description?: string | undefined;
65
+ subscriber: {
66
+ getUpdateSince: (updateCount?: number | bigint | undefined) => import("@agoric/vow").Vow<{
67
+ value: any;
68
+ updateCount?: bigint | undefined | undefined;
69
+ }>;
70
+ subscribeAfter: (publishCount?: bigint | undefined) => import("@agoric/vow").Vow<{
71
+ head: {
72
+ done: true;
73
+ value: any;
74
+ } | {
75
+ done?: false | undefined;
76
+ value: any;
77
+ };
78
+ publishCount: bigint;
79
+ tail: {
80
+ "Symbol(passStyle)": "tagged";
81
+ [Symbol.toStringTag]: "Vow";
82
+ payload: import("@agoric/vow").VowPayload</*elided*/ any>;
83
+ };
84
+ }>;
85
+ } | {};
86
+ storagePath: string;
87
+ };
88
+ };
89
+ }>;
90
+ getBalance(denom: import("../orchestration-api.js").DenomArg, opts?: import("../orchestration-api.js").QuerierOptions | undefined): import("@agoric/vow").Vow<{
91
+ denom: import("../orchestration-api.js").Denom;
92
+ value: bigint;
93
+ }>;
94
+ getBalances(opts?: import("../orchestration-api.js").QuerierOptions | undefined): import("@agoric/vow").Vow<{
95
+ denom: import("../orchestration-api.js").Denom;
96
+ value: bigint;
97
+ }[]>;
98
+ getPublicTopics(): import("@agoric/vow").Vow<{
99
+ [x: string]: {
100
+ description?: string | undefined;
101
+ subscriber: {
102
+ getUpdateSince: (updateCount?: number | bigint | undefined) => import("@agoric/vow").Vow<{
103
+ value: {};
104
+ updateCount?: bigint | undefined | undefined;
105
+ }>;
106
+ subscribeAfter: (publishCount?: bigint | undefined) => import("@agoric/vow").Vow<{
107
+ head: {
108
+ done: true;
109
+ value: any;
110
+ } | {
111
+ done?: false | undefined;
112
+ value: {};
113
+ };
114
+ publishCount: bigint;
115
+ tail: {
116
+ "Symbol(passStyle)": "tagged";
117
+ [Symbol.toStringTag]: "Vow";
118
+ payload: import("@agoric/vow").VowPayload</*elided*/ any>;
119
+ };
120
+ }>;
121
+ } | {};
122
+ storagePath: string;
123
+ };
124
+ }>;
125
+ delegate(validatorAddress: string, ertpAmount: import("@agoric/ertp").Amount<"nat">): import("@agoric/vow").Vow<Record<PropertyKey, unknown>>;
126
+ undelegate(validatorAddress: string, ertpAmount: import("@agoric/ertp").Amount<"nat">): import("@agoric/vow").Vow<void | import("@agoric/time").TimestampRecord>;
127
+ deposit(payment: Payment<"nat">): import("@agoric/vow").Vow<{
128
+ brand: {
129
+ "Symbol(passStyle)": "remotable";
130
+ [Symbol.toStringTag]: string;
131
+ isMyIssuer: (allegedIssuer: import("jessie.js").ERef<import("@agoric/ertp").Issuer<"nat", import("@endo/patterns").Key>>) => Promise<boolean>;
132
+ getAllegedName: () => string;
133
+ getDisplayInfo: () => import("@agoric/ertp").DisplayInfo<"nat">;
134
+ getAmountShape: () => import("@endo/patterns").Pattern;
135
+ };
136
+ value: bigint;
137
+ }>;
138
+ withdraw(amount: import("@agoric/ertp").NatAmount): import("@agoric/vow").Vow<Payment<"nat">>;
139
+ executeTx(messages: {
140
+ '@type': string;
141
+ }[]): import("@agoric/vow").Vow<{
142
+ '@type': string;
143
+ }[]>;
144
+ getAddress(): import("../orchestration-api.js").CosmosChainAddress;
145
+ send(toAccount: import("../orchestration-api.js").AccountIdArg, amount: import("../orchestration-api.js").AmountArg, opts?: import("../orchestration-api.js").ActionOptions | undefined): import("@agoric/vow").Vow<{}>;
146
+ sendAll(toAccount: import("../orchestration-api.js").CosmosChainAddress, amounts: import("../orchestration-api.js").AmountArg[], opts?: import("../orchestration-api.js").ActionOptions | undefined): import("@agoric/vow").Vow<{}>;
147
+ transfer(destination: import("../orchestration-api.js").AccountIdArg, amount: import("../orchestration-api.js").AmountArg, opts?: import("../cosmos-api.js").IBCMsgTransferOptions | undefined): import("@agoric/vow").Vow<{}>;
148
+ parseInboundTransfer(packet: Record<string, any>): import("@agoric/vow").Vow<{
149
+ amount: {
150
+ denom: import("../orchestration-api.js").Denom;
151
+ value: bigint;
152
+ };
153
+ fromAccount: string;
154
+ toAccount: string;
155
+ extra: {
156
+ [x: string]: any;
157
+ };
158
+ }>;
159
+ transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): import("@agoric/vow").Vow<{}>;
160
+ sendThenWaitForAck(packetSender: Remote<import("../exos/packet-tools.js").PacketSender>, opts?: import("../exos/packet-tools.js").PacketOptions | undefined): import("@agoric/vow").Vow<string>;
161
+ matchFirstPacket(args_0?: import("@agoric/vow").EVow<import("@endo/patterns").Pattern>): import("@agoric/vow").Vow<{
162
+ resolver: {
163
+ resolve: (value?: any) => void;
164
+ reject: (reason?: any) => void;
165
+ };
166
+ match: {
167
+ "Symbol(passStyle)": "tagged";
168
+ [Symbol.toStringTag]: "Vow";
169
+ payload: import("@agoric/vow").VowPayload<any>;
170
+ };
171
+ }>;
172
+ monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").Vow<{
173
+ /**
174
+ * performs unregistration (and sends the
175
+ * corresponding "BRIDGE_TARGET_UNREGISTER" message to the targetHost).
176
+ */
177
+ revoke: () => import("@agoric/vow").Vow<void>;
178
+ /**
179
+ * replaces the app associated with the target (but with no corresponding
180
+ * message).
181
+ */
182
+ updateTargetApp: (targetApp: import("jessie.js").ERef<import("@agoric/vats/src/bridge-target.js").TargetApp>) => import("@agoric/vow").Vow<void>;
183
+ }>;
184
+ }>>;
185
+ /**
186
+ * Invitation to make an account, without any funds
187
+ */
188
+ makeAccountInvitationMaker(): Promise<import("@agoric/zoe").Invitation<import("@agoric/vow").Vow<{
189
+ invitationMakers: {
190
+ [x: string]: (...args: any[]) => import("@agoric/vow").Vow<import("@endo/marshal").RemotableObject & {
191
+ getAllegedBrand: () => import("@agoric/ertp").Brand<"set">;
192
+ } & {
193
+ readonly "Symbol(tag)": {
194
+ "Set-like value type": import("@agoric/zoe").InvitationDetails;
195
+ };
196
+ }>;
197
+ };
198
+ publicSubscribers: {
199
+ [x: string]: {
200
+ description?: string | undefined;
201
+ subscriber: {
202
+ getUpdateSince: (updateCount?: number | bigint | undefined) => import("@agoric/vow").Vow<{
203
+ value: any;
204
+ updateCount?: bigint | undefined | undefined;
205
+ }>;
206
+ subscribeAfter: (publishCount?: bigint | undefined) => import("@agoric/vow").Vow<{
207
+ head: {
208
+ done: true;
209
+ value: any;
210
+ } | {
211
+ done?: false | undefined;
212
+ value: any;
213
+ };
214
+ publishCount: bigint;
215
+ tail: {
216
+ "Symbol(passStyle)": "tagged";
217
+ [Symbol.toStringTag]: "Vow";
218
+ payload: import("@agoric/vow").VowPayload</*elided*/ any>;
219
+ };
220
+ }>;
221
+ } | {};
222
+ storagePath: string;
223
+ };
224
+ };
225
+ }>, undefined>>;
226
+ }>;
227
+ }>;
228
+ import type { ZCF } from '@agoric/zoe';
229
+ import type { NameHub } from '@agoric/vats';
230
+ import type { Remote } from '@agoric/internal';
231
+ import type { LocalChain } from '@agoric/vats/src/localchain.js';
232
+ import type { Marshaller } from '@agoric/internal/src/lib-chainStorage.js';
233
+ import type { StorageNode } from '@agoric/internal/src/lib-chainStorage.js';
234
+ import type { TimerService } from '@agoric/time';
235
+ import type { Baggage } from '@agoric/vat-data';
236
+ import type { Payment } from '@agoric/ertp';
237
+ //# sourceMappingURL=stake-bld.contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stake-bld.contract.d.ts","sourceRoot":"","sources":["stake-bld.contract.js"],"names":[],"mappings":"AA2CO,2BAVI,GAAG,eACH;IACN,WAAW,EAAE,OAAO,OAAO,CAAC,CAAC;IAC7B,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC;IAC/B,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B,WACO,OAAO;;QA+EZ;;WAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6BH;;WAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAaR;yBA/IqB,aAAa;6BAJT,cAAc;4BACf,kBAAkB;gCAEd,gCAAgC;gCAIhC,0CAA0C;iCACzC,0CAA0C;kCANzC,cAAc;6BAGnB,kBAAkB;6BAClB,cAAc"}