@typeberry/lib 0.5.3 → 0.5.4-472e282

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 (221) hide show
  1. package/package.json +8 -4
  2. package/packages/core/hash/hash.d.ts.map +1 -1
  3. package/packages/core/hash/hash.js +1 -0
  4. package/packages/core/networking/certificate.d.ts.map +1 -1
  5. package/packages/core/networking/certificate.js +1 -0
  6. package/packages/core/networking/package.json +1 -1
  7. package/packages/core/networking/setup.d.ts.map +1 -1
  8. package/packages/core/networking/setup.js +16 -12
  9. package/packages/core/numbers/index.d.ts +4 -0
  10. package/packages/core/numbers/index.d.ts.map +1 -1
  11. package/packages/core/numbers/index.js +4 -4
  12. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +23 -17
  13. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  14. package/packages/core/pvm-host-calls/host-calls-executor.js +23 -31
  15. package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
  16. package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
  17. package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
  18. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
  19. package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
  20. package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
  21. package/packages/core/telemetry/package.json +1 -1
  22. package/packages/core/utils/compatibility.d.ts +0 -1
  23. package/packages/core/utils/compatibility.d.ts.map +1 -1
  24. package/packages/core/utils/compatibility.js +1 -2
  25. package/packages/core/utils/compatibility.test.js +6 -10
  26. package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
  27. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  28. package/packages/extensions/ipc/jamnp/handler.js +59 -34
  29. package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
  30. package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
  31. package/packages/jam/block/index.d.ts +11 -11
  32. package/packages/jam/block/index.d.ts.map +1 -1
  33. package/packages/jam/block/index.js +11 -11
  34. package/packages/jam/block/work-item.d.ts +13 -4
  35. package/packages/jam/block/work-item.d.ts.map +1 -1
  36. package/packages/jam/block/work-package.d.ts +3 -1
  37. package/packages/jam/block/work-package.d.ts.map +1 -1
  38. package/packages/jam/block/work-package.js +6 -2
  39. package/packages/jam/block/work-result.d.ts +3 -5
  40. package/packages/jam/block/work-result.d.ts.map +1 -1
  41. package/packages/jam/block/work-result.js +6 -0
  42. package/packages/jam/block-json/block.d.ts +125 -0
  43. package/packages/jam/block-json/block.d.ts.map +1 -1
  44. package/packages/jam/block-json/block.js +9 -2
  45. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  46. package/packages/jam/block-json/work-result.js +6 -6
  47. package/packages/jam/database-lmdb/states.test.js +2 -3
  48. package/packages/jam/executor/index.d.ts +4 -0
  49. package/packages/jam/executor/index.d.ts.map +1 -0
  50. package/packages/jam/executor/index.js +2 -0
  51. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  52. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  53. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
  54. package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
  55. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  56. package/packages/jam/fuzz-proto/v1/handler.js +43 -19
  57. package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
  58. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  59. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  60. package/packages/jam/in-core/externalities/refine.js +36 -0
  61. package/packages/jam/in-core/in-core.d.ts +60 -0
  62. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  63. package/packages/jam/in-core/in-core.js +294 -0
  64. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  65. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  66. package/packages/jam/in-core/in-core.test.js +81 -0
  67. package/packages/jam/in-core/index.d.ts +2 -0
  68. package/packages/jam/in-core/index.d.ts.map +1 -0
  69. package/packages/jam/in-core/index.js +1 -0
  70. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  71. package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
  72. package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -73
  73. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  74. package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
  75. package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
  76. package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
  77. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  78. package/packages/jam/jam-host-calls/general/fetch.js +6 -29
  79. package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
  80. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  81. package/packages/jam/jamnp-s/peers.js +10 -0
  82. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  83. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  84. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  85. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  86. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  87. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  88. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  89. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  90. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +9 -9
  91. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  92. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  93. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  94. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  95. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +16 -16
  96. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  97. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  98. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  99. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  100. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  101. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  102. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  103. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  104. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  105. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -2
  106. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  107. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  108. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  109. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  110. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  111. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  112. package/packages/jam/node/jam-config.d.ts +4 -1
  113. package/packages/jam/node/jam-config.d.ts.map +1 -1
  114. package/packages/jam/node/jam-config.js +6 -2
  115. package/packages/jam/node/main.d.ts.map +1 -1
  116. package/packages/jam/node/main.js +5 -4
  117. package/packages/jam/node/package.json +1 -1
  118. package/packages/jam/node/reader.d.ts +25 -25
  119. package/packages/jam/node/workers.d.ts +183 -183
  120. package/packages/jam/rpc-validation/types.d.ts +7 -3
  121. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  122. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  123. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  124. package/packages/jam/rpc-validation/validation.js +20 -2
  125. package/packages/jam/state/accumulation-queue.d.ts +26 -26
  126. package/packages/jam/state/assurances.d.ts +26 -26
  127. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  128. package/packages/jam/state/in-memory-state.js +2 -3
  129. package/packages/jam/state/privileged-services.d.ts +1 -1
  130. package/packages/jam/state/privileged-services.d.ts.map +1 -1
  131. package/packages/jam/state/privileged-services.js +1 -6
  132. package/packages/jam/state/service.d.ts +1 -1
  133. package/packages/jam/state/service.d.ts.map +1 -1
  134. package/packages/jam/state/statistics.d.ts +0 -8
  135. package/packages/jam/state/statistics.d.ts.map +1 -1
  136. package/packages/jam/state/statistics.js +14 -44
  137. package/packages/jam/state/statistics.test.js +1 -8
  138. package/packages/jam/state/test.utils.d.ts +1 -1
  139. package/packages/jam/state/test.utils.d.ts.map +1 -1
  140. package/packages/jam/state/test.utils.js +6 -25
  141. package/packages/jam/state-json/accounts.d.ts +10 -0
  142. package/packages/jam/state-json/accounts.d.ts.map +1 -1
  143. package/packages/jam/state-json/accounts.js +47 -19
  144. package/packages/jam/state-json/dump.d.ts.map +1 -1
  145. package/packages/jam/state-json/dump.js +5 -9
  146. package/packages/jam/state-json/dump.test.js +2 -10
  147. package/packages/jam/state-json/statistics.d.ts +1 -1
  148. package/packages/jam/state-json/statistics.d.ts.map +1 -1
  149. package/packages/jam/state-json/statistics.js +1 -13
  150. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +29 -31
  151. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  152. package/packages/jam/state-merkleization/serialize.d.ts +4 -4
  153. package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
  154. package/packages/jam/state-merkleization/serialize.js +5 -8
  155. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  156. package/packages/jam/state-merkleization/state-entries.test.js +1 -7
  157. package/packages/jam/state-vectors/index.d.ts +377 -5
  158. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  159. package/packages/jam/state-vectors/index.js +3 -3
  160. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  161. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  162. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  163. package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
  164. package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
  165. package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
  166. package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
  167. package/packages/jam/transition/accumulate/accumulate-utils.test.js +4 -6
  168. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  169. package/packages/jam/transition/accumulate/accumulate.js +19 -33
  170. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  171. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  172. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  173. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  174. package/packages/jam/transition/accumulate/index.d.ts +0 -1
  175. package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
  176. package/packages/jam/transition/accumulate/index.js +0 -1
  177. package/packages/jam/transition/accumulate/operand.d.ts +7 -7
  178. package/packages/jam/transition/chain-stf.d.ts +3 -5
  179. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  180. package/packages/jam/transition/chain-stf.js +5 -29
  181. package/packages/jam/transition/disputes/disputes.test.data2.d.ts +3 -3
  182. package/packages/jam/transition/disputes/disputes.test.data2.d.ts.map +1 -1
  183. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  184. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  185. package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
  186. package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
  187. package/packages/jam/transition/externalities/fetch-externalities.d.ts +8 -21
  188. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  189. package/packages/jam/transition/externalities/fetch-externalities.js +5 -53
  190. package/packages/jam/transition/externalities/fetch-externalities.test.js +201 -114
  191. package/packages/jam/transition/hasher.test.js +2 -2
  192. package/packages/jam/transition/reports/error.d.ts +3 -1
  193. package/packages/jam/transition/reports/error.d.ts.map +1 -1
  194. package/packages/jam/transition/reports/error.js +2 -0
  195. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  196. package/packages/jam/transition/reports/test.utils.js +2 -2
  197. package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
  198. package/packages/jam/transition/reports/verify-basic.js +10 -0
  199. package/packages/jam/transition/reports/verify-basic.test.js +29 -0
  200. package/packages/jam/transition/statistics.d.ts +0 -7
  201. package/packages/jam/transition/statistics.d.ts.map +1 -1
  202. package/packages/jam/transition/statistics.js +2 -11
  203. package/packages/jam/transition/statistics.test.js +0 -40
  204. package/packages/workers/block-authorship/generator.test.d.ts +2 -0
  205. package/packages/workers/block-authorship/generator.test.d.ts.map +1 -0
  206. package/packages/workers/block-authorship/generator.test.js +200 -0
  207. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  208. package/packages/workers/block-authorship/main.js +23 -4
  209. package/packages/workers/block-authorship/package.json +1 -1
  210. package/packages/workers/block-authorship/protocol.d.ts +53 -51
  211. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  212. package/packages/workers/block-authorship/protocol.js +6 -3
  213. package/packages/workers/importer/importer.d.ts.map +1 -1
  214. package/packages/workers/importer/importer.js +0 -1
  215. package/packages/workers/importer/package.json +1 -1
  216. package/packages/workers/importer/protocol.d.ts +54 -54
  217. package/packages/workers/jam-network/protocol.d.ts +79 -79
  218. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
  219. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
  220. package/packages/jam/transition/accumulate/deferred-transfers.js +0 -95
  221. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -1,95 +0,0 @@
