@ctchealth/plato-sdk 0.0.5 → 0.0.7
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.
- package/README.md +51 -8
- package/package.json +1 -1
- package/src/lib/plato-intefaces.d.ts +15 -0
- package/src/lib/plato-intefaces.js +18 -1
- package/src/lib/plato-intefaces.js.map +1 -1
- package/src/lib/plato-sdk.d.ts +8 -3
- package/src/lib/plato-sdk.js +19 -2
- package/src/lib/plato-sdk.js.map +1 -1
package/README.md
CHANGED
|
@@ -83,6 +83,11 @@ const simulation = await client.createSimulation({
|
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
|
|
86
|
+
// Check the simulation status - If simulation creation phase is equals to FINISHED, the simulation is ready to use
|
|
87
|
+
// If the simulation creation phase is ERROR the simulation creation failed and you need to retry creating a new one
|
|
88
|
+
// tip: you can also check the simulation status periodically using a polling mechanism
|
|
89
|
+
const status = await client.getSimulationStatus(simulation.simulationId);
|
|
90
|
+
|
|
86
91
|
// Start a voice call
|
|
87
92
|
const call = await client.startCall(simulation.simulationId);
|
|
88
93
|
|
|
@@ -124,9 +129,9 @@ new PlatoApiClient(config: ApiClientConfig)
|
|
|
124
129
|
|
|
125
130
|
##### createSimulation(params: CreateSimulationDto)
|
|
126
131
|
|
|
127
|
-
Creates a new medical training simulation.
|
|
132
|
+
Creates a new medical training simulation. It may take a few minutes for the simulation to be ready for use.
|
|
128
133
|
|
|
129
|
-
**Returns:** `Promise<{ simulationId: string }>`
|
|
134
|
+
**Returns:** `Promise<{ simulationId: string, phase: CreationPhase }>`
|
|
130
135
|
|
|
131
136
|
##### startCall(simulationId: string)
|
|
132
137
|
|
|
@@ -138,6 +143,48 @@ Starts a voice call with the AI persona for the specified simulation.
|
|
|
138
143
|
- `on<K>(event: K, listener: CallEventListener<K>)`: Subscribe to call events
|
|
139
144
|
- `off<K>(event: K, listener: CallEventListener<K>)`: Unsubscribe from call events
|
|
140
145
|
|
|
146
|
+
##### getCallDetails(callId: string)
|
|
147
|
+
|
|
148
|
+
Retrieves detailed information about a completed call, including transcript, summary, recording URL, ratings, and evaluation metrics.
|
|
149
|
+
|
|
150
|
+
**Parameters:**
|
|
151
|
+
- `callId` (string): The MongoDB `_id` of the call
|
|
152
|
+
|
|
153
|
+
**Returns:** `Promise<CallDTO>` — An object containing:
|
|
154
|
+
- `_id`: MongoDB ID of the call
|
|
155
|
+
- `summary`: Summary of the conversation
|
|
156
|
+
- `transcript`: Full transcript of the call
|
|
157
|
+
- `recordingUrl`: URL to access the call recording
|
|
158
|
+
- `rating`: User-provided rating (0-5)
|
|
159
|
+
- `successEvaluation`: Boolean indicating if the call was successful
|
|
160
|
+
- `score`: Overall score for the call
|
|
161
|
+
- `strengths`: Array of identified strengths
|
|
162
|
+
- `weaknesses`: Array of identified weaknesses
|
|
163
|
+
- `metric1`, `metric2`, `metric3`: Evaluation metric names
|
|
164
|
+
- `metric1Value`, `metric2Value`, `metric3Value`: Values for each metric
|
|
165
|
+
- `createdAt`: Timestamp when the call was created
|
|
166
|
+
- `endedAt`: Timestamp when the call ended
|
|
167
|
+
- And other call-related fields
|
|
168
|
+
|
|
169
|
+
**Example:**
|
|
170
|
+
```typescript
|
|
171
|
+
// After a call has ended, retrieve its details
|
|
172
|
+
const callDetails = await client.getCallDetails(call._id);
|
|
173
|
+
console.log('Call Summary:', callDetails.summary);
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Checking Simulation Status
|
|
177
|
+
|
|
178
|
+
You can check the current phase/status of a simulation using the `checkSimulationStatus` method. This is useful for polling the simulation creation process until it is ready or has failed.
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
const status = await client.checkSimulationStatus(simulation.simulationId);
|
|
182
|
+
console.log('Current phase:', status.phase); // e.g., 'FINISHED', 'ERROR', etc.
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
- **Returns:** `{ phase: CreationPhase }` — The current phase of the simulation creation process.
|
|
186
|
+
- **Typical usage:** Poll this method until the phase is `FINISHED` or `ERROR` before starting a call.
|
|
187
|
+
|
|
141
188
|
## Event System
|
|
142
189
|
|
|
143
190
|
The SDK provides a comprehensive event system for managing voice calls:
|
|
@@ -169,10 +216,6 @@ call.on('error', (error) => {
|
|
|
169
216
|
console.error('Call error:', error);
|
|
170
217
|
});
|
|
171
218
|
|
|
172
|
-
// Unsubscribe from events
|
|
173
|
-
const messageHandler = (message) => console.log(message);
|
|
174
|
-
call.on('message', messageHandler);
|
|
175
|
-
call.off('message', messageHandler);
|
|
176
219
|
```
|
|
177
220
|
|
|
178
221
|
## Data Types
|
|
@@ -219,7 +262,7 @@ try {
|
|
|
219
262
|
token: 'your-token',
|
|
220
263
|
user: 'your-user'
|
|
221
264
|
});
|
|
222
|
-
|
|
265
|
+
|
|
223
266
|
const simulation = await client.createSimulation(simulationConfig);
|
|
224
267
|
const call = await client.startCall(simulation.simulationId);
|
|
225
268
|
} catch (error) {
|
|
@@ -230,4 +273,4 @@ try {
|
|
|
230
273
|
|
|
231
274
|
## Support
|
|
232
275
|
|
|
233
|
-
For support and questions, please contact the development team
|
|
276
|
+
For support and questions, please contact the development team.
|
package/package.json
CHANGED
|
@@ -169,3 +169,18 @@ export interface CallDTO {
|
|
|
169
169
|
*/
|
|
170
170
|
inMemory: boolean;
|
|
171
171
|
}
|
|
172
|
+
export declare enum CreationStatus {
|
|
173
|
+
CREATING = "CREATING",
|
|
174
|
+
READY = "READY",
|
|
175
|
+
ERROR = "ERROR"
|
|
176
|
+
}
|
|
177
|
+
export declare enum CreationPhase {
|
|
178
|
+
STARTING = "STARTING",
|
|
179
|
+
CORE = "CORE",
|
|
180
|
+
BOUNDARIES = "BOUNDARIES",
|
|
181
|
+
SPEECH_AND_THOUGHT = "SPEECH_AND_THOUGHT",
|
|
182
|
+
CONVERSATION_EVOLUTION = "CONVERSATION_EVOLUTION",
|
|
183
|
+
MEMORY = "MEMORY",
|
|
184
|
+
FINISHED = "FINISHED",
|
|
185
|
+
ERROR = "ERROR"
|
|
186
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CreateSimulationDto = exports.TrainingConfigurationDto = exports.ProductConfig = exports.CharacterCreateDto = exports.ContextDto = exports.ProfessionalProfileDto = exports.PersonalityAndBehaviourDto = exports.AssistantVoiceGender = exports.SegmentType = exports.PracticeType = exports.YearOfExperience = void 0;
|
|
3
|
+
exports.CreationPhase = exports.CreationStatus = exports.CreateSimulationDto = exports.TrainingConfigurationDto = exports.ProductConfig = exports.CharacterCreateDto = exports.ContextDto = exports.ProfessionalProfileDto = exports.PersonalityAndBehaviourDto = exports.AssistantVoiceGender = exports.SegmentType = exports.PracticeType = exports.YearOfExperience = void 0;
|
|
4
4
|
var YearOfExperience;
|
|
5
5
|
(function (YearOfExperience) {
|
|
6
6
|
YearOfExperience["1-5"] = "1-5 years";
|
|
@@ -83,4 +83,21 @@ class CreateSimulationDto {
|
|
|
83
83
|
trainingConfiguration;
|
|
84
84
|
}
|
|
85
85
|
exports.CreateSimulationDto = CreateSimulationDto;
|
|
86
|
+
var CreationStatus;
|
|
87
|
+
(function (CreationStatus) {
|
|
88
|
+
CreationStatus["CREATING"] = "CREATING";
|
|
89
|
+
CreationStatus["READY"] = "READY";
|
|
90
|
+
CreationStatus["ERROR"] = "ERROR";
|
|
91
|
+
})(CreationStatus || (exports.CreationStatus = CreationStatus = {}));
|
|
92
|
+
var CreationPhase;
|
|
93
|
+
(function (CreationPhase) {
|
|
94
|
+
CreationPhase["STARTING"] = "STARTING";
|
|
95
|
+
CreationPhase["CORE"] = "CORE";
|
|
96
|
+
CreationPhase["BOUNDARIES"] = "BOUNDARIES";
|
|
97
|
+
CreationPhase["SPEECH_AND_THOUGHT"] = "SPEECH_AND_THOUGHT";
|
|
98
|
+
CreationPhase["CONVERSATION_EVOLUTION"] = "CONVERSATION_EVOLUTION";
|
|
99
|
+
CreationPhase["MEMORY"] = "MEMORY";
|
|
100
|
+
CreationPhase["FINISHED"] = "FINISHED";
|
|
101
|
+
CreationPhase["ERROR"] = "ERROR";
|
|
102
|
+
})(CreationPhase || (exports.CreationPhase = CreationPhase = {}));
|
|
86
103
|
//# sourceMappingURL=plato-intefaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plato-intefaces.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-intefaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAGD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,qCAAqB,CAAA;IACrB,iEAAiD,CAAA;IACjD,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AACD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,0EAA2D,CAAA;IAC3D,gFAAiE,CAAA;IACjE,qDAAsC,CAAA;IACtC,wEAAyD,CAAA;AAC3D,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,yCAAiB,CAAA;AACnB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAED,MAAa,0BAA0B;IACrC,aAAa,CAAU;IACvB,mBAAmB,CAAU;IAC7B,eAAe,CAAU;IACzB,YAAY,CAAU;IACtB,cAAc,CAAU;IACxB,kBAAkB,CAAU;IAC5B,YAAY,CAAU;CACvB;AARD,gEAQC;AAED,MAAa,sBAAsB;IACjC,gBAAgB,CAAU;IAC1B,gBAAgB,CAAU;IAC1B,uBAAuB,CAAU;IACjC,QAAQ,CAAU;CACnB;AALD,wDAKC;AAED,MAAa,UAAU;IACrB,2BAA2B,CAAU;IACrC,iBAAiB,CAAU;IAC3B,kBAAkB,CAAU;CAC7B;AAJD,gCAIC;AAED,MAAa,kBAAkB;IAC7B,IAAI,CAAU;IACd,mBAAmB,CAA0B;IAC7C,OAAO,CAAgB;IACvB,uBAAuB,CAA8B;IACrD,OAAO,CAAc;IACrB,eAAe,CAAyB;CACzC;AAPD,gDAOC;AAED,MAAa,aAAa;IACxB,IAAI,CAAU;IACd,WAAW,CAAU;CACtB;AAHD,sCAGC;AAED,MAAa,wBAAwB;IAC1B,kBAAkB,CAAU;IAC5B,sBAAsB,CAAU;IAChC,iBAAiB,CAAU;IAC3B,sBAAsB,CAAU;CAC1C;AALD,4DAKC;AAED,MAAa,mBAAmB;IAC9B,OAAO,CAAsB;IAC7B,OAAO,CAAiB;IACxB,YAAY,CAAU;IACtB,QAAQ,CAAU;IAClB,UAAU,CAAY;IACtB,qBAAqB,CAAY;IACjC,qBAAqB,CAA4B;CAClD;AARD,kDAQC"}
|
|
1
|
+
{"version":3,"file":"plato-intefaces.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-intefaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAGD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,qCAAqB,CAAA;IACrB,iEAAiD,CAAA;IACjD,iCAAiB,CAAA;AACnB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AACD,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,oDAAqC,CAAA;IACrC,0CAA2B,CAAA;IAC3B,0EAA2D,CAAA;IAC3D,gFAAiE,CAAA;IACjE,qDAAsC,CAAA;IACtC,wEAAyD,CAAA;AAC3D,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,yCAAiB,CAAA;AACnB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAED,MAAa,0BAA0B;IACrC,aAAa,CAAU;IACvB,mBAAmB,CAAU;IAC7B,eAAe,CAAU;IACzB,YAAY,CAAU;IACtB,cAAc,CAAU;IACxB,kBAAkB,CAAU;IAC5B,YAAY,CAAU;CACvB;AARD,gEAQC;AAED,MAAa,sBAAsB;IACjC,gBAAgB,CAAU;IAC1B,gBAAgB,CAAU;IAC1B,uBAAuB,CAAU;IACjC,QAAQ,CAAU;CACnB;AALD,wDAKC;AAED,MAAa,UAAU;IACrB,2BAA2B,CAAU;IACrC,iBAAiB,CAAU;IAC3B,kBAAkB,CAAU;CAC7B;AAJD,gCAIC;AAED,MAAa,kBAAkB;IAC7B,IAAI,CAAU;IACd,mBAAmB,CAA0B;IAC7C,OAAO,CAAgB;IACvB,uBAAuB,CAA8B;IACrD,OAAO,CAAc;IACrB,eAAe,CAAyB;CACzC;AAPD,gDAOC;AAED,MAAa,aAAa;IACxB,IAAI,CAAU;IACd,WAAW,CAAU;CACtB;AAHD,sCAGC;AAED,MAAa,wBAAwB;IAC1B,kBAAkB,CAAU;IAC5B,sBAAsB,CAAU;IAChC,iBAAiB,CAAU;IAC3B,sBAAsB,CAAU;CAC1C;AALD,4DAKC;AAED,MAAa,mBAAmB;IAC9B,OAAO,CAAsB;IAC7B,OAAO,CAAiB;IACxB,YAAY,CAAU;IACtB,QAAQ,CAAU;IAClB,UAAU,CAAY;IACtB,qBAAqB,CAAY;IACjC,qBAAqB,CAA4B;CAClD;AARD,kDAQC;AA2GD,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,iCAAe,CAAA;IACf,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AACD,IAAY,aASX;AATD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,0DAAyC,CAAA;IACzC,kEAAiD,CAAA;IACjD,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACjB,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB"}
|
package/src/lib/plato-sdk.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CreateSimulationDto } from './plato-intefaces';
|
|
1
|
+
import { CallDTO, CreateSimulationDto, CreationPhase } from './plato-intefaces';
|
|
2
2
|
export interface ApiClientConfig {
|
|
3
3
|
baseUrl: string;
|
|
4
4
|
token?: string;
|
|
@@ -39,20 +39,25 @@ export declare class PlatoApiClient {
|
|
|
39
39
|
* @param event Event name
|
|
40
40
|
* @param listener Listener function
|
|
41
41
|
*/
|
|
42
|
-
on
|
|
42
|
+
private on;
|
|
43
43
|
/**
|
|
44
44
|
* Remove a listener for a call event with strict typing.
|
|
45
45
|
* @param event Event name
|
|
46
46
|
* @param listener Listener function
|
|
47
47
|
*/
|
|
48
|
-
off
|
|
48
|
+
private off;
|
|
49
49
|
/**
|
|
50
50
|
* Internal: Attach event listeners and propagate to registered listeners.
|
|
51
51
|
*/
|
|
52
52
|
private attachEvents;
|
|
53
53
|
createSimulation(createSimulationParams: CreateSimulationDto): Promise<{
|
|
54
54
|
simulationId: string;
|
|
55
|
+
phase: CreationPhase;
|
|
55
56
|
}>;
|
|
57
|
+
checkSimulationStatus(simulationId: string): Promise<{
|
|
58
|
+
phase: CreationPhase;
|
|
59
|
+
}>;
|
|
60
|
+
getCallDetails(callId: string): Promise<CallDTO>;
|
|
56
61
|
/**
|
|
57
62
|
* Remove all listeners for all call events.
|
|
58
63
|
*/
|
package/src/lib/plato-sdk.js
CHANGED
|
@@ -86,7 +86,8 @@ class PlatoApiClient {
|
|
|
86
86
|
...createSimulationParams,
|
|
87
87
|
});
|
|
88
88
|
return {
|
|
89
|
-
simulationId: res.data,
|
|
89
|
+
simulationId: res.data.simulationId,
|
|
90
|
+
phase: res.data.phase,
|
|
90
91
|
};
|
|
91
92
|
}
|
|
92
93
|
catch (e) {
|
|
@@ -96,6 +97,22 @@ class PlatoApiClient {
|
|
|
96
97
|
throw e;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
100
|
+
async checkSimulationStatus(simulationId) {
|
|
101
|
+
const res = await this.http.get(`/api/v1/simulation/status/${simulationId}`);
|
|
102
|
+
return res.data;
|
|
103
|
+
}
|
|
104
|
+
async getCallDetails(callId) {
|
|
105
|
+
try {
|
|
106
|
+
const res = await this.http.get(`/api/v1/simulation/call/${callId}`);
|
|
107
|
+
return res.data;
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
if (axios_1.default.isAxiosError(e)) {
|
|
111
|
+
console.error('Error getting call details:', e.response?.data.message);
|
|
112
|
+
}
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
99
116
|
/**
|
|
100
117
|
* Remove all listeners for all call events.
|
|
101
118
|
*/
|
|
@@ -113,7 +130,7 @@ class PlatoApiClient {
|
|
|
113
130
|
this.eventsAttached = false;
|
|
114
131
|
}
|
|
115
132
|
async startCall(simulationId) {
|
|
116
|
-
this.callControllerInstance = new web_1.default('f07d17ec-d4e6-487d-a0b9-0539c01aecbb', 'https://
|
|
133
|
+
this.callControllerInstance = new web_1.default('f07d17ec-d4e6-487d-a0b9-0539c01aecbb', 'https://db41aykk1gw9e.cloudfront.net');
|
|
117
134
|
if (!this.eventsAttached) {
|
|
118
135
|
this.attachEvents();
|
|
119
136
|
}
|
package/src/lib/plato-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plato-sdk.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-sdk.ts"],"names":[],"mappings":";;;;AAAA,0DAA6C;AAE7C,+DAAgC;AAkChC,MAAa,cAAc;IAiBL;IAhBZ,IAAI,CAAgB;IAC5B,sEAAsE;IAC9D,cAAc,GAAgD,EAAE,CAAC;IACjE,sBAAsB,CAAQ;IAC9B,cAAc,GAAG,KAAK,CAAC;IAC/B,UAAU,GAAqB;QAC7B,YAAY;QACZ,UAAU;QACV,cAAc;QACd,YAAY;QACZ,OAAO;QACP,SAAS;QACT,cAAc;KACf,CAAC;IAGF,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,gBAAgB,EAAE,MAAM,CAAC,IAAI;aAC9B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;
|
|
1
|
+
{"version":3,"file":"plato-sdk.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-sdk.ts"],"names":[],"mappings":"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"}
|