@bsv/sdk 1.9.29 → 1.9.31

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 (50) hide show
  1. package/dist/cjs/package.json +3 -2
  2. package/dist/cjs/src/messages/EncryptedMessage.js +19 -0
  3. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  4. package/dist/cjs/src/primitives/AESGCM.js +72 -27
  5. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  6. package/dist/cjs/src/primitives/ECDSA.js +22 -23
  7. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  8. package/dist/cjs/src/primitives/Point.js +61 -4
  9. package/dist/cjs/src/primitives/Point.js.map +1 -1
  10. package/dist/cjs/src/primitives/PrivateKey.js +29 -2
  11. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  12. package/dist/cjs/src/primitives/PublicKey.js +1 -1
  13. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  14. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  15. package/dist/esm/src/messages/EncryptedMessage.js +19 -0
  16. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  17. package/dist/esm/src/primitives/AESGCM.js +71 -26
  18. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  19. package/dist/esm/src/primitives/ECDSA.js +22 -23
  20. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  21. package/dist/esm/src/primitives/Point.js +61 -4
  22. package/dist/esm/src/primitives/Point.js.map +1 -1
  23. package/dist/esm/src/primitives/PrivateKey.js +29 -2
  24. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  25. package/dist/esm/src/primitives/PublicKey.js +1 -1
  26. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  27. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  28. package/dist/types/src/messages/EncryptedMessage.d.ts +19 -0
  29. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  30. package/dist/types/src/primitives/AESGCM.d.ts +18 -0
  31. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  32. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  33. package/dist/types/src/primitives/Point.d.ts +1 -0
  34. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  35. package/dist/types/src/primitives/PrivateKey.d.ts +27 -0
  36. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  37. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  38. package/dist/umd/bundle.js +3 -3
  39. package/dist/umd/bundle.js.map +1 -1
  40. package/docs/reference/messages.md +24 -0
  41. package/package.json +3 -2
  42. package/src/messages/EncryptedMessage.ts +19 -0
  43. package/src/primitives/AESGCM.ts +75 -34
  44. package/src/primitives/ECDSA.ts +25 -23
  45. package/src/primitives/Point.ts +75 -3
  46. package/src/primitives/PrivateKey.ts +29 -2
  47. package/src/primitives/PublicKey.ts +1 -1
  48. package/src/primitives/__tests/AESGCM.test.ts +31 -0
  49. package/src/primitives/__tests/ECDSA.test.ts +12 -0
  50. package/src/primitives/__tests/Point.test.ts +60 -0
@@ -8,6 +8,25 @@ import PrivateKey from '../primitives/PrivateKey.js';
8
8
  *
9
9
  * @returns The encrypted message
10
10
  */
11
+ /**
12
+ * SECURITY NOTE – NON-AUTHENTICATED KEY EXCHANGE
13
+ *
14
+ * This encrypted message protocol does NOT implement a formally authenticated
15
+ * key exchange (AKE). Session keys are deterministically derived from long-term
16
+ * identity keys and a sender-chosen invoice value.
17
+ *
18
+ * As a result, this protocol does NOT provide:
19
+ * - Forward secrecy
20
+ * - Replay protection
21
+ * - Explicit authentication of peer identity
22
+ *
23
+ * This scheme SHOULD NOT be used for high-value, long-lived, or sensitive
24
+ * communications. It is intended for lightweight messaging where both parties
25
+ * already possess each other's long-term public keys and accept these risks.
26
+ *
27
+ * Future versions may introduce a protocol upgrade based on a standard AKE
28
+ * (e.g. X3DH, Noise, or SIGMA).
29
+ */
11
30
  export declare const encrypt: (message: number[], sender: PrivateKey, recipient: PublicKey) => number[];
12
31
  /**
13
32
  * Decrypts a message from one party to another using the BRC-78 message encryption protocol.
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedMessage.d.ts","sourceRoot":"","sources":["../../../../src/messages/EncryptedMessage.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,UAAU,MAAM,6BAA6B,CAAA;AAOpD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,MAAM,EAAE,EACjB,QAAQ,UAAU,EAClB,WAAW,SAAS,KACnB,MAAM,EAkBR,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,EAAE,WAAW,UAAU,KAAG,MAAM,EA0BxE,CAAA"}
1
+ {"version":3,"file":"EncryptedMessage.d.ts","sourceRoot":"","sources":["../../../../src/messages/EncryptedMessage.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,UAAU,MAAM,6BAA6B,CAAA;AAOpD;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,MAAM,EAAE,EACjB,QAAQ,UAAU,EAClB,WAAW,SAAS,KACnB,MAAM,EAkBR,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,EAAE,WAAW,UAAU,KAAG,MAAM,EA0BxE,CAAA"}
@@ -5,6 +5,24 @@ export declare const getBytes64: (numericValue: number) => number[];
5
5
  type Bytes = Uint8Array;
6
6
  export declare const exclusiveOR: (block0: Bytes, block1: Bytes) => Bytes;
7
7
  export declare const rightShift: (block: Bytes) => Bytes;
8
+ /**
9
+ * SECURITY NOTE – TIMING SIDE-CHANNEL MITIGATION
10
+ *
11
+ * This GHASH multiplication implementation avoids data-dependent conditional
12
+ * branches by using mask-based operations instead. This reduces timing
13
+ * side-channel leakage compared to a naive implementation that branches on
14
+ * secret bits.
15
+ *
16
+ * IMPORTANT: JavaScript and TypedArray operations do NOT provide constant-time
17
+ * execution guarantees. While this implementation mitigates obvious control-
18
+ * flow timing leaks, it must not be considered constant-time in a strict
19
+ * cryptographic sense and is not suitable for hostile shared-CPU or
20
+ * multi-tenant environments.
21
+ *
22
+ * Applications requiring strict constant-time AES-GCM SHOULD use a dedicated,
23
+ * audited cryptographic library (e.g. noble-ciphers, WebCrypto, or BearSSL
24
+ * bindings).
25
+ */
8
26
  export declare const multiply: (block0: Bytes, block1: Bytes) => Bytes;
