@observertc/observer-js 0.9.20-beta → 0.9.22-beta

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 (212) hide show
  1. package/.eslintrc.json +143 -0
  2. package/lib/Evaluator.d.ts.map +1 -1
  3. package/lib/Evaluator.js +54 -47
  4. package/lib/Observer.d.ts +1408 -38
  5. package/lib/Observer.d.ts.map +1 -1
  6. package/lib/Observer.js +484 -180
  7. package/lib/common/Semaphore.d.ts.map +1 -1
  8. package/lib/common/callMetaReports.d.ts.map +1 -1
  9. package/lib/common/callMetaReports.js +1 -0
  10. package/lib/common/logger.d.ts.map +1 -1
  11. package/lib/common/logger.js +15 -15
  12. package/lib/common/utils.d.ts +1 -0
  13. package/lib/common/utils.d.ts.map +1 -1
  14. package/lib/common/utils.js +12 -1
  15. package/lib/entries/CallEntry.d.ts +611 -0
  16. package/lib/entries/CallEntry.d.ts.map +1 -0
  17. package/lib/entries/CallEntry.js +75 -0
  18. package/lib/entries/ClientEntry.d.ts +474 -0
  19. package/lib/entries/ClientEntry.d.ts.map +1 -0
  20. package/lib/entries/ClientEntry.js +101 -0
  21. package/lib/entries/InboundTrackEntry.d.ts +670 -0
  22. package/lib/entries/InboundTrackEntry.d.ts.map +1 -0
  23. package/lib/entries/InboundTrackEntry.js +76 -0
  24. package/lib/entries/OutboundTrackEntry.d.ts +670 -0
  25. package/lib/entries/OutboundTrackEntry.d.ts.map +1 -0
  26. package/lib/entries/OutboundTrackEntry.js +73 -0
  27. package/lib/entries/PeerConnectionEntry.d.ts +469 -0
  28. package/lib/entries/PeerConnectionEntry.d.ts.map +1 -0
  29. package/lib/entries/PeerConnectionEntry.js +144 -0
  30. package/lib/entries/SfuEntry.d.ts +150 -0
  31. package/lib/entries/SfuEntry.d.ts.map +1 -0
  32. package/lib/entries/SfuEntry.js +77 -0
  33. package/lib/entries/SfuInboundRtpPadEntry.d.ts +14 -0
  34. package/lib/entries/SfuInboundRtpPadEntry.d.ts.map +1 -0
  35. package/lib/entries/SfuInboundRtpPadEntry.js +49 -0
  36. package/lib/entries/SfuOutboundRtpPadEntry.d.ts +14 -0
  37. package/lib/entries/SfuOutboundRtpPadEntry.d.ts.map +1 -0
  38. package/lib/entries/SfuOutboundRtpPadEntry.js +47 -0
  39. package/lib/entries/SfuSctpChannelEntry.d.ts +12 -0
  40. package/lib/entries/SfuSctpChannelEntry.d.ts.map +1 -0
  41. package/lib/entries/SfuSctpChannelEntry.js +43 -0
  42. package/lib/entries/SfuTransportEntry.d.ts +82 -0
  43. package/lib/entries/SfuTransportEntry.d.ts.map +1 -0
  44. package/lib/entries/SfuTransportEntry.js +122 -0
  45. package/lib/index.d.ts +10 -0
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/middlewares/CallOperationsContext.d.ts.map +1 -1
  48. package/lib/middlewares/CallOperationsContext.js +2 -6
  49. package/lib/middlewares/CallProcessor.d.ts.map +1 -1
  50. package/lib/middlewares/CallProcessor.js +15 -6
  51. package/lib/middlewares/CommitTransactionMiddleware.d.ts.map +1 -1
  52. package/lib/middlewares/CommitTransactionMiddleware.js +22 -26
  53. package/lib/middlewares/DeleteOutdatedCallEntries.d.ts.map +1 -1
  54. package/lib/middlewares/DeleteOutdatedCallEntries.js +29 -20
  55. package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts.map +1 -1
  56. package/lib/middlewares/DeleteOutdatedSfuEntries.js +27 -18
  57. package/lib/middlewares/Middleware.d.ts.map +1 -1
  58. package/lib/middlewares/Middleware.js +13 -4
  59. package/lib/middlewares/Processor.d.ts.map +1 -1
  60. package/lib/middlewares/Processor.js +18 -9
  61. package/lib/middlewares/TransactionContext.d.ts.map +1 -1
  62. package/lib/middlewares/TransactionContext.js +84 -73
  63. package/lib/middlewares/VisitObservedCallsMiddleware.d.ts.map +1 -1
  64. package/lib/middlewares/VisitObservedCallsMiddleware.js +16 -7
  65. package/lib/middlewares/VisitObservedSfusMiddleware.d.ts.map +1 -1
  66. package/lib/middlewares/VisitObservedSfusMiddleware.js +15 -6
  67. package/lib/middlewares/visitors/visitClient.d.ts.map +1 -1
  68. package/lib/middlewares/visitors/visitClient.js +6 -18
  69. package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts.map +1 -1
  70. package/lib/middlewares/visitors/visitInboundAudioTrack.js +17 -20
  71. package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts.map +1 -1
  72. package/lib/middlewares/visitors/visitInboundVideoTrack.js +16 -21
  73. package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts.map +1 -1
  74. package/lib/middlewares/visitors/visitOutboundAudioTrack.js +16 -16
  75. package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts.map +1 -1
  76. package/lib/middlewares/visitors/visitOutboundVideoTarck.js +16 -17
  77. package/lib/middlewares/visitors/visitPeerConnection.d.ts.map +1 -1
  78. package/lib/middlewares/visitors/visitPeerConnection.js +24 -40
  79. package/lib/middlewares/visitors/visitSfu.d.ts.map +1 -1
  80. package/lib/middlewares/visitors/visitSfu.js +6 -7
  81. package/lib/middlewares/visitors/visitSfuInboundRtpPad.d.ts.map +1 -1
  82. package/lib/middlewares/visitors/visitSfuInboundRtpPad.js +3 -7
  83. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.d.ts.map +1 -1
  84. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.js +3 -8
  85. package/lib/middlewares/visitors/visitSfuSctpChannel.d.ts.map +1 -1
  86. package/lib/middlewares/visitors/visitSfuSctpChannel.js +3 -6
  87. package/lib/middlewares/visitors/visitSfuTransport.d.ts.map +1 -1
  88. package/lib/middlewares/visitors/visitSfuTransport.js +3 -6
  89. package/lib/processes/closePeerConnectionProcess.d.ts.map +1 -1
  90. package/lib/processes/closePeerConnectionProcess.js +14 -5
  91. package/lib/processes/detachClientProcess.d.ts.map +1 -1
  92. package/lib/processes/detachClientProcess.js +20 -17
  93. package/lib/processes/findRemoteMatches.d.ts +2 -2
  94. package/lib/processes/findRemoteMatches.d.ts.map +1 -1
  95. package/lib/processes/findRemoteMatches.js +70 -56
  96. package/lib/processes/inboundTrackRemoved.d.ts.map +1 -1
  97. package/lib/processes/inboundTrackRemoved.js +12 -3
  98. package/lib/processes/joinClientProcess.d.ts.map +1 -1
  99. package/lib/processes/joinClientProcess.js +15 -6
  100. package/lib/processes/outboundTrackRemoved.d.ts.map +1 -1
  101. package/lib/processes/outboundTrackRemoved.js +12 -3
  102. package/lib/samples/ObservedCall.d.ts.map +1 -1
  103. package/lib/samples/ObservedCall.js +1 -5
  104. package/lib/samples/ObservedCalls.d.ts.map +1 -1
  105. package/lib/samples/ObservedClient.d.ts.map +1 -1
  106. package/lib/samples/ObservedClient.js +1 -9
  107. package/lib/samples/ObservedInboundAudioTrack.d.ts.map +1 -1
  108. package/lib/samples/ObservedInboundAudioTrack.js +1 -5
  109. package/lib/samples/ObservedInboundVideoTrack.d.ts.map +1 -1
  110. package/lib/samples/ObservedInboundVideoTrack.js +1 -5
  111. package/lib/samples/ObservedOutboundAudioTrack.d.ts.map +1 -1
  112. package/lib/samples/ObservedOutboundAudioTrack.js +1 -5
  113. package/lib/samples/ObservedOutboundVideoTrack.d.ts.map +1 -1
  114. package/lib/samples/ObservedOutboundVideoTrack.js +1 -5
  115. package/lib/samples/ObservedPeerConnection.d.ts.map +1 -1
  116. package/lib/samples/ObservedPeerConnection.js +1 -12
  117. package/lib/samples/ObservedSfu.d.ts.map +1 -1
  118. package/lib/samples/ObservedSfu.js +1 -8
  119. package/lib/samples/ObservedSfuInboundRtpPad.d.ts.map +1 -1
  120. package/lib/samples/ObservedSfuInboundRtpPad.js +1 -5
  121. package/lib/samples/ObservedSfuOutboundRtpPad.d.ts.map +1 -1
  122. package/lib/samples/ObservedSfuOutboundRtpPad.js +1 -5
  123. package/lib/samples/ObservedSfuSctpChannel.d.ts.map +1 -1
  124. package/lib/samples/ObservedSfuSctpChannel.js +1 -5
  125. package/lib/samples/ObservedSfuTransport.d.ts.map +1 -1
  126. package/lib/samples/ObservedSfuTransport.js +1 -8
  127. package/lib/samples/ObservedSfus.d.ts.map +1 -1
  128. package/lib/sinks/ObserverSink.d.ts.map +1 -1
  129. package/lib/sinks/ObserverSink.js +42 -31
  130. package/lib/sinks/callEventReports.js +1 -0
  131. package/lib/sources/ObservedCallSource.d.ts +5 -3
  132. package/lib/sources/ObservedCallSource.d.ts.map +1 -1
  133. package/lib/sources/ObservedClientSource.d.ts +3 -2
  134. package/lib/sources/ObservedClientSource.d.ts.map +1 -1
  135. package/lib/sources/ObservedSfuSource.d.ts +3 -2
  136. package/lib/sources/ObservedSfuSource.d.ts.map +1 -1
  137. package/lib/sources/Sources.d.ts +8 -4
  138. package/lib/sources/Sources.d.ts.map +1 -1
  139. package/lib/sources/Sources.js +71 -46
  140. package/lib/storages/ObserverStorage.d.ts.map +1 -1
  141. package/lib/storages/SimpleStorage.d.ts.map +1 -1
  142. package/lib/storages/SimpleStorage.js +40 -23
  143. package/package.json +2 -1
  144. package/src/Evaluator.ts +17 -9
  145. package/src/Observer.ts +239 -171
  146. package/src/common/Semaphore.ts +2 -0
  147. package/src/common/callMetaReports.ts +30 -28
  148. package/src/common/logger.ts +140 -132
  149. package/src/common/types.ts +1 -1
  150. package/src/common/utils.ts +12 -1
  151. package/src/entries/CallEntry.ts +62 -0
  152. package/src/entries/ClientEntry.ts +90 -0
  153. package/src/entries/InboundTrackEntry.ts +74 -0
  154. package/src/entries/OutboundTrackEntry.ts +72 -0
  155. package/src/entries/PeerConnectionEntry.ts +133 -0
  156. package/src/entries/SfuEntry.ts +62 -0
  157. package/src/entries/SfuInboundRtpPadEntry.ts +46 -0
  158. package/src/entries/SfuOutboundRtpPadEntry.ts +44 -0
  159. package/src/entries/SfuSctpChannelEntry.ts +39 -0
  160. package/src/entries/SfuTransportEntry.ts +109 -0
  161. package/src/index.ts +11 -0
  162. package/src/middlewares/CallOperationsContext.ts +9 -5
  163. package/src/middlewares/CallProcessor.ts +4 -2
  164. package/src/middlewares/CommitTransactionMiddleware.ts +8 -5
  165. package/src/middlewares/DeleteOutdatedCallEntries.ts +24 -16
  166. package/src/middlewares/DeleteOutdatedSfuEntries.ts +24 -15
  167. package/src/middlewares/Middleware.ts +1 -0
  168. package/src/middlewares/Processor.ts +10 -5
  169. package/src/middlewares/TransactionContext.ts +1 -2
  170. package/src/middlewares/VisitObservedCallsMiddleware.ts +5 -2
  171. package/src/middlewares/VisitObservedSfusMiddleware.ts +8 -7
  172. package/src/middlewares/visitors/visitClient.ts +15 -1
  173. package/src/middlewares/visitors/visitInboundAudioTrack.ts +4 -1
  174. package/src/middlewares/visitors/visitInboundVideoTrack.ts +5 -1
  175. package/src/middlewares/visitors/visitOutboundAudioTrack.ts +5 -1
  176. package/src/middlewares/visitors/visitOutboundVideoTarck.ts +5 -1
  177. package/src/middlewares/visitors/visitPeerConnection.ts +15 -2
  178. package/src/middlewares/visitors/visitSfu.ts +7 -1
  179. package/src/middlewares/visitors/visitSfuInboundRtpPad.ts +4 -2
  180. package/src/middlewares/visitors/visitSfuOutboundRtpPad.ts +3 -1
  181. package/src/middlewares/visitors/visitSfuSctpChannel.ts +23 -21
  182. package/src/middlewares/visitors/visitSfuTransport.ts +3 -1
  183. package/src/processes/closePeerConnectionProcess.ts +3 -0
  184. package/src/processes/detachClientProcess.ts +13 -4
  185. package/src/processes/findRemoteMatches.ts +32 -21
  186. package/src/processes/inboundTrackRemoved.ts +2 -0
  187. package/src/processes/joinClientProcess.ts +8 -2
  188. package/src/processes/outboundTrackRemoved.ts +2 -0
  189. package/src/samples/ObservedCall.ts +6 -0
  190. package/src/samples/ObservedCalls.ts +13 -7
  191. package/src/samples/ObservedClient.ts +24 -8
  192. package/src/samples/ObservedInboundAudioTrack.ts +3 -2
  193. package/src/samples/ObservedInboundVideoTrack.ts +3 -2
  194. package/src/samples/ObservedOutboundAudioTrack.ts +3 -2
  195. package/src/samples/ObservedOutboundVideoTrack.ts +3 -2
  196. package/src/samples/ObservedPeerConnection.ts +27 -11
  197. package/src/samples/ObservedSfu.ts +17 -10
  198. package/src/samples/ObservedSfuInboundRtpPad.ts +5 -4
  199. package/src/samples/ObservedSfuOutboundRtpPad.ts +5 -4
  200. package/src/samples/ObservedSfuSctpChannel.ts +13 -13
  201. package/src/samples/ObservedSfuTransport.ts +19 -7
  202. package/src/samples/ObservedSfus.ts +10 -5
  203. package/src/sinks/ObserverSink.ts +51 -44
  204. package/src/sinks/callEventReports.ts +1 -1
  205. package/src/sources/ObservedCallSource.ts +6 -5
  206. package/src/sources/ObservedClientSource.ts +3 -2
  207. package/src/sources/ObservedSfuSource.ts +4 -8
  208. package/src/sources/Sources.ts +96 -22
  209. package/src/storages/ObserverStorage.ts +1 -0
  210. package/src/storages/SimpleStorage.ts +44 -21
  211. package/tsconfig.json +7 -5
  212. package/.eslintrc.js +0 -27
