@voltras/node-sdk 0.1.1 → 0.2.0

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 (171) hide show
  1. package/README.md +122 -31
  2. package/dist/cjs/bluetooth/adapters/native.js +36 -34
  3. package/dist/cjs/bluetooth/adapters/native.js.map +1 -1
  4. package/dist/cjs/bluetooth/adapters/node.js +9 -7
  5. package/dist/cjs/bluetooth/adapters/node.js.map +1 -1
  6. package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js +6 -4
  7. package/dist/cjs/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
  8. package/dist/cjs/bluetooth/adapters/web.js +7 -5
  9. package/dist/cjs/bluetooth/adapters/web.js.map +1 -1
  10. package/dist/cjs/bluetooth/controllers/scanner-controller.js +0 -2
  11. package/dist/cjs/bluetooth/controllers/scanner-controller.js.map +1 -1
  12. package/dist/cjs/bluetooth/index.js.map +1 -1
  13. package/dist/cjs/errors.js.map +1 -1
  14. package/dist/cjs/index.js +19 -10
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/react/hooks.js +2 -6
  17. package/dist/cjs/react/hooks.js.map +1 -1
  18. package/dist/cjs/sdk/notification-dispatcher.js +47 -0
  19. package/dist/cjs/sdk/notification-dispatcher.js.map +1 -0
  20. package/dist/cjs/sdk/reconnect-handler.js +61 -0
  21. package/dist/cjs/sdk/reconnect-handler.js.map +1 -0
  22. package/dist/cjs/sdk/voltra-client.js +206 -72
  23. package/dist/cjs/sdk/voltra-client.js.map +1 -1
  24. package/dist/cjs/sdk/voltra-manager.js +13 -2
  25. package/dist/cjs/sdk/voltra-manager.js.map +1 -1
  26. package/dist/cjs/shared/index.js +5 -1
  27. package/dist/cjs/shared/index.js.map +1 -1
  28. package/dist/cjs/shared/logger.js +54 -0
  29. package/dist/cjs/shared/logger.js.map +1 -0
  30. package/dist/cjs/voltra/index.js +15 -12
  31. package/dist/cjs/voltra/index.js.map +1 -1
  32. package/dist/cjs/voltra/models/device.js +13 -0
  33. package/dist/cjs/voltra/models/device.js.map +1 -1
  34. package/dist/cjs/voltra/protocol/commands.js +127 -210
  35. package/dist/cjs/voltra/protocol/commands.js.map +1 -1
  36. package/dist/cjs/voltra/protocol/constants/ble-config.js +24 -0
  37. package/dist/cjs/voltra/protocol/constants/ble-config.js.map +1 -0
  38. package/dist/cjs/voltra/protocol/constants/connection-commands.js +55 -0
  39. package/dist/cjs/voltra/protocol/constants/connection-commands.js.map +1 -0
  40. package/dist/cjs/voltra/protocol/constants/enums.js +117 -0
  41. package/dist/cjs/voltra/protocol/constants/enums.js.map +1 -0
  42. package/dist/cjs/voltra/protocol/constants/index.js +32 -0
  43. package/dist/cjs/voltra/protocol/constants/index.js.map +1 -0
  44. package/dist/cjs/voltra/protocol/constants/message-types.js +70 -0
  45. package/dist/cjs/voltra/protocol/constants/message-types.js.map +1 -0
  46. package/dist/cjs/voltra/protocol/constants/timing.js +21 -0
  47. package/dist/cjs/voltra/protocol/constants/timing.js.map +1 -0
  48. package/dist/cjs/voltra/protocol/data/protocol-data.generated.js +7 -0
  49. package/dist/cjs/voltra/protocol/data/protocol-data.generated.js.map +1 -0
  50. package/dist/cjs/voltra/protocol/telemetry-decoder.js +122 -6
  51. package/dist/cjs/voltra/protocol/telemetry-decoder.js.map +1 -1
  52. package/dist/cjs/voltra/protocol/types.js +9 -0
  53. package/dist/cjs/voltra/protocol/types.js.map +1 -0
  54. package/dist/esm/bluetooth/adapters/native.js +36 -34
  55. package/dist/esm/bluetooth/adapters/native.js.map +1 -1
  56. package/dist/esm/bluetooth/adapters/node.js +9 -7
  57. package/dist/esm/bluetooth/adapters/node.js.map +1 -1
  58. package/dist/esm/bluetooth/adapters/web-bluetooth-base.js +6 -4
  59. package/dist/esm/bluetooth/adapters/web-bluetooth-base.js.map +1 -1
  60. package/dist/esm/bluetooth/adapters/web.js +7 -5
  61. package/dist/esm/bluetooth/adapters/web.js.map +1 -1
  62. package/dist/esm/bluetooth/controllers/scanner-controller.js +0 -2
  63. package/dist/esm/bluetooth/controllers/scanner-controller.js.map +1 -1
  64. package/dist/esm/bluetooth/index.js +1 -1
  65. package/dist/esm/bluetooth/index.js.map +1 -1
  66. package/dist/esm/errors.js.map +1 -1
  67. package/dist/esm/index.js +4 -7
  68. package/dist/esm/index.js.map +1 -1
  69. package/dist/esm/react/hooks.js +1 -5
  70. package/dist/esm/react/hooks.js.map +1 -1
  71. package/dist/esm/sdk/notification-dispatcher.js +44 -0
  72. package/dist/esm/sdk/notification-dispatcher.js.map +1 -0
  73. package/dist/esm/sdk/reconnect-handler.js +57 -0
  74. package/dist/esm/sdk/reconnect-handler.js.map +1 -0
  75. package/dist/esm/sdk/voltra-client.js +204 -70
  76. package/dist/esm/sdk/voltra-client.js.map +1 -1
  77. package/dist/esm/sdk/voltra-manager.js +13 -2
  78. package/dist/esm/sdk/voltra-manager.js.map +1 -1
  79. package/dist/esm/shared/index.js +1 -0
  80. package/dist/esm/shared/index.js.map +1 -1
  81. package/dist/esm/shared/logger.js +49 -0
  82. package/dist/esm/shared/logger.js.map +1 -0
  83. package/dist/esm/voltra/index.js +3 -8
  84. package/dist/esm/voltra/index.js.map +1 -1
  85. package/dist/esm/voltra/models/device.js +13 -0
  86. package/dist/esm/voltra/models/device.js.map +1 -1
  87. package/dist/esm/voltra/protocol/commands.js +117 -209
  88. package/dist/esm/voltra/protocol/commands.js.map +1 -1
  89. package/dist/esm/voltra/protocol/constants/ble-config.js +18 -0
  90. package/dist/esm/voltra/protocol/constants/ble-config.js.map +1 -0
  91. package/dist/esm/voltra/protocol/constants/connection-commands.js +49 -0
  92. package/dist/esm/voltra/protocol/constants/connection-commands.js.map +1 -0
  93. package/dist/esm/voltra/protocol/constants/enums.js +114 -0
  94. package/dist/esm/voltra/protocol/constants/enums.js.map +1 -0
  95. package/dist/esm/voltra/protocol/constants/index.js +12 -0
  96. package/dist/esm/voltra/protocol/constants/index.js.map +1 -0
  97. package/dist/esm/voltra/protocol/constants/message-types.js +64 -0
  98. package/dist/esm/voltra/protocol/constants/message-types.js.map +1 -0
  99. package/dist/esm/voltra/protocol/constants/timing.js +18 -0
  100. package/dist/esm/voltra/protocol/constants/timing.js.map +1 -0
  101. package/dist/esm/voltra/protocol/data/protocol-data.generated.js +5 -0
  102. package/dist/esm/voltra/protocol/data/protocol-data.generated.js.map +1 -0
  103. package/dist/esm/voltra/protocol/telemetry-decoder.js +124 -8
  104. package/dist/esm/voltra/protocol/telemetry-decoder.js.map +1 -1
  105. package/dist/esm/voltra/protocol/types.js +8 -0
  106. package/dist/esm/voltra/protocol/types.js.map +1 -0
  107. package/dist/types/bluetooth/adapters/native.d.ts.map +1 -1
  108. package/dist/types/bluetooth/adapters/node.d.ts.map +1 -1
  109. package/dist/types/bluetooth/adapters/web-bluetooth-base.d.ts.map +1 -1
  110. package/dist/types/bluetooth/adapters/web.d.ts.map +1 -1
  111. package/dist/types/bluetooth/controllers/scanner-controller.d.ts.map +1 -1
  112. package/dist/types/bluetooth/index.d.ts +1 -1
  113. package/dist/types/bluetooth/index.d.ts.map +1 -1
  114. package/dist/types/errors.d.ts.map +1 -1
  115. package/dist/types/index.d.ts +5 -4
  116. package/dist/types/index.d.ts.map +1 -1
  117. package/dist/types/react/hooks.d.ts.map +1 -1
  118. package/dist/types/sdk/index.d.ts +2 -1
  119. package/dist/types/sdk/index.d.ts.map +1 -1
  120. package/dist/types/sdk/notification-dispatcher.d.ts +29 -0
  121. package/dist/types/sdk/notification-dispatcher.d.ts.map +1 -0
  122. package/dist/types/sdk/reconnect-handler.d.ts +55 -0
  123. package/dist/types/sdk/reconnect-handler.d.ts.map +1 -0
  124. package/dist/types/sdk/types.d.ts +35 -0
  125. package/dist/types/sdk/types.d.ts.map +1 -1
  126. package/dist/types/sdk/voltra-client.d.ts +77 -2
  127. package/dist/types/sdk/voltra-client.d.ts.map +1 -1
  128. package/dist/types/sdk/voltra-manager.d.ts.map +1 -1
  129. package/dist/types/shared/index.d.ts +1 -0
  130. package/dist/types/shared/index.d.ts.map +1 -1
  131. package/dist/types/shared/logger.d.ts +39 -0
  132. package/dist/types/shared/logger.d.ts.map +1 -0
  133. package/dist/types/voltra/index.d.ts +3 -3
  134. package/dist/types/voltra/index.d.ts.map +1 -1
  135. package/dist/types/voltra/models/device.d.ts +11 -1
  136. package/dist/types/voltra/models/device.d.ts.map +1 -1
  137. package/dist/types/voltra/protocol/commands.d.ts +47 -87
  138. package/dist/types/voltra/protocol/commands.d.ts.map +1 -1
  139. package/dist/types/voltra/protocol/constants/ble-config.d.ts +16 -0
  140. package/dist/types/voltra/protocol/constants/ble-config.d.ts.map +1 -0
  141. package/dist/types/voltra/protocol/constants/connection-commands.d.ts +37 -0
  142. package/dist/types/voltra/protocol/constants/connection-commands.d.ts.map +1 -0
  143. package/dist/types/voltra/protocol/constants/enums.d.ts +72 -0
  144. package/dist/types/voltra/protocol/constants/enums.d.ts.map +1 -0
  145. package/dist/types/voltra/protocol/constants/index.d.ts +12 -0
  146. package/dist/types/voltra/protocol/constants/index.d.ts.map +1 -0
  147. package/dist/types/voltra/protocol/constants/message-types.d.ts +52 -0
  148. package/dist/types/voltra/protocol/constants/message-types.d.ts.map +1 -0
  149. package/dist/types/voltra/protocol/constants/timing.d.ts +18 -0
  150. package/dist/types/voltra/protocol/constants/timing.d.ts.map +1 -0
  151. package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts +3 -0
  152. package/dist/types/voltra/protocol/data/protocol-data.generated.d.ts.map +1 -0
  153. package/dist/types/voltra/protocol/telemetry-decoder.d.ts +15 -2
  154. package/dist/types/voltra/protocol/telemetry-decoder.d.ts.map +1 -1
  155. package/dist/types/voltra/protocol/types.d.ts +247 -0
  156. package/dist/types/voltra/protocol/types.d.ts.map +1 -0
  157. package/package.json +9 -8
  158. package/dist/cjs/voltra/protocol/constants.js +0 -136
  159. package/dist/cjs/voltra/protocol/constants.js.map +0 -1
  160. package/dist/cjs/voltra/protocol/data/chains.json +0 -830
  161. package/dist/cjs/voltra/protocol/data/eccentric.json +0 -1598
  162. package/dist/cjs/voltra/protocol/data/protocol.json +0 -54
  163. package/dist/cjs/voltra/protocol/data/weights.json +0 -62
  164. package/dist/esm/voltra/protocol/constants.js +0 -130
  165. package/dist/esm/voltra/protocol/constants.js.map +0 -1
  166. package/dist/esm/voltra/protocol/data/chains.json +0 -830
  167. package/dist/esm/voltra/protocol/data/eccentric.json +0 -1598
  168. package/dist/esm/voltra/protocol/data/protocol.json +0 -54
  169. package/dist/esm/voltra/protocol/data/weights.json +0 -62
  170. package/dist/types/voltra/protocol/constants.d.ts +0 -103
  171. package/dist/types/voltra/protocol/constants.d.ts.map +0 -1
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Message Types & Telemetry Configuration
3
+ *
4
+ * Notification message identifiers, telemetry byte offsets,
5
+ * notification parsing configs, and parameter ID mappings.
6
+ * All values loaded from protocol.json for single source of truth.
7
+ */
8
+ import { hexToBytes } from '../../../shared/utils';
9
+ import protocolData from '../data/protocol-data.generated';
10
+ const protocol = protocolData;
11
+ // =============================================================================
12
+ // Message Type Headers
13
+ // =============================================================================
14
+ /**
15
+ * Message type identifiers (first 4 bytes of notifications).
16
+ */
17
+ export const MessageTypes = {
18
+ /** Real-time telemetry stream (~11 Hz) */
19
+ TELEMETRY_STREAM: hexToBytes(protocol.telemetry.messageTypes.stream),
20
+ /** Rep completion summary */
21
+ REP_SUMMARY: hexToBytes(protocol.telemetry.messageTypes.repSummary),
22
+ /** Set completion summary */
23
+ SET_SUMMARY: hexToBytes(protocol.telemetry.messageTypes.setSummary),
24
+ /** Status update */
25
+ STATUS_UPDATE: hexToBytes(protocol.telemetry.messageTypes.statusUpdate),
26
+ };
27
+ // =============================================================================
28
+ // Telemetry Offsets
29
+ // =============================================================================
30
+ /**
31
+ * Byte offsets for parsing telemetry stream messages.
32
+ */
33
+ export const TelemetryOffsets = {
34
+ SEQUENCE: protocol.telemetry.offsets.sequence, // 2 bytes, little-endian
35
+ PHASE: protocol.telemetry.offsets.phase, // 1 byte
36
+ POSITION: protocol.telemetry.offsets.position, // 2 bytes, little-endian unsigned
37
+ FORCE: protocol.telemetry.offsets.force, // 2 bytes, little-endian signed
38
+ VELOCITY: protocol.telemetry.offsets.velocity, // 2 bytes, little-endian unsigned
39
+ };
40
+ // =============================================================================
41
+ // Notification Parsing Configs
42
+ // =============================================================================
43
+ /**
44
+ * Notification parsing configurations loaded from protocol.json.
45
+ * Used to parse various notification types from the device.
46
+ */
47
+ export const NotificationConfigs = protocol.telemetry.notifications;
48
+ /**
49
+ * Parameter IDs as hex strings (for matching in notifications).
50
+ */
51
+ export const ParamIdHex = {
52
+ BASE_WEIGHT: protocol.telemetry.paramIds.baseWeight,
53
+ CHAINS: protocol.telemetry.paramIds.chains,
54
+ ECCENTRIC: protocol.telemetry.paramIds.eccentric,
55
+ TRAINING_MODE: protocol.telemetry.paramIds.trainingMode,
56
+ INVERSE_CHAINS: protocol.telemetry.paramIds.inverseChains,
57
+ UNKNOWN_893E: protocol.telemetry.paramIds.unknown893e,
58
+ };
59
+ /**
60
+ * Training mode values from protocol.json.
61
+ * These map to the TrainingMode enum values.
62
+ */
63
+ export const TrainingModeValues = protocol.telemetry.trainingModes;
64
+ //# sourceMappingURL=message-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-types.js","sourceRoot":"","sources":["../../../../../src/voltra/protocol/constants/message-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAG3D,MAAM,QAAQ,GAAG,YAA4B,CAAC;AAE9C,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,0CAA0C;IAC1C,gBAAgB,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;IACpE,6BAA6B;IAC7B,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC;IACnE,6BAA6B;IAC7B,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC;IACnE,oBAAoB;IACpB,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;CAC/D,CAAC;AAEX,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,yBAAyB;IACxE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS;IAClD,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,kCAAkC;IACjF,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,gCAAgC;IACzE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,kCAAkC;CACzE,CAAC;AAEX,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU;IACnD,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;IAC1C,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS;IAChD,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY;IACvD,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa;IACzD,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW;CAC7C,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Timing Configuration
3
+ *
4
+ * Delays and timeouts for device communication.
5
+ */
6
+ export const Timing = {
7
+ /** Delay between init commands (ms) */
8
+ INIT_COMMAND_DELAY_MS: 20,
9
+ /** Delay between dual commands like chains/eccentric (ms) */
10
+ DUAL_COMMAND_DELAY_MS: 500,
11
+ /** Timeout for authentication response (ms) */
12
+ AUTH_TIMEOUT_MS: 3000,
13
+ /** Minimum responses expected during auth */
14
+ MIN_AUTH_RESPONSES: 2,
15
+ /** Minimum responses expected after commands */
16
+ MIN_COMMAND_RESPONSES: 4,
17
+ };
18
+ //# sourceMappingURL=timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../../src/voltra/protocol/constants/timing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,uCAAuC;IACvC,qBAAqB,EAAE,EAAE;IACzB,6DAA6D;IAC7D,qBAAqB,EAAE,GAAG;IAC1B,+CAA+C;IAC/C,eAAe,EAAE,IAAI;IACrB,6CAA6C;IAC7C,kBAAkB,EAAE,CAAC;IACrB,gDAAgD;IAChD,qBAAqB,EAAE,CAAC;CAChB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // @generated — do not edit. Regenerate: npm run generate:protocol
2
+ /* eslint-disable */
3
+ const _e = 'eyJ2ZXJzaW9uIjoiMi4wLjAiLCJibGUiOnsic2VydmljZVV1aWQiOiJFNERBREEzNC0wODY3LTg3ODMtOUY3MC0yQ0EyOTIxNkM3RTQiLCJub3RpZnlDaGFyVXVpZCI6IjU1Q0ExRTUyLTczNTQtMjVERS02QUZDLUI3REYxRTg4MTZBQyIsIndyaXRlQ2hhclV1aWQiOiJBMDEwODkxRC1GNTBGLTQ0RjAtOTAxRi05QTI0MjFBOUUwNTAiLCJkZXZpY2VOYW1lUHJlZml4IjoiVlRSLSJ9LCJjb21tYW5kcyI6eyJhdXRoIjp7ImlwaG9uZSI6IjU1MjkwNGM5MDExMDAwMDAyMDAwNGY2OTUwNjg2ZjZlNjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NGFiMWE1ZjI5MjAwMTcyZDgiLCJpcGFkIjoiNTUyOTA0YzkwMTEwMDAwMDIwMDA0ZjY5NTA2MTY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0YWIxYTVmMjkyMDAxZWE0ZiJ9LCJpbml0IjpbIjU1MGYwODAxYWFkMjAwMDAyMDAwZmYwMGFhMDQxOTQwMDAiLCI1NTFmMDQ0ZWFhMTAwMDAwMjAwMDI3ODExMDY1ZjhjNmI5MTc5MDQ3Yjc5N2QzMzUxYzA0YmZmYjkyNWNkNjQxMDAiXSwid29ya291dCI6eyJwcmVwYXJlIjoiNTUxMjA0YzdhYTEwMTQwMDIwMDAxMTAxMDBiMDRmMDFkYjEwIiwic2V0dXAiOiI1NTEzMDQwM2FhMTAxNTAwMjAwMDBmMDIwMDZhNTA4MjNlOGYyZiIsImdvIjoiNTUxMzA0MDNhYTEwMTYwMDIwMDAxMTAxMDA4OTNlMDUwMDgxNzMiLCJzdG9wIjoiNTUxMzA0MDNhYTEwMWIwMDIwMDAxMTAxMDA4OTNlMDQwMDM3ZGQifSwibW9kZXMiOnsiaWRsZSI6IjU1MTMwNDAzYWExMDAwMjAyMDAwMTEwMTAwYjA0ZjAwMDAyYjRhIiwid2VpZ2h0VHJhaW5pbmciOiI1NTEzMDQwM2FhMTAwMDIwMjAwMDExMDEwMGIwNGYwMTAwZjM1MyIsInJlc2lzdGFuY2VCYW5kIjoiNTUxMzA0MDNhYTEwMDAyMDIwMDAxMTAxMDBiMDRmMDIwMDliNzkiLCJyb3dpbmciOiI1NTEzMDQwM2FhMTAwMDIwMjAwMDExMDEwMGIwNGYwMzAwNDM2MCIsImRhbXBlciI6IjU1MTMwNDAzYWExMDAwMjAyMDAwMTEwMTAwYjA0ZjA0MDA0YjJkIiwiY3VzdG9tQ3VydmVzIjoiNTUxMzA0MDNhYTEwMDAyMDIwMDAxMTAxMDBiMDRmMDYwMGZiMWUiLCJpc29raW5ldGljIjoiNTUxMzA0MDNhYTEwMDAyMDIwMDAxMTAxMDBiMDRmMDcwMDIzMDciLCJpc29tZXRyaWMiOiI1NTEzMDQwM2FhMTAwMDIwMjAwMDExMDEwMGIwNGYwODAwZWI4NCJ9LCJ3ZWlnaHRzIjp7IjUiOiI1NTEzMDQwM2FhMTAwMDIwMjAwMDExMDEwMDg2M2UwNTAwZmZlOSIsIjYiOiI1NTEzMDQwM2FhMTAwMTIwMjAwMDExMDEwMDg2M2UwNjAwMDY5NiIsIjciOiI1NTEzMDQwM2FhMTAwMjIwMjAwMDExMDEwMDg2M2UwNzAwNmQ3MSIsIjgiOiI1NTEzMDQwM2FhMTAwMzIwMjAwMDExMDEwMDg2M2UwODAwMzRhNyIsIjkiOiI1NTEzMDQwM2FhMTAwNDIwMjAwMDExMDEwMDg2M2UwOTAwMGExZSIsIjEwIjoiNTUxMzA0MDNhYTEwMDUyMDIwMDAxMTAxMDA4NjNlMGEwMGYzNjEiLCIxMSI6IjU1MTMwNDAzYWExMDA2MjAyMDAwMTEwMTAwODYzZTBiMDA5ODg2IiwiMTIiOiI1NTEzMDQwM2FhMTAwNzIwMjAwMDExMDEwMDg2M2UwYzAwMDE5ZSIsIjEzIjoiNTUxMzA0MDNhYTEwMDgyMDIwMDAxMTAxMDA4NjNlMGQwMDk1OWIiLCIxNCI6IjU1MTMwNDAzYWExMDA5MjAyMDAwMTEwMTAwODYzZTBlMDA2Y2U0IiwiMTUiOiI1NTEzMDQwM2FhMTAwYTIwMjAwMDExMDEwMDg2M2UwZjAwMDcwMyIsIjE2IjoiNTUxMzA0MDNhYTEwMGIyMDIwMDAxMTAxMDA4NjNlMTAwMGNmNDAiLCIxNyI6IjU1MTMwNDAzYWExMDBjMjAyMDAwMTEwMTAwODYzZTExMDBmMWY5IiwiMTgiOiI1NTEzMDQwM2FhMTAwZDIwMjAwMDExMDEwMDg2M2UxMjAwMDg4NiIsIjE5IjoiNTUxMzA0MDNhYTEwMGUyMDIwMDAxMTAxMDA4NjNlMTMwMDYzNjEiLCIyMCI6IjU1MTMwNDAzYWExMDBmMjAyMDAwMTEwMTAwODYzZTE0MDBmYTc5IiwiMjEiOiI1NTEzMDQwM2FhMTAxMDIwMjAwMDExMDEwMDg2M2UxNTAwMmIwZCIsIjIyIjoiNTUxMzA0MDNhYTEwMTEyMDIwMDAxMTAxMDA4NjNlMTYwMGQyNzIiLCIyMyI6IjU1MTMwNDAzYWExMDEyMjAyMDAwMTEwMTAwODYzZTE3MDBiOTk1IiwiMjQiOiI1NTEzMDQwM2FhMTAxMzIwMjAwMDExMDEwMDg2M2UxODAwZTA0MyIsIjI1IjoiNTUxMzA0MDNhYTEwMTQyMDIwMDAxMTAxMDA4NjNlMTkwMGRlZmEiLCIyNiI6IjU1MTMwNDAzYWExMDE1MjAyMDAwMTEwMTAwODYzZTFhMDAyNzg1IiwiMjciOiI1NTEzMDQwM2FhMTAxNjIwMjAwMDExMDEwMDg2M2UxYjAwNGM2MiIsIjI4IjoiNTUxMzA0MDNhYTEwMTcyMDIwMDAxMTAxMDA4NjNlMWMwMGQ1N2EiLCIyOSI6IjU1MTMwNDAzYWExMDE4MjAyMDAwMTEwMTAwODYzZTFkMDA0MTdmIiwiMzAiOiI1NTEzMDQwM2FhMTAxOTIwMjAwMDExMDEwMDg2M2UxZTAwYjgwMCIsIjMxIjoiNTUxMzA0MDNhYTEwMWEyMDIwMDAxMTAxMDA4NjNlMWYwMGQzZTciLCIzMiI6IjU1MTMwNDAzYWExMDFiMjAyMDAwMTEwMTAwODYzZTIwMDAyODg3IiwiMzMiOiI1NTEzMDQwM2FhMTAxYzIwMjAwMDExMDEwMDg2M2UyMTAwMTYzZSIsIjM0IjoiNTUxMzA0MDNhYTEwMWQyMDIwMDAxMTAxMDA4NjNlMjIwMGVmNDEiLCIzNSI6IjU1MTMwNDAzYWExMDFlMjAyMDAwMTEwMTAwODYzZTIzMDA4NGE2IiwiMzYiOiI1NTEzMDQwM2FhMTAxZjIwMjAwMDExMDEwMDg2M2UyNDAwMWRiZSIsIjM3IjoiNTUxMzA0MDNhYTEwMjAyMDIwMDAxMTAxMDA4NjNlMjUwMDQ2MjgiLCIzOCI6IjU1MTMwNDAzYWExMDIxMjAyMDAwMTEwMTAwODYzZTI2MDBiZjU3IiwiMzkiOiI1NTEzMDQwM2FhMTAyMjIwMjAwMDExMDEwMDg2M2UyNzAwZDRiMCIsIjQwIjoiNTUxMzA0MDNhYTEwMjMyMDIwMDAxMTAxMDA4NjNlMjgwMDhkNjYiLCI0MSI6IjU1MTMwNDAzYWExMDI0MjAyMDAwMTEwMTAwODYzZTI5MDBiM2RmIiwiNDIiOiI1NTEzMDQwM2FhMTAyNTIwMjAwMDExMDEwMDg2M2UyYTAwNGFhMCIsIjQzIjoiNTUxMzA0MDNhYTEwMjYyMDIwMDAxMTAxMDA4NjNlMmIwMDIxNDciLCI0NCI6IjU1MTMwNDAzYWExMDI3MjAyMDAwMTEwMTAwODYzZTJjMDBiODVmIiwiNDUiOiI1NTEzMDQwM2FhMTAyODIwMjAwMDExMDEwMDg2M2UyZDAwMmM1YSIsIjQ2IjoiNTUxMzA0MDNhYTEwMjkyMDIwMDAxMTAxMDA4NjNlMmUwMGQ1MjUiLCI0NyI6IjU1MTMwNDAzYWExMDJhMjAyMDAwMTEwMTAwODYzZTJmMDBiZWMyIiwiNDgiOiI1NTEzMDQwM2FhMTAyYjIwMjAwMDExMDEwMDg2M2UzMDAwNzY4MSIsIjQ5IjoiNTUxMzA0MDNhYTEwMmMyMDIwMDAxMTAxMDA4NjNlMzEwMDQ4MzgiLCI1MCI6IjU1MTMwNDAzYWExMDJkMjAyMDAwMTEwMTAwODYzZTMyMDBiMTQ3IiwiNTEiOiI1NTEzMDQwM2FhMTAyZTIwMjAwMDExMDEwMDg2M2UzMzAwZGFhMCIsIjUyIjoiNTUxMzA0MDNhYTEwMmYyMDIwMDAxMTAxMDA4NjNlMzQwMDQzYjgiLCI1MyI6IjU1MTMwNDAzYWExMDMwMjAyMDAwMTEwMTAwODYzZTM1MDA5MmNjIiwiNTQiOiI1NTEzMDQwM2FhMTAzMTIwMjAwMDExMDEwMDg2M2UzNjAwNmJiMyIsIjU1IjoiNTUxMzA0MDNhYTEwMzIyMDIwMDAxMTAxMDA4NjNlMzcwMDAwNTQiLCI1NiI6IjU1MTMwNDAzYWExMDMzMjAyMDAwMTEwMTAwODYzZTM4MDA1OTgyIiwiNTciOiI1NTEzMDQwM2FhMTAzNDIwMjAwMDExMDEwMDg2M2UzOTAwNjczYiIsIjU4IjoiNTUxMzA0MDNhYTEwMzUyMDIwMDAxMTAxMDA4NjNlM2EwMDllNDQiLCI1OSI6IjU1MTMwNDAzYWExMDM2MjAyMDAwMTEwMTAwODYzZTNiMDBmNWEzIiwiNjAiOiI1NTEzMDQwM2FhMTAzNzIwMjAwMDExMDEwMDg2M2UzYzAwNmNiYiIsIjYxIjoiNTUxMzA0MDNhYTEwMzgyMDIwMDAxMTAxMDA4NjNlM2QwMGY4YmUiLCI2MiI6IjU1MTMwNDAzYWExMDM5MjAyMDAwMTEwMTAwODYzZTNlMDAwMWMxIiwiNjMiOiI1NTEzMDQwM2FhMTAzYTIwMjAwMDExMDEwMDg2M2UzZjAwNmEyNiIsIjY0IjoiNTUxMzA0MDNhYTEwM2IyMDIwMDAxMTAxMDA4NjNlNDAwMGY3MDAiLCI2NSI6IjU1MTMwNDAzYWExMDNjMjAyMDAwMTEwMTAwODYzZTQxMDBjOWI5IiwiNjYiOiI1NTEzMDQwM2FhMTAzZDIwMjAwMDExMDEwMDg2M2U0MjAwMzBjNiIsIjY3IjoiNTUxMzA0MDNhYTEwM2UyMDIwMDAxMTAxMDA4NjNlNDMwMDViMjEiLCI2OCI6IjU1MTMwNDAzYWExMDNmMjAyMDAwMTEwMTAwODYzZTQ0MDBjMjM5IiwiNjkiOiI1NTEzMDQwM2FhMTA0MDIwMjAwMDExMDEwMDg2M2U0NTAwOWM2MiIsIjcwIjoiNTUxMzA0MDNhYTEwNDEyMDIwMDAxMTAxMDA4NjNlNDYwMDY1MWQiLCI3MSI6IjU1MTMwNDAzYWExMDQyMjAyMDAwMTEwMTAwODYzZTQ3MDAwZWZhIiwiNzIiOiI1NTEzMDQwM2FhMTA0MzIwMjAwMDExMDEwMDg2M2U0ODAwNTcyYyIsIjczIjoiNTUxMzA0MDNhYTEwNDQyMDIwMDAxMTAxMDA4NjNlNDkwMDY5OTUiLCI3NCI6IjU1MTMwNDAzYWExMDQ1MjAyMDAwMTEwMTAwODYzZTRhMDA5MGVhIiwiNzUiOiI1NTEzMDQwM2FhMTA0NjIwMjAwMDExMDEwMDg2M2U0YjAwZmIwZCIsIjc2IjoiNTUxMzA0MDNhYTEwNDcyMDIwMDAxMTAxMDA4NjNlNGMwMDYyMTUiLCI3NyI6IjU1MTMwNDAzYWExMDQ4MjAyMDAwMTEwMTAwODYzZTRkMDBmNjEwIiwiNzgiOiI1NTEzMDQwM2FhMTA0OTIwMjAwMDExMDEwMDg2M2U0ZTAwMGY2ZiIsIjc5IjoiNTUxMzA0MDNhYTEwNGEyMDIwMDAxMTAxMDA4NjNlNGYwMDY0ODgiLCI4MCI6IjU1MTMwNDAzYWExMDRiMjAyMDAwMTEwMTAwODYzZTUwMDBhY2NiIiwiODEiOiI1NTEzMDQwM2FhMTA0YzIwMjAwMDExMDEwMDg2M2U1MTAwOTI3MiIsIjgyIjoiNTUxMzA0MDNhYTEwNGQyMDIwMDAxMTAxMDA4NjNlNTIwMDZiMGQiLCI4MyI6IjU1MTMwNDAzYWExMDRlMjAyMDAwMTEwMTAwODYzZTUzMDAwMGVhIiwiODQiOiI1NTEzMDQwM2FhMTA0ZjIwMjAwMDExMDEwMDg2M2U1NDAwOTlmMiIsIjg1IjoiNTUxMzA0MDNhYTEwNTAyMDIwMDAxMTAxMDA4NjNlNTUwMDQ4ODYiLCI4NiI6IjU1MTMwNDAzYWExMDUxMjAyMDAwMTEwMTAwODYzZTU2MDBiMWY5IiwiODciOiI1NTEzMDQwM2FhMTA1MjIwMjAwMDExMDEwMDg2M2U1NzAwZGExZSIsIjg4IjoiNTUxMzA0MDNhYTEwNTMyMDIwMDAxMTAxMDA4NjNlNTgwMDgzYzgiLCI4OSI6IjU1MTMwNDAzYWExMDU0MjAyMDAwMTEwMTAwODYzZTU5MDBiZDcxIiwiOTAiOiI1NTEzMDQwM2FhMTA1NTIwMjAwMDExMDEwMDg2M2U1YTAwNDQwZSIsIjkxIjoiNTUxMzA0MDNhYTEwNTYyMDIwMDAxMTAxMDA4NjNlNWIwMDJmZTkiLCI5MiI6IjU1MTMwNDAzYWExMDU3MjAyMDAwMTEwMTAwODYzZTVjMDBiNmYxIiwiOTMiOiI1NTEzMDQwM2FhMTA1ODIwMjAwMDExMDEwMDg2M2U1ZDAwMjJmNCIsIjk0IjoiNTUxMzA0MDNhYTEwNTkyMDIwMDAxMTAxMDA4NjNlNWUwMGRiOGIiLCI5NSI6IjU1MTMwNDAzYWExMDVhMjAyMDAwMTEwMTAwODYzZTVmMDBiMDZjIiwiOTYiOiI1NTEzMDQwM2FhMTA1YjIwMjAwMDExMDEwMDg2M2U2MDAwNGIwYyIsIjk3IjoiNTUxMzA0MDNhYTEwNWMyMDIwMDAxMTAxMDA4NjNlNjEwMDc1YjUiLCI5OCI6IjU1MTMwNDAzYWExMDVkMjAyMDAwMTEwMTAwODYzZTYyMDA4Y2NhIiwiOTkiOiI1NTEzMDQwM2FhMTA1ZTIwMjAwMDExMDEwMDg2M2U2MzAwZTcyZCIsIjEwMCI6IjU1MTMwNDAzYWExMDVmMjAyMDAwMTEwMTAwODYzZTY0MDA3ZTM1IiwiMTAxIjoiNTUxMzA0MDNhYTEwNjAyMDIwMDAxMTAxMDA4NjNlNjUwMDI1YTMiLCIxMDIiOiI1NTEzMDQwM2FhMTA2MTIwMjAwMDExMDEwMDg2M2U2NjAwZGNkYyIsIjEwMyI6IjU1MTMwNDAzYWExMDYyMjAyMDAwMTEwMTAwODYzZTY3MDBiNzNiIiwiMTA0IjoiNTUxMzA0MDNhYTEwNjMyMDIwMDAxMTAxMDA4NjNlNjgwMGVlZWQiLCIxMDUiOiI1NTEzMDQwM2FhMTA2NDIwMjAwMDExMDEwMDg2M2U2OTAwZDA1NCIsIjEwNiI6IjU1MTMwNDAzYWExMDY1MjAyMDAwMTEwMTAwODYzZTZhMDAyOTJiIiwiMTA3IjoiNTUxMzA0MDNhYTEwNjYyMDIwMDAxMTAxMDA4NjNlNmIwMDQyY2MiLCIxMDgiOiI1NTEzMDQwM2FhMTA2NzIwMjAwMDExMDEwMDg2M2U2YzAwZGJkNCIsIjEwOSI6IjU1MTMwNDAzYWExMDY4MjAyMDAwMTEwMTAwODYzZTZkMDA0ZmQxIiwiMTEwIjoiNTUxMzA0MDNhYTEwNjkyMDIwMDAxMTAxMDA4NjNlNmUwMGI2YWUiLCIxMTEiOiI1NTEzMDQwM2FhMTA2YTIwMjAwMDExMDEwMDg2M2U2ZjAwZGQ0OSIsIjExMiI6IjU1MTMwNDAzYWExMDZiMjAyMDAwMTEwMTAwODYzZTcwMDAxNTBhIiwiMTEzIjoiNTUxMzA0MDNhYTEwNmMyMDIwMDAxMTAxMDA4NjNlNzEwMDJiYjMiLCIxMTQiOiI1NTEzMDQwM2FhMTA2ZDIwMjAwMDExMDEwMDg2M2U3MjAwZDJjYyIsIjExNSI6IjU1MTMwNDAzYWExMDZlMjAyMDAwMTEwMTAwODYzZTczMDBiOTJiIiwiMTE2IjoiNTUxMzA0MDNhYTEwNmYyMDIwMDAxMTAxMDA4NjNlNzQwMDIwMzMiLCIxMTciOiI1NTEzMDQwM2FhMTA3MDIwMjAwMDExMDEwMDg2M2U3NTAwZjE0NyIsIjExOCI6IjU1MTMwNDAzYWExMDcxMjAyMDAwMTEwMTAwODYzZTc2MDAwODM4IiwiMTE5IjoiNTUxMzA0MDNhYTEwNzIyMDIwMDAxMTAxMDA4NjNlNzcwMDYzZGYiLCIxMjAiOiI1NTEzMDQwM2FhMTA3MzIwMjAwMDExMDEwMDg2M2U3ODAwM2EwOSIsIjEyMSI6IjU1MTMwNDAzYWExMDc0MjAyMDAwMTEwMTAwODYzZTc5MDAwNGIwIiwiMTIyIjoiNTUxMzA0MDNhYTEwNzUyMDIwMDAxMTAxMDA4NjNlN2EwMGZkY2YiLCIxMjMiOiI1NTEzMDQwM2FhMTA3NjIwMjAwMDExMDEwMDg2M2U3YjAwOTYyOCIsIjEyNCI6IjU1MTMwNDAzYWExMDc3MjAyMDAwMTEwMTAwODYzZTdjMDAwZjMwIiwiMTI1IjoiNTUxMzA0MDNhYTEwNzgyMDIwMDAxMTAxMDA4NjNlN2QwMDliMzUiLCIxMjYiOiI1NTEzMDQwM2FhMTA3OTIwMjAwMDExMDEwMDg2M2U3ZTAwNjI0YSIsIjEyNyI6IjU1MTMwNDAzYWExMDdhMjAyMDAwMTEwMTAwODYzZTdmMDAwOWFkIiwiMTI4IjoiNTUxMzA0MDNhYTEwN2IyMDIwMDAxMTAxMDA4NjNlODAwMDU4MDciLCIxMjkiOiI1NTEzMDQwM2FhMTA3YzIwMjAwMDExMDEwMDg2M2U4MTAwNjZiZSIsIjEzMCI6IjU1MTMwNDAzYWExMDdkMjAyMDAwMTEwMTAwODYzZTgyMDA5ZmMxIiwiMTMxIjoiNTUxMzA0MDNhYTEwN2UyMDIwMDAxMTAxMDA4NjNlODMwMGY0MjYiLCIxMzIiOiI1NTEzMDQwM2FhMTA3ZjIwMjAwMDExMDEwMDg2M2U4NDAwNmQzZSIsIjEzMyI6IjU1MTMwNDAzYWExMDgwMjAyMDAwMTEwMTAwODYzZTg1MDAyOGY3IiwiMTM0IjoiNTUxMzA0MDNhYTEwODEyMDIwMDAxMTAxMDA4NjNlODYwMGQxODgiLCIxMzUiOiI1NTEzMDQwM2FhMTA4MjIwMjAwMDExMDEwMDg2M2U4NzAwYmE2ZiIsIjEzNiI6IjU1MTMwNDAzYWExMDgzMjAyMDAwMTEwMTAwODYzZTg4MDBlM2I5IiwiMTM3IjoiNTUxMzA0MDNhYTEwODQyMDIwMDAxMTAxMDA4NjNlODkwMGRkMDAiLCIxMzgiOiI1NTEzMDQwM2FhMTA4NTIwMjAwMDExMDEwMDg2M2U4YTAwMjQ3ZiIsIjEzOSI6IjU1MTMwNDAzYWExMDg2MjAyMDAwMTEwMTAwODYzZThiMDA0Zjk4IiwiMTQwIjoiNTUxMzA0MDNhYTEwODcyMDIwMDAxMTAxMDA4NjNlOGMwMGQ2ODAiLCIxNDEiOiI1NTEzMDQwM2FhMTA4ODIwMjAwMDExMDEwMDg2M2U4ZDAwNDI4NSIsIjE0MiI6IjU1MTMwNDAzYWExMDg5MjAyMDAwMTEwMTAwODYzZThlMDBiYmZhIiwiMTQzIjoiNTUxMzA0MDNhYTEwOGEyMDIwMDAxMTAxMDA4NjNlOGYwMGQwMWQiLCIxNDQiOiI1NTEzMDQwM2FhMTA4YjIwMjAwMDExMDEwMDg2M2U5MDAwMTg1ZSIsIjE0NSI6IjU1MTMwNDAzYWExMDhjMjAyMDAwMTEwMTAwODYzZTkxMDAyNmU3IiwiMTQ2IjoiNTUxMzA0MDNhYTEwOGQyMDIwMDAxMTAxMDA4NjNlOTIwMGRmOTgiLCIxNDciOiI1NTEzMDQwM2FhMTA4ZTIwMjAwMDExMDEwMDg2M2U5MzAwYjQ3ZiIsIjE0OCI6IjU1MTMwNDAzYWExMDhmMjAyMDAwMTEwMTAwODYzZTk0MDAyZDY3IiwiMTQ5IjoiNTUxMzA0MDNhYTEwOTAyMDIwMDAxMTAxMDA4NjNlOTUwMGZjMTMiLCIxNTAiOiI1NTEzMDQwM2FhMTA5MTIwMjAwMDExMDEwMDg2M2U5NjAwMDU2YyIsIjE1MSI6IjU1MTMwNDAzYWExMDkyMjAyMDAwMTEwMTAwODYzZTk3MDA2ZThiIiwiMTUyIjoiNTUxMzA0MDNhYTEwOTMyMDIwMDAxMTAxMDA4NjNlOTgwMDM3NWQiLCIxNTMiOiI1NTEzMDQwM2FhMTA5NDIwMjAwMDExMDEwMDg2M2U5OTAwMDllNCIsIjE1NCI6IjU1MTMwNDAzYWExMDk1MjAyMDAwMTEwMTAwODYzZTlhMDBmMDliIiwiMTU1IjoiNTUxMzA0MDNhYTEwOTYyMDIwMDAxMTAxMDA4NjNlOWIwMDliN2MiLCIxNTYiOiI1NTEzMDQwM2FhMTA5NzIwMjAwMDExMDEwMDg2M2U5YzAwMDI2NCIsIjE1NyI6IjU1MTMwNDAzYWExMDk4MjAyMDAwMTEwMTAwODYzZTlkMDA5NjYxIiwiMTU4IjoiNTUxMzA0MDNhYTEwOTkyMDIwMDAxMTAxMDA4NjNlOWUwMDZmMWUiLCIxNTkiOiI1NTEzMDQwM2FhMTA5YTIwMjAwMDExMDEwMDg2M2U5ZjAwMDRmOSIsIjE2MCI6IjU1MTMwNDAzYWExMDliMjAyMDAwMTEwMTAwODYzZWEwMDBmZjk5IiwiMTYxIjoiNTUxMzA0MDNhYTEwOWMyMDIwMDAxMTAxMDA4NjNlYTEwMGMxMjAiLCIxNjIiOiI1NTEzMDQwM2FhMTA5ZDIwMjAwMDExMDEwMDg2M2VhMjAwMzg1ZiIsIjE2MyI6IjU1MTMwNDAzYWExMDllMjAyMDAwMTEwMTAwODYzZWEzMDA1M2I4IiwiMTY0IjoiNTUxMzA0MDNhYTEwOWYyMDIwMDAxMTAxMDA4NjNlYTQwMGNhYTAiLCIxNjUiOiI1NTEzMDQwM2FhMTBhMDIwMjAwMDExMDEwMDg2M2VhNTAwOTEzNiIsIjE2NiI6IjU1MTMwNDAzYWExMGExMjAyMDAwMTEwMTAwODYzZWE2MDA2ODQ5IiwiMTY3IjoiNTUxMzA0MDNhYTEwYTIyMDIwMDAxMTAxMDA4NjNlYTcwMDAzYWUiLCIxNjgiOiI1NTEzMDQwM2FhMTBhMzIwMjAwMDExMDEwMDg2M2VhODAwNWE3OCIsIjE2OSI6IjU1MTMwNDAzYWExMGE0MjAyMDAwMTEwMTAwODYzZWE5MDA2NGMxIiwiMTcwIjoiNTUxMzA0MDNhYTEwYTUyMDIwMDAxMTAxMDA4NjNlYWEwMDlkYmUiLCIxNzEiOiI1NTEzMDQwM2FhMTBhNjIwMjAwMDExMDEwMDg2M2VhYjAwZjY1OSIsIjE3MiI6IjU1MTMwNDAzYWExMGE3MjAyMDAwMTEwMTAwODYzZWFjMDA2ZjQxIiwiMTczIjoiNTUxMzA0MDNhYTEwYTgyMDIwMDAxMTAxMDA4NjNlYWQwMGZiNDQiLCIxNzQiOiI1NTEzMDQwM2FhMTBhOTIwMjAwMDExMDEwMDg2M2VhZTAwMDIzYiIsIjE3NSI6IjU1MTMwNDAzYWExMGFhMjAyMDAwMTEwMTAwODYzZWFmMDA2OWRjIiwiMTc2IjoiNTUxMzA0MDNhYTEwYWIyMDIwMDAxMTAxMDA4NjNlYjAwMGExOWYiLCIxNzciOiI1NTEzMDQwM2FhMTBhYzIwMjAwMDExMDEwMDg2M2ViMTAwOWYyNiIsIjE3OCI6IjU1MTMwNDAzYWExMGFkMjAyMDAwMTEwMTAwODYzZWIyMDA2NjU5IiwiMTc5IjoiNTUxMzA0MDNhYTEwYWUyMDIwMDAxMTAxMDA4NjNlYjMwMDBkYmUiLCIxODAiOiI1NTEzMDQwM2FhMTBhZjIwMjAwMDExMDEwMDg2M2ViNDAwOTRhNiIsIjE4MSI6IjU1MTMwNDAzYWExMGIwMjAyMDAwMTEwMTAwODYzZWI1MDA0NWQyIiwiMTgyIjoiNTUxMzA0MDNhYTEwYjEyMDIwMDAxMTAxMDA4NjNlYjYwMGJjYWQiLCIxODMiOiI1NTEzMDQwM2FhMTBiMjIwMjAwMDExMDEwMDg2M2ViNzAwZDc0YSIsIjE4NCI6IjU1MTMwNDAzYWExMGIzMjAyMDAwMTEwMTAwODYzZWI4MDA4ZTljIiwiMTg1IjoiNTUxMzA0MDNhYTEwYjQyMDIwMDAxMTAxMDA4NjNlYjkwMGIwMjUiLCIxODYiOiI1NTEzMDQwM2FhMTBiNTIwMjAwMDExMDEwMDg2M2ViYTAwNDk1YSIsIjE4NyI6IjU1MTMwNDAzYWExMGI2MjAyMDAwMTEwMTAwODYzZWJiMDAyMmJkIiwiMTg4IjoiNTUxMzA0MDNhYTEwYjcyMDIwMDAxMTAxMDA4NjNlYmMwMGJiYTUiLCIxODkiOiI1NTEzMDQwM2FhMTBiODIwMjAwMDExMDEwMDg2M2ViZDAwMmZhMCIsIjE5MCI6IjU1MTMwNDAzYWExMGI5MjAyMDAwMTEwMTAwODYzZWJlMDBkNmRmIiwiMTkxIjoiNTUxMzA0MDNhYTEwYmEyMDIwMDAxMTAxMDA4NjNlYmYwMGJkMzgiLCIxOTIiOiI1NTEzMDQwM2FhMTBiYjIwMjAwMDExMDEwMDg2M2VjMDAwMjAxZSIsIjE5MyI6IjU1MTMwNDAzYWExMGJjMjAyMDAwMTEwMTAwODYzZWMxMDAxZWE3IiwiMTk0IjoiNTUxMzA0MDNhYTEwYmQyMDIwMDAxMTAxMDA4NjNlYzIwMGU3ZDgiLCIxOTUiOiI1NTEzMDQwM2FhMTBiZTIwMjAwMDExMDEwMDg2M2VjMzAwOGMzZiIsIjE5NiI6IjU1MTMwNDAzYWExMGJmMjAyMDAwMTEwMTAwODYzZWM0MDAxNTI3IiwiMTk3IjoiNTUxMzA0MDNhYTEwYzAyMDIwMDAxMTAxMDA4NjNlYzUwMDRiN2MiLCIxOTgiOiI1NTEzMDQwM2FhMTBjMTIwMjAwMDExMDEwMDg2M2VjNjAwYjIwMyIsIjE5OSI6IjU1MTMwNDAzYWExMGMyMjAyMDAwMTEwMTAwODYzZWM3MDBkOWU0IiwiMjAwIjoiNTUxMzA0MDNhYTEwYzMyMDIwMDAxMTAxMDA4NjNlYzgwMDgwMzIifSwiY2hhaW5zIjp7IjAiOiI1NTEzMDQwM2FhMTBkMzBhMjAwMDExMDEwMDg3M2UwMDAwYzZjNjEyMDAiLCIxIjoiNTUxMzA0MDNhYTEwNmUwYTIwMDAxMTAxMDA4NzNlMDEwMGE0NjkxMjAwIiwiMiI6IjU1MTMwNDAzYWExMDZmMGEyMDAwMTEwMTAwODczZTAyMDA1ZDE2MTIwMCIsIjMiOiI1NTEzMDQwM2FhMTA3MDBhMjAwMDExMDEwMDg3M2UwMzAwOGM2MjEyMDAiLCI0IjoiNTUxMzA0MDNhYTEwNzEwYTIwMDAxMTAxMDA4NzNlMDQwMDE1N2ExMjAwIiwiNSI6IjU1MTMwNDAzYWExMDcyMGEyMDAwMTEwMTAwODczZTA1MDA3ZTlkNDAwMCIsIjYiOiI1NTEzMDQwM2FhMTA3MzBhMjAwMDExMDEwMDg3M2UwNjAwODdlMjNhMDAiLCI3IjoiNTUxMzA0MDNhYTEwNzQwYTIwMDAxMTAxMDA4NzNlMDcwMGI5NWIzNzAwIiwiOCI6IjU1MTMwNDAzYWExMDc1MGEyMDAwMTEwMTAwODczZTA4MDBlMDhkMzcwMCIsIjkiOiI1NTEzMDQwM2FhMTA3NjBhMjAwMDExMDEwMDg3M2UwOTAwOGI2YTJjMDAiLCIxMCI6IjU1MTMwNDAzYWExMDc3MGEyMDAwMTEwMTAwODczZTBhMDA3MjE1MTIwMCIsIjExIjoiNTUxMzA0MDNhYTEwNzgwYTIwMDAxMTAxMDA4NzNlMGIwMGU2MTAyYzAwIiwiMTIiOiI1NTEzMDQwM2FhMTA3OTBhMjAwMDExMDEwMDg3M2UwYzAwN2YwODQ0MDAiLCIxMyI6IjU1MTMwNDAzYWExMDdhMGEyMDAwMTEwMTAwODczZTBkMDAxNGVmNDAwMCIsIjE0IjoiNTUxMzA0MDNhYTEwN2IwYTIwMDAxMTAxMDA4NzNlMGUwMGVkOTA0NDAwIiwiMTUiOiI1NTEzMDQwM2FhMTA3YzBhMjAwMDExMDEwMDg3M2UwZjAwZDMyOTM2MDAiLCIxNiI6IjU1MTMwNDAzYWExMDdkMGEyMDAwMTEwMTAwODczZTEwMDAxYjZhMmMwMCIsIjE3IjoiNTUxMzA0MDNhYTEwN2UwYTIwMDAxMTAxMDA4NzNlMTEwMDcwOGQyYzAwIiwiMTgiOiI1NTEzMDQwM2FhMTA3ZjBhMjAwMDExMDEwMDg3M2UxMjAwODlmMjM3MDAiLCIxOSI6IjU1MTMwNDAzYWExMDgwMGEyMDAwMTEwMTAwODczZTEzMDBjYzNiMmMwMCIsIjIwIjoiNTUxMzA0MDNhYTEwODEwYTIwMDAxMTAxMDA4NzNlMTQwMDU1MjM0NDAwIiwiMjEiOiI1NTEzMDQwM2FhMTA4MjBhMjAwMDExMDEwMDg3M2UxNTAwM2VjNDEyMDAiLCIyMiI6IjU1MTMwNDAzYWExMDgzMGEyMDAwMTEwMTAwODczZTE2MDBjN2JiMzQwMCIsIjIzIjoiNTUxMzA0MDNhYTEwODQwYTIwMDAxMTAxMDA4NzNlMTcwMGY5MDI0MDAwIiwiMjQiOiI1NTEzMDQwM2FhMTA4NTBhMjAwMDExMDEwMDg3M2UxODAwYTBkNDQxMDAiLCIyNSI6IjU1MTMwNDAzYWExMDg2MGEyMDAwMTEwMTAwODczZTE5MDBjYjMzMzcwMCIsIjI2IjoiNTUxMzA0MDNhYTEwODcwYTIwMDAxMTAxMDA4NzNlMWEwMDMyNGM0NDAwIiwiMjciOiI1NTEzMDQwM2FhMTA4ODBhMjAwMDExMDEwMDg3M2UxYjAwYTY0OTM0MDAiLCIyOCI6IjU1MTMwNDAzYWExMDg5MGEyMDAwMTEwMTAwODczZTFjMDAzZjUxMzQwMCIsIjI5IjoiNTUxMzA0MDNhYTEwOGEwYTIwMDAxMTAxMDA4NzNlMWQwMDU0YjYzNjAwIiwiMzAiOiI1NTEzMDQwM2FhMTA4YjBhMjAwMDExMDEwMDg3M2UxZTAwYWRjOTQxMDAiLCIzMSI6IjU1MTMwNDAzYWExMDhjMGEyMDAwMTEwMTAwODczZTFmMDA5MzcwNDAwMCIsIjMyIjoiNTUxMzA0MDNhYTEwOGQwYTIwMDAxMTAxMDA4NzNlMjAwMDY4MTAzNDAwIiwiMzMiOiI1NTEzMDQwM2FhMTA4ZTBhMjAwMDExMDEwMDg3M2UyMTAwMDNmNzM0MDAiLCIzNCI6IjU1MTMwNDAzYWExMDhmMGEyMDAwMTEwMTAwODczZTIyMDBmYTg4MTIwMCIsIjM1IjoiNTUxMzA0MDNhYTEwOTAwYTIwMDAxMTAxMDA4NzNlMjMwMDJiZmM0MDAwIiwiMzYiOiI1NTEzMDQwM2FhMTA5MTBhMjAwMDExMDEwMDg3M2UyNDAwYjJlNDEyMDAiLCIzNyI6IjU1MTMwNDAzYWExMDkyMGEyMDAwMTEwMTAwODczZTI1MDBkOTAzMTIwMCIsIjM4IjoiNTUxMzA0MDNhYTEwOTMwYTIwMDAxMTAxMDA4NzNlMjYwMDIwN2MxMjAwIiwiMzkiOiI1NTEzMDQwM2FhMTA5NDBhMjAwMDExMDEwMDg3M2UyNzAwMWVjNTEyMDAiLCI0MCI6IjU1MTMwNDAzYWExMDk1MGEyMDAwMTEwMTAwODczZTI4MDA0NzEzMTIwMCIsIjQxIjoiNTUxMzA0MDNhYTEwOTYwYTIwMDAxMTAxMDA4NzNlMjkwMDJjZjQxMjAwIiwiNDIiOiI1NTEzMDQwM2FhMTA5NzBhMjAwMDExMDEwMDg3M2UyYTAwZDU4YjEyMDAiLCI0MyI6IjU1MTMwNDAzYWExMDk4MGEyMDAwMTEwMTAwODczZTJiMDA0MThlMTIwMCIsIjQ0IjoiNTUxMzA0MDNhYTEwOTkwYTIwMDAxMTAxMDA4NzNlMmMwMGQ4OTYxMDAwIiwiNDUiOiI1NTEzMDQwM2FhMTA5YTBhMjAwMDExMDEwMDg3M2UyZDAwYjM3MTJjMDAiLCI0NiI6IjU1MTMwNDAzYWExMDliMGEyMDAwMTEwMTAwODczZTJlMDA0YTBlMTIwMCIsIjQ3IjoiNTUxMzA0MDNhYTEwOWMwYTIwMDAxMTAxMDA4NzNlMmYwMDc0YjcxMjAwIiwiNDgiOiI1NTEzMDQwM2FhMTA5ZDBhMjAwMDExMDEwMDg3M2UzMDAwYmNmNDM2MDAiLCI0OSI6IjU1MTMwNDAzYWExMDllMGEyMDAwMTEwMTAwODczZTMxMDBkNzEzMTIwMCIsIjUwIjoiNTUxMzA0MDNhYTEwOWYwYTIwMDAxMTAxMDA4NzNlMzIwMDJlNmMxMjAwIiwiNTEiOiI1NTEzMDQwM2FhMTBhMDBhMjAwMDExMDEwMDg3M2UzMzAwNzVmYTEyMDAiLCI1MiI6IjU1MTMwNDAzYWExMGExMGEyMDAwMTEwMTAwODczZTM0MDBlY2UyMTIwMCIsIjUzIjoiNTUxMzA0MDNhYTEwYTIwYTIwMDAxMTAxMDA4NzNlMzUwMDg3MDUxMjAwIiwiNTQiOiI1NTEzMDQwM2FhMTBhMzBhMjAwMDExMDEwMDg3M2UzNjAwN2U3YTEyMDAiLCI1NSI6IjU1MTMwNDAzYWExMGE0MGEyMDAwMTEwMTAwODczZTM3MDA0MGMzMTIwMCIsIjU2IjoiNTUxMzA0MDNhYTEwYTUwYTIwMDAxMTAxMDA4NzNlMzgwMDE5MTUxMjAwIiwiNTciOiI1NTEzMDQwM2FhMTBhNjBhMjAwMDExMDEwMDg3M2UzOTAwNzJmMjM3MDAiLCI1OCI6IjU1MTMwNDAzYWExMGE3MGEyMDAwMTEwMTAwODczZTNhMDA4YjhkMzYwMCIsIjU5IjoiNTUxMzA0MDNhYTEwYTgwYTIwMDAxMTAxMDA4NzNlM2IwMDFmODgxMjAwIiwiNjAiOiI1NTEzMDQwM2FhMTBhOTBhMjAwMDExMDEwMDg3M2UzYzAwODY5MDEyMDAiLCI2MSI6IjU1MTMwNDAzYWExMGFhMGEyMDAwMTEwMTAwODczZTNkMDBlZDc3MTIwMCIsIjYyIjoiNTUxMzA0MDNhYTEwYWIwYTIwMDAxMTAxMDA4NzNlM2UwMDE0MDgxMjAwIiwiNjMiOiI1NTEzMDQwM2FhMTBhYzBhMjAwMDExMDEwMDg3M2UzZjAwMmFiMTQwMDAiLCI2NCI6IjU1MTMwNDAzYWExMGFkMGEyMDAwMTEwMTAwODczZTQwMDBiNzk3MzcwMCIsIjY1IjoiNTUxMzA0MDNhYTEwYWUwYTIwMDAxMTAxMDA4NzNlNDEwMGRjNzAzNzAwIiwiNjYiOiI1NTEzMDQwM2FhMTBhZjBhMjAwMDExMDEwMDg3M2U0MjAwMjUwZjJjMDAiLCI2NyI6IjU1MTMwNDAzYWExMGIwMGEyMDAwMTEwMTAwODczZTQzMDBmNDdiMTIwMCIsIjY4IjoiNTUxMzA0MDNhYTEwYjEwYTIwMDAxMTAxMDA4NzNlNDQwMDZkNjMxMjAwIiwiNjkiOiI1NTEzMDQwM2FhMTBiMjBhMjAwMDExMDEwMDg3M2U0NTAwMDY4NDEyMDAiLCI3MCI6IjU1MTMwNDAzYWExMGIzMGEyMDAwMTEwMTAwODczZTQ2MDBmZmZiNDAwMCIsIjcxIjoiNTUxMzA0MDNhYTEwYjQwYTIwMDAxMTAxMDA4NzNlNDcwMGMxNDIxMjAwIiwiNzIiOiI1NTEzMDQwM2FhMTBiNTBhMjAwMDExMDEwMDg3M2U0ODAwOTg5NDEyMDAiLCI3MyI6IjU1MTMwNDAzYWExMGI2MGEyMDAwMTEwMTAwODczZTQ5MDBmMzczMTIwMCIsIjc0IjoiNTUxMzA0MDNhYTEwYjcwYTIwMDAxMTAxMDA4NzNlNGEwMDBhMGMxMjAwIiwiNzUiOiI1NTEzMDQwM2FhMTBiODBhMjAwMDExMDEwMDg3M2U0YjAwOWUwOTE1MDAiLCI3NiI6IjU1MTMwNDAzYWExMGI5MGEyMDAwMTEwMTAwODczZTRjMDAwNzExMTIwMCIsIjc3IjoiNTUxMzA0MDNhYTEwYmEwYTIwMDAxMTAxMDA4NzNlNGQwMDZjZjYxMjAwIiwiNzgiOiI1NTEzMDQwM2FhMTBiYjBhMjAwMDExMDEwMDg3M2U0ZTAwOTU4OTEyMDAiLCI3OSI6IjU1MTMwNDAzYWExMGJjMGEyMDAwMTEwMTAwODczZTRmMDBhYjMwMTIwMCIsIjgwIjoiNTUxMzA0MDNhYTEwYmQwYTIwMDAxMTAxMDA4NzNlNTAwMDYzNzMxMjAwIiwiODEiOiI1NTEzMDQwM2FhMTBiZTBhMjAwMDExMDEwMDg3M2U1MTAwMDg5NDEyMDAiLCI4MiI6IjU1MTMwNDAzYWExMGJmMGEyMDAwMTEwMTAwODczZTUyMDBmMWViMTIwMCIsIjgzIjoiNTUxMzA0MDNhYTEwYzAwYTIwMDAxMTAxMDA4NzNlNTMwMGFmYjAzNzAwIiwiODQiOiI1NTEzMDQwM2FhMTBjMTBhMjAwMDExMDEwMDg3M2U1NDAwMzZhODEyMDAiLCI4NSI6IjU1MTMwNDAzYWExMGMyMGEyMDAwMTEwMTAwODczZTU1MDA1ZDRmNDAwMCIsIjg2IjoiNTUxMzA0MDNhYTEwYzMwYTIwMDAxMTAxMDA4NzNlNTYwMGE0MzAxMjAwIiwiODciOiI1NTEzMDQwM2FhMTBjNDBhMjAwMDExMDEwMDg3M2U1NzAwOWE4OTEyMDAiLCI4OCI6IjU1MTMwNDAzYWExMGM1MGEyMDAwMTEwMTAwODczZTU4MDBjMzVmMTIwMCIsIjg5IjoiNTUxMzA0MDNhYTEwYzYwYTIwMDAxMTAxMDA4NzNlNTkwMGE4YjgxMjAwIiwiOTAiOiI1NTEzMDQwM2FhMTBjNzBhMjAwMDExMDEwMDg3M2U1YTAwNTFjNzEyMDAiLCI5MSI6IjU1MTMwNDAzYWExMGM4MGEyMDAwMTEwMTAwODczZTViMDBjNWMyMTIwMCIsIjkyIjoiNTUxMzA0MDNhYTEwYzkwYTIwMDAxMTAxMDA4NzNlNWMwMDVjZGE0NDAwIiwiOTMiOiI1NTEzMDQwM2FhMTBjYTBhMjAwMDExMDEwMDg3M2U1ZDAwMzczZDEyMDAiLCI5NCI6IjU1MTMwNDAzYWExMGNiMGEyMDAwMTEwMTAwODczZTVlMDBjZTQyMTIwMCIsIjk1IjoiNTUxMzA0MDNhYTEwY2MwYTIwMDAxMTAxMDA4NzNlNWYwMGYwZmIxMjAwIiwiOTYiOiI1NTEzMDQwM2FhMTBjZDBhMjAwMDExMDEwMDg3M2U2MDAwMGI5YjEyMDAiLCI5NyI6IjU1MTMwNDAzYWExMGNlMGEyMDAwMTEwMTAwODczZTYxMDA2MDdjMTIwMCIsIjk4IjoiNTUxMzA0MDNhYTEwY2YwYTIwMDAxMTAxMDA4NzNlNjIwMDk5MDMyYzAwIiwiOTkiOiI1NTEzMDQwM2FhMTBkMDBhMjAwMDExMDEwMDg3M2U2MzAwNDg3NzEyMDAiLCIxMDAiOiI1NTEzMDQwM2FhMTBkMTBhMjAwMDExMDEwMDg3M2U2NDAwZDE2ZjEyMDAifSwiZWNjZW50cmljIjp7IjAiOiI1NTEzMDQwM2FhMTAwMTMxMjAwMDExMDEwMDg4M2UwMDAwYzk3ZiIsIjEiOiI1NTEzMDQwM2FhMTAwMTMyMjAwMDExMDEwMDg4M2UwMTAwYTI5OCIsIjIiOiI1NTEzMDQwM2FhMTAwMTMzMjAwMDExMDEwMDg4M2UwMjAwNWJlNyIsIjMiOiI1NTEzMDQwM2FhMTAwMTM0MjAwMDExMDEwMDg4M2UwMzAwNjU1ZSIsIjQiOiI1NTEzMDQwM2FhMTAwMTM1MjAwMDExMDEwMDg4M2UwNDAwZmM0NiIsIjUiOiI1NTEzMDQwM2FhMTAwMTM2MjAwMDExMDEwMDg4M2UwNTAwOTdhMSIsIjYiOiI1NTEzMDQwM2FhMTAwMTM3MjAwMDExMDEwMDg4M2UwNjAwNmVkZSIsIjciOiI1NTEzMDQwM2FhMTAwMTM4MjAwMDExMDEwMDg4M2UwNzAwZmFkYiIsIjgiOiI1NTEzMDQwM2FhMTAwMTM5MjAwMDExMDEwMDg4M2UwODAwYTMwZCIsIjkiOiI1NTEzMDQwM2FhMTAwMTNBMjAwMDExMDEwMDg4M2UwOTAwYzhlYSIsIjEwIjoiNTUxMzA0MDNhYTEwMDEzQjIwMDAxMTAxMDA4ODNlMGEwMDMxOTUiLCIxMSI6IjU1MTMwNDAzYWExMDAxM0MyMDAwMTEwMTAwODgzZTBiMDAwZjJjIiwiMTIiOiI1NTEzMDQwM2FhMTAwMTNEMjAwMDExMDEwMDg4M2UwYzAwOTYzNCIsIjEzIjoiNTUxMzA0MDNhYTEwMDEzRTIwMDAxMTAxMDA4ODNlMGQwMGZkZDMiLCIxNCI6IjU1MTMwNDAzYWExMDAxM0YyMDAwMTEwMTAwODgzZTBlMDAwNGFjIiwiMTUiOiI1NTEzMDQwM2FhMTAwMTQwMjAwMDExMDEwMDg4M2UwZjAwNWFmNyIsIjE2IjoiNTUxMzA0MDNhYTEwMDE0MTIwMDAxMTAxMDA4ODNlMTAwMDkyYjQiLCIxNyI6IjU1MTMwNDAzYWExMDAxNDIyMDAwMTEwMTAwODgzZTExMDBmOTUzIiwiMTgiOiI1NTEzMDQwM2FhMTAwMTQzMjAwMDExMDEwMDg4M2UxMjAwMDAyYyIsIjE5IjoiNTUxMzA0MDNhYTEwMDE0NDIwMDAxMTAxMDA4ODNlMTMwMDNlOTUiLCIyMCI6IjU1MTMwNDAzYWExMDAxNDUyMDAwMTEwMTAwODgzZTE0MDBhNzhkIiwiMjEiOiI1NTEzMDQwM2FhMTAwMTQ2MjAwMDExMDEwMDg4M2UxNTAwY2M2YSIsIjIyIjoiNTUxMzA0MDNhYTEwMDE0NzIwMDAxMTAxMDA4ODNlMTYwMDM1MTUiLCIyMyI6IjU1MTMwNDAzYWExMDAxNDgyMDAwMTEwMTAwODgzZTE3MDBhMTEwIiwiMjQiOiI1NTEzMDQwM2FhMTAwMTQ5MjAwMDExMDEwMDg4M2UxODAwZjhjNiIsIjI1IjoiNTUxMzA0MDNhYTEwMDE0QTIwMDAxMTAxMDA4ODNlMTkwMDkzMjEiLCIyNiI6IjU1MTMwNDAzYWExMDAxNEIyMDAwMTEwMTAwODgzZTFhMDA2YTVlIiwiMjciOiI1NTEzMDQwM2FhMTAwMTRDMjAwMDExMDEwMDg4M2UxYjAwNTRlNyIsIjI4IjoiNTUxMzA0MDNhYTEwMDE0RDIwMDAxMTAxMDA4ODNlMWMwMGNkZmYiLCIyOSI6IjU1MTMwNDAzYWExMDAxNEUyMDAwMTEwMTAwODgzZTFkMDBhNjE4IiwiMzAiOiI1NTEzMDQwM2FhMTAwMTRGMjAwMDExMDEwMDg4M2UxZTAwNWY2NyIsIjMxIjoiNTUxMzA0MDNhYTEwMDE1MDIwMDAxMTAxMDA4ODNlMWYwMDhlMTMiLCIzMiI6IjU1MTMwNDAzYWExMDAxNTEyMDAwMTEwMTAwODgzZTIwMDA3NTczIiwiMzMiOiI1NTEzMDQwM2FhMTAwMTUyMjAwMDExMDEwMDg4M2UyMTAwMWU5NCIsIjM0IjoiNTUxMzA0MDNhYTEwMDE1MzIwMDAxMTAxMDA4ODNlMjIwMGU3ZWIiLCIzNSI6IjU1MTMwNDAzYWExMDAxNTQyMDAwMTEwMTAwODgzZTIzMDBkOTUyIiwiMzYiOiI1NTEzMDQwM2FhMTAwMTU1MjAwMDExMDEwMDg4M2UyNDAwNDA0YSIsIjM3IjoiNTUxMzA0MDNhYTEwMDE1NjIwMDAxMTAxMDA4ODNlMjUwMDJiYWQiLCIzOCI6IjU1MTMwNDAzYWExMDAxNTcyMDAwMTEwMTAwODgzZTI2MDBkMmQyIiwiMzkiOiI1NTEzMDQwM2FhMTAwMTU4MjAwMDExMDEwMDg4M2UyNzAwNDZkNyIsIjQwIjoiNTUxMzA0MDNhYTEwMDE1OTIwMDAxMTAxMDA4ODNlMjgwMDFmMDEiLCI0MSI6IjU1MTMwNDAzYWExMDAxNUEyMDAwMTEwMTAwODgzZTI5MDA3NGU2IiwiNDIiOiI1NTEzMDQwM2FhMTAwMTVCMjAwMDExMDEwMDg4M2UyYTAwOGQ5OSIsIjQzIjoiNTUxMzA0MDNhYTEwMDE1QzIwMDAxMTAxMDA4ODNlMmIwMGIzMjAiLCI0NCI6IjU1MTMwNDAzYWExMDAxNUQyMDAwMTEwMTAwODgzZTJjMDAyYTM4IiwiNDUiOiI1NTEzMDQwM2FhMTAwMTVFMjAwMDExMDEwMDg4M2UyZDAwNDFkZiIsIjQ2IjoiNTUxMzA0MDNhYTEwMDE1RjIwMDAxMTAxMDA4ODNlMmUwMGI4YTAiLCI0NyI6IjU1MTMwNDAzYWExMDAxNjAyMDAwMTEwMTAwODgzZTJmMDBlMzM2IiwiNDgiOiI1NTEzMDQwM2FhMTAwMTYxMjAwMDExMDEwMDg4M2UzMDAwMmI3NSIsIjQ5IjoiNTUxMzA0MDNhYTEwMDE2MjIwMDAxMTAxMDA4ODNlMzEwMDQwOTIiLCI1MCI6IjU1MTMwNDAzYWExMDAxNjMyMDAwMTEwMTAwODgzZTMyMDBiOWVkIiwiNTEiOiI1NTEzMDQwM2FhMTAwMTY0MjAwMDExMDEwMDg4M2UzMzAwODc1NCIsIjUyIjoiNTUxMzA0MDNhYTEwMDE2NTIwMDAxMTAxMDA4ODNlMzQwMDFlNGMiLCI1MyI6IjU1MTMwNDAzYWExMDAxNjYyMDAwMTEwMTAwODgzZTM1MDA3NWFiIiwiNTQiOiI1NTEzMDQwM2FhMTAwMTY3MjAwMDExMDEwMDg4M2UzNjAwOGNkNCIsIjU1IjoiNTUxMzA0MDNhYTEwMDE2ODIwMDAxMTAxMDA4ODNlMzcwMDE4ZDEiLCI1NiI6IjU1MTMwNDAzYWExMDAxNjkyMDAwMTEwMTAwODgzZTM4MDA0MTA3IiwiNTciOiI1NTEzMDQwM2FhMTAwMTZBMjAwMDExMDEwMDg4M2UzOTAwMmFlMCIsIjU4IjoiNTUxMzA0MDNhYTEwMDE2QjIwMDAxMTAxMDA4ODNlM2EwMGQzOWYiLCI1OSI6IjU1MTMwNDAzYWExMDAxNkMyMDAwMTEwMTAwODgzZTNiMDBlZDI2IiwiNjAiOiI1NTEzMDQwM2FhMTAwMTZEMjAwMDExMDEwMDg4M2UzYzAwNzQzZSIsIjYxIjoiNTUxMzA0MDNhYTEwMDE2RTIwMDAxMTAxMDA4ODNlM2QwMDFmZDkiLCI2MiI6IjU1MTMwNDAzYWExMDAxNkYyMDAwMTEwMTAwODgzZTNlMDBlNmE2IiwiNjMiOiI1NTEzMDQwM2FhMTAwMTcwMjAwMDExMDEwMDg4M2UzZjAwMzdkMiIsIjY0IjoiNTUxMzA0MDNhYTEwMDE3MTIwMDAxMTAxMDA4ODNlNDAwMGFhZjQiLCI2NSI6IjU1MTMwNDAzYWExMDAxNzIyMDAwMTEwMTAwODgzZTQxMDBjMTEzIiwiNjYiOiI1NTEzMDQwM2FhMTAwMTczMjAwMDExMDEwMDg4M2U0MjAwMzg2YyIsIjY3IjoiNTUxMzA0MDNhYTEwMDE3NDIwMDAxMTAxMDA4ODNlNDMwMDA2ZDUiLCI2OCI6IjU1MTMwNDAzYWExMDAxNzUyMDAwMTEwMTAwODgzZTQ0MDA5ZmNkIiwiNjkiOiI1NTEzMDQwM2FhMTAwMTc2MjAwMDExMDEwMDg4M2U0NTAwZjQyYSIsIjcwIjoiNTUxMzA0MDNhYTEwMDE3NzIwMDAxMTAxMDA4ODNlNDYwMDBkNTUiLCI3MSI6IjU1MTMwNDAzYWExMDAxNzgyMDAwMTEwMTAwODgzZTQ3MDA5OTUwIiwiNzIiOiI1NTEzMDQwM2FhMTAwMTc5MjAwMDExMDEwMDg4M2U0ODAwYzA4NiIsIjczIjoiNTUxMzA0MDNhYTEwMDE3QTIwMDAxMTAxMDA4ODNlNDkwMGFiNjEiLCI3NCI6IjU1MTMwNDAzYWExMDAxN0IyMDAwMTEwMTAwODgzZTRhMDA1MjFlIiwiNzUiOiI1NTEzMDQwM2FhMTAwMTdDMjAwMDExMDEwMDg4M2U0YjAwNmNhNyIsIjc2IjoiNTUxMzA0MDNhYTEwMDE3RDIwMDAxMTAxMDA4ODNlNGMwMGY1YmYiLCI3NyI6IjU1MTMwNDAzYWExMDAxN0UyMDAwMTEwMTAwODgzZTRkMDA5ZTU4IiwiNzgiOiI1NTEzMDQwM2FhMTAwMTdGMjAwMDExMDEwMDg4M2U0ZTAwNjcyNyIsIjc5IjoiNTUxMzA0MDNhYTEwMDE4MDIwMDAxMTAxMDA4ODNlNGYwMDIyZWUiLCI4MCI6IjU1MTMwNDAzYWExMDAxODEyMDAwMTEwMTAwODgzZTUwMDBlYWFkIiwiODEiOiI1NTEzMDQwM2FhMTAwMTgyMjAwMDExMDEwMDg4M2U1MTAwODE0YSIsIjgyIjoiNTUxMzA0MDNhYTEwMDE4MzIwMDAxMTAxMDA4ODNlNTIwMDc4MzUiLCI4MyI6IjU1MTMwNDAzYWExMDAxODQyMDAwMTEwMTAwODgzZTUzMDA0NjhjIiwiODQiOiI1NTEzMDQwM2FhMTAwMTg1MjAwMDExMDEwMDg4M2U1NDAwZGY5NCIsIjg1IjoiNTUxMzA0MDNhYTEwMDE4NjIwMDAxMTAxMDA4ODNlNTUwMGI0NzMiLCI4NiI6IjU1MTMwNDAzYWExMDAxODcyMDAwMTEwMTAwODgzZTU2MDA0ZDBjIiwiODciOiI1NTEzMDQwM2FhMTAwMTg4MjAwMDExMDEwMDg4M2U1NzAwZDkwOSIsIjg4IjoiNTUxMzA0MDNhYTEwMDE4OTIwMDAxMTAxMDA4ODNlNTgwMDgwZGYiLCI4OSI6IjU1MTMwNDAzYWExMDAxOEEyMDAwMTEwMTAwODgzZTU5MDBlYjM4IiwiOTAiOiI1NTEzMDQwM2FhMTAwMThCMjAwMDExMDEwMDg4M2U1YTAwMTI0NyIsIjkxIjoiNTUxMzA0MDNhYTEwMDE4QzIwMDAxMTAxMDA4ODNlNWIwMDJjZmUiLCI5MiI6IjU1MTMwNDAzYWExMDAxOEQyMDAwMTEwMTAwODgzZTVjMDBiNWU2IiwiOTMiOiI1NTEzMDQwM2FhMTAwMThFMjAwMDExMDEwMDg4M2U1ZDAwZGUwMSIsIjk0IjoiNTUxMzA0MDNhYTEwMDE4RjIwMDAxMTAxMDA4ODNlNWUwMDI3N2UiLCI5NSI6IjU1MTMwNDAzYWExMDAxOTAyMDAwMTEwMTAwODgzZTVmMDBmNjBhIiwiOTYiOiI1NTEzMDQwM2FhMTAwMTkxMjAwMDExMDEwMDg4M2U2MDAwMGQ2YSIsIjk3IjoiNTUxMzA0MDNhYTEwMDE5MjIwMDAxMTAxMDA4ODNlNjEwMDY2OGQiLCI5OCI6IjU1MTMwNDAzYWExMDAxOTMyMDAwMTEwMTAwODgzZTYyMDA5ZmYyIiwiOTkiOiI1NTEzMDQwM2FhMTAwMTk0MjAwMDExMDEwMDg4M2U2MzAwYTE0YiIsIjEwMCI6IjU1MTMwNDAzYWExMDAxOTUyMDAwMTEwMTAwODgzZTY0MDAzODUzIiwiMTAxIjoiNTUxMzA0MDNhYTEwMDE5NjIwMDAxMTAxMDA4ODNlNjUwMDUzYjQiLCIxMDIiOiI1NTEzMDQwM2FhMTAwMTk3MjAwMDExMDEwMDg4M2U2NjAwYWFjYiIsIjEwMyI6IjU1MTMwNDAzYWExMDAxOTgyMDAwMTEwMTAwODgzZTY3MDAzZWNlIiwiMTA0IjoiNTUxMzA0MDNhYTEwMDE5OTIwMDAxMTAxMDA4ODNlNjgwMDY3MTgiLCIxMDUiOiI1NTEzMDQwM2FhMTAwMTlBMjAwMDExMDEwMDg4M2U2OTAwMGNmZiIsIjEwNiI6IjU1MTMwNDAzYWExMDAxOUIyMDAwMTEwMTAwODgzZTZhMDBmNTgwIiwiMTA3IjoiNTUxMzA0MDNhYTEwMDE5QzIwMDAxMTAxMDA4ODNlNmIwMGNiMzkiLCIxMDgiOiI1NTEzMDQwM2FhMTAwMTlEMjAwMDExMDEwMDg4M2U2YzAwNTIyMSIsIjEwOSI6IjU1MTMwNDAzYWExMDAxOUUyMDAwMTEwMTAwODgzZTZkMDAzOWM2IiwiMTEwIjoiNTUxMzA0MDNhYTEwMDE5RjIwMDAxMTAxMDA4ODNlNmUwMGMwYjkiLCIxMTEiOiI1NTEzMDQwM2FhMTAwMUEwMjAwMDExMDEwMDg4M2U2ZjAwOWIyZiIsIjExMiI6IjU1MTMwNDAzYWExMDAxQTEyMDAwMTEwMTAwODgzZTcwMDA1MzZjIiwiMTEzIjoiNTUxMzA0MDNhYTEwMDFBMjIwMDAxMTAxMDA4ODNlNzEwMDM4OGIiLCIxMTQiOiI1NTEzMDQwM2FhMTAwMUEzMjAwMDExMDEwMDg4M2U3MjAwYzFmNCIsIjExNSI6IjU1MTMwNDAzYWExMDAxQTQyMDAwMTEwMTAwODgzZTczMDBmZjRkIiwiMTE2IjoiNTUxMzA0MDNhYTEwMDFBNTIwMDAxMTAxMDA4ODNlNzQwMDY2NTUiLCIxMTciOiI1NTEzMDQwM2FhMTAwMUE2MjAwMDExMDEwMDg4M2U3NTAwMGRiMiIsIjExOCI6IjU1MTMwNDAzYWExMDAxQTcyMDAwMTEwMTAwODgzZTc2MDBmNGNkIiwiMTE5IjoiNTUxMzA0MDNhYTEwMDFBODIwMDAxMTAxMDA4ODNlNzcwMDYwYzgiLCIxMjAiOiI1NTEzMDQwM2FhMTAwMUE5MjAwMDExMDEwMDg4M2U3ODAwMzkxZSIsIjEyMSI6IjU1MTMwNDAzYWExMDAxQUEyMDAwMTEwMTAwODgzZTc5MDA1MmY5IiwiMTIyIjoiNTUxMzA0MDNhYTEwMDFBQjIwMDAxMTAxMDA4ODNlN2EwMGFiODYiLCIxMjMiOiI1NTEzMDQwM2FhMTAwMUFDMjAwMDExMDEwMDg4M2U3YjAwOTUzZiIsIjEyNCI6IjU1MTMwNDAzYWExMDAxQUQyMDAwMTEwMTAwODgzZTdjMDAwYzI3IiwiMTI1IjoiNTUxMzA0MDNhYTEwMDFBRTIwMDAxMTAxMDA4ODNlN2QwMDY3YzAiLCIxMjYiOiI1NTEzMDQwM2FhMTAwMUFGMjAwMDExMDEwMDg4M2U3ZTAwOWViZiIsIjEyNyI6IjU1MTMwNDAzYWExMDAxQjAyMDAwMTEwMTAwODgzZTdmMDA0ZmNiIiwiMTI4IjoiNTUxMzA0MDNhYTEwMDFCMTIwMDAxMTAxMDA4ODNlODAwMDFlNjEiLCIxMjkiOiI1NTEzMDQwM2FhMTAwMUIyMjAwMDExMDEwMDg4M2U4MTAwNzU4NiIsIjEzMCI6IjU1MTMwNDAzYWExMDAxQjMyMDAwMTEwMTAwODgzZTgyMDA4Y2Y5IiwiMTMxIjoiNTUxMzA0MDNhYTEwMDFCNDIwMDAxMTAxMDA4ODNlODMwMGIyNDAiLCIxMzIiOiI1NTEzMDQwM2FhMTAwMUI1MjAwMDExMDEwMDg4M2U4NDAwMmI1OCIsIjEzMyI6IjU1MTMwNDAzYWExMDAxQjYyMDAwMTEwMTAwODgzZTg1MDA0MGJmIiwiMTM0IjoiNTUxMzA0MDNhYTEwMDFCNzIwMDAxMTAxMDA4ODNlODYwMGI5YzAiLCIxMzUiOiI1NTEzMDQwM2FhMTAwMUI4MjAwMDExMDEwMDg4M2U4NzAwMmRjNSIsIjEzNiI6IjU1MTMwNDAzYWExMDAxQjkyMDAwMTEwMTAwODgzZTg4MDA3NDEzIiwiMTM3IjoiNTUxMzA0MDNhYTEwMDFCQTIwMDAxMTAxMDA4ODNlODkwMDFmZjQiLCIxMzgiOiI1NTEzMDQwM2FhMTAwMUJCMjAwMDExMDEwMDg4M2U4YTAwZTY4YiIsIjEzOSI6IjU1MTMwNDAzYWExMDAxQkMyMDAwMTEwMTAwODgzZThiMDBkODMyIiwiMTQwIjoiNTUxMzA0MDNhYTEwMDFCRDIwMDAxMTAxMDA4ODNlOGMwMDQxMmEiLCIxNDEiOiI1NTEzMDQwM2FhMTAwMUJFMjAwMDExMDEwMDg4M2U4ZDAwMmFjZCIsIjE0MiI6IjU1MTMwNDAzYWExMDAxQkYyMDAwMTEwMTAwODgzZThlMDBkM2IyIiwiMTQzIjoiNTUxMzA0MDNhYTEwMDFDMDIwMDAxMTAxMDA4ODNlOGYwMDhkZTkiLCIxNDQiOiI1NTEzMDQwM2FhMTAwMUMxMjAwMDExMDEwMDg4M2U5MDAwNDVhYSIsIjE0NSI6IjU1MTMwNDAzYWExMDAxQzIyMDAwMTEwMTAwODgzZTkxMDAyZTRkIiwiMTQ2IjoiNTUxMzA0MDNhYTEwMDFDMzIwMDAxMTAxMDA4ODNlOTIwMGQ3MzIiLCIxNDciOiI1NTEzMDQwM2FhMTAwMUM0MjAwMDExMDEwMDg4M2U5MzAwZTk4YiIsIjE0OCI6IjU1MTMwNDAzYWExMDAxQzUyMDAwMTEwMTAwODgzZTk0MDA3MDkzIiwiMTQ5IjoiNTUxMzA0MDNhYTEwMDFDNjIwMDAxMTAxMDA4ODNlOTUwMDFiNzQiLCIxNTAiOiI1NTEzMDQwM2FhMTAwMUM3MjAwMDExMDEwMDg4M2U5NjAwZTIwYiIsIjE1MSI6IjU1MTMwNDAzYWExMDAxQzgyMDAwMTEwMTAwODgzZTk3MDA3NjBlIiwiMTUyIjoiNTUxMzA0MDNhYTEwMDFDOTIwMDAxMTAxMDA4ODNlOTgwMDJmZDgiLCIxNTMiOiI1NTEzMDQwM2FhMTAwMUNBMjAwMDExMDEwMDg4M2U5OTAwNDQzZiIsIjE1NCI6IjU1MTMwNDAzYWExMDAxQ0IyMDAwMTEwMTAwODgzZTlhMDBiZDQwIiwiMTU1IjoiNTUxMzA0MDNhYTEwMDFDQzIwMDAxMTAxMDA4ODNlOWIwMDgzZjkiLCIxNTYiOiI1NTEzMDQwM2FhMTAwMUNEMjAwMDExMDEwMDg4M2U5YzAwMWFlMSIsIjE1NyI6IjU1MTMwNDAzYWExMDAxQ0UyMDAwMTEwMTAwODgzZTlkMDA3MTA2IiwiMTU4IjoiNTUxMzA0MDNhYTEwMDFDRjIwMDAxMTAxMDA4ODNlOWUwMDg4NzkiLCIxNTkiOiI1NTEzMDQwM2FhMTAwMUQwMjAwMDExMDEwMDg4M2U5ZjAwNTkwZCIsIjE2MCI6IjU1MTMwNDAzYWExMDAxRDEyMDAwMTEwMTAwODgzZWEwMDBhMjZkIiwiMTYxIjoiNTUxMzA0MDNhYTEwMDFEMjIwMDAxMTAxMDA4ODNlYTEwMGM5OGEiLCIxNjIiOiI1NTEzMDQwM2FhMTAwMUQzMjAwMDExMDEwMDg4M2VhMjAwMzBmNSIsIjE2MyI6IjU1MTMwNDAzYWExMDAxRDQyMDAwMTEwMTAwODgzZWEzMDAwZTRjIiwiMTY0IjoiNTUxMzA0MDNhYTEwMDFENTIwMDAxMTAxMDA4ODNlYTQwMDk3NTQiLCIxNjUiOiI1NTEzMDQwM2FhMTAwMUQ2MjAwMDExMDEwMDg4M2VhNTAwZmNiMyIsIjE2NiI6IjU1MTMwNDAzYWExMDAxRDcyMDAwMTEwMTAwODgzZWE2MDAwNWNjIiwiMTY3IjoiNTUxMzA0MDNhYTEwMDFEODIwMDAxMTAxMDA4ODNlYTcwMDkxYzkiLCIxNjgiOiI1NTEzMDQwM2FhMTAwMUQ5MjAwMDExMDEwMDg4M2VhODAwYzgxZiIsIjE2OSI6IjU1MTMwNDAzYWExMDAxREEyMDAwMTEwMTAwODgzZWE5MDBhM2Y4IiwiMTcwIjoiNTUxMzA0MDNhYTEwMDFEQjIwMDAxMTAxMDA4ODNlYWEwMDVhODciLCIxNzEiOiI1NTEzMDQwM2FhMTAwMURDMjAwMDExMDEwMDg4M2VhYjAwNjQzZSIsIjE3MiI6IjU1MTMwNDAzYWExMDAxREQyMDAwMTEwMTAwODgzZWFjMDBmZDI2IiwiMTczIjoiNTUxMzA0MDNhYTEwMDFERTIwMDAxMTAxMDA4ODNlYWQwMDk2YzEiLCIxNzQiOiI1NTEzMDQwM2FhMTAwMURGMjAwMDExMDEwMDg4M2VhZTAwNmZiZSIsIjE3NSI6IjU1MTMwNDAzYWExMDAxRTAyMDAwMTEwMTAwODgzZWFmMDAzNDI4IiwiMTc2IjoiNTUxMzA0MDNhYTEwMDFFMTIwMDAxMTAxMDA4ODNlYjAwMGZjNmIiLCIxNzciOiI1NTEzMDQwM2FhMTAwMUUyMjAwMDExMDEwMDg4M2ViMTAwOTc4YyIsIjE3OCI6IjU1MTMwNDAzYWExMDAxRTMyMDAwMTEwMTAwODgzZWIyMDA2ZWYzIiwiMTc5IjoiNTUxMzA0MDNhYTEwMDFFNDIwMDAxMTAxMDA4ODNlYjMwMDUwNGEiLCIxODAiOiI1NTEzMDQwM2FhMTAwMUU1MjAwMDExMDEwMDg4M2ViNDAwYzk1MiIsIjE4MSI6IjU1MTMwNDAzYWExMDAxRTYyMDAwMTEwMTAwODgzZWI1MDBhMmI1IiwiMTgyIjoiNTUxMzA0MDNhYTEwMDFFNzIwMDAxMTAxMDA4ODNlYjYwMDViY2EiLCIxODMiOiI1NTEzMDQwM2FhMTAwMUU4MjAwMDExMDEwMDg4M2ViNzAwY2ZjZiIsIjE4NCI6IjU1MTMwNDAzYWExMDAxRTkyMDAwMTEwMTAwODgzZWI4MDA5NjE5IiwiMTg1IjoiNTUxMzA0MDNhYTEwMDFFQTIwMDAxMTAxMDA4ODNlYjkwMGZkZmUiLCIxODYiOiI1NTEzMDQwM2FhMTAwMUVCMjAwMDExMDEwMDg4M2ViYTAwMDQ4MSIsIjE4NyI6IjU1MTMwNDAzYWExMDAxRUMyMDAwMTEwMTAwODgzZWJiMDAzYTM4IiwiMTg4IjoiNTUxMzA0MDNhYTEwMDFFRDIwMDAxMTAxMDA4ODNlYmMwMGEzMjAiLCIxODkiOiI1NTEzMDQwM2FhMTAwMUVFMjAwMDExMDEwMDg4M2ViZDAwYzhjNyIsIjE5MCI6IjU1MTMwNDAzYWExMDAxRUYyMDAwMTEwMTAwODgzZWJlMDAzMWI4IiwiMTkxIjoiNTUxMzA0MDNhYTEwMDFGMDIwMDAxMTAxMDA4ODNlYmYwMGUwY2MiLCIxOTIiOiI1NTEzMDQwM2FhMTAwMUYxMjAwMDExMDEwMDg4M2VjMDAwN2RlYSIsIjE5MyI6IjU1MTMwNDAzYWExMDAxRjIyMDAwMTEwMTAwODgzZWMxMDAxNjBkIiwiMTk0IjoiNTUxMzA0MDNhYTEwMDFGMzIwMDAxMTAxMDA4ODNlYzIwMGVmNzIiLCIxOTUiOiI1NTEzMDQwM2FhMTAwMUY0MjAwMDExMDEwMDg4M2VjMzAwZDFjYiIsIi0xOTUiOiI1NTEzMDQwM2FhMTAwMDMxMjAwMDExMDEwMDg4M2UzZGZmNGM1YSIsIi0xOTQiOiI1NTEzMDQwM2FhMTAwMDMyMjAwMDExMDEwMDg4M2UzZWZmOTc4ZSIsIi0xOTMiOiI1NTEzMDQwM2FhMTAwMDMzMjAwMDExMDEwMDg4M2UzZmZmZGVjMiIsIi0xOTIiOiI1NTEzMDQwM2FhMTAwMDM0MjAwMDExMDEwMDg4M2U0MGZmMzQxMSIsIi0xOTEiOiI1NTEzMDQwM2FhMTAwMDM1MjAwMDExMDEwMDg4M2U0MWZmN2Q1ZCIsIi0xOTAiOiI1NTEzMDQwM2FhMTAwMDM2MjAwMDExMDEwMDg4M2U0MmZmYTY4OSIsIi0xODkiOiI1NTEzMDQwM2FhMTAwMDM3MjAwMDExMDEwMDg4M2U0M2ZmZWZjNSIsIi0xODgiOiI1NTEzMDQwM2FhMTAwMDM4MjAwMDExMDEwMDg4M2U0NGZmYWI5NCIsIi0xODciOiI1NTEzMDQwM2FhMTAwMDM5MjAwMDExMDEwMDg4M2U0NWZmZTJkOCIsIi0xODYiOiI1NTEzMDQwM2FhMTAwMDNBMjAwMDExMDEwMDg4M2U0NmZmMzkwYyIsIi0xODUiOiI1NTEzMDQwM2FhMTAwMDNCMjAwMDExMDEwMDg4M2U0N2ZmNzA0MCIsIi0xODQiOiI1NTEzMDQwM2FhMTAwMDNDMjAwMDExMDEwMDg4M2U0OGZmNWU2MyIsIi0xODMiOiI1NTEzMDQwM2FhMTAwMDNEMjAwMDExMDEwMDg4M2U0OWZmMTcyZiIsIi0xODIiOiI1NTEzMDQwM2FhMTAwMDNFMjAwMDExMDEwMDg4M2U0YWZmY2NmYiIsIi0xODEiOiI1NTEzMDQwM2FhMTAwMDNGMjAwMDExMDEwMDg4M2U0YmZmODViNyIsIi0xODAiOiI1NTEzMDQwM2FhMTAwMDQwMjAwMDExMDEwMDg4M2U0Y2ZmMGJiOCIsIi0xNzkiOiI1NTEzMDQwM2FhMTAwMDQxMjAwMDExMDEwMDg4M2U0ZGZmNDJmNCIsIi0xNzgiOiI1NTEzMDQwM2FhMTAwMDQyMjAwMDExMDEwMDg4M2U0ZWZmOTkyMCIsIi0xNzciOiI1NTEzMDQwM2FhMTAwMDQzMjAwMDExMDEwMDg4M2U0ZmZmZDA2YyIsIi0xNzYiOiI1NTEzMDQwM2FhMTAwMDQ0MjAwMDExMDEwMDg4M2U1MGZmNmZkYSIsIi0xNzUiOiI1NTEzMDQwM2FhMTAwMDQ1MjAwMDExMDEwMDg4M2U1MWZmMjY5NiIsIi0xNzQiOiI1NTEzMDQwM2FhMTAwMDQ2MjAwMDExMDEwMDg4M2U1MmZmZmQ0MiIsIi0xNzMiOiI1NTEzMDQwM2FhMTAwMDQ3MjAwMDExMDEwMDg4M2U1M2ZmYjQwZSIsIi0xNzIiOiI1NTEzMDQwM2FhMTAwMDQ4MjAwMDExMDEwMDg4M2U1NGZmZjA1ZiIsIi0xNzEiOiI1NTEzMDQwM2FhMTAwMDQ5MjAwMDExMDEwMDg4M2U1NWZmYjkxMyIsIi0xNzAiOiI1NTEzMDQwM2FhMTAwMDRBMjAwMDExMDEwMDg4M2U1NmZmNjJjNyIsIi0xNjkiOiI1NTEzMDQwM2FhMTAwMDRCMjAwMDExMDEwMDg4M2U1N2ZmMmI4YiIsIi0xNjgiOiI1NTEzMDQwM2FhMTAwMDRDMjAwMDExMDEwMDg4M2U1OGZmMDVhOCIsIi0xNjciOiI1NTEzMDQwM2FhMTAwMDREMjAwMDExMDEwMDg4M2U1OWZmNGNlNCIsIi0xNjYiOiI1NTEzMDQwM2FhMTAwMDRFMjAwMDExMDEwMDg4M2U1YWZmOTczMCIsIi0xNjUiOiI1NTEzMDQwM2FhMTAwMDRGMjAwMDExMDEwMDg4M2U1YmZmZGU3YyIsIi0xNjQiOiI1NTEzMDQwM2FhMTAwMDUwMjAwMDExMDEwMDg4M2U1Y2ZmZGY1YyIsIi0xNjMiOiI1NTEzMDQwM2FhMTAwMDUxMjAwMDExMDEwMDg4M2U1ZGZmOTYxMCIsIi0xNjIiOiI1NTEzMDQwM2FhMTAwMDUyMjAwMDExMDEwMDg4M2U1ZWZmNGRjNCIsIi0xNjEiOiI1NTEzMDQwM2FhMTAwMDUzMjAwMDExMDEwMDg4M2U1ZmZmMDQ4OCIsIi0xNjAiOiI1NTEzMDQwM2FhMTAwMDU0MjAwMDExMDEwMDg4M2U2MGZmODgxZCIsIi0xNTkiOiI1NTEzMDQwM2FhMTAwMDU1MjAwMDExMDEwMDg4M2U2MWZmYzE1MSIsIi0xNTgiOiI1NTEzMDQwM2FhMTAwMDU2MjAwMDExMDEwMDg4M2U2MmZmMWE4NSIsIi0xNTciOiI1NTEzMDQwM2FhMTAwMDU3MjAwMDExMDEwMDg4M2U2M2ZmNTNjOSIsIi0xNTYiOiI1NTEzMDQwM2FhMTAwMDU4MjAwMDExMDEwMDg4M2U2NGZmMTc5OCIsIi0xNTUiOiI1NTEzMDQwM2FhMTAwMDU5MjAwMDExMDEwMDg4M2U2NWZmNWVkNCIsIi0xNTQiOiI1NTEzMDQwM2FhMTAwMDVBMjAwMDExMDEwMDg4M2U2NmZmODUwMCIsIi0xNTMiOiI1NTEzMDQwM2FhMTAwMDVCMjAwMDExMDEwMDg4M2U2N2ZmY2M0YyIsIi0xNTIiOiI1NTEzMDQwM2FhMTAwMDVDMjAwMDExMDEwMDg4M2U2OGZmZTI2ZiIsIi0xNTEiOiI1NTEzMDQwM2FhMTAwMDVEMjAwMDExMDEwMDg4M2U2OWZmYWIyMyIsIi0xNTAiOiI1NTEzMDQwM2FhMTAwMDVFMjAwMDExMDEwMDg4M2U2YWZmNzBmNyIsIi0xNDkiOiI1NTEzMDQwM2FhMTAwMDVGMjAwMDExMDEwMDg4M2U2YmZmMzliYiIsIi0xNDgiOiI1NTEzMDQwM2FhMTAwMDYwMjAwMDExMDEwMDg4M2U2Y2ZmYjI3OSIsIi0xNDciOiI1NTEzMDQwM2FhMTAwMDYxMjAwMDExMDEwMDg4M2U2ZGZmZmIzNSIsIi0xNDYiOiI1NTEzMDQwM2FhMTAwMDYyMjAwMDExMDEwMDg4M2U2ZWZmMjBlMSIsIi0xNDUiOiI1NTEzMDQwM2FhMTAwMDYzMjAwMDExMDEwMDg4M2U2ZmZmNjlhZCIsIi0xNDQiOiI1NTEzMDQwM2FhMTAwMDY0MjAwMDExMDEwMDg4M2U3MGZmZDYxYiIsIi0xNDMiOiI1NTEzMDQwM2FhMTAwMDY1MjAwMDExMDEwMDg4M2U3MWZmOWY1NyIsIi0xNDIiOiI1NTEzMDQwM2FhMTAwMDY2MjAwMDExMDEwMDg4M2U3MmZmNDQ4MyIsIi0xNDEiOiI1NTEzMDQwM2FhMTAwMDY3MjAwMDExMDEwMDg4M2U3M2ZmMGRjZiIsIi0xNDAiOiI1NTEzMDQwM2FhMTAwMDY4MjAwMDExMDEwMDg4M2U3NGZmNDk5ZSIsIi0xMzkiOiI1NTEzMDQwM2FhMTAwMDY5MjAwMDExMDEwMDg4M2U3NWZmMDBkMiIsIi0xMzgiOiI1NTEzMDQwM2FhMTAwMDZBMjAwMDExMDEwMDg4M2U3NmZmZGIwNiIsIi0xMzciOiI1NTEzMDQwM2FhMTAwMDZCMjAwMDExMDEwMDg4M2U3N2ZmOTI0YSIsIi0xMzYiOiI1NTEzMDQwM2FhMTAwMDZDMjAwMDExMDEwMDg4M2U3OGZmYmM2OSIsIi0xMzUiOiI1NTEzMDQwM2FhMTAwMDZEMjAwMDExMDEwMDg4M2U3OWZmZjUyNSIsIi0xMzQiOiI1NTEzMDQwM2FhMTAwMDZFMjAwMDExMDEwMDg4M2U3YWZmMmVmMSIsIi0xMzMiOiI1NTEzMDQwM2FhMTAwMDZGMjAwMDExMDEwMDg4M2U3YmZmNjdiZCIsIi0xMzIiOiI1NTEzMDQwM2FhMTAwMDcwMjAwMDExMDEwMDg4M2U3Y2ZmNjY5ZCIsIi0xMzEiOiI1NTEzMDQwM2FhMTAwMDcxMjAwMDExMDEwMDg4M2U3ZGZmMmZkMSIsIi0xMzAiOiI1NTEzMDQwM2FhMTAwMDcyMjAwMDExMDEwMDg4M2U3ZWZmZjQwNSIsIi0xMjkiOiI1NTEzMDQwM2FhMTAwMDczMjAwMDExMDEwMDg4M2U3ZmZmYmQ0OSIsIi0xMjgiOiI1NTEzMDQwM2FhMTAwMDc0MjAwMDExMDEwMDg4M2U4MGZmOWIxNiIsIi0xMjciOiI1NTEzMDQwM2FhMTAwMDc1MjAwMDExMDEwMDg4M2U4MWZmZDI1YSIsIi0xMjYiOiI1NTEzMDQwM2FhMTAwMDc2MjAwMDExMDEwMDg4M2U4MmZmMDk4ZSIsIi0xMjUiOiI1NTEzMDQwM2FhMTAwMDc3MjAwMDExMDEwMDg4M2U4M2ZmNDBjMiIsIi0xMjQiOiI1NTEzMDQwM2FhMTAwMDc4MjAwMDExMDEwMDg4M2U4NGZmMDQ5MyIsIi0xMjMiOiI1NTEzMDQwM2FhMTAwMDc5MjAwMDExMDEwMDg4M2U4NWZmNGRkZiIsIi0xMjIiOiI1NTEzMDQwM2FhMTAwMDdBMjAwMDExMDEwMDg4M2U4NmZmOTYwYiIsIi0xMjEiOiI1NTEzMDQwM2FhMTAwMDdCMjAwMDExMDEwMDg4M2U4N2ZmZGY0NyIsIi0xMjAiOiI1NTEzMDQwM2FhMTAwMDdDMjAwMDExMDEwMDg4M2U4OGZmZjE2NCIsIi0xMTkiOiI1NTEzMDQwM2FhMTAwMDdEMjAwMDExMDEwMDg4M2U4OWZmYjgyOCIsIi0xMTgiOiI1NTEzMDQwM2FhMTAwMDdFMjAwMDExMDEwMDg4M2U4YWZmNjNmYyIsIi0xMTciOiI1NTEzMDQwM2FhMTAwMDdGMjAwMDExMDEwMDg4M2U4YmZmMmFiMCIsIi0xMTYiOiI1NTEzMDQwM2FhMTAwMDgwMjAwMDExMDEwMDg4M2U4Y2ZmYmYyZCIsIi0xMTUiOiI1NTEzMDQwM2FhMTAwMDgxMjAwMDExMDEwMDg4M2U4ZGZmZjY2MSIsIi0xMTQiOiI1NTEzMDQwM2FhMTAwMDgyMjAwMDExMDEwMDg4M2U4ZWZmMmRiNSIsIi0xMTMiOiI1NTEzMDQwM2FhMTAwMDgzMjAwMDExMDEwMDg4M2U4ZmZmNjRmOSIsIi0xMTIiOiI1NTEzMDQwM2FhMTAwMDg0MjAwMDExMDEwMDg4M2U5MGZmZGI0ZiIsIi0xMTEiOiI1NTEzMDQwM2FhMTAwMDg1MjAwMDExMDEwMDg4M2U5MWZmOTIwMyIsIi0xMTAiOiI1NTEzMDQwM2FhMTAwMDg2MjAwMDExMDEwMDg4M2U5MmZmNDlkNyIsIi0xMDkiOiI1NTEzMDQwM2FhMTAwMDg3MjAwMDExMDEwMDg4M2U5M2ZmMDA5YiIsIi0xMDgiOiI1NTEzMDQwM2FhMTAwMDg4MjAwMDExMDEwMDg4M2U5NGZmNDRjYSIsIi0xMDciOiI1NTEzMDQwM2FhMTAwMDg5MjAwMDExMDEwMDg4M2U5NWZmMGQ4NiIsIi0xMDYiOiI1NTEzMDQwM2FhMTAwMDhBMjAwMDExMDEwMDg4M2U5NmZmZDY1MiIsIi0xMDUiOiI1NTEzMDQwM2FhMTAwMDhCMjAwMDExMDEwMDg4M2U5N2ZmOWYxZSIsIi0xMDQiOiI1NTEzMDQwM2FhMTAwMDhDMjAwMDExMDEwMDg4M2U5OGZmYjEzZCIsIi0xMDMiOiI1NTEzMDQwM2FhMTAwMDhEMjAwMDExMDEwMDg4M2U5OWZmZjg3MSIsIi0xMDIiOiI1NTEzMDQwM2FhMTAwMDhFMjAwMDExMDEwMDg4M2U5YWZmMjNhNSIsIi0xMDEiOiI1NTEzMDQwM2FhMTAwMDhGMjAwMDExMDEwMDg4M2U5YmZmNmFlOSIsIi0xMDAiOiI1NTEzMDQwM2FhMTAwMDkwMjAwMDExMDEwMDg4M2U5Y2ZmNmJjOSIsIi05OSI6IjU1MTMwNDAzYWExMDAwOTEyMDAwMTEwMTAwODgzZTlkZmYyMjg1IiwiLTk4IjoiNTUxMzA0MDNhYTEwMDA5MjIwMDAxMTAxMDA4ODNlOWVmZmY5NTEiLCItOTciOiI1NTEzMDQwM2FhMTAwMDkzMjAwMDExMDEwMDg4M2U5ZmZmYjAxZCIsIi05NiI6IjU1MTMwNDAzYWExMDAwOTQyMDAwMTEwMTAwODgzZWEwZmYzYzg4IiwiLTk1IjoiNTUxMzA0MDNhYTEwMDA5NTIwMDAxMTAxMDA4ODNlYTFmZjc1YzQiLCItOTQiOiI1NTEzMDQwM2FhMTAwMDk2MjAwMDExMDEwMDg4M2VhMmZmYWUxMCIsIi05MyI6IjU1MTMwNDAzYWExMDAwOTcyMDAwMTEwMTAwODgzZWEzZmZlNzVjIiwiLTkyIjoiNTUxMzA0MDNhYTEwMDA5ODIwMDAxMTAxMDA4ODNlYTRmZmEzMGQiLCItOTEiOiI1NTEzMDQwM2FhMTAwMDk5MjAwMDExMDEwMDg4M2VhNWZmZWE0MSIsIi05MCI6IjU1MTMwNDAzYWExMDAwOUEyMDAwMTEwMTAwODgzZWE2ZmYzMTk1IiwiLTg5IjoiNTUxMzA0MDNhYTEwMDA5QjIwMDAxMTAxMDA4ODNlYTdmZjc4ZDkiLCItODgiOiI1NTEzMDQwM2FhMTAwMDlDMjAwMDExMDEwMDg4M2VhOGZmNTZmYSIsIi04NyI6IjU1MTMwNDAzYWExMDAwOUQyMDAwMTEwMTAwODgzZWE5ZmYxZmI2IiwiLTg2IjoiNTUxMzA0MDNhYTEwMDA5RTIwMDAxMTAxMDA4ODNlYWFmZmM0NjIiLCItODUiOiI1NTEzMDQwM2FhMTAwMDlGMjAwMDExMDEwMDg4M2VhYmZmOGQyZSIsIi04NCI6IjU1MTMwNDAzYWExMDAwQTAyMDAwMTEwMTAwODgzZWFjZmYwNmVjIiwiLTgzIjoiNTUxMzA0MDNhYTEwMDBBMTIwMDAxMTAxMDA4ODNlYWRmZjRmYTAiLCItODIiOiI1NTEzMDQwM2FhMTAwMEEyMjAwMDExMDEwMDg4M2VhZWZmOTQ3NCIsIi04MSI6IjU1MTMwNDAzYWExMDAwQTMyMDAwMTEwMTAwODgzZWFmZmZkZDM4IiwiLTgwIjoiNTUxMzA0MDNhYTEwMDBBNDIwMDAxMTAxMDA4ODNlYjBmZjYyOGUiLCItNzkiOiI1NTEzMDQwM2FhMTAwMEE1MjAwMDExMDEwMDg4M2ViMWZmMmJjMiIsIi03OCI6IjU1MTMwNDAzYWExMDAwQTYyMDAwMTEwMTAwODgzZWIyZmZmMDE2IiwiLTc3IjoiNTUxMzA0MDNhYTEwMDBBNzIwMDAxMTAxMDA4ODNlYjNmZmI5NWEiLCItNzYiOiI1NTEzMDQwM2FhMTAwMEFDMjAwMDExMDEwMDg4M2ViNGZmYTg1NSIsIi03NSI6IjU1MTMwNDAzYWExMDAwQUYyMDAwMTEwMTAwODgzZWI1ZmZjM2IyIiwiLTc0IjoiNTUxMzA0MDNhYTEwMDBCMjIwMDAxMTAxMDA4ODNlYjZmZjgwNWUiLCItNzMiOiI1NTEzMDQwM2FhMTAwMEI1MjAwMDExMDEwMDg4M2ViN2ZmYmVlNyIsIi03MiI6IjU1MTMwNDAzYWExMDAwQjgyMDAwMTEwMTAwODgzZWI4ZmYxOGQzIiwiLTcxIjoiNTUxMzA0MDNhYTEwMDBCQTIwMDAxMTAxMDA4ODNlYjlmZmUyNjEiLCItNzAiOiI1NTEzMDQwM2FhMTAwMEJEMjAwMDExMDEwMDg4M2ViYWZmNmNlYiIsIi02OSI6IjU1MTMwNDAzYWExMDAwQzAyMDAwMTEwMTAwODgzZWJiZmYxMDFiIiwiLTY4IjoiNTUxMzA0MDNhYTEwMDBDMjIwMDAxMTAxMDA4ODNlYmNmZjNhZmQiLCItNjciOiI1NTEzMDQwM2FhMTAwMEM1MjAwMDExMDEwMDg4M2ViZGZmMDQ0NCIsIi02NiI6IjU1MTMwNDAzYWExMDAwQzgyMDAwMTEwMTAwODgzZWJlZmYwMmQ5IiwiLTY1IjoiNTUxMzA0MDNhYTEwMDBDQTIwMDAxMTAxMDA4ODNlYmZmZmY4NmIiLCItNjQiOiI1NTEzMDQwM2FhMTAwMENEMjAwMDExMDEwMDg4M2VjMGZmMTJiOCIsIi02MyI6IjU1MTMwNDAzYWExMDAwRDAyMDAwMTEwMTAwODgzZWMxZmZlMTY3IiwiLTYyIjoiNTUxMzA0MDNhYTEwMDBEMzIwMDAxMTAxMDA4ODNlYzJmZjNhYjMiLCItNjEiOiI1NTEzMDQwM2FhMTAwMEQ1MjAwMDExMDEwMDg4M2VjM2ZmOTU1ZiIsIi02MCI6IjU1MTMwNDAzYWExMDAwRDgyMDAwMTEwMTAwODgzZWM0ZmZmM2E1IiwiLTU5IjoiNTUxMzA0MDNhYTEwMDBEQjIwMDAxMTAxMDA4ODNlYzVmZjk4NDIiLCItNTgiOiI1NTEzMDQwM2FhMTAwMERFMjAwMDExMDEwMDg4M2VjNmZmMzQ2MyIsIi01NyI6IjU1MTMwNDAzYWExMDAwRTEyMDAwMTEwMTAwODgzZWM3ZmY2ZmY1IiwiLTU2IjoiNTUxMzA0MDNhYTEwMDBFNjIwMDAxMTAxMDA4ODNlYzhmZjQxZDYiLCItNTUiOiI1NTEzMDQwM2FhMTAwMEU3MjAwMDExMDEwMDg4M2VjOWZmMDg5YSIsIi01NCI6IjU1MTMwNDAzYWExMDAwRTgyMDAwMTEwMTAwODgzZWNhZmYyY2FjIiwiLTUzIjoiNTUxMzA0MDNhYTEwMDBFOTIwMDAxMTAxMDA4ODNlY2JmZjY1ZTAiLCItNTIiOiI1NTEzMDQwM2FhMTAwMEVBMjAwMDExMDEwMDg4M2VjY2ZmZGU1MyIsIi01MSI6IjU1MTMwNDAzYWExMDAwRUIyMDAwMTEwMTAwODgzZWNkZmY5NzFmIiwiLTUwIjoiNTUxMzA0MDNhYTEwMDBFQzIwMDAxMTAxMDA4ODNlY2VmZjE5OTUiLCItNDkiOiI1NTEzMDQwM2FhMTAwMEVEMjAwMDExMDEwMDg4M2VjZmZmNTBkOSIsIi00OCI6IjU1MTMwNDAzYWExMDAwRUUyMDAwMTEwMTAwODgzZWQwZmZiYTMxIiwiLTQ3IjoiNTUxMzA0MDNhYTEwMDBFRjIwMDAxMTAxMDA4ODNlZDFmZmYzN2QiLCItNDYiOiI1NTEzMDQwM2FhMTAwMEYwMjAwMDExMDEwMDg4M2VkMmZmOTIzYSIsIi00NSI6IjU1MTMwNDAzYWExMDAwRjEyMDAwMTEwMTAwODgzZWQzZmZkYjc2IiwiLTQ0IjoiNTUxMzA0MDNhYTEwMDBGMjIwMDAxMTAxMDA4ODNlZDRmZjYwYzUiLCItNDMiOiI1NTEzMDQwM2FhMTAwMEYzMjAwMDExMDEwMDg4M2VkNWZmMjk4OSIsIi00MiI6IjU1MTMwNDAzYWExMDAwRjQyMDAwMTEwMTAwODgzZWQ2ZmZhNzAzIiwiLTQxIjoiNTUxMzA0MDNhYTEwMDBGNTIwMDAxMTAxMDA4ODNlZDdmZmVlNGYiLCItNDAiOiI1NTEzMDQwM2FhMTAwMEY2MjAwMDExMDEwMDg4M2VkOGZmOTUzMiIsIi0zOSI6IjU1MTMwNDAzYWExMDAwRjcyMDAwMTEwMTAwODgzZWQ5ZmZkYzdlIiwiLTM4IjoiNTUxMzA0MDNhYTEwMDBGODIwMDAxMTAxMDA4ODNlZGFmZmY4NDgiLCItMzciOiI1NTEzMDQwM2FhMTAwMEY5MjAwMDExMDEwMDg4M2VkYmZmYjEwNCIsIi0zNiI6IjU1MTMwNDAzYWExMDAwRkEyMDAwMTEwMTAwODgzZWRjZmYwYWI3IiwiLTM1IjoiNTUxMzA0MDNhYTEwMDBGQjIwMDAxMTAxMDA4ODNlZGRmZjQzZmIiLCItMzQiOiI1NTEzMDQwM2FhMTAwMEZDMjAwMDExMDEwMDg4M2VkZWZmY2Q3MSIsIi0zMyI6IjU1MTMwNDAzYWExMDAwRkQyMDAwMTEwMTAwODgzZWRmZmY4NDNkIiwiLTMyIjoiNTUxMzA0MDNhYTEwMDBGRTIwMDAxMTAxMDA4ODNlZTBmZjVkZjYiLCItMzEiOiI1NTEzMDQwM2FhMTAwMEZGMjAwMDExMDEwMDg4M2VlMWZmMTRiYSIsIi0zMCI6IjU1MTMwNDAzYWExMDAxMDAyMDAwMTEwMTAwODgzZWUyZmZjNjZjIiwiLTI5IjoiNTUxMzA0MDNhYTEwMDEwMTIwMDAxMTAxMDA4ODNlZTNmZjhmMjAiLCItMjgiOiI1NTEzMDQwM2FhMTAwMTAyMjAwMDExMDEwMDg4M2VlNGZmMzQ5MyIsIi0yNyI6IjU1MTMwNDAzYWExMDAxMDMyMDAwMTEwMTAwODgzZWU1ZmY3ZGRmIiwiLTI2IjoiNTUxMzA0MDNhYTEwMDEwNDIwMDAxMTAxMDA4ODNlZTZmZmYzNTUiLCItMjUiOiI1NTEzMDQwM2FhMTAwMTA1MjAwMDExMDEwMDg4M2VlN2ZmYmExOSIsIi0yNCI6IjU1MTMwNDAzYWExMDAxMDYyMDAwMTEwMTAwODgzZWU4ZmZjMTY0IiwiLTIzIjoiNTUxMzA0MDNhYTEwMDEwNzIwMDAxMTAxMDA4ODNlZTlmZjg4MjgiLCItMjIiOiI1NTEzMDQwM2FhMTAwMTA4MjAwMDExMDEwMDg4M2VlYWZmYWMxZSIsIi0yMSI6IjU1MTMwNDAzYWExMDAxMDkyMDAwMTEwMTAwODgzZWViZmZlNTUyIiwiLTIwIjoiNTUxMzA0MDNhYTEwMDEwQTIwMDAxMTAxMDA4ODNlZWNmZjVlZTEiLCItMTkiOiI1NTEzMDQwM2FhMTAwMTBCMjAwMDExMDEwMDg4M2VlZGZmMTdhZCIsIi0xOCI6IjU1MTMwNDAzYWExMDAxMEMyMDAwMTEwMTAwODgzZWVlZmY5OTI3IiwiLTE3IjoiNTUxMzA0MDNhYTEwMDEwRDIwMDAxMTAxMDA4ODNlZWZmZmQwNmIiLCItMTYiOiI1NTEzMDQwM2FhMTAwMTBFMjAwMDExMDEwMDg4M2VmMGZmM2E4MyIsIi0xNSI6IjU1MTMwNDAzYWExMDAxMEYyMDAwMTEwMTAwODgzZWYxZmY3M2NmIiwiLTE0IjoiNTUxMzA0MDNhYTEwMDExMDIwMDAxMTAxMDA4ODNlZjJmZjEyODgiLCItMTMiOiI1NTEzMDQwM2FhMTAwMTExMjAwMDExMDEwMDg4M2VmM2ZmNWJjNCIsIi0xMiI6IjU1MTMwNDAzYWExMDAxMTIyMDAwMTEwMTAwODgzZWY0ZmZlMDc3IiwiLTExIjoiNTUxMzA0MDNhYTEwMDExMzIwMDAxMTAxMDA4ODNlZjVmZmE5M2IiLCItMTAiOiI1NTEzMDQwM2FhMTAwMTE0MjAwMDExMDEwMDg4M2VmNmZmMjdiMSIsIi05IjoiNTUxMzA0MDNhYTEwMDExNTIwMDAxMTAxMDA4ODNlZjdmZjZlZmQiLCItOCI6IjU1MTMwNDAzYWExMDAxMTYyMDAwMTEwMTAwODgzZWY4ZmYxNTgwIiwiLTciOiI1NTEzMDQwM2FhMTAwMTE3MjAwMDExMDEwMDg4M2VmOWZmNWNjYyIsIi02IjoiNTUxMzA0MDNhYTEwMDExODIwMDAxMTAxMDA4ODNlZmFmZjc4ZmEiLCItNSI6IjU1MTMwNDAzYWExMDAxMTkyMDAwMTEwMTAwODgzZWZiZmYzMWI2IiwiLTQiOiI1NTEzMDQwM2FhMTAwMTFBMjAwMDExMDEwMDg4M2VmY2ZmOGEwNSIsIi0zIjoiNTUxMzA0MDNhYTEwMDExQjIwMDAxMTAxMDA4ODNlZmRmZmMzNDkiLCItMiI6IjU1MTMwNDAzYWExMDAxMUMyMDAwMTEwMTAwODgzZWZlZmY0ZGMzIiwiLTEiOiI1NTEzMDQwM2FhMTAwMTFEMjAwMDExMDEwMDg4M2VmZmZmMDQ4ZiJ9LCJpbnZlcnNlQ2hhaW5zIjp7IjAiOiI1NTEzMDQwM2FhMTAwMDIwMjAwMDExMDEwMGIwNTMwMDAwMjg3OCIsIjEiOiI1NTEzMDQwM2FhMTAwMTIwMjAwMDExMDEwMGIwNTMwMTAwMmQxNCIsIjIiOiI1NTEzMDQwM2FhMTAwMjIwMjAwMDExMDEwMGIwNTMwMjAwMjJhMCIsIjMiOiI1NTEzMDQwM2FhMTAwMzIwMjAwMDExMDEwMGIwNTMwMzAwMjdjYyIsIjQiOiI1NTEzMDQwM2FhMTAwNDIwMjAwMDExMDEwMGIwNTMwNDAwM2Y4OCIsIjUiOiI1NTEzMDQwM2FhMTAwNTIwMjAwMDExMDEwMGIwNTMwNTAwM2FlNCIsIjYiOiI1NTEzMDQwM2FhMTAwNjIwMjAwMDExMDEwMGIwNTMwNjAwMzU1MCIsIjciOiI1NTEzMDQwM2FhMTAwNzIwMjAwMDExMDEwMGIwNTMwNzAwMzAzYyIsIjgiOiI1NTEzMDQwM2FhMTAwODIwMjAwMDExMDEwMGIwNTMwODAwMDVkOCIsIjkiOiI1NTEzMDQwM2FhMTAwOTIwMjAwMDExMDEwMGIwNTMwOTAwMDBiNCIsIjEwIjoiNTUxMzA0MDNhYTEwMGEyMDIwMDAxMTAxMDBiMDUzMGEwMDBmMDAiLCIxMSI6IjU1MTMwNDAzYWExMDBiMjAyMDAwMTEwMTAwYjA1MzBiMDAwYTZjIiwiMTIiOiI1NTEzMDQwM2FhMTAwYzIwMjAwMDExMDEwMGIwNTMwYzAwMTIyOCIsIjEzIjoiNTUxMzA0MDNhYTEwMGQyMDIwMDAxMTAxMDBiMDUzMGQwMDE3NDQiLCIxNCI6IjU1MTMwNDAzYWExMDBlMjAyMDAwMTEwMTAwYjA1MzBlMDAxOGYwIiwiMTUiOiI1NTEzMDQwM2FhMTAwZjIwMjAwMDExMDEwMGIwNTMwZjAwMWQ5YyIsIjE2IjoiNTUxMzA0MDNhYTEwMTAyMDIwMDAxMTAxMDBiMDUzMTAwMDcxNzgiLCIxNyI6IjU1MTMwNDAzYWExMDExMjAyMDAwMTEwMTAwYjA1MzExMDA3NDE0IiwiMTgiOiI1NTEzMDQwM2FhMTAxMjIwMjAwMDExMDEwMGIwNTMxMjAwN2JhMCIsIjE5IjoiNTUxMzA0MDNhYTEwMTMyMDIwMDAxMTAxMDBiMDUzMTMwMDdlY2MiLCIyMCI6IjU1MTMwNDAzYWExMDE0MjAyMDAwMTEwMTAwYjA1MzE0MDA2Njg4IiwiMjEiOiI1NTEzMDQwM2FhMTAxNTIwMjAwMDExMDEwMGIwNTMxNTAwNjNlNCIsIjIyIjoiNTUxMzA0MDNhYTEwMTYyMDIwMDAxMTAxMDBiMDUzMTYwMDZjNTAiLCIyMyI6IjU1MTMwNDAzYWExMDE3MjAyMDAwMTEwMTAwYjA1MzE3MDA2OTNjIiwiMjQiOiI1NTEzMDQwM2FhMTAxODIwMjAwMDExMDEwMGIwNTMxODAwNWNkOCIsIjI1IjoiNTUxMzA0MDNhYTEwMTkyMDIwMDAxMTAxMDBiMDUzMTkwMDU5YjQiLCIyNiI6IjU1MTMwNDAzYWExMDFhMjAyMDAwMTEwMTAwYjA1MzFhMDA1NjAwIiwiMjciOiI1NTEzMDQwM2FhMTAxYjIwMjAwMDExMDEwMGIwNTMxYjAwNTM2YyIsIjI4IjoiNTUxMzA0MDNhYTEwMWMyMDIwMDAxMTAxMDBiMDUzMWMwMDRiMjgiLCIyOSI6IjU1MTMwNDAzYWExMDFkMjAyMDAwMTEwMTAwYjA1MzFkMDA0ZTQ0IiwiMzAiOiI1NTEzMDQwM2FhMTAxZTIwMjAwMDExMDEwMGIwNTMxZTAwNDFmMCIsIjMxIjoiNTUxMzA0MDNhYTEwMWYyMDIwMDAxMTAxMDBiMDUzMWYwMDQ0OWMiLCIzMiI6IjU1MTMwNDAzYWExMDIwMjAyMDAwMTEwMTAwYjA1MzIwMDA5YTc4IiwiMzMiOiI1NTEzMDQwM2FhMTAyMTIwMjAwMDExMDEwMGIwNTMyMTAwOWYxNCIsIjM0IjoiNTUxMzA0MDNhYTEwMjIyMDIwMDAxMTAxMDBiMDUzMjIwMDkwYTAiLCIzNSI6IjU1MTMwNDAzYWExMDIzMjAyMDAwMTEwMTAwYjA1MzIzMDA5NWNjIiwiMzYiOiI1NTEzMDQwM2FhMTAyNDIwMjAwMDExMDEwMGIwNTMyNDAwOGQ4OCIsIjM3IjoiNTUxMzA0MDNhYTEwMjUyMDIwMDAxMTAxMDBiMDUzMjUwMDg4ZTQiLCIzOCI6IjU1MTMwNDAzYWExMDI2MjAyMDAwMTEwMTAwYjA1MzI2MDA4NzUwIiwiMzkiOiI1NTEzMDQwM2FhMTAyNzIwMjAwMDExMDEwMGIwNTMyNzAwODIzYyIsIjQwIjoiNTUxMzA0MDNhYTEwMjgyMDIwMDAxMTAxMDBiMDUzMjgwMGI3ZDgiLCI0MSI6IjU1MTMwNDAzYWExMDI5MjAyMDAwMTEwMTAwYjA1MzI5MDBiMmI0IiwiNDIiOiI1NTEzMDQwM2FhMTAyYTIwMjAwMDExMDEwMGIwNTMyYTAwYmQwMCIsIjQzIjoiNTUxMzA0MDNhYTEwMmIyMDIwMDAxMTAxMDBiMDUzMmIwMGI4NmMiLCI0NCI6IjU1MTMwNDAzYWExMDJjMjAyMDAwMTEwMTAwYjA1MzJjMDBhMDI4IiwiNDUiOiI1NTEzMDQwM2FhMTAyZDIwMjAwMDExMDEwMGIwNTMyZDAwYTU0NCIsIjQ2IjoiNTUxMzA0MDNhYTEwMmUyMDIwMDAxMTAxMDBiMDUzMmUwMGFhZjAiLCI0NyI6IjU1MTMwNDAzYWExMDJmMjAyMDAwMTEwMTAwYjA1MzJmMDBhZjljIiwiNDgiOiI1NTEzMDQwM2FhMTAzMDIwMjAwMDExMDEwMGIwNTMzMDAwYzM3OCIsIjQ5IjoiNTUxMzA0MDNhYTEwMzEyMDIwMDAxMTAxMDBiMDUzMzEwMGM2MTQiLCI1MCI6IjU1MTMwNDAzYWExMDMyMjAyMDAwMTEwMTAwYjA1MzMyMDBjOWEwIiwiNTEiOiI1NTEzMDQwM2FhMTAzMzIwMjAwMDExMDEwMGIwNTMzMzAwY2NjYyIsIjUyIjoiNTUxMzA0MDNhYTEwMzQyMDIwMDAxMTAxMDBiMDUzMzQwMGQ0ODgiLCI1MyI6IjU1MTMwNDAzYWExMDM1MjAyMDAwMTEwMTAwYjA1MzM1MDBkMWU0IiwiNTQiOiI1NTEzMDQwM2FhMTAzNjIwMjAwMDExMDEwMGIwNTMzNjAwZGU1MCIsIjU1IjoiNTUxMzA0MDNhYTEwMzcyMDIwMDAxMTAxMDBiMDUzMzcwMGRiM2MiLCI1NiI6IjU1MTMwNDAzYWExMDM4MjAyMDAwMTEwMTAwYjA1MzM4MDBlZWQ4IiwiNTciOiI1NTEzMDQwM2FhMTAzOTIwMjAwMDExMDEwMGIwNTMzOTAwZWJiNCIsIjU4IjoiNTUxMzA0MDNhYTEwM2EyMDIwMDAxMTAxMDBiMDUzM2EwMGU0MDAiLCI1OSI6IjU1MTMwNDAzYWExMDNiMjAyMDAwMTEwMTAwYjA1MzNiMDBlMTZjIiwiNjAiOiI1NTEzMDQwM2FhMTAzYzIwMjAwMDExMDEwMGIwNTMzYzAwZjkyOCIsIjYxIjoiNTUxMzA0MDNhYTEwM2QyMDIwMDAxMTAxMDBiMDUzM2QwMGZjNDQiLCI2MiI6IjU1MTMwNDAzYWExMDNlMjAyMDAwMTEwMTAwYjA1MzNlMDBmM2YwIiwiNjMiOiI1NTEzMDQwM2FhMTAzZjIwMjAwMDExMDEwMGIwNTMzZjAwZjY5YyIsIjY0IjoiNTUxMzA0MDNhYTEwNDAyMDIwMDAxMTAxMDBiMDUzNDAwMDRjNzkiLCI2NSI6IjU1MTMwNDAzYWExMDQxMjAyMDAwMTEwMTAwYjA1MzQxMDA0OTE1IiwiNjYiOiI1NTEzMDQwM2FhMTA0MjIwMjAwMDExMDEwMGIwNTM0MjAwNDZhMSIsIjY3IjoiNTUxMzA0MDNhYTEwNDMyMDIwMDAxMTAxMDBiMDUzNDMwMDQzY2QiLCI2OCI6IjU1MTMwNDAzYWExMDQ0MjAyMDAwMTEwMTAwYjA1MzQ0MDA1Yjg5IiwiNjkiOiI1NTEzMDQwM2FhMTA0NTIwMjAwMDExMDEwMGIwNTM0NTAwNWVlNSIsIjcwIjoiNTUxMzA0MDNhYTEwNDYyMDIwMDAxMTAxMDBiMDUzNDYwMDUxNTEiLCI3MSI6IjU1MTMwNDAzYWExMDQ3MjAyMDAwMTEwMTAwYjA1MzQ3MDA1NDNkIiwiNzIiOiI1NTEzMDQwM2FhMTA0ODIwMjAwMDExMDEwMGIwNTM0ODAwNjFkOSIsIjczIjoiNTUxMzA0MDNhYTEwNDkyMDIwMDAxMTAxMDBiMDUzNDkwMDY0YjUiLCI3NCI6IjU1MTMwNDAzYWExMDRhMjAyMDAwMTEwMTAwYjA1MzRhMDA2YjAxIiwiNzUiOiI1NTEzMDQwM2FhMTA0YjIwMjAwMDExMDEwMGIwNTM0YjAwNmU2ZCIsIjc2IjoiNTUxMzA0MDNhYTEwNGMyMDIwMDAxMTAxMDBiMDUzNGMwMDc2MjkiLCI3NyI6IjU1MTMwNDAzYWExMDRkMjAyMDAwMTEwMTAwYjA1MzRkMDA3MzQ1IiwiNzgiOiI1NTEzMDQwM2FhMTA0ZTIwMjAwMDExMDEwMGIwNTM0ZTAwN2NmMSIsIjc5IjoiNTUxMzA0MDNhYTEwNGYyMDIwMDAxMTAxMDBiMDUzNGYwMDc5OWQiLCI4MCI6IjU1MTMwNDAzYWExMDUwMjAyMDAwMTEwMTAwYjA1MzUwMDAxNTc5IiwiODEiOiI1NTEzMDQwM2FhMTA1MTIwMjAwMDExMDEwMGIwNTM1MTAwMTAxNSIsIjgyIjoiNTUxMzA0MDNhYTEwNTIyMDIwMDAxMTAxMDBiMDUzNTIwMDFmYTEiLCI4MyI6IjU1MTMwNDAzYWExMDUzMjAyMDAwMTEwMTAwYjA1MzUzMDAxYWNkIiwiODQiOiI1NTEzMDQwM2FhMTA1NDIwMjAwMDExMDEwMGIwNTM1NDAwMDI4OSIsIjg1IjoiNTUxMzA0MDNhYTEwNTUyMDIwMDAxMTAxMDBiMDUzNTUwMDA3ZTUiLCI4NiI6IjU1MTMwNDAzYWExMDU2MjAyMDAwMTEwMTAwYjA1MzU2MDAwODUxIiwiODciOiI1NTEzMDQwM2FhMTA1NzIwMjAwMDExMDEwMGIwNTM1NzAwMGQzZCIsIjg4IjoiNTUxMzA0MDNhYTEwNTgyMDIwMDAxMTAxMDBiMDUzNTgwMDM4ZDkiLCI4OSI6IjU1MTMwNDAzYWExMDU5MjAyMDAwMTEwMTAwYjA1MzU5MDAzZGI1IiwiOTAiOiI1NTEzMDQwM2FhMTA1YTIwMjAwMDExMDEwMGIwNTM1YTAwMzIwMSIsIjkxIjoiNTUxMzA0MDNhYTEwNWIyMDIwMDAxMTAxMDBiMDUzNWIwMDM3NmQiLCI5MiI6IjU1MTMwNDAzYWExMDVjMjAyMDAwMTEwMTAwYjA1MzVjMDAyZjI5IiwiOTMiOiI1NTEzMDQwM2FhMTA1ZDIwMjAwMDExMDEwMGIwNTM1ZDAwMmE0NSIsIjk0IjoiNTUxMzA0MDNhYTEwNWUyMDIwMDAxMTAxMDBiMDUzNWUwMDI1ZjEiLCI5NSI6IjU1MTMwNDAzYWExMDVmMjAyMDAwMTEwMTAwYjA1MzVmMDAyMDlkIiwiOTYiOiI1NTEzMDQwM2FhMTA2MDIwMjAwMDExMDEwMGIwNTM2MDAwZmU3OSIsIjk3IjoiNTUxMzA0MDNhYTEwNjEyMDIwMDAxMTAxMDBiMDUzNjEwMGZiMTUiLCI5OCI6IjU1MTMwNDAzYWExMDYyMjAyMDAwMTEwMTAwYjA1MzYyMDBmNGExIiwiOTkiOiI1NTEzMDQwM2FhMTA2MzIwMjAwMDExMDEwMGIwNTM2MzAwZjFjZCIsIjEwMCI6IjU1MTMwNDAzYWExMDY0MjAyMDAwMTEwMTAwYjA1MzY0MDBlOTg5In19LCJ0ZWxlbWV0cnkiOnsibWVzc2FnZVR5cGVzIjp7InN0cmVhbSI6IjU1M2EwNDcwIiwicmVwU3VtbWFyeSI6IjU1NGEwNGM2Iiwic2V0U3VtbWFyeSI6IjU1NGYwNDM5Iiwic3RhdHVzVXBkYXRlIjoiNTUzNDA0YWMifSwib2Zmc2V0cyI6eyJzZXF1ZW5jZSI6NiwicGhhc2UiOjEzLCJwb3NpdGlvbiI6MjQsImZvcmNlIjoyNiwidmVsb2NpdHkiOjI4fSwicGhhc2VzIjp7ImlkbGUiOjAsImNvbmNlbnRyaWMiOjEsImhvbGQiOjIsImVjY2VudHJpYyI6M30sIm5vdGlmaWNhdGlvbnMiOnsibW9kZUNvbmZpcm1hdGlvbiI6eyJoZWFkZXIiOiI1NTEyIiwibGVuZ3RoIjoxOCwicGFyYW1JZE9mZnNldCI6MTMsInZhbHVlT2Zmc2V0IjoxNSwiY3JjT2Zmc2V0IjoxNn0sIm11bHRpUGFyYW0iOnsiaGVhZGVyIjoiNTUxNiIsInBhcmFtQ291bnRPZmZzZXQiOjExLCJmaXJzdFBhcmFtT2Zmc2V0IjoxMywicGFyYW1TaXplIjo0fSwic2V0dGluZ3NVcGRhdGUiOnsiaGVhZGVyIjoiNTUyZSIsImxlbmd0aCI6NDYsInBhcmFtQ291bnRPZmZzZXQiOjExLCJmaXJzdFBhcmFtT2Zmc2V0IjoxMywicGFyYW1TaXplIjo0fSwiZGV2aWNlSW5pdCI6eyJoZWFkZXIiOiI1NTIzIiwibGVuZ3RoIjozNSwiYmF0dGVyeU9mZnNldCI6MTF9LCJzdGF0dXNCYXR0ZXJ5Ijp7ImhlYWRlciI6IjU1MzQiLCJsZW5ndGgiOjUyLCJiYXR0ZXJ5T2Zmc2V0IjoxMn19LCJwYXJhbUlkcyI6eyJiYXNlV2VpZ2h0IjoiODYzZSIsImNoYWlucyI6Ijg3M2UiLCJlY2NlbnRyaWMiOiI4ODNlIiwidHJhaW5pbmdNb2RlIjoiYjA0ZiIsImludmVyc2VDaGFpbnMiOiJiMDUzIiwidW5rbm93bjg5M2UiOiI4OTNlIn0sInRyYWluaW5nTW9kZXMiOnsiaWRsZSI6MCwid2VpZ2h0VHJhaW5pbmciOjEsInJlc2lzdGFuY2VCYW5kIjoyLCJyb3dpbmciOjMsImRhbXBlciI6NCwiY3VzdG9tQ3VydmVzIjo2LCJpc29raW5ldGljIjo3LCJpc29tZXRyaWMiOjh9fX0=';
4
+ export default JSON.parse(typeof atob !== 'undefined' ? atob(_e) : Buffer.from(_e, 'base64').toString());
5
+ //# sourceMappingURL=protocol-data.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-data.generated.js","sourceRoot":"","sources":["../../../../../src/voltra/protocol/data/protocol-data.generated.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oBAAoB;AACpB,MAAM,EAAE,GACN,8umDAA8umD,CAAC;AACjvmD,eAAe,IAAI,CAAC,KAAK,CACvB,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAC9E,CAAC"}
@@ -3,10 +3,11 @@
3
3
  *