9
27
  export declare const incrementLeastSignificantThirtyTwoBits: (block: Bytes) => Bytes;
10
28
  export declare function ghash(input: Bytes, hashSubKey: Bytes): Bytes;
@@ -1 +1 @@
1
- {"version":3,"file":"AESGCM.d.ts","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":"AAyIA,wBAAgB,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgD7D;AAED,eAAO,MAAM,QAAQ,GACnB,WAAW,MAAM,EAAE,EACnB,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,CAAC,GAAG,CAEN,CAAA;AAED,eAAO,MAAM,QAAQ,GAAa,cAAc,MAAM,KAAG,MAAM,EAO9D,CAAA;AAED,eAAO,MAAM,UAAU,GAAa,cAAc,MAAM,KAAG,MAAM,EAkBhE,CAAA;AAED,KAAK,KAAK,GAAG,UAAU,CAAA;AA2BvB,eAAO,MAAM,WAAW,GAAa,QAAQ,KAAK,EAAE,QAAQ,KAAK,KAAG,KAOnE,CAAA;AAQD,eAAO,MAAM,UAAU,GAAa,OAAO,KAAK,KAAG,KAelD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAa,QAAQ,KAAK,EAAE,QAAQ,KAAK,KAAG,KAoBhE,CAAA;AAED,eAAO,MAAM,sCAAsC,GACjD,OAAO,KAAK,KACX,KAYF,CAAA;AAED,wBAAgB,KAAK,CAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,CAa7D;AAqED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,KAAK,EAChB,oBAAoB,EAAE,KAAK,EAC3B,GAAG,EAAE,KAAK,GACT;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,KAAK,CAAA;CAAE,CAiD7C;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,KAAK,EACjB,oBAAoB,EAAE,KAAK,EAC3B,iBAAiB,EAAE,KAAK,EACxB,GAAG,EAAE,KAAK,GACT,KAAK,GAAG,IAAI,CAoEd"}
1
+ {"version":3,"file":"AESGCM.d.ts","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":"AAoKA,wBAAgB,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgD7D;AAED,eAAO,MAAM,QAAQ,GACnB,WAAW,MAAM,EAAE,EACnB,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,CAAC,GAAG,CAEN,CAAA;AAED,eAAO,MAAM,QAAQ,GAAa,cAAc,MAAM,KAAG,MAAM,EAO9D,CAAA;AAED,eAAO,MAAM,UAAU,GAAa,cAAc,MAAM,KAAG,MAAM,EAkBhE,CAAA;AAED,KAAK,KAAK,GAAG,UAAU,CAAA;AA2BvB,eAAO,MAAM,WAAW,GAAa,QAAQ,KAAK,EAAE,QAAQ,KAAK,KAAG,KAOnE,CAAA;AAED,eAAO,MAAM,UAAU,GAAa,OAAO,KAAK,KAAG,KAelD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,GAAa,QAAQ,KAAK,EAAE,QAAQ,KAAK,KAAG,KAyBhE,CAAA;AAED,eAAO,MAAM,sCAAsC,GACjD,OAAO,KAAK,KACX,KASF,CAAA;AAED,wBAAgB,KAAK,CAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,CAa7D;AAqED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,KAAK,EAChB,oBAAoB,EAAE,KAAK,EAC3B,GAAG,EAAE,KAAK,GACT;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,KAAK,CAAA;CAAE,CAiD7C;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,KAAK,EACjB,oBAAoB,EAAE,KAAK,EAC3B,iBAAiB,EAAE,KAAK,EACxB,GAAG,EAAE,KAAK,GACT,KAAK,GAAG,IAAI,CAoEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"ECDSA.d.ts","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,KAAyH,MAAM,YAAY,CAAA;AA2ClJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,YAAW,OAAe,EAC1B,UAAU,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,KAClD,SA6EF,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,KAAG,OA4CnE,CAAA"}
1
+ {"version":3,"file":"ECDSA.d.ts","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,KAAyH,MAAM,YAAY,CAAA;AAoDlJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,SAAS,EACd,KAAK,SAAS,EACd,YAAW,OAAe,EAC1B,UAAU,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,KAClD,SAsEF,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,KAAG,OA4CnE,CAAA"}
@@ -269,6 +269,7 @@ export default class Point extends BasePoint {
269
269
  * const result = p.mul(2); // this doubles the Point
270
270
  */
271
271
  mul(k: BigNumber | number | number[] | string): Point;
272
+ mulCT(k: BigNumber | number | number[] | string): Point;
272
273
  /**
273
274
  * Performs a multiplication and addition operation in a single step.
274
275
  * Multiplies this Point by k1, adds the resulting Point to the result of p2 multiplied by k2.
@@ -1 +1 @@
1
- {"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
@@ -220,6 +220,33 @@ export default class PrivateKey extends BigNumber {
220
220
  * const sharedSecret = privateKey.deriveSharedSecret(publicKey);
221
221
  */
222
222
  deriveSharedSecret(key: PublicKey): Point;
223
+ /**
224
+ * SECURITY NOTE – DETERMINISTIC CHILD KEY DERIVATION
225
+ *
226
+ * This method derives child private keys deterministically from the caller’s
227
+ * long-term private key, the counterparty’s public key, and a caller-supplied
228
+ * invoice number using HMAC over an ECDH shared secret (BRC-42 style derivation).
229
+ *
230
+ * This construction does NOT implement a formally authenticated key exchange
231
+ * (AKE) and does NOT provide the following security properties:
232
+ *
233
+ * - Forward secrecy: Compromise of a long-term private key compromises all
234
+ * past and future child keys derived from it.
235
+ * - Replay protection: Child keys are deterministic for a given invoice
236
+ * number and key pair; previously observed messages can be replayed.
237
+ * - Explicit authentication / identity binding: Possession of a public key
238
+ * alone does not guarantee the intended peer identity, enabling potential
239
+ * identity misbinding attacks if higher-level identity verification is absent.
240
+ *
241
+ * This derivation is intended for lightweight, deterministic key hierarchies
242
+ * where both parties already possess and trust each other’s long-term public
243
+ * keys. It SHOULD NOT be used as a drop-in replacement for a standard
244
+ * authenticated key exchange (e.g. X3DH, Noise, or SIGMA) in high-security or
245
+ * high-value contexts.
246
+ *
247
+ * Any future protocol providing forward secrecy, replay protection, or strong
248
+ * peer authentication will require a versioned, breaking change.
249
+ */
223
250
  /**
224
251
  * Derives a child key with BRC-42.
225
252
  * @param publicKey The public key of the other party
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.d.ts","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateKey.d.ts","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,KAAK,MAAM,YAAY,CAAA;AAM9B,OAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEhE;;;;;;;;;;;;;GAaG;AAEH,qBAAa,SAAS;IACpB,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;gBAGf,MAAM,EAAE,kBAAkB,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAOnB,MAAM,CAAC,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS;IA0BrD,cAAc,IAAK,MAAM,EAAE;CAK5B;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAAS;IAC/C;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,IAAK,UAAU;IAIhC;;;;;;;;;QASI;IACJ,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,KAAa,GAAG,UAAU;IAIzE;;;;;;;;QAQI;IACJ,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAIxC;;;;;;;;;QASI;IACJ,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,UAAU;IAWlE;;;;;;;;;;;;;;;OAeG;gBAED,MAAM,GAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAM,EAClD,IAAI,GAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAU,EACvC,MAAM,GAAE,IAAI,GAAG,IAAW,EAC1B,IAAI,GAAE,OAAO,GAAG,SAAS,GAAG,OAAiB;IAqB/C;;;OAGG;IACH,YAAY,IAAK;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE;IAOtD;;OAEG;IACH,OAAO,IAAK,OAAO;IAInB;;;;;;;;;;;;;OAaG;IACH,IAAI,CACF,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EACtB,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EACpB,SAAS,GAAE,OAAc,EACzB,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,GAAG,SAAS,GAClD,SAAS;IAKZ;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO;IAKrE;;;;;;;;;;;OAWG;IACH,WAAW,IAAK,SAAS;IAMzB;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAE,MAAM,GAAE,MAAM,EAAW,GAAG,MAAM;IAOzC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAE,MAAM,GAAE,MAAM,EAAE,GAAG,MAAe,GAAG,MAAM;IAItD;;;;;;;;;;OAUG;IACH,KAAK,IAAK,MAAM;IAIhB;;;;;;;;QAQI;IACJ,QAAQ,CAAE,IAAI,GAAE,MAAM,GAAG,KAAa,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM;IAIrE;;;;;;;;;;;;OAYG;IACH,kBAAkB,CAAE,GAAG,EAAE,SAAS,GAAG,KAAK;IAO1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH;;;;;;;OAOG;IACH,WAAW,CACT,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,EAC1E,0BAA0B,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,GACnF,UAAU;IAqBb;;;;;;;;;;;OAWG;IACH,WAAW,CAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS;IAoD/D;;;;;;;;;OASG;IACH,cAAc,CAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAIjE;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;IAItD;;;;;;;;QAQI;IACJ,MAAM,CAAC,aAAa,CAAE,SAAS,EAAE,SAAS,GAAG,UAAU;CAyBxD"}