@@ -0,0 +1,611 @@
1
+ import * as Models from '../models/Models';
2
+ import { StorageProvider } from '../storages/StorageProvider';
3
+ export declare const logger: import("../common/logger").WrappedLogger;
4
+ export type CallEntry = ReturnType<typeof createCallEntry>;
5
+ export declare function createCallEntry(storageProvider: StorageProvider, model?: Models.Call): void | {
6
+ callId: string;
7
+ roomId: string;
8
+ serviceId: string;
9
+ started: bigint;
10
+ readonly clientIds: readonly string[];
11
+ getClient: (clientId: string) => Promise<void | {
12
+ clientId: string;
13
+ roomId: string;
14
+ serviceId: string;
15
+ mediaUnitId: string;
16
+ callId: string;
17
+ joined: bigint | undefined;
18
+ timeZoneId: string | undefined;
19
+ readonly browser: import("../models/samples_pb").Samples_ClientSample_Browser | undefined;
20
+ readonly engine: import("../models/samples_pb").Samples_ClientSample_Engine | undefined;
21
+ readonly operationSystem: import("../models/samples_pb").Samples_ClientSample_OperationSystem | undefined;
22
+ readonly platform: import("../models/samples_pb").Samples_ClientSample_Platform | undefined;
23
+ readonly peerConnectionIds: readonly string[];
24
+ readonly marker: string | undefined;
25
+ getCall: () => Promise<void | any>;
26
+ readonly peerConnections: AsyncIterableIterator<void | {
27
+ callId: string;
28
+ clientId: string;
29
+ peerConnectionId: string;
30
+ marker: string | undefined;
31
+ label: string | undefined;
32
+ mediaUnitId: string | undefined;
33
+ opened: bigint | undefined;
34
+ serviceId: string | undefined;
35
+ roomId: string | undefined;
36
+ userId: string | undefined;
37
+ getClient: () => Promise<void | any>;
38
+ getCall: () => Promise<void | any>;
39
+ readonly iceCandidatePairs: import("../models/samples_pb").Samples_ClientSample_IceCandidatePair[];
40
+ readonly iceRemoteCandidates: import("../models/samples_pb").Samples_ClientSample_IceRemoteCandidate[];
41
+ readonly iceLocalCandidates: import("../models/samples_pb").Samples_ClientSample_IceLocalCandidate[];
42
+ readonly transports: import("../models/samples_pb").Samples_ClientSample_PeerConnectionTransport[];
43
+ readonly inboundTrackIds: readonly string[];
44
+ readonly outboundTrackIds: readonly string[];
45
+ readonly inboundTracks: AsyncIterableIterator<void | {
46
+ callId: string;
47
+ clientId: string;
48
+ peerConnectionId: string;
49
+ trackId: string;
50
+ direction: "inbound";
51
+ readonly kind: "audio" | "video";
52
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
53
+ readonly marker: string | undefined;
54
+ readonly ssrc: bigint[];
55
+ getCall: () => Promise<void | any>;
56
+ getClient: () => Promise<void | any>;
57
+ getPeerConnection: () => Promise<void | any>;
58
+ refresh(): Promise<void>;
59
+ }>;
60
+ readonly outboundTracks: AsyncIterableIterator<void | {
61
+ callId: string;
62
+ clientId: string;
63
+ peerConnectionId: string;
64
+ trackId: string;
65
+ direction: "outbound";
66
+ readonly kind: "audio" | "video";
67
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
68
+ readonly marker: string | undefined;
69
+ readonly ssrc: bigint[];
70
+ getCall: () => Promise<void | any>;
71
+ getClient: () => Promise<void | any>;
72
+ getPeerConnection: () => Promise<void | any>;
73
+ refresh: () => Promise<void>;
74
+ }>;
75
+ readonly inboundAudioTracks: AsyncIterableIterator<void | {
76
+ callId: string;
77
+ clientId: string;
78
+ peerConnectionId: string;
79
+ trackId: string;
80
+ direction: "inbound";
81
+ readonly kind: "audio" | "video";
82
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
83
+ readonly marker: string | undefined;
84
+ readonly ssrc: bigint[];
85
+ getCall: () => Promise<void | any>;
86
+ getClient: () => Promise<void | any>;
87
+ getPeerConnection: () => Promise<void | any>;
88
+ refresh(): Promise<void>;
89
+ }>;
90
+ readonly outboundAudioTracks: AsyncIterableIterator<void | {
91
+ callId: string;
92
+ clientId: string;
93
+ peerConnectionId: string;
94
+ trackId: string;
95
+ direction: "outbound";
96
+ readonly kind: "audio" | "video";
97
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
98
+ readonly marker: string | undefined;
99
+ readonly ssrc: bigint[];
100
+ getCall: () => Promise<void | any>;
101
+ getClient: () => Promise<void | any>;
102
+ getPeerConnection: () => Promise<void | any>;
103
+ refresh: () => Promise<void>;
104
+ }>;
105
+ readonly inboundVideoTracks: AsyncIterableIterator<void | {
106
+ callId: string;
107
+ clientId: string;
108
+ peerConnectionId: string;
109
+ trackId: string;
110
+ direction: "inbound";
111
+ readonly kind: "audio" | "video";
112
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
113
+ readonly marker: string | undefined;
114
+ readonly ssrc: bigint[];
115
+ getCall: () => Promise<void | any>;
116
+ getClient: () => Promise<void | any>;
117
+ getPeerConnection: () => Promise<void | any>;
118
+ refresh(): Promise<void>;
119
+ }>;
120
+ readonly outboundVideoTracks: AsyncIterableIterator<void | {
121
+ callId: string;
122
+ clientId: string;
123
+ peerConnectionId: string;
124
+ trackId: string;
125
+ direction: "outbound";
126
+ readonly kind: "audio" | "video";
127
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
128
+ readonly marker: string | undefined;
129
+ readonly ssrc: bigint[];
130
+ getCall: () => Promise<void | any>;
131
+ getClient: () => Promise<void | any>;
132
+ getPeerConnection: () => Promise<void | any>;
133
+ refresh: () => Promise<void>;
134
+ }>;
135
+ getInboundTrack(inboundTrackId: string): Promise<void | {
136
+ callId: string;
137
+ clientId: string;
138
+ peerConnectionId: string;
139
+ trackId: string;
140
+ direction: "inbound";
141
+ readonly kind: "audio" | "video";
142
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
143
+ readonly marker: string | undefined;
144
+ readonly ssrc: bigint[];
145
+ getCall: () => Promise<void | any>;
146
+ getClient: () => Promise<void | any>;
147
+ getPeerConnection: () => Promise<void | any>;
148
+ refresh(): Promise<void>;
149
+ }>;
150
+ getOutboundTrack(outboundTrackId: string): Promise<void | {
151
+ callId: string;
152
+ clientId: string;
153
+ peerConnectionId: string;
154
+ trackId: string;
155
+ direction: "outbound";
156
+ readonly kind: "audio" | "video";
157
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
158
+ readonly marker: string | undefined;
159
+ readonly ssrc: bigint[];
160
+ getCall: () => Promise<void | any>;
161
+ getClient: () => Promise<void | any>;
162
+ getPeerConnection: () => Promise<void | any>;
163
+ refresh: () => Promise<void>;
164
+ }>;
165
+ refresh(): Promise<void>;
166
+ }>;
167
+ getPeerConnection: (peerConnectionId: string) => Promise<void | {
168
+ callId: string;
169
+ clientId: string;
170
+ peerConnectionId: string;
171
+ marker: string | undefined;
172
+ label: string | undefined;
173
+ mediaUnitId: string | undefined;
174
+ opened: bigint | undefined;
175
+ serviceId: string | undefined;
176
+ roomId: string | undefined;
177
+ userId: string | undefined;
178
+ getClient: () => Promise<void | any>;
179
+ getCall: () => Promise<void | any>;
180
+ readonly iceCandidatePairs: import("../models/samples_pb").Samples_ClientSample_IceCandidatePair[];
181
+ readonly iceRemoteCandidates: import("../models/samples_pb").Samples_ClientSample_IceRemoteCandidate[];
182
+ readonly iceLocalCandidates: import("../models/samples_pb").Samples_ClientSample_IceLocalCandidate[];
183
+ readonly transports: import("../models/samples_pb").Samples_ClientSample_PeerConnectionTransport[];
184
+ readonly inboundTrackIds: readonly string[];
185
+ readonly outboundTrackIds: readonly string[];
186
+ readonly inboundTracks: AsyncIterableIterator<void | {
187
+ callId: string;
188
+ clientId: string;
189
+ peerConnectionId: string;
190
+ trackId: string;
191
+ direction: "inbound";
192
+ readonly kind: "audio" | "video";
193
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
194
+ readonly marker: string | undefined;
195
+ readonly ssrc: bigint[];
196
+ getCall: () => Promise<void | any>;
197
+ getClient: () => Promise<void | any>;
198
+ getPeerConnection: () => Promise<void | any>;
199
+ refresh(): Promise<void>;
200
+ }>;
201
+ readonly outboundTracks: AsyncIterableIterator<void | {
202
+ callId: string;
203
+ clientId: string;
204
+ peerConnectionId: string;
205
+ trackId: string;
206
+ direction: "outbound";
207
+ readonly kind: "audio" | "video";
208
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
209
+ readonly marker: string | undefined;
210
+ readonly ssrc: bigint[];
211
+ getCall: () => Promise<void | any>;
212
+ getClient: () => Promise<void | any>;
213
+ getPeerConnection: () => Promise<void | any>;
214
+ refresh: () => Promise<void>;
215
+ }>;
216
+ readonly inboundAudioTracks: AsyncIterableIterator<void | {
217
+ callId: string;
218
+ clientId: string;
219
+ peerConnectionId: string;
220
+ trackId: string;
221
+ direction: "inbound";
222
+ readonly kind: "audio" | "video";
223
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
224
+ readonly marker: string | undefined;
225
+ readonly ssrc: bigint[];
226
+ getCall: () => Promise<void | any>;
227
+ getClient: () => Promise<void | any>;
228
+ getPeerConnection: () => Promise<void | any>;
229
+ refresh(): Promise<void>;
230
+ }>;
231
+ readonly outboundAudioTracks: AsyncIterableIterator<void | {
232
+ callId: string;
233
+ clientId: string;
234
+ peerConnectionId: string;
235
+ trackId: string;
236
+ direction: "outbound";
237
+ readonly kind: "audio" | "video";
238
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
239
+ readonly marker: string | undefined;
240
+ readonly ssrc: bigint[];
241
+ getCall: () => Promise<void | any>;
242
+ getClient: () => Promise<void | any>;
243
+ getPeerConnection: () => Promise<void | any>;
244
+ refresh: () => Promise<void>;
245
+ }>;
246
+ readonly inboundVideoTracks: AsyncIterableIterator<void | {
247
+ callId: string;
248
+ clientId: string;
249
+ peerConnectionId: string;
250
+ trackId: string;
251
+ direction: "inbound";
252
+ readonly kind: "audio" | "video";
253
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
254
+ readonly marker: string | undefined;
255
+ readonly ssrc: bigint[];
256
+ getCall: () => Promise<void | any>;
257
+ getClient: () => Promise<void | any>;
258
+ getPeerConnection: () => Promise<void | any>;
259
+ refresh(): Promise<void>;
260
+ }>;
261
+ readonly outboundVideoTracks: AsyncIterableIterator<void | {
262
+ callId: string;
263
+ clientId: string;
264
+ peerConnectionId: string;
265
+ trackId: string;
266
+ direction: "outbound";
267
+ readonly kind: "audio" | "video";
268
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
269
+ readonly marker: string | undefined;
270
+ readonly ssrc: bigint[];
271
+ getCall: () => Promise<void | any>;
272
+ getClient: () => Promise<void | any>;
273
+ getPeerConnection: () => Promise<void | any>;
274
+ refresh: () => Promise<void>;
275
+ }>;
276
+ getInboundTrack(inboundTrackId: string): Promise<void | {
277
+ callId: string;
278
+ clientId: string;
279
+ peerConnectionId: string;
280
+ trackId: string;
281
+ direction: "inbound";
282
+ readonly kind: "audio" | "video";
283
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
284
+ readonly marker: string | undefined;
285
+ readonly ssrc: bigint[];
286
+ getCall: () => Promise<void | any>;
287
+ getClient: () => Promise<void | any>;
288
+ getPeerConnection: () => Promise<void | any>;
289
+ refresh(): Promise<void>;
290
+ }>;
291
+ getOutboundTrack(outboundTrackId: string): Promise<void | {
292
+ callId: string;
293
+ clientId: string;
294
+ peerConnectionId: string;
295
+ trackId: string;
296
+ direction: "outbound";
297
+ readonly kind: "audio" | "video";
298
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
299
+ readonly marker: string | undefined;
300
+ readonly ssrc: bigint[];
301
+ getCall: () => Promise<void | any>;
302
+ getClient: () => Promise<void | any>;
303
+ getPeerConnection: () => Promise<void | any>;
304
+ refresh: () => Promise<void>;
305
+ }>;
306
+ refresh(): Promise<void>;
307
+ }>;
308
+ refresh: () => Promise<void>;
309
+ }>;
310
+ readonly clients: AsyncIterableIterator<void | {
311
+ clientId: string;
312
+ roomId: string;
313
+ serviceId: string;
314
+ mediaUnitId: string;
315
+ callId: string;
316
+ joined: bigint | undefined;
317
+ timeZoneId: string | undefined;
318
+ readonly browser: import("../models/samples_pb").Samples_ClientSample_Browser | undefined;
319
+ readonly engine: import("../models/samples_pb").Samples_ClientSample_Engine | undefined;
320
+ readonly operationSystem: import("../models/samples_pb").Samples_ClientSample_OperationSystem | undefined;
321
+ readonly platform: import("../models/samples_pb").Samples_ClientSample_Platform | undefined;
322
+ readonly peerConnectionIds: readonly string[];
323
+ readonly marker: string | undefined;
324
+ getCall: () => Promise<void | any>;
325
+ readonly peerConnections: AsyncIterableIterator<void | {
326
+ callId: string;
327
+ clientId: string;
328
+ peerConnectionId: string;
329
+ marker: string | undefined;
330
+ label: string | undefined;
331
+ mediaUnitId: string | undefined;
332
+ opened: bigint | undefined;
333
+ serviceId: string | undefined;
334
+ roomId: string | undefined;
335
+ userId: string | undefined;
336
+ getClient: () => Promise<void | any>;
337
+ getCall: () => Promise<void | any>;
338
+ readonly iceCandidatePairs: import("../models/samples_pb").Samples_ClientSample_IceCandidatePair[];
339
+ readonly iceRemoteCandidates: import("../models/samples_pb").Samples_ClientSample_IceRemoteCandidate[];
340
+ readonly iceLocalCandidates: import("../models/samples_pb").Samples_ClientSample_IceLocalCandidate[];
341
+ readonly transports: import("../models/samples_pb").Samples_ClientSample_PeerConnectionTransport[];
342
+ readonly inboundTrackIds: readonly string[];
343
+ readonly outboundTrackIds: readonly string[];
344
+ readonly inboundTracks: AsyncIterableIterator<void | {
345
+ callId: string;
346
+ clientId: string;
347
+ peerConnectionId: string;
348
+ trackId: string;
349
+ direction: "inbound";
350
+ readonly kind: "audio" | "video";
351
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
352
+ readonly marker: string | undefined;
353
+ readonly ssrc: bigint[];
354
+ getCall: () => Promise<void | any>;
355
+ getClient: () => Promise<void | any>;
356
+ getPeerConnection: () => Promise<void | any>;
357
+ refresh(): Promise<void>;
358
+ }>;
359
+ readonly outboundTracks: AsyncIterableIterator<void | {
360
+ callId: string;
361
+ clientId: string;
362
+ peerConnectionId: string;
363
+ trackId: string;
364
+ direction: "outbound";
365
+ readonly kind: "audio" | "video";
366
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
367
+ readonly marker: string | undefined;
368
+ readonly ssrc: bigint[];
369
+ getCall: () => Promise<void | any>;
370
+ getClient: () => Promise<void | any>;
371
+ getPeerConnection: () => Promise<void | any>;
372
+ refresh: () => Promise<void>;
373
+ }>;
374
+ readonly inboundAudioTracks: AsyncIterableIterator<void | {
375
+ callId: string;
376
+ clientId: string;
377
+ peerConnectionId: string;
378
+ trackId: string;
379
+ direction: "inbound";
380
+ readonly kind: "audio" | "video";
381
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
382
+ readonly marker: string | undefined;
383
+ readonly ssrc: bigint[];
384
+ getCall: () => Promise<void | any>;
385
+ getClient: () => Promise<void | any>;
386
+ getPeerConnection: () => Promise<void | any>;
387
+ refresh(): Promise<void>;
388
+ }>;
389
+ readonly outboundAudioTracks: AsyncIterableIterator<void | {
390
+ callId: string;
391
+ clientId: string;
392
+ peerConnectionId: string;
393
+ trackId: string;
394
+ direction: "outbound";
395
+ readonly kind: "audio" | "video";
396
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
397
+ readonly marker: string | undefined;
398
+ readonly ssrc: bigint[];
399
+ getCall: () => Promise<void | any>;
400
+ getClient: () => Promise<void | any>;
401
+ getPeerConnection: () => Promise<void | any>;
402
+ refresh: () => Promise<void>;
403
+ }>;
404
+ readonly inboundVideoTracks: AsyncIterableIterator<void | {
405
+ callId: string;
406
+ clientId: string;
407
+ peerConnectionId: string;
408
+ trackId: string;
409
+ direction: "inbound";
410
+ readonly kind: "audio" | "video";
411
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
412
+ readonly marker: string | undefined;
413
+ readonly ssrc: bigint[];
414
+ getCall: () => Promise<void | any>;
415
+ getClient: () => Promise<void | any>;
416
+ getPeerConnection: () => Promise<void | any>;
417
+ refresh(): Promise<void>;
418
+ }>;
419
+ readonly outboundVideoTracks: AsyncIterableIterator<void | {
420
+ callId: string;
421
+ clientId: string;
422
+ peerConnectionId: string;
423
+ trackId: string;
424
+ direction: "outbound";
425
+ readonly kind: "audio" | "video";
426
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
427
+ readonly marker: string | undefined;
428
+ readonly ssrc: bigint[];
429
+ getCall: () => Promise<void | any>;
430
+ getClient: () => Promise<void | any>;
431
+ getPeerConnection: () => Promise<void | any>;
432
+ refresh: () => Promise<void>;
433
+ }>;
434
+ getInboundTrack(inboundTrackId: string): Promise<void | {
435
+ callId: string;
436
+ clientId: string;
437
+ peerConnectionId: string;
438
+ trackId: string;
439
+ direction: "inbound";
440
+ readonly kind: "audio" | "video";
441
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
442
+ readonly marker: string | undefined;
443
+ readonly ssrc: bigint[];
444
+ getCall: () => Promise<void | any>;
445
+ getClient: () => Promise<void | any>;
446
+ getPeerConnection: () => Promise<void | any>;
447
+ refresh(): Promise<void>;
448
+ }>;
449
+ getOutboundTrack(outboundTrackId: string): Promise<void | {
450
+ callId: string;
451
+ clientId: string;
452
+ peerConnectionId: string;
453
+ trackId: string;
454
+ direction: "outbound";
455
+ readonly kind: "audio" | "video";
456
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
457
+ readonly marker: string | undefined;
458
+ readonly ssrc: bigint[];
459
+ getCall: () => Promise<void | any>;
460
+ getClient: () => Promise<void | any>;
461
+ getPeerConnection: () => Promise<void | any>;
462
+ refresh: () => Promise<void>;
463
+ }>;
464
+ refresh(): Promise<void>;
465
+ }>;
466
+ getPeerConnection: (peerConnectionId: string) => Promise<void | {
467
+ callId: string;
468
+ clientId: string;
469
+ peerConnectionId: string;
470
+ marker: string | undefined;
471
+ label: string | undefined;
472
+ mediaUnitId: string | undefined;
473
+ opened: bigint | undefined;
474
+ serviceId: string | undefined;
475
+ roomId: string | undefined;
476
+ userId: string | undefined;
477
+ getClient: () => Promise<void | any>;
478
+ getCall: () => Promise<void | any>;
479
+ readonly iceCandidatePairs: import("../models/samples_pb").Samples_ClientSample_IceCandidatePair[];
480
+ readonly iceRemoteCandidates: import("../models/samples_pb").Samples_ClientSample_IceRemoteCandidate[];
481
+ readonly iceLocalCandidates: import("../models/samples_pb").Samples_ClientSample_IceLocalCandidate[];
482
+ readonly transports: import("../models/samples_pb").Samples_ClientSample_PeerConnectionTransport[];
483
+ readonly inboundTrackIds: readonly string[];
484
+ readonly outboundTrackIds: readonly string[];
485
+ readonly inboundTracks: AsyncIterableIterator<void | {
486
+ callId: string;
487
+ clientId: string;
488
+ peerConnectionId: string;
489
+ trackId: string;
490
+ direction: "inbound";
491
+ readonly kind: "audio" | "video";
492
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
493
+ readonly marker: string | undefined;
494
+ readonly ssrc: bigint[];
495
+ getCall: () => Promise<void | any>;
496
+ getClient: () => Promise<void | any>;
497
+ getPeerConnection: () => Promise<void | any>;
498
+ refresh(): Promise<void>;
499
+ }>;
500
+ readonly outboundTracks: AsyncIterableIterator<void | {
501
+ callId: string;
502
+ clientId: string;
503
+ peerConnectionId: string;
504
+ trackId: string;
505
+ direction: "outbound";
506
+ readonly kind: "audio" | "video";
507
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
508
+ readonly marker: string | undefined;
509
+ readonly ssrc: bigint[];
510
+ getCall: () => Promise<void | any>;
511
+ getClient: () => Promise<void | any>;
512
+ getPeerConnection: () => Promise<void | any>;
513
+ refresh: () => Promise<void>;
514
+ }>;
515
+ readonly inboundAudioTracks: AsyncIterableIterator<void | {
516
+ callId: string;
517
+ clientId: string;
518
+ peerConnectionId: string;
519
+ trackId: string;
520
+ direction: "inbound";
521
+ readonly kind: "audio" | "video";
522
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
523
+ readonly marker: string | undefined;
524
+ readonly ssrc: bigint[];
525
+ getCall: () => Promise<void | any>;
526
+ getClient: () => Promise<void | any>;
527
+ getPeerConnection: () => Promise<void | any>;
528
+ refresh(): Promise<void>;
529
+ }>;
530
+ readonly outboundAudioTracks: AsyncIterableIterator<void | {
531
+ callId: string;
532
+ clientId: string;
533
+ peerConnectionId: string;
534
+ trackId: string;
535
+ direction: "outbound";
536
+ readonly kind: "audio" | "video";
537
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
538
+ readonly marker: string | undefined;
539
+ readonly ssrc: bigint[];
540
+ getCall: () => Promise<void | any>;
541
+ getClient: () => Promise<void | any>;
542
+ getPeerConnection: () => Promise<void | any>;
543
+ refresh: () => Promise<void>;
544
+ }>;
545
+ readonly inboundVideoTracks: AsyncIterableIterator<void | {
546
+ callId: string;
547
+ clientId: string;
548
+ peerConnectionId: string;
549
+ trackId: string;
550
+ direction: "inbound";
551
+ readonly kind: "audio" | "video";
552
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
553
+ readonly marker: string | undefined;
554
+ readonly ssrc: bigint[];
555
+ getCall: () => Promise<void | any>;
556
+ getClient: () => Promise<void | any>;
557
+ getPeerConnection: () => Promise<void | any>;
558
+ refresh(): Promise<void>;
559
+ }>;
560
+ readonly outboundVideoTracks: AsyncIterableIterator<void | {
561
+ callId: string;
562
+ clientId: string;
563
+ peerConnectionId: string;
564
+ trackId: string;
565
+ direction: "outbound";
566
+ readonly kind: "audio" | "video";
567
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
568
+ readonly marker: string | undefined;
569
+ readonly ssrc: bigint[];
570
+ getCall: () => Promise<void | any>;
571
+ getClient: () => Promise<void | any>;
572
+ getPeerConnection: () => Promise<void | any>;
573
+ refresh: () => Promise<void>;
574
+ }>;
575
+ getInboundTrack(inboundTrackId: string): Promise<void | {
576
+ callId: string;
577
+ clientId: string;
578
+ peerConnectionId: string;
579
+ trackId: string;
580
+ direction: "inbound";
581
+ readonly kind: "audio" | "video";
582
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_InboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_InboundVideoTrack[] | undefined;
583
+ readonly marker: string | undefined;
584
+ readonly ssrc: bigint[];
585
+ getCall: () => Promise<void | any>;
586
+ getClient: () => Promise<void | any>;
587
+ getPeerConnection: () => Promise<void | any>;
588
+ refresh(): Promise<void>;
589
+ }>;
590
+ getOutboundTrack(outboundTrackId: string): Promise<void | {
591
+ callId: string;
592
+ clientId: string;
593
+ peerConnectionId: string;
594
+ trackId: string;
595
+ direction: "outbound";
596
+ readonly kind: "audio" | "video";
597
+ readonly stats: import("../models/samples_pb").Samples_ClientSample_OutboundAudioTrack[] | import("../models/samples_pb").Samples_ClientSample_OutboundVideoTrack[] | undefined;
598
+ readonly marker: string | undefined;
599
+ readonly ssrc: bigint[];
600
+ getCall: () => Promise<void | any>;
601
+ getClient: () => Promise<void | any>;
602
+ getPeerConnection: () => Promise<void | any>;
603
+ refresh: () => Promise<void>;
604
+ }>;
605
+ refresh(): Promise<void>;
606
+ }>;
607
+ refresh: () => Promise<void>;
608
+ }>;
609
+ refresh: () => Promise<void>;
610
+ };
611
+ //# sourceMappingURL=CallEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallEntry.d.ts","sourceRoot":"","sources":["../../src/entries/CallEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAK9D,eAAO,MAAM,MAAM,0CAA8B,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAE3D,wBAAgB,eAAe,CAAC,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI;;;;;;0BAcjD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCzC"}