@airgap/stellar 0.13.45-beta.3 → 0.13.45-beta.4

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 (36) hide show
  1. package/package.json +4 -4
  2. package/v1/block-explorer/StellarBlockExplorer.js +61 -12
  3. package/v1/block-explorer/StellarBlockExplorer.js.map +1 -1
  4. package/v1/data/StellarAddress.js +14 -13
  5. package/v1/data/StellarAddress.js.map +1 -1
  6. package/v1/index.js +4 -4
  7. package/v1/index.js.map +1 -1
  8. package/v1/module/StellarModule.js +110 -41
  9. package/v1/module/StellarModule.js.map +1 -1
  10. package/v1/module.js +3 -2
  11. package/v1/module.js.map +1 -1
  12. package/v1/protocol/StellarProtocol.js +859 -591
  13. package/v1/protocol/StellarProtocol.js.map +1 -1
  14. package/v1/protocol/stellarAssets/StellarAsset.js +466 -259
  15. package/v1/protocol/stellarAssets/StellarAsset.js.map +1 -1
  16. package/v1/serializer/v3/schemas/converter/transaction-converter.js +20 -8
  17. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
  18. package/v1/serializer/v3/serializer-companion.js +134 -61
  19. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  20. package/v1/serializer/v3/validators/transaction-validator.js +61 -14
  21. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -1
  22. package/v1/serializer/v3/validators/validators.js +62 -18
  23. package/v1/serializer/v3/validators/validators.js.map +1 -1
  24. package/v1/types/crypto.d.ts +1 -1
  25. package/v1/types/protocol.d.ts +2 -2
  26. package/v1/types/protocol.js +2 -2
  27. package/v1/types/protocol.js.map +1 -1
  28. package/v1/utils/convert.js +7 -6
  29. package/v1/utils/convert.js.map +1 -1
  30. package/v1/utils/key.js +10 -9
  31. package/v1/utils/key.js.map +1 -1
  32. package/v1/utils/signature.js +5 -4
  33. package/v1/utils/signature.js.map +1 -1
  34. package/v1/utils/transaction.d.ts +1 -0
  35. package/v1/utils/transaction.js +10 -9
  36. package/v1/utils/transaction.js.map +1 -1
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertEncodedBytesString = convertEncodedBytesString;
4
- exports.convertHexBytesString = convertHexBytesString;
5
- const coinlib_core_1 = require("@airgap/coinlib-core");
6
- const errors_1 = require("@airgap/coinlib-core/errors");
7
- const stellar_sdk_1 = require("@stellar/stellar-sdk");
3
+ exports.convertHexBytesString = exports.convertEncodedBytesString = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var stellar_sdk_1 = require("@stellar/stellar-sdk");
8
7
  function convertEncodedBytesString(encoded, targetFormat) {
9
8
  switch (targetFormat) {
10
9
  case 'encoded':
11
10
  return encoded;
12
11
  case 'hex':
13
- const rawBytes = stellar_sdk_1.StrKey.decodeEd25519PublicKey(encoded);
12
+ var rawBytes = stellar_sdk_1.StrKey.decodeEd25519PublicKey(encoded);
14
13
  return Buffer.from(rawBytes).toString('hex');
15
14
  default:
16
15
  (0, coinlib_core_1.assertNever)(targetFormat);
17
16
  throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported bytes string format.');
18
17
  }
19
18
  }