4
4
  * Low-level protocol decoder for Voltra BLE telemetry notifications.
5
5
  * Only handles parsing bytes into typed data - no business logic.
6
+ * Uses offset-based lookups from protocol.json - no hardcoded byte positions.
6
7
  */
7
- import { MessageTypes, TelemetryOffsets, MovementPhase } from './constants';
8
+ import { MessageTypes, TelemetryOffsets, MovementPhase, NotificationConfigs, ParamIdHex, TrainingMode, VALID_TRAINING_MODES, } from './constants';
8
9
  import { createFrame } from '../models/telemetry/frame';
9
- import { bytesEqual } from '../../shared/utils';
10
+ import { bytesEqual, bytesToHex } from '../../shared/utils';
10
11
  // =============================================================================
11
12
  // Byte Parsing Helpers
12
13
  // =============================================================================
@@ -41,11 +42,13 @@ function writeInt16LE(data, offset, value) {
41
42
  }
42
43
  /**
43
44
  * Identify the message type from raw bytes.
45
+ * Uses header matching from protocol.json configurations.
44
46
  */
45
47
  export function identifyMessageType(data) {
46
48
  if (data.length < 4)
47
49
  return 'unknown';
48
50
  const msgType = data.slice(0, 4);
51
+ // Check 4-byte message types first (telemetry stream types)
49
52
  if (bytesEqual(msgType, MessageTypes.TELEMETRY_STREAM)) {
50
53
  return 'telemetry_stream';
51
54
  }
@@ -58,6 +61,23 @@ export function identifyMessageType(data) {
58
61
  else if (bytesEqual(msgType, MessageTypes.STATUS_UPDATE)) {
59
62
  return 'status_update';
60
63
  }
64
+ // Check 2-byte headers for other notification types
65
+ const header2 = bytesToHex(data.slice(0, 2));
66
+ if (header2 === NotificationConfigs.modeConfirmation.header) {
67
+ return 'mode_confirmation';
68
+ }
69
+ else if (header2 === NotificationConfigs.multiParam.header) {
70
+ return 'multi_param';
71
+ }
72
+ else if (header2 === NotificationConfigs.settingsUpdate.header) {
73
+ return 'settings_update';
74
+ }
75
+ else if (header2 === NotificationConfigs.deviceInit.header) {
76
+ return 'device_init';
77
+ }
78
+ else if (header2 === NotificationConfigs.statusBattery.header) {
79
+ return 'status_update'; // Also a status type
80
+ }
61
81
  return 'unknown';
62
82
  }
63
83
  // =============================================================================
@@ -87,6 +107,95 @@ export function decodeTelemetryFrame(data) {
87
107
  const velocity = readUint16LE(data, TelemetryOffsets.VELOCITY);
88
108
  return createFrame(sequence, phase, position, force, velocity);
89
109
  }
110
+ /**
111
+ * Decode a mode confirmation notification.
112
+ * Returns the training mode value.
113
+ */
114
+ function decodeModeConfirmation(data) {
115
+ const config = NotificationConfigs.modeConfirmation;
116
+ if (config.length && data.length < config.length)
117
+ return null;
118
+ if (config.valueOffset === undefined)
119
+ return null;
120
+ const rawMode = data[config.valueOffset];
121
+ const mode = VALID_TRAINING_MODES.includes(rawMode)
122
+ ? rawMode
123
+ : TrainingMode.Idle;
124
+ return { type: 'mode_confirmation', mode };
125
+ }
126
+ /**
127
+ * Decode a settings update notification.
128
+ * Extracts parameter + value pairs.
129
+ */
130
+ function decodeSettingsUpdate(data) {
131
+ const config = NotificationConfigs.settingsUpdate;
132
+ if (config.paramCountOffset === undefined ||
133
+ config.firstParamOffset === undefined ||
134
+ config.paramSize === undefined) {
135
+ return null;
136
+ }
137
+ const settings = {};
138
+ const paramCount = data[config.paramCountOffset];
139
+ // Parse each param+value pair
140
+ for (let i = 0; i < paramCount && i < 9; i++) {
141
+ const offset = config.firstParamOffset + i * config.paramSize;
142
+ if (offset + 4 > data.length)
143
+ break;
144
+ // Param ID is 2 bytes little-endian
145
+ const paramIdHex = bytesToHex(data.slice(offset, offset + 2));
146
+ // Value is 2 bytes little-endian
147
+ const value = readUint16LE(data, offset + 2);
148
+ // Map param IDs to settings
149
+ if (paramIdHex === ParamIdHex.BASE_WEIGHT) {
150
+ settings.baseWeight = value;
151
+ }
152
+ else if (paramIdHex === ParamIdHex.CHAINS) {
153
+ settings.chains = value;
154
+ }
155
+ else if (paramIdHex === ParamIdHex.ECCENTRIC) {
156
+ settings.eccentric = value;
157
+ }
158
+ else if (paramIdHex === ParamIdHex.TRAINING_MODE) {
159
+ settings.trainingMode = VALID_TRAINING_MODES.includes(value)
160
+ ? value
161
+ : undefined;
162
+ }
163
+ else if (paramIdHex === ParamIdHex.INVERSE_CHAINS) {
164
+ settings.inverseChains = value;
165
+ }
166
+ }
167
+ return { type: 'settings_update', settings };
168
+ }
169
+ /**
170
+ * Decode a device status notification.
171
+ * Extracts battery level.
172
+ */
173
+ function decodeDeviceStatus(data) {
174
+ // Try device init format first
175
+ const initConfig = NotificationConfigs.deviceInit;
176
+ if (initConfig.length &&
177
+ data.length >= initConfig.length &&
178
+ initConfig.batteryOffset !== undefined) {
179
+ const header = bytesToHex(data.slice(0, 2));
180
+ if (header === initConfig.header) {
181
+ const battery = data[initConfig.batteryOffset];
182
+ return { type: 'device_status', battery };
183
+ }
184
+ }
185
+ // Try status/battery format
186
+ const statusConfig = NotificationConfigs.statusBattery;
187
+ if (statusConfig.length &&
188
+ data.length >= statusConfig.length &&
189
+ statusConfig.batteryOffset !== undefined) {
190
+ const header = bytesToHex(data.slice(0, 2));
191
+ if (header === statusConfig.header) {
192
+ const battery = data[statusConfig.batteryOffset];
193
+ return { type: 'device_status', battery };
194
+ }
195
+ }
196
+ // Fallback: return unknown with raw data
197
+ return { type: 'unknown', data };
198
+ }
90
199
  /**
91
200
  * Decode a BLE notification.
92
201
  * Returns structured data based on message type.
@@ -104,10 +213,16 @@ export function decodeNotification(data) {
104
213
  case 'set_summary':
105
214
  // Device is signaling set completion
106
215
  return { type: 'set_boundary' };
216
+ case 'mode_confirmation':
217
+ return decodeModeConfirmation(data);
218
+ case 'settings_update':
219
+ case 'multi_param':
220
+ return decodeSettingsUpdate(data);
221
+ case 'device_init':
107
222
  case 'status_update':
108
- return { type: 'status', data };
223
+ return decodeDeviceStatus(data);
109
224
  default:
110
- return null;
225
+ return { type: 'unknown', data };
111
226
  }
112
227
  }
113
228
  // =============================================================================
@@ -121,10 +236,11 @@ export function decodeNotification(data) {
121
236
  export function encodeTelemetryFrame(frame) {
122
237
  const data = new Uint8Array(30);
123
238
  // Message type header (telemetry stream)
124
- data[0] = 0x55;
125
- data[1] = 0x3a;
126
- data[2] = 0x04;
127
- data[3] = 0x70;
239
+ const header = MessageTypes.TELEMETRY_STREAM;
240
+ data[0] = header[0];
241
+ data[1] = header[1];
242
+ data[2] = header[2];
243
+ data[3] = header[3];
128
244
  // Sequence (bytes 6-7)
129
245
  writeUint16LE(data, TelemetryOffsets.SEQUENCE, frame.sequence);
130
246
  // Phase (byte 13)
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-decoder.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/telemetry-decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-decoder.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/telemetry-decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TypeScript types for the consolidated protocol.json structure.
3
+ *
4
+ * These types define the shape of the public protocol data used for
5
+ * command lookup and notification parsing.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/voltra/protocol/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAsEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,GAAG,EAAE,gBAAgB,CAAC;IACtB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAuC;IAGnE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAuC;IAGrE,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAyB;gBAEvC,MAAM,EAAE,mBAAmB;IAevC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;YACW,oBAAoB;IA2BlC;;OAEG;YACW,gBAAgB;YAqChB,gBAAgB;IA2BxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkExC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwHxE,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,uBAAuB;IAYzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C;;OAEG;IACM,WAAW,IAAI,OAAO;IAI/B;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;IASnC;;OAEG;IACH,wBAAwB,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE;QAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACnC,GAAG,IAAI;IAMR;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAKnE;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAMxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAsEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,GAAG,EAAE,gBAAgB,CAAC;IACtB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAuC;IAGnE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAuC;IAGrE,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAa;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAyB;gBAEvC,MAAM,EAAE,mBAAmB;IAevC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;YACW,gBAAgB;YAmChB,gBAAgB;IA2BxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgExC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkHxE,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,uBAAuB;IAYzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C;;OAEG;IACM,WAAW,IAAI,OAAO;IAI/B;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;IASnC;;OAEG;IACH,wBAAwB,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE;QAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KACnC,GAAG,IAAI;IAMR;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAKnE;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,OAAO,IAAI,IAAI;CAMhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMtD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAuB;IAE5C,wDAAwD;IACxD,OAAO,CAAC,cAAc,CAAgC;IAEtD,qDAAqD;IACrD,OAAO,CAAC,iBAAiB,CAAgB;gBAE7B,MAAM,EAAE,aAAa;IAKjC;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI9C;;OAEG;YACW,qBAAqB;IAcnC;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuF9C;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1C;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,OAAO;CAKpC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAStD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAuB;IAE5C,wDAAwD;IACxD,OAAO,CAAC,cAAc,CAAgC;IAEtD,qDAAqD;IACrD,OAAO,CAAC,iBAAiB,CAAgB;gBAE7B,MAAM,EAAE,aAAa;IAKjC;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI9C;;OAEG;YACW,qBAAqB;IAYnC;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAuF9C;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1C;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,OAAO;CAKpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-bluetooth-base.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web-bluetooth-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,GAAG,EAAE,gBAAgB,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAiB,SAAQ,cAAc;IAC3D,iCAAiC;IACjC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAQ;IAE1D,2BAA2B;IAC3B,SAAS,CAAC,SAAS,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAErE,4BAA4B;IAC5B,SAAS,CAAC,UAAU,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAEtE,gCAAgC;IAChC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEnC,6CAA6C;IAC7C,OAAO,CAAC,wBAAwB,CAAyC;gBAE7D,MAAM,EAAE,kBAAkB;IAetC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E;;;OAGG;cACa,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvE;;OAEG;cACa,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BrD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQhD;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;IAmCzB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5C;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAQpC"}
1
+ {"version":3,"file":"web-bluetooth-base.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web-bluetooth-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAKxE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,GAAG,EAAE,gBAAgB,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,gBAAiB,SAAQ,cAAc;IAC3D,iCAAiC;IACjC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAQ;IAEhD,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAQ;IAE1D,2BAA2B;IAC3B,SAAS,CAAC,SAAS,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAErE,4BAA4B;IAC5B,SAAS,CAAC,UAAU,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAEtE,gCAAgC;IAChC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEnC,6CAA6C;IAC7C,OAAO,CAAC,wBAAwB,CAAyC;gBAE7D,MAAM,EAAE,kBAAkB;IAetC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E;;;OAGG;cACa,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvE;;OAEG;cACa,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BrD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQhD;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;IAmCzB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5C;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAQpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;;;OASG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiC/C;;;;;;;;OAQG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKtD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAgC;gBAE1C,MAAM,EAAE,kBAAkB;IAItC;;;;;;;;;OASG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiC/C;;;;;;;;OAQG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"scanner-controller.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/controllers/scanner-controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAU1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY,CAAC;IAZvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,UAAU,CAAwC;gBAGhD,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,YAAY,YAAA;IAGrC;;OAEG;IACH,QAAQ,IAAI,YAAY;IASxB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAKrD,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAwDzC;;;OAGG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI;IAqBrD;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"scanner-controller.d.ts","sourceRoot":"","sources":["../../../../src/bluetooth/controllers/scanner-controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAU1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY,CAAC;IAZvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,UAAU,CAAwC;gBAGhD,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,YAAY,YAAA;IAGrC;;OAEG;IACH,QAAQ,IAAI,YAAY;IASxB;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAKrD,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsDzC;;;OAGG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,MAAM,IAAI;IAqBrD;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -9,6 +9,6 @@ export type { DiscoveredDevice } from './models/device';
9
9
  export { getDeviceDisplayName, sortBySignalStrength } from './models/device';
10
10
  export type { BLEConnectionState } from './models/connection';
11
11
  export type { BLEEnvironment, BLEEnvironmentInfo } from './models/environment';
12
- export { detectBLEEnvironment, isBLEAvailable, createNativeEnvironmentInfo } from './models/environment';
12
+ export { detectBLEEnvironment, isBLEAvailable, createNativeEnvironmentInfo, } from './models/environment';
13
13
  export { type BLEAdapter, type BLEServiceConfig, type ConnectionState, type ConnectOptions, type NotificationCallback, type ConnectionStateCallback, WebBLEAdapter, NodeBLEAdapter, NativeBLEAdapter, createBLEAdapter, type CreateBLEAdapterConfig, } from './adapters';
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGzG,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE5B,aAAa,EACb,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bluetooth/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE5B,aAAa,EACb,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAiCZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAA6B,EAAE,KAAK,CAAC,EAAE,KAAK;CAWhF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBAE/C,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,SAAuC,EAC7C,KAAK,CAAC,EAAE,KAAK;CAKhB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAiC,EAAE,KAAK,CAAC,EAAE,KAAK;CAIpF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK9D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,OAAO,GAAE,MAAkC;CAIxD;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;gBAG/C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM;CAWnB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAc;IAC3D,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEpB,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK7D;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;gBACpC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAiCZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAA6B,EAAE,KAAK,CAAC,EAAE,KAAK;CAWhF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAuC,EAAE,KAAK,CAAC,EAAE,KAAK;CAI1F;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAiC,EAAE,KAAK,CAAC,EAAE,KAAK;CAIpF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK9D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,OAAO,GAAE,MAAkC;CAIxD;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;gBAErC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;CAUhG;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAc;IAC3D,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEpB,MAAM,CAAC,EAAE,MAAM;CAQ5B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK7D;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;gBACpC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C"}
@@ -42,14 +42,15 @@ export type { BLEAdapter, BLEServiceConfig, ConnectOptions, ConnectionState, Not
42
42
  export type { DiscoveredDevice } from './bluetooth/models/device';
43
43
  export { getDeviceDisplayName, sortBySignalStrength } from './bluetooth/models/device';
44
44
  export { VOLTRA_DEVICE_PREFIX, isVoltraDevice, filterVoltraDevices, } from './voltra/models/device-filter';
45
- export { VoltraDevice, DEFAULT_SETTINGS, type VoltraDeviceSettings, type VoltraRecordingState, type VoltraDeviceState, } from './voltra/models/device';
45
+ export type { VoltraDeviceSettings, VoltraRecordingState, VoltraDeviceState, } from './voltra/models/device';
46
46
  export type { VoltraConnectionState } from './voltra/models/connection';
47
47
  export type { TelemetryFrame } from './voltra/models/telemetry';
48
48
  export { createFrame } from './voltra/models/telemetry';
49
49
  export { decodeTelemetryFrame, decodeNotification, encodeTelemetryFrame, identifyMessageType, type DecodeResult, type MessageType, } from './voltra/protocol/telemetry-decoder';
50
- export { MovementPhase, PhaseNames, MessageTypes, TelemetryOffsets, } from './voltra/protocol/constants';
51
- export { WeightCommands, ChainsCommands, EccentricCommands, type DualCommand, } from './voltra/protocol/commands';
52
- export { BLE, Timing, Auth, Init, Workout, } from './voltra/protocol/constants';
50
+ export { MovementPhase, PhaseNames, MessageTypes, TelemetryOffsets, ParameterId, ParameterNames, TrainingMode, TrainingModeNames, VALID_TRAINING_MODES, } from './voltra/protocol/constants';
51
+ export { getWeightCommand, getChainsCommand, getEccentricCommand, getInverseChainsCommand, getModeCommand, getAvailableWeights, getAvailableChains, getAvailableEccentric, getAvailableInverseChains, getAvailableModes, } from './voltra/protocol/commands';
52
+ export { BLE, Timing, Auth, Init, Workout } from './voltra/protocol/constants';
53
53
  export { VoltraSDKError, ConnectionError, AuthenticationError, TimeoutError, NotConnectedError, InvalidSettingError, BluetoothUnavailableError, CommandError, TelemetryError, ErrorCode, type ErrorCode as ErrorCodeType, } from './errors';
54
54
  export { delay } from './shared/utils';
55
+ export { setDebugEnabled } from './shared/logger';
55
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAMpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAMxE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,KAAK,SAAS,IAAI,aAAa,GAChC,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAMpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAMvC,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAMxE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,KAAK,SAAS,IAAI,aAAa,GAChC,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/react/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iCAAiC;IACjC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7D,+BAA+B;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,kBAAkB,CAsDlF;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,eAAe,EAAE,qBAAqB,CAAC;IACvC,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,cAAc,EAAE,oBAAoB,CAAC;IACrC,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,kCAAkC;IAClC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,yBAAyB;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAkBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,iBAAiB,CAiE9E;AAMD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,iBAAiB;IAC3E,mCAAmC;IACnC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,0BAA0B;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,gCAAgC;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,6BAA6B;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,6BAA6B;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,kCAAkC;IAClC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,iCAAiC;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,cAAc,CA2FvE"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/react/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iCAAiC;IACjC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7D,+BAA+B;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,kBAAkB,CAsDlF;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,eAAe,EAAE,qBAAqB,CAAC;IACvC,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,cAAc,EAAE,oBAAoB,CAAC;IACrC,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,kCAAkC;IAClC,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,yBAAyB;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAYD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,iBAAiB,CAiE9E;AAMD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,iBAAiB;IAC3E,mCAAmC;IACnC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,0BAA0B;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,gCAAgC;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,6BAA6B;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,6BAA6B;IAC7B,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,gCAAgC;IAChC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,kCAAkC;IAClC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,iCAAiC;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,cAAc,CA2FvE"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export { VoltraClient } from './voltra-client';
8
8
  export { VoltraManager } from './voltra-manager';
9
- export type { VoltraClientOptions, VoltraClientState, VoltraClientEvent, VoltraClientEventListener, FrameListener, ScanOptions, DeviceChooser, } from './types';
9
+ export type { VoltraClientOptions, VoltraClientState, VoltraClientEvent, VoltraClientEventListener, FrameListener, RepBoundaryListener, SetBoundaryListener, ModeConfirmedListener, SettingsUpdateListener, BatteryUpdateListener, ScanOptions, DeviceChooser, } from './types';
10
+ export type { DeviceSettings } from '../voltra/protocol/types';
10
11
  export type { Platform, VoltraManagerOptions, VoltraManagerEvent, VoltraManagerEventListener, ConnectByNameOptions, AdapterFactory, } from './voltra-manager';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC"}