@testany/hephos 0.3.10 → 0.3.13

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.
@@ -7,8 +7,9 @@
7
7
  * - Adjacent deduplication
8
8
  * - Sensitive command filtering (keys, tokens, passwords)
9
9
  * - Safe exit with savedInput restoration
10
+ * - Mode-separated history (normal vs conversation)
10
11
  */
11
- import { useState, useCallback } from 'react';
12
+ import { useState, useCallback, useRef } from 'react';
12
13
  // Patterns that indicate sensitive content - don't add to history
13
14
  const SENSITIVE_PATTERNS = [
14
15
  // API keys and tokens
@@ -35,13 +36,13 @@ function isSensitiveCommand(command) {
35
36
  /**
36
37
  * Check if entry should be added to history
37
38
  */
38
- function shouldAddToHistory(entry, lastEntry) {
39
+ function shouldAddToHistory(entry, lastEntry, mode) {
39
40
  // Empty or whitespace-only
40
41
  if (!entry.trim()) {
41
42
  return false;
42
43
  }
43
- // Adjacent duplicate
44
- if (lastEntry === entry) {
44
+ // Adjacent duplicate (same text AND same mode)
45
+ if (lastEntry && lastEntry.text === entry && lastEntry.mode === mode) {
45
46
  return false;
46
47
  }
47
48
  // Sensitive content
@@ -50,6 +51,18 @@ function shouldAddToHistory(entry, lastEntry) {
50
51
  }
51
52
  return true;
52
53
  }
54
+ /**
55
+ * Get indices of entries matching a specific mode
56
+ */
57
+ function getModeIndices(entries, mode) {
58
+ const indices = [];
59
+ for (let i = 0; i < entries.length; i++) {
60
+ if (entries[i].mode === mode) {
61
+ indices.push(i);
62
+ }
63
+ }
64
+ return indices;
65
+ }
53
66
  const DEFAULT_MAX_ENTRIES = 500;
54
67
  export function useHistory(options = {}) {
55
68
  const maxEntries = options.maxEntries ?? DEFAULT_MAX_ENTRIES;
@@ -58,21 +71,26 @@ export function useHistory(options = {}) {
58
71
  isActive: false,
59
72
  currentIndex: -1,
60
73
  savedInput: '',
74
+ activeMode: null,
61
75
  searchMode: false,
62
76
  searchQuery: '',
63
77
  searchResults: [],
64
78
  searchResultIndex: -1,
65
79
  });
80
+ // Ref to capture return values from setState callbacks synchronously
81
+ // This is needed because setState updater functions may be called multiple times
82
+ // in React 18+ concurrent mode, but we need to return the result immediately
83
+ const resultRef = useRef(null);
66
84
  /**
67
- * Add a new entry to history
85
+ * Add a new entry to history with its mode
68
86
  */
69
- const addEntry = useCallback((entry) => {
87
+ const addEntry = useCallback((entry, mode) => {
70
88
  setState(prev => {
71
89
  const lastEntry = prev.entries[prev.entries.length - 1];
72
- if (!shouldAddToHistory(entry, lastEntry)) {
90
+ if (!shouldAddToHistory(entry, lastEntry, mode)) {
73
91
  return prev;
74
92
  }
75
- const newEntries = [...prev.entries, entry];
93
+ const newEntries = [...prev.entries, { text: entry, mode }];
76
94
  // Enforce max limit (FIFO)
77
95
  if (newEntries.length > maxEntries) {
78
96
  newEntries.shift();
@@ -84,70 +102,81 @@ export function useHistory(options = {}) {
84
102
  });
85
103
  }, [maxEntries]);
86
104
  /**
87
- * Navigate to previous (older) history entry
88
- * Returns the entry to display, or null if at end
105
+ * Navigate to previous (older) history entry within the specified mode
106
+ * Returns the entry text to display, or null if at end
89
107
  */
90
- const navigateUp = useCallback((currentInput) => {
91
- let result = null;
108
+ const navigateUp = useCallback((currentInput, mode) => {
109
+ resultRef.current = null;
92
110
  setState(prev => {
93
- if (prev.entries.length === 0) {
111
+ // Get indices of entries matching this mode
112
+ const modeIndices = getModeIndices(prev.entries, mode);
113
+ if (modeIndices.length === 0) {
94
114
  return prev;
95
115
  }
96
116
  // First time entering history mode
97
117
  if (!prev.isActive) {
98
- const newIndex = prev.entries.length - 1;
99
- result = prev.entries[newIndex];
118
+ // Start at the most recent entry for this mode
119
+ const newIndex = modeIndices[modeIndices.length - 1];
120
+ resultRef.current = prev.entries[newIndex].text;
100
121
  return {
101
122
  ...prev,
102
123
  isActive: true,
103
124
  currentIndex: newIndex,
104
125
  savedInput: currentInput,
126
+ activeMode: mode,
105
127
  };
106
128
  }
107
- // Already in history mode, go to older entry
108
- if (prev.currentIndex > 0) {
109
- const newIndex = prev.currentIndex - 1;
110
- result = prev.entries[newIndex];
129
+ // Already in history mode, find previous entry in this mode
130
+ const currentModeIdx = modeIndices.findIndex(idx => idx === prev.currentIndex);
131
+ if (currentModeIdx > 0) {
132
+ const newIndex = modeIndices[currentModeIdx - 1];
133
+ resultRef.current = prev.entries[newIndex].text;
111
134
  return {
112
135
  ...prev,
113
136
  currentIndex: newIndex,
114
137
  };
115
138
  }
116
- // At oldest entry, return current
117
- result = prev.entries[prev.currentIndex];
139
+ // At oldest entry for this mode, return current
140
+ if (prev.currentIndex >= 0 && prev.currentIndex < prev.entries.length) {
141
+ resultRef.current = prev.entries[prev.currentIndex].text;
142
+ }
118
143
  return prev;
119
144
  });
120
- return result;
145
+ return resultRef.current;
121
146
  }, []);
122
147
  /**
123
- * Navigate to next (newer) history entry
124
- * Returns the entry to display, or null if back to current input
148
+ * Navigate to next (newer) history entry within the active mode
149
+ * Returns the entry text to display, or savedInput if back to current input
125
150
  */
126
- const navigateDown = useCallback(() => {
127
- let result = null;
151
+ const navigateDown = useCallback((mode) => {
152
+ resultRef.current = null;
128
153
  setState(prev => {
129
154
  if (!prev.isActive) {
130
155
  return prev;
131
156
  }
132
- // Move to newer entry
133
- if (prev.currentIndex < prev.entries.length - 1) {
134
- const newIndex = prev.currentIndex + 1;
135
- result = prev.entries[newIndex];
157
+ // Get indices of entries matching this mode
158
+ const modeIndices = getModeIndices(prev.entries, mode);
159
+ // Find next entry in this mode
160
+ const currentModeIdx = modeIndices.findIndex(idx => idx === prev.currentIndex);
161
+ if (currentModeIdx >= 0 && currentModeIdx < modeIndices.length - 1) {
162
+ const newIndex = modeIndices[currentModeIdx + 1];
163
+ resultRef.current = prev.entries[newIndex].text;
136
164
  return {
137
165
  ...prev,
138
166
  currentIndex: newIndex,
139
167
  };
140
168
  }
141
- // At newest entry, exit history mode and restore saved input
142
- result = prev.savedInput;
169
+ // At newest entry for this mode, exit history mode and restore saved input
170
+ resultRef.current = prev.savedInput;
143
171
  return {
144
172
  ...prev,
145
173
  isActive: false,
146
174
  currentIndex: -1,
147
175
  savedInput: '',
176
+ activeMode: null,
148
177
  };
149
178
  });
150
- return result;
179
+ return resultRef.current;
151
180
  }, []);
152
181
  /**
153
182
  * Exit history mode without accepting
@@ -162,40 +191,42 @@ export function useHistory(options = {}) {
162
191
  isActive: false,
163
192
  currentIndex: -1,
164
193
  savedInput: '',
194
+ activeMode: null,
165
195
  };
166
196
  });
167
197
  return savedInput;
168
198
  }, []);
169
199
  /**
170
200
  * Accept currently selected history entry
171
- * Returns the entry, or null if not in history mode
201
+ * Returns the entry text, or null if not in history mode
172
202
  */
173
203
  const acceptHistory = useCallback(() => {
174
- let result = null;
204
+ resultRef.current = null;
175
205
  setState(prev => {
176
206
  if (!prev.isActive || prev.currentIndex < 0) {
177
207
  return prev;
178
208
  }
179
- result = prev.entries[prev.currentIndex];
209
+ resultRef.current = prev.entries[prev.currentIndex].text;
180
210
  return {
181
211
  ...prev,
182
212
  isActive: false,
183
213
  currentIndex: -1,
184
214
  savedInput: '',
215
+ activeMode: null,
185
216
  };
186
217
  });
187
- return result;
218
+ return resultRef.current;
188
219
  }, []);
189
220
  /**
190
- * Navigate up with prefix filtering
221
+ * Navigate up with prefix filtering (within mode)
191
222
  */
192
- const navigateUpFiltered = useCallback((currentInput, prefix) => {
193
- let result = null;
223
+ const navigateUpFiltered = useCallback((currentInput, prefix, mode) => {
224
+ resultRef.current = null;
194
225
  setState(prev => {
195
- // Find entries matching prefix
226
+ // Find entries matching prefix AND mode
196
227
  const matchingIndices = [];
197
228
  for (let i = 0; i < prev.entries.length; i++) {
198
- if (prev.entries[i].startsWith(prefix)) {
229
+ if (prev.entries[i].mode === mode && prev.entries[i].text.startsWith(prefix)) {
199
230
  matchingIndices.push(i);
200
231
  }
201
232
  }
@@ -205,43 +236,46 @@ export function useHistory(options = {}) {
205
236
  // First time entering history mode with filter
206
237
  if (!prev.isActive) {
207
238
  const newIndex = matchingIndices[matchingIndices.length - 1];
208
- result = prev.entries[newIndex];
239
+ resultRef.current = prev.entries[newIndex].text;
209
240
  return {
210
241
  ...prev,
211
242
  isActive: true,
212
243
  currentIndex: newIndex,
213
244
  savedInput: currentInput,
245
+ activeMode: mode,
214
246
  };
215
247
  }
216
248
  // Find previous matching entry
217
249
  const currentMatchIdx = matchingIndices.findIndex(idx => idx === prev.currentIndex);
218
250
  if (currentMatchIdx > 0) {
219
251
  const newIndex = matchingIndices[currentMatchIdx - 1];
220
- result = prev.entries[newIndex];
252
+ resultRef.current = prev.entries[newIndex].text;
221
253
  return {
222
254
  ...prev,
223
255
  currentIndex: newIndex,
224
256
  };
225
257
  }
226
258
  // At oldest matching entry
227
- result = prev.entries[prev.currentIndex];
259
+ if (prev.currentIndex >= 0 && prev.currentIndex < prev.entries.length) {
260
+ resultRef.current = prev.entries[prev.currentIndex].text;
261
+ }
228
262
  return prev;
229
263
  });
230
- return result;
264
+ return resultRef.current;
231
265
  }, []);
232
266
  /**
233
- * Navigate down with prefix filtering
267
+ * Navigate down with prefix filtering (within mode)
234
268
  */
235
- const navigateDownFiltered = useCallback((prefix) => {
236
- let result = null;
269
+ const navigateDownFiltered = useCallback((prefix, mode) => {
270
+ resultRef.current = null;
237
271
  setState(prev => {
238
272
  if (!prev.isActive) {
239
273
  return prev;
240
274
  }
241
- // Find entries matching prefix
275
+ // Find entries matching prefix AND mode
242
276
  const matchingIndices = [];
243
277
  for (let i = 0; i < prev.entries.length; i++) {
244
- if (prev.entries[i].startsWith(prefix)) {
278
+ if (prev.entries[i].mode === mode && prev.entries[i].text.startsWith(prefix)) {
245
279
  matchingIndices.push(i);
246
280
  }
247
281
  }
@@ -249,45 +283,46 @@ export function useHistory(options = {}) {
249
283
  const currentMatchIdx = matchingIndices.findIndex(idx => idx === prev.currentIndex);
250
284
  if (currentMatchIdx >= 0 && currentMatchIdx < matchingIndices.length - 1) {
251
285
  const newIndex = matchingIndices[currentMatchIdx + 1];
252
- result = prev.entries[newIndex];
286
+ resultRef.current = prev.entries[newIndex].text;
253
287
  return {
254
288
  ...prev,
255
289
  currentIndex: newIndex,
256
290
  };
257
291
  }
258
292
  // At newest matching entry, exit history mode
259
- result = prev.savedInput;
293
+ resultRef.current = prev.savedInput;
260
294
  return {
261
295
  ...prev,
262
296
  isActive: false,
263
297
  currentIndex: -1,
264
298
  savedInput: '',
299
+ activeMode: null,
265
300
  };
266
301
  });
267
- return result;
302
+ return resultRef.current;
268
303
  }, []);
269
304
  /**
270
- * Helper function to find matching entries for a search query
305
+ * Helper function to find matching entries for a search query (within mode)
271
306
  */
272
- const findSearchMatches = (entries, query) => {
307
+ const findSearchMatches = (entries, query, mode) => {
273
308
  if (!query)
274
309
  return [];
275
310
  const lowerQuery = query.toLowerCase();
276
311
  const matches = [];
277
312
  for (let i = 0; i < entries.length; i++) {
278
- if (entries[i].toLowerCase().includes(lowerQuery)) {
313
+ if (entries[i].mode === mode && entries[i].text.toLowerCase().includes(lowerQuery)) {
279
314
  matches.push(i);
280
315
  }
281
316
  }
282
317
  return matches;
283
318
  };
284
319
  /**
285
- * Enter search mode (Ctrl+R)
320
+ * Enter search mode (Ctrl+R) - searches within the specified mode
286
321
  */
287
- const enterSearchMode = useCallback((currentInput) => {
322
+ const enterSearchMode = useCallback((currentInput, mode) => {
288
323
  setState(prev => {
289
- // Use current input as initial search query
290
- const searchResults = findSearchMatches(prev.entries, currentInput);
324
+ // Use current input as initial search query, filter by mode
325
+ const searchResults = findSearchMatches(prev.entries, currentInput, mode);
291
326
  const searchResultIndex = searchResults.length > 0 ? searchResults.length - 1 : -1;
292
327
  const currentIndex = searchResultIndex >= 0 ? searchResults[searchResultIndex] : -1;
293
328
  return {
@@ -299,23 +334,24 @@ export function useHistory(options = {}) {
299
334
  searchResultIndex,
300
335
  currentIndex,
301
336
  savedInput: currentInput,
337
+ activeMode: mode,
302
338
  };
303
339
  });
304
340
  }, []);
305
341
  /**
306
- * Update search query and find matches
307
- * Returns the first matching entry or null
342
+ * Update search query and find matches (uses activeMode from state)
343
+ * Returns the first matching entry text or null
308
344
  */
309
345
  const updateSearchQuery = useCallback((query) => {
310
- let result = null;
346
+ resultRef.current = null;
311
347
  setState(prev => {
312
- if (!prev.searchMode)
348
+ if (!prev.searchMode || !prev.activeMode)
313
349
  return prev;
314
- const searchResults = findSearchMatches(prev.entries, query);
350
+ const searchResults = findSearchMatches(prev.entries, query, prev.activeMode);
315
351
  const searchResultIndex = searchResults.length > 0 ? searchResults.length - 1 : -1;
316
352
  const currentIndex = searchResultIndex >= 0 ? searchResults[searchResultIndex] : -1;
317
353
  if (currentIndex >= 0) {
318
- result = prev.entries[currentIndex];
354
+ resultRef.current = prev.entries[currentIndex].text;
319
355
  }
320
356
  return {
321
357
  ...prev,
@@ -325,14 +361,14 @@ export function useHistory(options = {}) {
325
361
  currentIndex,
326
362
  };
327
363
  });
328
- return result;
364
+ return resultRef.current;
329
365
  }, []);
330
366
  /**
331
367
  * Search backward (Ctrl+R or ↑ in search mode)
332
368
  * Finds the previous matching entry
333
369
  */
334
370
  const searchBackward = useCallback(() => {
335
- let result = null;
371
+ resultRef.current = null;
336
372
  setState(prev => {
337
373
  if (!prev.searchMode || prev.searchResults.length === 0) {
338
374
  return prev;
@@ -341,7 +377,7 @@ export function useHistory(options = {}) {
341
377
  if (prev.searchResultIndex > 0) {
342
378
  const newSearchResultIndex = prev.searchResultIndex - 1;
343
379
  const newIndex = prev.searchResults[newSearchResultIndex];
344
- result = prev.entries[newIndex];
380
+ resultRef.current = prev.entries[newIndex].text;
345
381
  return {
346
382
  ...prev,
347
383
  searchResultIndex: newSearchResultIndex,
@@ -349,17 +385,19 @@ export function useHistory(options = {}) {
349
385
  };
350
386
  }
351
387
  // At oldest match, stay there
352
- result = prev.entries[prev.currentIndex];
388
+ if (prev.currentIndex >= 0 && prev.currentIndex < prev.entries.length) {
389
+ resultRef.current = prev.entries[prev.currentIndex].text;
390
+ }
353
391
  return prev;
354
392
  });
355
- return result;
393
+ return resultRef.current;
356
394
  }, []);
357
395
  /**
358
396
  * Search forward (Ctrl+S or ↓ in search mode)
359
397
  * Finds the next matching entry
360
398
  */
361
399
  const searchForward = useCallback(() => {
362
- let result = null;
400
+ resultRef.current = null;
363
401
  setState(prev => {
364
402
  if (!prev.searchMode || prev.searchResults.length === 0) {
365
403
  return prev;
@@ -368,7 +406,7 @@ export function useHistory(options = {}) {
368
406
  if (prev.searchResultIndex < prev.searchResults.length - 1) {
369
407
  const newSearchResultIndex = prev.searchResultIndex + 1;
370
408
  const newIndex = prev.searchResults[newSearchResultIndex];
371
- result = prev.entries[newIndex];
409
+ resultRef.current = prev.entries[newIndex].text;
372
410
  return {
373
411
  ...prev,
374
412
  searchResultIndex: newSearchResultIndex,
@@ -376,10 +414,12 @@ export function useHistory(options = {}) {
376
414
  };
377
415
  }
378
416
  // At newest match, stay there
379
- result = prev.entries[prev.currentIndex];
417
+ if (prev.currentIndex >= 0 && prev.currentIndex < prev.entries.length) {
418
+ resultRef.current = prev.entries[prev.currentIndex].text;
419
+ }
380
420
  return prev;
381
421
  });
382
- return result;
422
+ return resultRef.current;
383
423
  }, []);
384
424
  /**
385
425
  * Exit search mode without accepting
@@ -398,21 +438,22 @@ export function useHistory(options = {}) {
398
438
  searchResultIndex: -1,
399
439
  currentIndex: -1,
400
440
  savedInput: '',
441
+ activeMode: null,
401
442
  };
402
443
  });
403
444
  return savedInput;
404
445
  }, []);
405
446
  /**
406
447
  * Accept current search result
407
- * Returns the selected entry
448
+ * Returns the selected entry text
408
449
  */
409
450
  const acceptSearch = useCallback(() => {
410
- let result = null;
451
+ resultRef.current = null;
411
452
  setState(prev => {
412
453
  if (!prev.searchMode || prev.currentIndex < 0) {
413
454
  return prev;
414
455
  }
415
- result = prev.entries[prev.currentIndex];
456
+ resultRef.current = prev.entries[prev.currentIndex].text;
416
457
  return {
417
458
  ...prev,
418
459
  isActive: false,
@@ -422,74 +463,85 @@ export function useHistory(options = {}) {
422
463
  searchResultIndex: -1,
423
464
  currentIndex: -1,
424
465
  savedInput: '',
466
+ activeMode: null,
425
467
  };
426
468
  });
427
- return result;
469
+ return resultRef.current;
428
470
  }, []);
429
471
  const DEFAULT_JUMP_STEP = 5;
430
472
  /**
431
- * Jump up multiple entries (Alt+↑ / PgUp)
473
+ * Jump up multiple entries within a mode (Alt+↑ / PgUp)
432
474
  */
433
- const jumpUp = useCallback((currentInput, step = DEFAULT_JUMP_STEP) => {
434
- let result = null;
475
+ const jumpUp = useCallback((currentInput, mode, step = DEFAULT_JUMP_STEP) => {
476
+ resultRef.current = null;
435
477
  setState(prev => {
436
- if (prev.entries.length === 0) {
478
+ const modeIndices = getModeIndices(prev.entries, mode);
479
+ if (modeIndices.length === 0) {
437
480
  return prev;
438
481
  }
439
482
  // First time entering history mode
440
483
  if (!prev.isActive) {
441
- const newIndex = Math.max(0, prev.entries.length - step);
442
- result = prev.entries[newIndex];
484
+ const targetModeIdx = Math.max(0, modeIndices.length - step);
485
+ const newIndex = modeIndices[targetModeIdx];
486
+ resultRef.current = prev.entries[newIndex].text;
443
487
  return {
444
488
  ...prev,
445
489
  isActive: true,
446
490
  currentIndex: newIndex,
447
491
  savedInput: currentInput,
492
+ activeMode: mode,
448
493
  };
449
494
  }
450
- // Already in history mode, jump back
451
- const newIndex = Math.max(0, prev.currentIndex - step);
452
- result = prev.entries[newIndex];
495
+ // Already in history mode, jump back within mode
496
+ const currentModeIdx = modeIndices.findIndex(idx => idx === prev.currentIndex);
497
+ const targetModeIdx = Math.max(0, currentModeIdx - step);
498
+ const newIndex = modeIndices[targetModeIdx];
499
+ resultRef.current = prev.entries[newIndex].text;
453
500
  return {
454
501
  ...prev,
455
502
  currentIndex: newIndex,
456
503
  };
457
504
  });
458
- return result;
505
+ return resultRef.current;
459
506
  }, []);
460
507
  /**
461
- * Jump down multiple entries (Alt+↓ / PgDn)
508
+ * Jump down multiple entries within a mode (Alt+↓ / PgDn)
462
509
  */
463
- const jumpDown = useCallback((step = DEFAULT_JUMP_STEP) => {
464
- let result = null;
510
+ const jumpDown = useCallback((mode, step = DEFAULT_JUMP_STEP) => {
511
+ resultRef.current = null;
465
512
  setState(prev => {
466
513
  if (!prev.isActive) {
467
514
  return prev;
468
515
  }
469
- // Jump forward
470
- const newIndex = prev.currentIndex + step;
471
- if (newIndex >= prev.entries.length) {
516
+ const modeIndices = getModeIndices(prev.entries, mode);
517
+ const currentModeIdx = modeIndices.findIndex(idx => idx === prev.currentIndex);
518
+ // Jump forward within mode
519
+ const targetModeIdx = currentModeIdx + step;
520
+ if (targetModeIdx >= modeIndices.length) {
472
521
  // Exit history mode and restore saved input
473
- result = prev.savedInput;
522
+ resultRef.current = prev.savedInput;
474
523
  return {
475
524
  ...prev,
476
525
  isActive: false,
477
526
  currentIndex: -1,
478
527
  savedInput: '',
528
+ activeMode: null,
479
529
  };
480
530
  }
481
- result = prev.entries[newIndex];
531
+ const newIndex = modeIndices[targetModeIdx];
532
+ resultRef.current = prev.entries[newIndex].text;
482
533
  return {
483
534
  ...prev,
484
535
  currentIndex: newIndex,
485
536
  };
486
537
  });
487
- return result;
538
+ return resultRef.current;
488
539
  }, []);
489
540
  return {
490
541
  entries: state.entries,
491
542
  isActive: state.isActive,
492
543
  currentIndex: state.currentIndex,
544
+ activeMode: state.activeMode,
493
545
  searchMode: state.searchMode,
494
546
  searchQuery: state.searchQuery,
495
547
  addEntry,
@@ -510,5 +562,5 @@ export function useHistory(options = {}) {
510
562
  };
511
563
  }
512
564
  // Export for testing
513
- export { isSensitiveCommand, shouldAddToHistory };
565
+ export { isSensitiveCommand, shouldAddToHistory, getModeIndices };
514
566
  //# sourceMappingURL=useHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../src/repl/hooks/useHistory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHistory.js","sourceRoot":"","sources":["../../../src/repl/hooks/useHistory.ts"],"names":[],"mappings":"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"}