19
+ exports.convertEncodedBytesString = convertEncodedBytesString;
20
20
  function convertHexBytesString(hex, targetFormat) {
21
21
  switch (targetFormat) {
22
22
  case 'hex':
@@ -28,4 +28,5 @@ function convertHexBytesString(hex, targetFormat) {
28
28
  throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported bytes string format.');
29
29
  }
30
30
  }
31
+ exports.convertHexBytesString = convertHexBytesString;
31
32
  //# sourceMappingURL=convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/v1/utils/convert.ts"],"names":[],"mappings":";;AAKA,8DAWC;AAED,sDAUC;AA5BD,uDAA0D;AAC1D,wDAA8D;AAE9D,sDAA6C;AAE7C,SAAgB,yBAAyB,CAAC,OAAe,EAAE,YAA+B;IACxF,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAA;QAChB,KAAK,KAAK;YACR,MAAM,QAAQ,GAAG,oBAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;IAClF,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAW,EAAE,YAA+B;IAChF,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,GAAG,CAAA;QACZ,KAAK,SAAS;YACZ,OAAO,oBAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;IAClF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/v1/utils/convert.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAE9D,oDAA6C;AAE7C,SAAgB,yBAAyB,CAAC,OAAe,EAAE,YAA+B;IACxF,QAAQ,YAAY,EAAE;QACpB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAA;QAChB,KAAK,KAAK;YACR,IAAM,QAAQ,GAAG,oBAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;KACjF;AACH,CAAC;AAXD,8DAWC;AAED,SAAgB,qBAAqB,CAAC,GAAW,EAAE,YAA+B;IAChF,QAAQ,YAAY,EAAE;QACpB,KAAK,KAAK;YACR,OAAO,GAAG,CAAA;QACZ,KAAK,SAAS;YACZ,OAAO,oBAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;KACjF;AACH,CAAC;AAVD,sDAUC"}
package/v1/utils/key.js CHANGED
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stellarPublicKey = stellarPublicKey;
4
- exports.convertPublicKey = convertPublicKey;
5
- const coinlib_core_1 = require("@airgap/coinlib-core");
6
- const errors_1 = require("@airgap/coinlib-core/errors");
7
- const hex_1 = require("@airgap/coinlib-core/utils/hex");
8
- const module_kit_1 = require("@airgap/module-kit");
9
- const stellar_sdk_1 = require("@stellar/stellar-sdk");
10
- const convert_1 = require("./convert");
3
+ exports.convertPublicKey = exports.stellarPublicKey = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var hex_1 = require("@airgap/coinlib-core/utils/hex");
7
+ var module_kit_1 = require("@airgap/module-kit");
8
+ var stellar_sdk_1 = require("@stellar/stellar-sdk");
9
+ var convert_1 = require("./convert");
11
10
  function stellarPublicKey(publicKey) {
12
- const format = (0, hex_1.isHex)(publicKey)
11
+ var format = (0, hex_1.isHex)(publicKey)
13
12
  ? 'hex'
14
13
  : stellar_sdk_1.StrKey.isValidEd25519PublicKey(publicKey)
15
14
  ? 'encoded'
@@ -19,6 +18,7 @@ function stellarPublicKey(publicKey) {
19
18
  }
20
19
  return (0, module_kit_1.newPublicKey)(publicKey, format);
21
20
  }
21
+ exports.stellarPublicKey = stellarPublicKey;
22
22
  function convertPublicKey(publicKey, targetFormat) {
23
23
  if (publicKey.format === targetFormat) {
24
24
  return publicKey;
@@ -33,4 +33,5 @@ function convertPublicKey(publicKey, targetFormat) {
33
33
  throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported public key format.');
34
34
  }
35
35
  }
36
+ exports.convertPublicKey = convertPublicKey;
36
37
  //# sourceMappingURL=key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/utils/key.ts"],"names":[],"mappings":";;AAQA,4CAYC;AAED,4CAcC;AApCD,uDAA0D;AAC1D,wDAAuF;AACvF,wDAAsD;AACtD,mDAA4D;AAC5D,sDAA6C;AAE7C,uCAA4E;AAE5E,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,MAAM,MAAM,GAAoC,IAAA,WAAK,EAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,oBAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;IAClF,CAAC;IAED,OAAO,IAAA,yBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,CAAC;AAED,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,IAAA,yBAAY,EAAC,IAAA,mCAAyB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QAC7F,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QACzF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;IAChF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/utils/key.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAAuF;AACvF,sDAAsD;AACtD,iDAA4D;AAC5D,oDAA6C;AAE7C,qCAA4E;AAE5E,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,IAAM,MAAM,GAAoC,IAAA,WAAK,EAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,oBAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;KACjF;IAED,OAAO,IAAA,yBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,CAAC;AAZD,4CAYC;AAED,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE;QACxB,KAAK,SAAS;YACZ,OAAO,IAAA,yBAAY,EAAC,IAAA,mCAAyB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QAC7F,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QACzF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;KAC/E;AACH,CAAC;AAdD,4CAcC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertSignature = convertSignature;
4
- const coinlib_core_1 = require("@airgap/coinlib-core");
5
- const errors_1 = require("@airgap/coinlib-core/errors");
6
- const module_kit_1 = require("@airgap/module-kit");
3
+ exports.convertSignature = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var module_kit_1 = require("@airgap/module-kit");
7
7
  function convertSignature(signature, targetFormat) {
8
8
  if (signature.format === targetFormat) {
9
9
  return signature;
@@ -18,4 +18,5 @@ function convertSignature(signature, targetFormat) {
18
18
  throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported signature format.');
19
19
  }
20
20
  }
21
+ exports.convertSignature = convertSignature;
21
22
  //# sourceMappingURL=signature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/v1/utils/signature.ts"],"names":[],"mappings":";;AAIA,4CAcC;AAlBD,uDAA0D;AAC1D,wDAA8D;AAC9D,mDAA4D;AAE5D,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,SAAS,EAAE,gBAAgB;YAC9B,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACpF,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAA;QACxF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAA;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/v1/utils/signature.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAC9D,iDAA4D;AAE5D,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE;QACxB,KAAK,SAAS,EAAE,gBAAgB;YAC9B,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACpF,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAA;QACxF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAA;KAC9E;AACH,CAAC;AAdD,4CAcC"}
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  export declare function encodeTx(transaction: string | Buffer): string;
2
3
  export declare function decodeTx(transaction: string): Buffer;
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeTx = encodeTx;
4
- exports.decodeTx = decodeTx;
5
- const coinlib_core_1 = require("@airgap/coinlib-core");
6
- const errors_1 = require("@airgap/coinlib-core/errors");
7
- const TRANSACTION_PREFIX = 'tx_';
3
+ exports.decodeTx = exports.encodeTx = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var TRANSACTION_PREFIX = 'tx_';
8
7
  function encodeTx(transaction) {
9
- const base64 = typeof transaction === 'string' ? transaction : Buffer.from(transaction).toString('base64');
10
- return `${TRANSACTION_PREFIX}${base64}`;
8
+ var base64 = typeof transaction === 'string' ? transaction : Buffer.from(transaction).toString('base64');
9
+ return "".concat(TRANSACTION_PREFIX).concat(base64);
11
10
  }
11
+ exports.encodeTx = encodeTx;
12
12
  function decodeTx(transaction) {
13
- const encoded = transaction.startsWith(TRANSACTION_PREFIX) ? transaction.slice(TRANSACTION_PREFIX.length) : transaction;
13
+ var encoded = transaction.startsWith(TRANSACTION_PREFIX) ? transaction.slice(TRANSACTION_PREFIX.length) : transaction;
14
14
  try {
15
15
  return Buffer.from(encoded, 'base64');
16
16
  }
17
- catch {
17
+ catch (_a) {
18
18
  throw new errors_1.InvalidValueError(coinlib_core_1.Domain.STELLAR, 'Invalid Stellar transaction encoding (base64 expected)');
19
19
  }
20
20
  }
21
+ exports.decodeTx = decodeTx;
21
22
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/v1/utils/transaction.ts"],"names":[],"mappings":";;AAKA,4BAGC;AAED,4BAQC;AAlBD,uDAA6C;AAC7C,wDAA+D;AAE/D,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,SAAgB,QAAQ,CAAC,WAA4B;IACnD,MAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1G,OAAO,GAAG,kBAAkB,GAAG,MAAM,EAAE,CAAA;AACzC,CAAC;AAED,SAAgB,QAAQ,CAAC,WAAmB;IAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAEvH,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,0BAAiB,CAAC,qBAAM,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;IACvG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/v1/utils/transaction.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,sDAA+D;AAE/D,IAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,SAAgB,QAAQ,CAAC,WAA4B;IACnD,IAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1G,OAAO,UAAG,kBAAkB,SAAG,MAAM,CAAE,CAAA;AACzC,CAAC;AAHD,4BAGC;AAED,SAAgB,QAAQ,CAAC,WAAmB;IAC1C,IAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAEvH,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KACtC;IAAC,WAAM;QACN,MAAM,IAAI,0BAAiB,CAAC,qBAAM,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;KACtG;AACH,CAAC;AARD,4BAQC"}