1
- import { tryAsServiceGas } from "#@typeberry/block";
2
- import { W_C } from "#@typeberry/block/gp-constants.js";
3
- import { codec, Encoder } from "#@typeberry/codec";
4
- import { AccumulationStateUpdate, PartiallyUpdatedState, } from "#@typeberry/jam-host-calls/externalities/state-update.js";
5
- import { Logger } from "#@typeberry/logger";
6
- import { sumU64, tryAsU32 } from "#@typeberry/numbers";
7
- import { tryAsGas } from "#@typeberry/pvm-interface";
8
- import { ServiceAccountInfo } from "#@typeberry/state";
9
- import { Result } from "#@typeberry/utils";
10
- import { AccumulateExternalities } from "../externalities/accumulate-externalities.js";
11
- import { FetchExternalities } from "../externalities/fetch-externalities.js";
12
- import { uniquePreserveOrder } from "./accumulate-utils.js";
13
- import { PvmExecutor } from "./pvm-executor.js";
14
- const ARGS_CODEC = codec.object({
15
- timeslot: codec.varU32.asOpaque(),
16
- serviceId: codec.varU32.asOpaque(),
17
- transfersLength: codec.varU32,
18
- });
19
- export var DeferredTransfersErrorCode;
20
- (function (DeferredTransfersErrorCode) {
21
- DeferredTransfersErrorCode[DeferredTransfersErrorCode["ServiceBalanceOverflow"] = 1] = "ServiceBalanceOverflow";
22
- DeferredTransfersErrorCode[DeferredTransfersErrorCode["ServiceInfoNotExist"] = 2] = "ServiceInfoNotExist";
23
- })(DeferredTransfersErrorCode || (DeferredTransfersErrorCode = {}));
24
- const logger = Logger.new(import.meta.filename, "deferred-transfers");
25
- /**
26
- * https://graypaper.fluffylabs.dev/#/7e6ff6a/18df0118df01?v=0.6.7
27
- */
28
- export class DeferredTransfers {
29
- chainSpec;
30
- blake2b;
31
- state;
32
- pvm;
33
- constructor(chainSpec, blake2b, state, pvm) {
34
- this.chainSpec = chainSpec;
35
- this.blake2b = blake2b;
36
- this.state = state;
37
- this.pvm = pvm;
38
- }
39
- async transition({ pendingTransfers, timeslot, servicesUpdate: inputServicesUpdate, entropy, }) {
40
- // https://graypaper.fluffylabs.dev/#/7e6ff6a/187a03187a03?v=0.6.7
41
- const transferStatistics = new Map();
42
- const services = uniquePreserveOrder(pendingTransfers.map((x) => x.destination));
43
- let currentStateUpdate = AccumulationStateUpdate.new(inputServicesUpdate);
44
- for (const serviceId of services) {
45
- const partiallyUpdatedState = new PartiallyUpdatedState(this.state, currentStateUpdate);
46
- // https://graypaper.fluffylabs.dev/#/38c4e62/18750318ae03?v=0.7.0
47
- const transfers = pendingTransfers
48
- .filter((pendingTransfer) => pendingTransfer.destination === serviceId)
49
- .toSorted((a, b) => a.source - b.source);
50
- const info = partiallyUpdatedState.getServiceInfo(serviceId);
51
- if (info === null) {
52
- return Result.error(DeferredTransfersErrorCode.ServiceInfoNotExist, () => `Deferred transfers: service info not found for ${serviceId}`);
53
- }
54
- const codeHash = info.codeHash;
55
- const code = partiallyUpdatedState.getPreimage(serviceId, codeHash.asOpaque());
56
- const newBalance = sumU64(info.balance, ...transfers.map((item) => item.amount));
57
- if (newBalance.overflow) {
58
- return Result.error(DeferredTransfersErrorCode.ServiceBalanceOverflow, () => `Deferred transfers: balance overflow for service ${serviceId}`);
59
- }
60
- const newInfo = ServiceAccountInfo.create({ ...info, balance: newBalance.value });
61
- partiallyUpdatedState.updateServiceInfo(serviceId, newInfo);
62
- const partialState = new AccumulateExternalities(this.chainSpec, this.blake2b, partiallyUpdatedState, serviceId, serviceId, timeslot);
63
- const fetchExternalities = FetchExternalities.createForOnTransfer({ entropy, transfers }, this.chainSpec);
64
- let consumedGas = tryAsGas(0);
65
- const hasTransfers = transfers.length > 0;
66
- const isCodeCorrect = code !== null && code.length <= W_C;
67
- if (!hasTransfers || !isCodeCorrect) {
68
- if (code === null) {
69
- logger.trace `Skipping ON_TRANSFER execution for service ${serviceId} because code is null`;
70
- }
71
- else if (!hasTransfers) {
72
- logger.trace `Skipping ON_TRANSFER execution for service ${serviceId} because there are no transfers`;
73
- }
74
- else {
75
- logger.trace `Skipping ON_TRANSFER execution for service ${serviceId} because code is too long`;
76
- }
77
- }
78
- else {
79
- const executor = await PvmExecutor.createOnTransferExecutor(serviceId, code, { partialState, fetchExternalities }, this.pvm);
80
- const args = Encoder.encodeObject(ARGS_CODEC, { timeslot, serviceId, transfersLength: tryAsU32(transfers.length) }, this.chainSpec);
81
- const gas = transfers.reduce((acc, item) => acc + item.gas, 0n);
82
- consumedGas = (await executor.run(args, tryAsGas(gas))).consumedGas;
83
- }
84
- transferStatistics.set(serviceId, { count: tryAsU32(transfers.length), gasUsed: tryAsServiceGas(consumedGas) });
85
- const [updatedState] = partialState.getStateUpdates();
86
- currentStateUpdate = updatedState;
87
- }
88
- return Result.ok({
89
- // NOTE: we return only services, since it's impossible to update
90
- // anything else during `on_transfer` call.
91
- servicesUpdate: currentStateUpdate.services,
92
- transferStatistics,
93
- });
94
- }
95
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"pvm-executor.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/accumulate/pvm-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAc,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAM7F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAkBpD,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAChD,oBAAoB,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CACpH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3G,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;CACjD,CAAC;AASF;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;mBAac,cAAc;IAInC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAsBzC,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC;;;;;;OAMG;IACG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;;;;;;;;;;;;;IAInC,yEAAyE;WAC5D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU;IAOjB,0EAA0E;WAC7D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,GAAG,EAAE,UAAU;CAMlB"}