filepizza-client 2.0.0-alpha.3 → 2.1.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.
- package/README.md +50 -4
- package/dist/filepizza-downloader.d.ts +18 -100
- package/dist/filepizza-downloader.js +88 -215
- package/dist/filepizza-downloader.js.map +1 -1
- package/dist/filepizza-uploader.d.ts +14 -95
- package/dist/filepizza-uploader.js +79 -249
- package/dist/filepizza-uploader.js.map +1 -1
- package/dist/peerjs.d.ts +12 -0
- package/dist/peerjs.js +85 -0
- package/dist/peerjs.js.map +1 -0
- package/dist/types.d.ts +6 -2
- package/dist/types.js +4 -2
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/filepizza-downloader.ts +373 -459
- package/src/filepizza-uploader.ts +237 -391
- package/src/peerjs.ts +125 -0
- package/src/types.ts +37 -28
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
// src/filepizza-downloader.ts
|
|
2
|
-
import Peer from 'peerjs';
|
|
3
1
|
import { EventEmitter } from './event-emitter';
|
|
4
2
|
import { DownloadHelper } from './download-helper';
|
|
5
|
-
import { ConnectionStatus, MessageType } from './types';
|
|
3
|
+
import { ConnectionStatus, MessageType, } from './types';
|
|
4
|
+
import { createPeer } from './peerjs';
|
|
6
5
|
/**
|
|
7
|
-
* FilePizza Downloader - connects to FilePizza uploads
|
|
6
|
+
* FilePizza Downloader - connects to FilePizza uploads.
|
|
8
7
|
*/
|
|
9
8
|
export class FilePizzaDownloader extends EventEmitter {
|
|
10
|
-
/**
|
|
11
|
-
* Create a new FilePizza downloader
|
|
12
|
-
* @param options Configuration options
|
|
13
|
-
*/
|
|
14
9
|
constructor(options = {}) {
|
|
15
10
|
super();
|
|
16
11
|
this.filesInfo = [];
|
|
@@ -24,37 +19,20 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
24
19
|
this.isPasswordInvalid = false;
|
|
25
20
|
this.completedFiles = [];
|
|
26
21
|
this.filePizzaServerUrl = options.filePizzaServerUrl || 'http://localhost:8081';
|
|
22
|
+
this.peerJSSignalingServer = options.peerJSSignalingServer;
|
|
23
|
+
this.discoverPeerJSSignalingServer =
|
|
24
|
+
options.discoverPeerJSSignalingServer ?? true;
|
|
27
25
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Initialize the downloader
|
|
30
|
-
*/
|
|
31
26
|
async initialize() {
|
|
32
27
|
if (this.peer) {
|
|
33
28
|
return;
|
|
34
29
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
config: {
|
|
40
|
-
iceServers: this.iceServers || [{ urls: 'stun:stun.l.google.com:19302' }],
|
|
41
|
-
},
|
|
42
|
-
debug: 2,
|
|
30
|
+
this.peer = await createPeer({
|
|
31
|
+
filePizzaServerUrl: this.filePizzaServerUrl,
|
|
32
|
+
peerJSSignalingServer: this.peerJSSignalingServer,
|
|
33
|
+
discoverPeerJSSignalingServer: this.discoverPeerJSSignalingServer,
|
|
43
34
|
});
|
|
44
|
-
// Wait for peer to be ready
|
|
45
|
-
if (!this.peer.id) {
|
|
46
|
-
await new Promise((resolve) => {
|
|
47
|
-
const onOpen = () => {
|
|
48
|
-
this.peer?.off('open', onOpen);
|
|
49
|
-
resolve();
|
|
50
|
-
};
|
|
51
|
-
this.peer?.on('open', onOpen);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
35
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Connect to an uploader using a FilePizza URL or slug
|
|
57
|
-
*/
|
|
58
36
|
async connect(urlOrSlug) {
|
|
59
37
|
this.resetConnectionState();
|
|
60
38
|
const slug = this.extractSlug(urlOrSlug);
|
|
@@ -68,9 +46,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
68
46
|
return false;
|
|
69
47
|
}
|
|
70
48
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Reset the connection state to begin new download
|
|
73
|
-
*/
|
|
74
49
|
resetConnectionState() {
|
|
75
50
|
this.cleanupFileStreams();
|
|
76
51
|
this.filesInfo = [];
|
|
@@ -82,14 +57,12 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
82
57
|
this.isPasswordRequired = false;
|
|
83
58
|
this.isPasswordInvalid = false;
|
|
84
59
|
this.errorMessage = undefined;
|
|
60
|
+
this.status = ConnectionStatus.Pending;
|
|
85
61
|
if (this.connection && this.connection.open) {
|
|
86
62
|
this.connection.close();
|
|
87
63
|
}
|
|
88
64
|
this.connection = undefined;
|
|
89
65
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Submit password for protected download
|
|
92
|
-
*/
|
|
93
66
|
submitPassword(password) {
|
|
94
67
|
if (!this.connection || this.status !== ConnectionStatus.Authenticating) {
|
|
95
68
|
throw new Error('Not in authentication state');
|
|
@@ -99,9 +72,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
99
72
|
password,
|
|
100
73
|
});
|
|
101
74
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Start downloading the files
|
|
104
|
-
*/
|
|
105
75
|
async startDownload() {
|
|
106
76
|
if (!this.connection) {
|
|
107
77
|
throw new Error('Not connected');
|
|
@@ -116,14 +86,9 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
116
86
|
this.currentFileIndex = 0;
|
|
117
87
|
this.currentFileBytesReceived = 0;
|
|
118
88
|
this.totalBytesReceived = 0;
|
|
119
|
-
// Initialize file streams
|
|
120
89
|
this.initializeFileStreams();
|
|
121
|
-
// Request the first file
|
|
122
90
|
this.requestNextFile();
|
|
123
91
|
}
|
|
124
|
-
/**
|
|
125
|
-
* Pause the download
|
|
126
|
-
*/
|
|
127
92
|
pauseDownload() {
|
|
128
93
|
if (!this.connection || this.status !== ConnectionStatus.Downloading) {
|
|
129
94
|
return;
|
|
@@ -133,24 +98,20 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
133
98
|
this.emit('paused');
|
|
134
99
|
}
|
|
135
100
|
/**
|
|
136
|
-
*
|
|
101
|
+
* Kept for public API compatibility.
|
|
102
|
+
*
|
|
103
|
+
* The server frontend protocol currently supports pause/stop, not resume.
|
|
104
|
+
* A paused transfer should be restarted by creating a new connection.
|
|
137
105
|
*/
|
|
138
106
|
resumeDownload() {
|
|
139
|
-
if (
|
|
107
|
+
if (this.status !== ConnectionStatus.Paused) {
|
|
140
108
|
return;
|
|
141
109
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
offset: this.currentFileBytesReceived,
|
|
147
|
-
});
|
|
148
|
-
this.status = ConnectionStatus.Downloading;
|
|
149
|
-
this.emit('resumed');
|
|
110
|
+
this.errorMessage =
|
|
111
|
+
'Resume is not supported by the current FilePizza server protocol. Please reconnect and restart the download.';
|
|
112
|
+
this.status = ConnectionStatus.Error;
|
|
113
|
+
this.emit('error', this.errorMessage);
|
|
150
114
|
}
|
|
151
|
-
/**
|
|
152
|
-
* Cancel the download
|
|
153
|
-
*/
|
|
154
115
|
cancelDownload() {
|
|
155
116
|
this.cleanupFileStreams();
|
|
156
117
|
if (this.connection) {
|
|
@@ -162,9 +123,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
162
123
|
this.status = ConnectionStatus.Closed;
|
|
163
124
|
this.emit('cancelled');
|
|
164
125
|
}
|
|
165
|
-
/**
|
|
166
|
-
* Cleanup resources when done
|
|
167
|
-
*/
|
|
168
126
|
cleanupFileStreams() {
|
|
169
127
|
for (const [fileName, fileStreamData] of this.fileStreams.entries()) {
|
|
170
128
|
try {
|
|
@@ -178,15 +136,9 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
178
136
|
}
|
|
179
137
|
this.fileStreams.clear();
|
|
180
138
|
}
|
|
181
|
-
/**
|
|
182
|
-
* Get file information
|
|
183
|
-
*/
|
|
184
139
|
getFileInfo() {
|
|
185
140
|
return this.filesInfo;
|
|
186
141
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Get download status
|
|
189
|
-
*/
|
|
190
142
|
getStatus() {
|
|
191
143
|
return {
|
|
192
144
|
status: this.status,
|
|
@@ -195,9 +147,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
195
147
|
errorMessage: this.errorMessage,
|
|
196
148
|
};
|
|
197
149
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Get progress information
|
|
200
|
-
*/
|
|
201
150
|
getProgress() {
|
|
202
151
|
return {
|
|
203
152
|
fileIndex: this.currentFileIndex,
|
|
@@ -210,93 +159,79 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
210
159
|
totalBytes: this.totalBytes,
|
|
211
160
|
};
|
|
212
161
|
}
|
|
213
|
-
/**
|
|
214
|
-
* Extract slug from URL or use directly
|
|
215
|
-
*/
|
|
216
162
|
extractSlug(urlOrSlug) {
|
|
217
|
-
// Check if it's a URL
|
|
218
163
|
if (urlOrSlug.startsWith('http')) {
|
|
219
164
|
const url = new URL(urlOrSlug);
|
|
220
165
|
const pathParts = url.pathname.split('/').filter(Boolean);
|
|
221
|
-
// Extract the download slug
|
|
222
166
|
if (pathParts[0] === 'download' && pathParts.length > 1) {
|
|
223
167
|
return pathParts.slice(1).join('/');
|
|
224
168
|
}
|
|
225
|
-
|
|
226
|
-
throw new Error('Invalid FilePizza URL');
|
|
227
|
-
}
|
|
169
|
+
throw new Error('Invalid FilePizza URL');
|
|
228
170
|
}
|
|
229
|
-
// If it's not a URL, assume it's already a slug
|
|
230
171
|
return urlOrSlug;
|
|
231
172
|
}
|
|
173
|
+
async fetchChannel(slug) {
|
|
174
|
+
const response = await fetch(`${this.filePizzaServerUrl}/api/channel/${slug}`);
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
throw new Error(`FilePizza server returned ${response.status}`);
|
|
177
|
+
}
|
|
178
|
+
return response.json();
|
|
179
|
+
}
|
|
232
180
|
/**
|
|
233
|
-
*
|
|
181
|
+
* Fallback for older FilePizza servers that do not expose /api/channel/:slug.
|
|
234
182
|
*/
|
|
235
|
-
async
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const additionalIDs = additionalMatch[1].split(',')
|
|
256
|
-
.map(id => id.trim().replace(/\\"|"/g, ''))
|
|
257
|
-
.filter(id => id.length > 0);
|
|
258
|
-
uploaderIDs.push(...additionalIDs);
|
|
259
|
-
}
|
|
260
|
-
return uploaderIDs;
|
|
261
|
-
}
|
|
262
|
-
else if (singleMatch && singleMatch[1]) {
|
|
263
|
-
// Handle single uploader case
|
|
264
|
-
return [singleMatch[1]];
|
|
183
|
+
async extractUploaderPeerIDsFromHtml(slug) {
|
|
184
|
+
const response = await fetch(`${this.filePizzaServerUrl}/download/${slug}`);
|
|
185
|
+
if (!response.ok) {
|
|
186
|
+
throw new Error(`FilePizza server returned ${response.status}`);
|
|
187
|
+
}
|
|
188
|
+
const html = await response.text();
|
|
189
|
+
if (!html || html.trim() === '') {
|
|
190
|
+
throw new Error('Received empty response from server');
|
|
191
|
+
}
|
|
192
|
+
const primaryMatch = html.match(/\\"primaryUploaderID\\":\\"([^\\]+)\\"/);
|
|
193
|
+
const singleMatch = html.match(/\\"uploaderPeerID\\":\\"([^\\]+)\\"/);
|
|
194
|
+
if (primaryMatch && primaryMatch[1]) {
|
|
195
|
+
const uploaderIDs = [primaryMatch[1]];
|
|
196
|
+
const additionalMatch = html.match(/\\"additionalUploaders\\":\[([^\]]+)\]/);
|
|
197
|
+
if (additionalMatch && additionalMatch[1]) {
|
|
198
|
+
const additionalIDs = additionalMatch[1]
|
|
199
|
+
.split(',')
|
|
200
|
+
.map((id) => id.trim().replace(/\\"|"/g, ''))
|
|
201
|
+
.filter((id) => id.length > 0);
|
|
202
|
+
uploaderIDs.push(...additionalIDs);
|
|
265
203
|
}
|
|
266
|
-
|
|
204
|
+
return uploaderIDs;
|
|
267
205
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
throw new Error('Failed to look up uploader information');
|
|
206
|
+
if (singleMatch && singleMatch[1]) {
|
|
207
|
+
return [singleMatch[1]];
|
|
271
208
|
}
|
|
209
|
+
throw new Error('Could not find uploader peer ID');
|
|
272
210
|
}
|
|
273
|
-
|
|
274
|
-
* Look up the uploader's peer ID from the FilePizza server
|
|
275
|
-
*/
|
|
276
|
-
async lookupUploaderPeerID(slug) {
|
|
211
|
+
async extractUploaderPeerIDs(slug) {
|
|
277
212
|
try {
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
return uploaderIDs[0];
|
|
213
|
+
const channel = await this.fetchChannel(slug);
|
|
214
|
+
return [
|
|
215
|
+
channel.uploaderPeerID,
|
|
216
|
+
...(channel.additionalUploaders || []),
|
|
217
|
+
].filter(Boolean);
|
|
284
218
|
}
|
|
285
219
|
catch (error) {
|
|
286
|
-
console.
|
|
287
|
-
|
|
220
|
+
console.warn('Falling back to HTML parsing because /api/channel lookup failed:', error);
|
|
221
|
+
return this.extractUploaderPeerIDsFromHtml(slug);
|
|
288
222
|
}
|
|
289
223
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
224
|
+
async lookupUploaderPeerID(slug) {
|
|
225
|
+
const uploaderIDs = await this.extractUploaderPeerIDs(slug);
|
|
226
|
+
if (uploaderIDs.length === 0) {
|
|
227
|
+
throw new Error('No uploader peer IDs found');
|
|
228
|
+
}
|
|
229
|
+
return uploaderIDs[0];
|
|
230
|
+
}
|
|
293
231
|
async getAvailableUploaders(urlOrSlug) {
|
|
294
232
|
const slug = this.extractSlug(urlOrSlug);
|
|
295
233
|
return this.extractUploaderPeerIDs(slug);
|
|
296
234
|
}
|
|
297
|
-
/**
|
|
298
|
-
* Connect to a specific uploader by ID
|
|
299
|
-
*/
|
|
300
235
|
async connectToUploader(uploaderId) {
|
|
301
236
|
try {
|
|
302
237
|
return this.connectToPeer(uploaderId);
|
|
@@ -307,44 +242,17 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
307
242
|
return false;
|
|
308
243
|
}
|
|
309
244
|
}
|
|
310
|
-
/**
|
|
311
|
-
* Get ICE servers from the FilePizza server
|
|
312
|
-
*/
|
|
313
|
-
async getIceServers() {
|
|
314
|
-
try {
|
|
315
|
-
const response = await fetch(`${this.filePizzaServerUrl}/api/ice`, {
|
|
316
|
-
method: 'POST',
|
|
317
|
-
});
|
|
318
|
-
if (!response.ok) {
|
|
319
|
-
throw new Error(`Failed to get ICE servers: ${response.status}`);
|
|
320
|
-
}
|
|
321
|
-
const data = await response.json();
|
|
322
|
-
this.iceServers = data.iceServers;
|
|
323
|
-
return data.iceServers;
|
|
324
|
-
}
|
|
325
|
-
catch (error) {
|
|
326
|
-
console.error('Error getting ICE servers:', error);
|
|
327
|
-
return [{ urls: 'stun:stun.l.google.com:19302' }];
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Connect directly to a peer
|
|
332
|
-
*/
|
|
333
245
|
async connectToPeer(peerId) {
|
|
334
|
-
// Make sure we're initialized
|
|
335
246
|
await this.initialize();
|
|
336
247
|
if (!this.peer) {
|
|
337
248
|
throw new Error('Peer not initialized');
|
|
338
249
|
}
|
|
339
250
|
try {
|
|
340
|
-
// Close existing connection if any
|
|
341
251
|
if (this.connection) {
|
|
342
252
|
this.connection.close();
|
|
343
253
|
}
|
|
344
|
-
// Connect to the uploader
|
|
345
254
|
this.connection = this.peer.connect(peerId, { reliable: true });
|
|
346
255
|
this.status = ConnectionStatus.Pending;
|
|
347
|
-
// Set up connection event handlers
|
|
348
256
|
return new Promise((resolve) => {
|
|
349
257
|
if (!this.connection) {
|
|
350
258
|
resolve(false);
|
|
@@ -352,18 +260,15 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
352
260
|
}
|
|
353
261
|
this.connection.on('open', () => {
|
|
354
262
|
this.status = ConnectionStatus.Ready;
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
this.
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
mobileModel: this.getMobileModel(),
|
|
365
|
-
});
|
|
366
|
-
}
|
|
263
|
+
this.connection?.send({
|
|
264
|
+
type: MessageType.RequestInfo,
|
|
265
|
+
browserName: this.getBrowserName(),
|
|
266
|
+
browserVersion: this.getBrowserVersion(),
|
|
267
|
+
osName: this.getOSName(),
|
|
268
|
+
osVersion: this.getOSVersion(),
|
|
269
|
+
mobileVendor: this.getMobileVendor(),
|
|
270
|
+
mobileModel: this.getMobileModel(),
|
|
271
|
+
});
|
|
367
272
|
this.emit('connected');
|
|
368
273
|
resolve(true);
|
|
369
274
|
});
|
|
@@ -385,12 +290,8 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
385
290
|
return false;
|
|
386
291
|
}
|
|
387
292
|
}
|
|
388
|
-
/**
|
|
389
|
-
* Handle incoming data from uploader
|
|
390
|
-
*/
|
|
391
293
|
handleData(data) {
|
|
392
294
|
try {
|
|
393
|
-
// WebRTC messages follow a specific format with a type field
|
|
394
295
|
const message = data;
|
|
395
296
|
switch (message.type) {
|
|
396
297
|
case MessageType.PasswordRequired:
|
|
@@ -416,9 +317,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
416
317
|
this.emit('error', this.errorMessage);
|
|
417
318
|
}
|
|
418
319
|
}
|
|
419
|
-
/**
|
|
420
|
-
* Handle password required message
|
|
421
|
-
*/
|
|
422
320
|
handlePasswordRequired(message) {
|
|
423
321
|
this.isPasswordRequired = true;
|
|
424
322
|
this.status = ConnectionStatus.Authenticating;
|
|
@@ -431,40 +329,28 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
431
329
|
this.emit('passwordRequired');
|
|
432
330
|
}
|
|
433
331
|
}
|
|
434
|
-
/**
|
|
435
|
-
* Handle file info message
|
|
436
|
-
*/
|
|
437
332
|
handleInfo(message) {
|
|
438
333
|
this.filesInfo = message.files;
|
|
439
334
|
this.totalBytes = this.filesInfo.reduce((sum, file) => sum + file.size, 0);
|
|
440
335
|
this.isPasswordRequired = false;
|
|
441
336
|
this.isPasswordInvalid = false;
|
|
337
|
+
this.errorMessage = undefined;
|
|
442
338
|
this.status = ConnectionStatus.Ready;
|
|
443
339
|
this.emit('info', this.filesInfo);
|
|
444
340
|
}
|
|
445
|
-
/**
|
|
446
|
-
* Handle error message
|
|
447
|
-
*/
|
|
448
341
|
handleError(message) {
|
|
449
342
|
this.errorMessage = message.error;
|
|
450
343
|
this.status = ConnectionStatus.Error;
|
|
451
344
|
this.emit('error', this.errorMessage);
|
|
452
345
|
}
|
|
453
|
-
/**
|
|
454
|
-
* Handle report message (channel reported for violation)
|
|
455
|
-
*/
|
|
456
346
|
handleReport() {
|
|
457
347
|
this.emit('reported');
|
|
458
|
-
// Redirect to reported page if in browser
|
|
459
348
|
if (typeof window !== 'undefined') {
|
|
460
349
|
window.location.href = `${this.filePizzaServerUrl}/reported`;
|
|
461
350
|
}
|
|
462
351
|
}
|
|
463
|
-
/**
|
|
464
|
-
* Handle chunk message
|
|
465
|
-
*/
|
|
466
352
|
handleChunk(message) {
|
|
467
|
-
const { fileName, bytes, final } = message;
|
|
353
|
+
const { fileName, bytes, final, offset } = message;
|
|
468
354
|
const fileStream = this.fileStreams.get(fileName);
|
|
469
355
|
if (!fileStream) {
|
|
470
356
|
console.error(`No stream found for file: ${fileName}`);
|
|
@@ -480,6 +366,12 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
480
366
|
console.error(`Error enqueueing data for ${fileName}:`, error);
|
|
481
367
|
return;
|
|
482
368
|
}
|
|
369
|
+
this.connection?.send({
|
|
370
|
+
type: MessageType.ChunkAck,
|
|
371
|
+
fileName,
|
|
372
|
+
offset,
|
|
373
|
+
bytesReceived: data.byteLength,
|
|
374
|
+
});
|
|
483
375
|
this.emit('progress', this.getProgress());
|
|
484
376
|
if (final) {
|
|
485
377
|
try {
|
|
@@ -496,13 +388,11 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
496
388
|
}
|
|
497
389
|
else {
|
|
498
390
|
this.status = ConnectionStatus.Done;
|
|
391
|
+
this.connection?.send({ type: MessageType.Done });
|
|
499
392
|
this.emit('complete', this.completedFiles);
|
|
500
393
|
}
|
|
501
394
|
}
|
|
502
395
|
}
|
|
503
|
-
/**
|
|
504
|
-
* Initialize streams for all files
|
|
505
|
-
*/
|
|
506
396
|
initializeFileStreams() {
|
|
507
397
|
this.cleanupFileStreams();
|
|
508
398
|
for (const fileInfo of this.filesInfo) {
|
|
@@ -531,12 +421,9 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
531
421
|
});
|
|
532
422
|
}
|
|
533
423
|
}
|
|
534
|
-
/**
|
|
535
|
-
* Store a completed file
|
|
536
|
-
*/
|
|
537
424
|
async storeCompletedFile(fileName) {
|
|
538
425
|
const fileStream = this.fileStreams.get(fileName);
|
|
539
|
-
const fileInfo = this.filesInfo.find(info => info.fileName === fileName);
|
|
426
|
+
const fileInfo = this.filesInfo.find((info) => info.fileName === fileName);
|
|
540
427
|
if (!fileStream || !fileInfo) {
|
|
541
428
|
console.error(`No stream or file info found for file: ${fileName}`);
|
|
542
429
|
return;
|
|
@@ -555,11 +442,8 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
555
442
|
this.emit('error', `Failed to store file: ${error.message}`);
|
|
556
443
|
}
|
|
557
444
|
}
|
|
558
|
-
/**
|
|
559
|
-
* Download a completed file
|
|
560
|
-
*/
|
|
561
445
|
async downloadFile(fileName) {
|
|
562
|
-
const completedFile = this.completedFiles.find(file => file.fileName === fileName);
|
|
446
|
+
const completedFile = this.completedFiles.find((file) => file.fileName === fileName);
|
|
563
447
|
if (!completedFile) {
|
|
564
448
|
throw new Error(`File not found: ${fileName}`);
|
|
565
449
|
}
|
|
@@ -571,15 +455,9 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
571
455
|
throw new Error(`Failed to download file: ${error.message}`);
|
|
572
456
|
}
|
|
573
457
|
}
|
|
574
|
-
/**
|
|
575
|
-
* Get completed files
|
|
576
|
-
*/
|
|
577
458
|
getCompletedFiles() {
|
|
578
459
|
return [...this.completedFiles];
|
|
579
460
|
}
|
|
580
|
-
/**
|
|
581
|
-
* Download all completed files
|
|
582
|
-
*/
|
|
583
461
|
async downloadAllFiles() {
|
|
584
462
|
for (const file of this.completedFiles) {
|
|
585
463
|
try {
|
|
@@ -587,13 +465,9 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
587
465
|
}
|
|
588
466
|
catch (error) {
|
|
589
467
|
console.error(`Error downloading file ${file.fileName}:`, error);
|
|
590
|
-
// Continue with other files even if one fails
|
|
591
468
|
}
|
|
592
469
|
}
|
|
593
470
|
}
|
|
594
|
-
/**
|
|
595
|
-
* Request the next file
|
|
596
|
-
*/
|
|
597
471
|
requestNextFile() {
|
|
598
472
|
if (!this.connection || this.currentFileIndex >= this.filesInfo.length) {
|
|
599
473
|
return;
|
|
@@ -605,7 +479,6 @@ export class FilePizzaDownloader extends EventEmitter {
|
|
|
605
479
|
offset: 0,
|
|
606
480
|
});
|
|
607
481
|
}
|
|
608
|
-
// Browser detection helper methods
|
|
609
482
|
getBrowserName() {
|
|
610
483
|
if (typeof navigator === 'undefined')
|
|
611
484
|
return 'unknown';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filepizza-downloader.js","sourceRoot":"","sources":["../src/filepizza-downloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filepizza-downloader.js","sourceRoot":"","sources":["../src/filepizza-downloader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAGL,gBAAgB,EAEhB,WAAW,GAEZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAarC;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAyBnD,YAAY,UAA6B,EAAE;QACzC,KAAK,EAAE,CAAA;QAtBD,cAAS,GAAe,EAAE,CAAA;QAC1B,qBAAgB,GAAG,CAAC,CAAA;QACpB,6BAAwB,GAAG,CAAC,CAAA;QAC5B,uBAAkB,GAAG,CAAC,CAAA;QACtB,eAAU,GAAG,CAAC,CAAA;QACd,WAAM,GAAG,gBAAgB,CAAC,OAAO,CAAA;QACjC,gBAAW,GAOf,IAAI,GAAG,EAAE,CAAA;QACL,uBAAkB,GAAG,KAAK,CAAA;QAC1B,sBAAiB,GAAG,KAAK,CAAA;QAEzB,mBAAc,GAAoB,EAAE,CAAA;QAM1C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,uBAAuB,CAAA;QAC/E,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;QAC1D,IAAI,CAAC,6BAA6B;YAChC,OAAO,CAAC,6BAA6B,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAM;QACR,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,MAAM,UAAU,CAAC;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;SAClE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAExC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAC7F,EAAE,CAAA;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;QAC/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,WAAW,CAAC,WAAW;YAC7B,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAA;QAC1C,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAE3B,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,WAAW,EAAE,CAAC;YACrE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5C,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY;YACf,8GAA8G,CAAA;QAChH,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACzB,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACxB,CAAC;IAEO,kBAAkB;QACxB,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC3C,cAAc,CAAC,KAAK,EAAE,CAAA;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,SAAS;QAMP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,gBAAgB;YAChC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,IAAI,EAAE;YAC/D,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YACjC,mBAAmB,EACjB,IAAI,CAAC,wBAAwB;gBAC7B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;YACpD,eAAe,EAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YACjE,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAA;IACH,CAAC;IAEO,WAAW,CAAC,SAAiB;QACnC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;YAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAEzD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,gBAAgB,IAAI,EAAE,CAAC,CAAA;QAE9E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,8BAA8B,CAAC,IAAY;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,kBAAkB,aAAa,IAAI,EAAE,CAAC,CAAA;QAE3E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAErE,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;YAErC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC5E,IAAI,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC;qBACrC,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;qBAC5C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAEhC,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;YACpC,CAAC;YAED,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,IAAY;QAC/C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC7C,OAAO;gBACL,OAAO,CAAC,cAAc;gBACtB,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;aACvC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,kEAAkE,EAClE,KAAK,CACN,CAAA;YAED,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,IAAY;QAC7C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAE3D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,CAAC;QAED,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACxC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACzG,EAAE,CAAA;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAEvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACzB,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/D,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAA;YAEtC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,CAAA;oBACd,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC9B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBAEpC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;wBACpB,IAAI,EAAE,WAAW,CAAC,WAAW;wBAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;wBAClC,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;wBACxC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;wBACxB,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;wBAC9B,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;wBACpC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;qBACnC,CAAC,CAAA;oBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAEtD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC/B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;oBACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpC,IAAI,CAAC,YAAY,GAAG,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAA;oBACxD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBACvC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAC7F,EAAE,CAAA;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAa;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAW,CAAA;YAE3B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,WAAW,CAAC,gBAAgB;oBAC/B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;oBACpC,MAAK;gBAEP,KAAK,WAAW,CAAC,IAAI;oBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;oBACxB,MAAK;gBAEP,KAAK,WAAW,CAAC,KAAK;oBACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;oBACzB,MAAK;gBAEP,KAAK,WAAW,CAAC,KAAK;oBACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;oBACzB,MAAK;gBAEP,KAAK,WAAW,CAAC,MAAM;oBACrB,IAAI,CAAC,YAAY,EAAE,CAAA;oBACnB,MAAK;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAC/C,IAAI,CAAC,YAAY,GAAG,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACjG,EAAE,CAAA;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,OAAY;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAA;QAE7C,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;YACxC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,OAAY;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACrC,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAChD,CAAC,CACF,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;QAC/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAEpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAEO,WAAW,CAAC,OAAY;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAA;QACjC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAErB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,WAAW,CAAA;QAC9D,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAY;QAC9B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;QAExE,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,UAAU,CAAA;QAChD,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAA;QAE1C,IAAI,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YACpB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,QAAQ;YACR,MAAM;YACN,aAAa,EAAE,IAAI,CAAC,UAAU;SAC/B,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAEzC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YAEjC,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAA;YAEjC,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAClD,IAAI,CAAC,eAAe,EAAE,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAA;gBACnC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,OAAO,GAAyC,IAAI,CAAA;YACxD,IAAI,KAAK,GAAwB,IAAI,CAAA;YAErC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;gBAC5C,KAAK,CAAC,UAAU;oBACd,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBAC1D,KAAK,GAAG,GAAG,EAAE;wBACX,IAAI,CAAC;4BACH,UAAU,CAAC,KAAK,EAAE,CAAA;wBACpB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;wBACnD,CAAC;oBACH,CAAC,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC5D,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACtC,MAAM;gBACN,OAAO;gBACP,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;QAE1E,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAA;YACnE,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAE3E,MAAM,aAAa,GAAkB;gBACnC,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAQ;aACf,CAAA;YAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CACrC,CAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YAC3D,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACvE,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,WAAW,CAAC,KAAK;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,CAAC;SACV,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAC9B,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAA;QAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAA;QAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAA;QACtC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAA;QAC/D,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,iBAAiB;QACvB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAE9B,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,SAAS;QACf,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAE9B,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,OAAO,CAAA;QAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAA;QACxC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEpC,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,YAAY;QAClB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAE9B,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,eAAe;QACrB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,EAAE,CAAA;QAE/C,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAC9B,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAA;QAChE,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5C,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,QAAQ,CAAA;QACzC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAA;QAE1C,OAAO,EAAE,CAAA;IACX,CAAC;IAEO,cAAc;QACpB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,EAAE,CAAA;QAE/C,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAA;QAC9B,IAAI,KAAK,CAAA;QAET,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC5C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
|