Jaimodiji commited on
Commit
898f3cc
·
verified ·
1 Parent(s): 48da584

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .dockerignore +9 -0
  2. Debugger.py +542 -0
  3. Dockerfile +37 -0
  4. README.md +95 -0
  5. README_DEPLOY.md +69 -0
  6. app.2.py +73 -0
  7. app.css +81 -0
  8. app.py +76 -0
  9. docker-compose.yml +17 -0
  10. glv.py +74 -0
  11. glv_var.py +66 -0
  12. main.py +1382 -0
  13. movies/bbb_sunflower_1080p_30fps_normal.mp4 +3 -0
  14. out/404.html +5 -0
  15. out/404/index.html +5 -0
  16. out/__next.__PAGE__.txt +9 -0
  17. out/__next._full.txt +19 -0
  18. out/__next._head.txt +6 -0
  19. out/__next._index.txt +6 -0
  20. out/__next._tree.txt +2 -0
  21. out/_next/static/chunks/0cz1d0mv5g_q7.js +0 -0
  22. out/_next/static/chunks/0d-c12mml-h6p.js +5 -0
  23. out/_next/static/chunks/0xm351i8abo9i.js +1 -0
  24. out/_next/static/chunks/158myu8e_yme3.js +1 -0
  25. out/_next/static/chunks/1u8kf-cumb-f7.js +31 -0
  26. out/_next/static/chunks/2dkoocrktt9k-.js +0 -0
  27. out/_next/static/chunks/2fc-6082kgcrk.js +1 -0
  28. out/_next/static/chunks/2v-rv291cn1b-.css +0 -0
  29. out/_next/static/chunks/3rxl-jt3pdxgx.js +0 -0
  30. out/_next/static/chunks/3sfsn9t1uaymg.js +0 -0
  31. out/_next/static/chunks/3y0d2nz4u4vwb.js +0 -0
  32. out/_next/static/chunks/turbopack-3v560ngbdsqcf.js +1 -0
  33. out/_next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  34. out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_buildManifest.js +18 -0
  35. out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_clientMiddlewareManifest.js +1 -0
  36. out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_ssgManifest.js +1 -0
  37. out/_not-found/__next._full.txt +17 -0
  38. out/_not-found/__next._head.txt +6 -0
  39. out/_not-found/__next._index.txt +6 -0
  40. out/_not-found/__next._not-found.txt +5 -0
  41. out/_not-found/__next._not-found/__PAGE__.txt +5 -0
  42. out/_not-found/__next._tree.txt +2 -0
  43. out/_not-found/index.html +5 -0
  44. out/_not-found/index.txt +17 -0
  45. out/favicon.ico +0 -0
  46. out/file.svg +1 -0
  47. out/globe.svg +1 -0
  48. out/index.html +9 -0
  49. out/index.txt +19 -0
  50. out/manager/__next._full.txt +21 -0
.dockerignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ .git
2
+ .idea
3
+ .venv
4
+ __pycache__
5
+ frontend/node_modules
6
+ frontend/.next
7
+ *.zip
8
+ *.rar
9
+ *.tar.gz
Debugger.py ADDED
@@ -0,0 +1,542 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import inspect
2
+ import os
3
+ import time
4
+ import re
5
+ import traceback
6
+
7
+ class Debugger:
8
+ COLORS = {
9
+ "CYAN": "\033[96m",
10
+ "BRIGHT_CYAN": "\033[1;96m",
11
+ "DIM_CYAN": "\033[2;96m",
12
+ "YELLOW": "\033[93m",
13
+ "BRIGHT_YELLOW": "\033[1;93m",
14
+ "DIM_YELLOW": "\033[2;93m",
15
+ "MAGENTA": "\033[95m",
16
+ "BRIGHT_MAGENTA": "\033[1;95m",
17
+ "DIM_MAGENTA": "\033[2;95m",
18
+ "RED": "\033[91m",
19
+ "BRIGHT_RED": "\033[1;91m",
20
+ "DIM_RED": "\033[2;91m",
21
+ "GREEN": "\033[92m",
22
+ "BRIGHT_GREEN": "\033[1;92m",
23
+ "DIM_GREEN": "\033[2;92m",
24
+ "BLUE": "\033[94m",
25
+ "BRIGHT_BLUE": "\033[1;94m",
26
+ "DIM_BLUE": "\033[2;94m",
27
+ "RESET": "\033[0m",
28
+ }
29
+
30
+ LEVELS = {
31
+ "INFO": 0,
32
+ "SUCCESS": 0,
33
+ "DEBUG": 1,
34
+ "WARNING": 2,
35
+ "ERROR": 3,
36
+ "CRITICAL": 4,
37
+ }
38
+
39
+ COLOR_MAP = {
40
+ "INFO": "BRIGHT_CYAN",
41
+ "SUCCESS": "BRIGHT_GREEN",
42
+ "DEBUG": "BRIGHT_YELLOW",
43
+ "WARNING": "BRIGHT_MAGENTA",
44
+ "ERROR": "BRIGHT_RED",
45
+ "CRITICAL": "BRIGHT_RED",
46
+ "VAR": "BRIGHT_BLUE",
47
+ }
48
+
49
+ DIM_COLOR_MAP = {
50
+ "INFO": "DIM_CYAN",
51
+ "SUCCESS": "DIM_GREEN",
52
+ "DEBUG": "DIM_YELLOW",
53
+ "WARNING": "DIM_MAGENTA",
54
+ "ERROR": "DIM_RED",
55
+ "CRITICAL": "DIM_RED",
56
+ "VAR": "DIM_BLUE",
57
+ }
58
+
59
+ def __init__(self, enabled=True, level="INFO", show_time=True, show_location=True, column_widths=None):
60
+ self.enabled = enabled
61
+ self.level = self.LEVELS.get(level.upper(), 0)
62
+ self.show_time = show_time
63
+ self.show_location = show_location
64
+ self.column_widths = column_widths or {"level": 10, "time": 20, "location": 20, "message": 50}
65
+
66
+ # To ensure consistent spacing, we need to track actual visible text lengths
67
+ # when ANSI color codes are used
68
+ self.ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])')
69
+ self._indent_level = 0 # Added for recursive indentation
70
+
71
+ def _get_location(self):
72
+ """
73
+ Get the location of the calling code outside of the Debugger class.
74
+ """
75
+ # Get the frame at the specified depth
76
+ current_frame = inspect.currentframe()
77
+
78
+ # Find the caller frame (outside of the Debugger class)
79
+ caller_frame = current_frame
80
+ for _ in range(10): # Limit to 10 frames to avoid infinite loop
81
+ if caller_frame.f_back is None:
82
+ break
83
+
84
+ caller_frame = caller_frame.f_back
85
+ # Get the code object for the frame
86
+ code = caller_frame.f_code
87
+
88
+ # If this frame is not from Debugger.py, we've found our caller
89
+ if os.path.basename(code.co_filename) != "Debugger.py":
90
+ break
91
+
92
+ filename = os.path.basename(caller_frame.f_code.co_filename)
93
+ lineno = caller_frame.f_lineno
94
+ return f"{filename}:{lineno}"
95
+
96
+ def _get_variable_name(self, var, frame_depth=2):
97
+ """
98
+ Dynamically get the variable name by inspecting the source code.
99
+
100
+ Args:
101
+ var: The variable to find the name for
102
+ frame_depth: How many frames to go back to find the caller
103
+
104
+ Returns:
105
+ str: The variable name or "unknown" if not found
106
+ """
107
+ try:
108
+ # Get the frame that called this function
109
+ frame = inspect.currentframe()
110
+ for _ in range(frame_depth):
111
+ if frame.f_back is None:
112
+ break
113
+ frame = frame.f_back
114
+
115
+ # Get the line of code that called this function
116
+ context = inspect.getframeinfo(frame).code_context
117
+ if not context:
118
+ return "unknown"
119
+
120
+ # Extract the line
121
+ caller_line = context[0].strip()
122
+
123
+ # Regular expression to match common variable inspection patterns
124
+ # This captures variable names inside function calls like:
125
+ # debug.var(my_variable), debug.var_dict(my_dict), etc.
126
+ matches = re.findall(r'(?:var\w*)\s*\(\s*([^,)]+)', caller_line)
127
+
128
+ if matches:
129
+ return matches[0].strip()
130
+
131
+ # Fall back to inspecting local variables
132
+ for var_name, var_val in frame.f_locals.items():
133
+ if var_val is var:
134
+ return var_name
135
+
136
+ return "unknown"
137
+
138
+ except Exception:
139
+ return "unknown"
140
+ finally:
141
+ # Ensure we clean up the frame reference to avoid memory leaks
142
+ del frame
143
+
144
+ def _strip_ansi(self, text):
145
+ """Remove ANSI escape sequences from text to get true visible length"""
146
+ return self.ansi_escape.sub('', text)
147
+
148
+ def _ljust_with_ansi(self, text, width):
149
+ """Left justify text accounting for ANSI color codes"""
150
+ visible_text = self._strip_ansi(text)
151
+ padding = max(0, width - len(visible_text))
152
+ return text + ' ' * padding
153
+
154
+ def _format(self, level, message):
155
+ parts = []
156
+
157
+ # Get the dim color for the level
158
+ dim_color = self.COLORS.get(self.DIM_COLOR_MAP.get(level, ""), "")
159
+ # Get the bright color for the message
160
+ bright_color = self.COLORS.get(self.COLOR_MAP.get(level, ""), "")
161
+ reset = self.COLORS["RESET"]
162
+
163
+ # Format level with consistent padding regardless of ANSI codes
164
+ level_text = f"{dim_color}[{level}]{reset}"
165
+ level_str = self._ljust_with_ansi(level_text, self.column_widths["level"])
166
+
167
+ # Format other components
168
+ time_text = time.strftime("[%Y-%m-%d %H:%M:%S]") if self.show_time else ""
169
+ time_str = self._ljust_with_ansi(time_text, self.column_widths["time"])
170
+
171
+ location_text = f"[{self._get_location()}]" if self.show_location else ""
172
+ location_str = self._ljust_with_ansi(location_text, self.column_widths["location"])
173
+
174
+ # Add indentation for recursive calls
175
+ indent_prefix = " " * self._indent_level
176
+ message_str = f"{indent_prefix}{bright_color}{message}{reset}"
177
+
178
+ # Combine into a table-like structure
179
+ parts.append(f"{level_str} {time_str} {location_str} {message_str}")
180
+
181
+ return "".join(parts)
182
+
183
+ def log(self, message, level="INFO"):
184
+ if not self.enabled or self.LEVELS.get(level, 0) < self.level:
185
+ return
186
+
187
+ print(self._format(level, message))
188
+
189
+ def info(self, message):
190
+ self.log(message, "INFO")
191
+
192
+ def debug(self, message):
193
+ self.log(message, "DEBUG")
194
+
195
+ def warning(self, message):
196
+ self.log(message, "WARNING")
197
+
198
+ def error(self, message):
199
+ self.log(message, "ERROR")
200
+
201
+ def critical(self, message):
202
+ self.log(message, "CRITICAL")
203
+
204
+ def success(self, message):
205
+ self.log(message, "SUCCESS")
206
+
207
+ # --- Variable inspection methods ---
208
+
209
+ def var(self, *args, **kwargs):
210
+ """
211
+ General-purpose variable inspector that accepts multiple variables.
212
+
213
+ Args:
214
+ *args: Variables to inspect
215
+ **kwargs: Variables with custom names as keyword arguments
216
+
217
+ Usage:
218
+ debug.var(x) # Single variable, auto-detected name
219
+ debug.var(x, y, z) # Multiple variables with auto-detected names
220
+ debug.var(result=x) # Custom name 'result' for variable x
221
+ debug.var(x, y, result=z) # Mix of auto-detected and custom names
222
+ """
223
+ # Handle positional arguments (auto-detect names)
224
+ # We need to adjust frame_depth here because _get_variable_name is called
225
+ # from var, which is called from the user code.
226
+ # This will need careful adjustment if the call stack changes significantly.
227
+ current_frame = inspect.currentframe()
228
+ outer_frames = []
229
+ f = current_frame
230
+ while f:
231
+ if os.path.basename(f.f_code.co_filename) != "Debugger.py":
232
+ break
233
+ outer_frames.append(f)
234
+ f = f.f_back
235
+
236
+ # If the call is directly from user code, we need to go back 2 frames
237
+ # (var -> _inspect_var -> _get_variable_name)
238
+ # If it's a wrapper like var_dict -> var, then it's different.
239
+ # For a general `var` call, we want the frame that called `var`.
240
+ # So we look for the first frame outside of Debugger.py in the stack.
241
+ # This logic is already handled by _get_location, but for variable naming
242
+ # we need to be more precise about the frame where the variable is defined.
243
+
244
+ # The frame for var() is at depth 0, its caller is at depth 1 (user code)
245
+ # The _get_variable_name itself looks back from its own call, so `frame_depth=2` is typically correct for `var`
246
+ # if called directly like `debug.var(my_var)`.
247
+ # For nested calls (e.g., from `_inspect_dict`), `_inspect_var` is already adjusting depth.
248
+
249
+ # This is a tricky part for _get_variable_name. Let's assume it works well for the top-level call.
250
+ # For internal recursive calls, the name is provided explicitly.
251
+
252
+ for arg in args:
253
+ # When calling from var, we need to look one more frame back
254
+ # compared to when _get_variable_name is called directly from _inspect_var.
255
+ # This is because _inspect_var is a helper function to var.
256
+ # However, the current _get_variable_name implementation already tries to find the
257
+ # non-Debugger.py frame, which is often what we want.
258
+ # Let's keep `frame_depth=2` for the top-level `var` call as it's designed to skip `var` and `_get_variable_name` itself.
259
+ var_name = self._get_variable_name(arg, frame_depth=2)
260
+ self._inspect_var(arg, var_name)
261
+
262
+ # Handle keyword arguments (custom names)
263
+ for name, value in kwargs.items():
264
+ self._inspect_var(value, name)
265
+
266
+ def _inspect_var(self, variable, var_name, is_nested=False):
267
+ """
268
+ Helper method to inspect a single variable
269
+
270
+ Args:
271
+ variable: The variable to inspect
272
+ var_name: Name to display for the variable
273
+ is_nested: True if this call is from a recursive inspection (for indentation)
274
+ """
275
+ var_type = type(variable).__name__
276
+
277
+ # Increment indent level for nested calls
278
+ if is_nested:
279
+ self._indent_level += 1
280
+
281
+ try:
282
+ # For simple types, just show the value
283
+ if isinstance(variable, (int, float, bool, str, type(None))): # Added NoneType
284
+ value_str = repr(variable)
285
+ self.log(f"{var_name} ({var_type}) = {value_str}", "VAR")
286
+
287
+ # For more complex types, use type-specific methods
288
+ elif isinstance(variable, dict):
289
+ self._inspect_dict(variable, var_name, is_nested=True)
290
+ elif isinstance(variable, (list, tuple)):
291
+ self._inspect_list(variable, var_name, is_nested=True)
292
+ elif isinstance(variable, set):
293
+ self._inspect_set(variable, var_name, is_nested=True)
294
+ else:
295
+ # For other objects, show the representation
296
+ value_str = repr(variable)
297
+ self.log(f"{var_name} ({var_type}) = {value_str}", "VAR")
298
+ finally:
299
+ # Decrement indent level after nested calls
300
+ if is_nested:
301
+ self._indent_level -= 1
302
+
303
+
304
+ def var_dict(self, *args, **kwargs):
305
+ # Handle positional arguments (auto-detect names)
306
+ for arg in args:
307
+ if isinstance(arg, dict):
308
+ # When calling from var_dict directly, adjust frame_depth
309
+ var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_dict call
310
+ self._inspect_dict(arg, var_name)
311
+ else:
312
+ var_type = type(arg).__name__
313
+ var_name = self._get_variable_name(arg, frame_depth=2)
314
+ self.log(f"{var_name} is not a dictionary (got {var_type})", "WARNING")
315
+
316
+ # Handle keyword arguments (custom names)
317
+ for name, value in kwargs.items():
318
+ if isinstance(value, dict):
319
+ self._inspect_dict(value, name)
320
+ else:
321
+ var_type = type(value).__name__
322
+ self.log(f"{name} is not a dictionary (got {var_type})", "WARNING")
323
+
324
+ def _inspect_dict(self, dictionary, var_name, is_nested=False):
325
+ """
326
+ Helper method to inspect a single dictionary
327
+
328
+ Args:
329
+ dictionary: The dictionary to inspect
330
+ var_name: Name to display for the dictionary
331
+ is_nested: True if this call is from a recursive inspection
332
+ """
333
+ if not is_nested: # Only increment on the initial call to this method
334
+ self._indent_level += 1
335
+
336
+ self.log(f"{var_name} (dict) with {len(dictionary)} items:", "VAR")
337
+
338
+ if not dictionary:
339
+ self.log("{}", "VAR")
340
+ if not is_nested: # Only decrement on the initial call exit
341
+ self._indent_level -= 1
342
+ return
343
+
344
+ self.log("{", "VAR")
345
+ for key, value in dictionary.items():
346
+ key_repr = repr(key)
347
+ # Recursively inspect the value
348
+ # The name for the nested item will be its key
349
+ self._inspect_var(value, key_repr, is_nested=True)
350
+ self.log("}", "VAR")
351
+
352
+ if not is_nested: # Only decrement on the initial call exit
353
+ self._indent_level -= 1
354
+
355
+
356
+ def var_list(self, *args, **kwargs):
357
+ # Handle positional arguments (auto-detect names)
358
+ for arg in args:
359
+ if isinstance(arg, (list, tuple)):
360
+ var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_list call
361
+ self._inspect_list(arg, var_name)
362
+ else:
363
+ var_type = type(arg).__name__
364
+ var_name = self._get_variable_name(arg, frame_depth=2)
365
+ self.log(f"{var_name} is not a list or tuple (got {var_type})", "WARNING")
366
+
367
+ # Handle keyword arguments (custom names)
368
+ for name, value in kwargs.items():
369
+ if isinstance(value, (list, tuple)):
370
+ self._inspect_list(value, name)
371
+ else:
372
+ var_type = type(value).__name__
373
+ self.log(f"{name} is not a list or tuple (got {var_type})", "WARNING")
374
+
375
+ def _inspect_list(self, lst, var_name, is_nested=False):
376
+ """
377
+ Helper method to inspect a single list or tuple
378
+
379
+ Args:
380
+ lst: The list or tuple to inspect
381
+ var_name: Name to display for the list or tuple
382
+ is_nested: True if this call is from a recursive inspection
383
+ """
384
+ container_type = "list" if isinstance(lst, list) else "tuple"
385
+ if not is_nested: # Only increment on the initial call to this method
386
+ self._indent_level += 1
387
+
388
+ self.log(f"{var_name} ({container_type}) with {len(lst)} items:", "VAR")
389
+
390
+ if not lst:
391
+ self.log(f"{'[]' if container_type == 'list' else '()'} ", "VAR") # Added space for consistency
392
+ if not is_nested: # Only decrement on the initial call exit
393
+ self._indent_level -= 1
394
+ return
395
+
396
+ opening = "[" if container_type == "list" else "("
397
+ closing = "]" if container_type == "list" else ")"
398
+
399
+ self.log(opening, "VAR")
400
+ for i, item in enumerate(lst):
401
+ # Recursively inspect the item
402
+ self._inspect_var(item, f"{var_name}[{i}]", is_nested=True) # Pass index as part of name
403
+ self.log(closing, "VAR")
404
+
405
+ if not is_nested: # Only decrement on the initial call exit
406
+ self._indent_level -= 1
407
+
408
+
409
+ def var_set(self, *args, **kwargs):
410
+ # Handle positional arguments (auto-detect names)
411
+ for arg in args:
412
+ if isinstance(arg, set):
413
+ var_name = self._get_variable_name(arg, frame_depth=2) # Adjust depth for direct var_set call
414
+ self._inspect_set(arg, var_name)
415
+ else:
416
+ var_type = type(arg).__name__
417
+ var_name = self._get_variable_name(arg, frame_depth=2)
418
+ self.log(f"{var_name} is not a set (got {var_type})", "WARNING")
419
+
420
+ # Handle keyword arguments (custom names)
421
+ for name, value in kwargs.items():
422
+ if isinstance(value, set):
423
+ self._inspect_set(value, name)
424
+ else:
425
+ var_type = type(value).__name__
426
+ self.log(f"{name} is not a set (got {var_type})", "WARNING")
427
+
428
+ def _inspect_set(self, s, var_name, is_nested=False):
429
+ """
430
+ Helper method to inspect a single set
431
+
432
+ Args:
433
+ s: The set to inspect
434
+ var_name: Name to display for the set
435
+ is_nested: True if this call is from a recursive inspection
436
+ """
437
+ if not is_nested: # Only increment on the initial call to this method
438
+ self._indent_level += 1
439
+
440
+ self.log(f"{var_name} (set) with {len(s)} items:", "VAR")
441
+
442
+ if not s:
443
+ self.log("{}", "VAR")
444
+ if not is_nested: # Only decrement on the initial call exit
445
+ self._indent_level -= 1
446
+ return
447
+
448
+ self.log("{", "VAR")
449
+ for i, item in enumerate(s):
450
+ # Recursively inspect the item, using a generic name like "item_X"
451
+ self._inspect_var(item, f"item_{i}", is_nested=True)
452
+ self.log("}", "VAR")
453
+
454
+ if not is_nested: # Only decrement on the initial call exit
455
+ self._indent_level -= 1
456
+
457
+ def var_bool(self, *args, **kwargs):
458
+ # Handle positional arguments (auto-detect names)
459
+ for arg in args:
460
+ if isinstance(arg, bool):
461
+ var_name = self._get_variable_name(arg, frame_depth=2)
462
+ self._inspect_bool(arg, var_name)
463
+ else:
464
+ var_type = type(arg).__name__
465
+ var_name = self._get_variable_name(arg, frame_depth=2)
466
+ self.log(f"{var_name} is not a boolean (got {var_type})", "WARNING")
467
+
468
+ # Handle keyword arguments (custom names)
469
+ for name, value in kwargs.items():
470
+ if isinstance(value, bool):
471
+ self._inspect_bool(value, name)
472
+ else:
473
+ var_type = type(value).__name__
474
+ self.log(f"{name} is not a boolean (got {var_type})", "WARNING")
475
+
476
+ def _inspect_bool(self, boolean, var_name):
477
+ value_str = str(boolean)
478
+ self.log(f"{var_name} (bool) = {value_str}", "VAR")
479
+
480
+ def var_num(self, *args, **kwargs):
481
+ # Handle positional arguments (auto-detect names)
482
+ for arg in args:
483
+ if isinstance(arg, (int, float)):
484
+ var_name = self._get_variable_name(arg, frame_depth=2)
485
+ self._inspect_num(arg, var_name)
486
+ else:
487
+ var_type = type(arg).__name__
488
+ var_name = self._get_variable_name(arg, frame_depth=2)
489
+ self.log(f"{var_name} is not a number (got {var_type})", "WARNING")
490
+
491
+ # Handle keyword arguments (custom names)
492
+ for name, value in kwargs.items():
493
+ if isinstance(value, (int, float)):
494
+ self._inspect_num(value, name)
495
+ else:
496
+ var_type = type(value).__name__
497
+ self.log(f"{name} is not a number (got {var_type})", "WARNING")
498
+
499
+ def _inspect_num(self, number, var_name):
500
+ num_type = "int" if isinstance(number, int) else "float"
501
+ self.log(f"{var_name} ({num_type}) = {number}", "VAR")
502
+
503
+ def var_str(self, *args, **kwargs):
504
+ # Handle positional arguments (auto-detect names)
505
+ for arg in args:
506
+ if isinstance(arg, str):
507
+ var_name = self._get_variable_name(arg, frame_depth=2)
508
+ self._inspect_str(arg, var_name)
509
+ else:
510
+ var_type = type(arg).__name__
511
+ var_name = self._get_variable_name(arg, frame_depth=2)
512
+ self.log(f"{var_name} is not a string (got {var_type})", "WARNING")
513
+
514
+ # Handle keyword arguments (custom names)
515
+ for name, value in kwargs.items():
516
+ if isinstance(value, str):
517
+ self._inspect_str(value, name)
518
+ else:
519
+ var_type = type(value).__name__
520
+ self.log(f"{name} is not a string (got {var_type})", "WARNING")
521
+
522
+ def _inspect_str(self, string, var_name):
523
+ self.log(f"{var_name} (str) length={len(string)}", "VAR")
524
+ self.log(f'"{string}"', "VAR")
525
+
526
+ def var_type(self, *args, **kwargs):
527
+ # Handle positional arguments (auto-detect names)
528
+ for arg in args:
529
+ var_name = self._get_variable_name(arg, frame_depth=2)
530
+ self._inspect_type(arg, var_name)
531
+
532
+ # Handle keyword arguments (custom names)
533
+ for name, value in kwargs.items():
534
+ self._inspect_type(value, name)
535
+
536
+ def _inspect_type(self, obj, var_name):
537
+ mro = type(obj).__mro__
538
+ type_names = [t.__name__ for t in mro]
539
+ self.log(f"{var_name} type hierarchy:", "VAR")
540
+ for i, name in enumerate(type_names):
541
+ indent = " " * i
542
+ self.log(f"{indent}└─ {name}", "VAR")
Dockerfile ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ # Install system dependencies (VLC and FFmpeg)
4
+ RUN apt-get update && apt-get install -y \
5
+ vlc \
6
+ ffmpeg \
7
+ && rm -rf /var/lib/apt/lists/*
8
+
9
+ # Create non-root user (VLC refuses to run as root by default)
10
+ RUN useradd -m watchparty
11
+
12
+ WORKDIR /app
13
+
14
+ # Copy and install Python dependencies
15
+ COPY requirements.txt ./
16
+ RUN pip install --no-cache-dir -r requirements.txt
17
+
18
+ # Copy backend files and static frontend build (out directory)
19
+ COPY . .
20
+
21
+ # Set permissions so the watchparty user can write and execute, and make /app and /movies writable by any user (Hugging Face Spaces random UID requirement)
22
+ RUN mkdir -p /movies && chmod -R 777 /app /movies && chown -R watchparty:watchparty /app /movies
23
+
24
+ # Switch to non-root user
25
+ USER watchparty
26
+
27
+ # Default environment variables
28
+ ENV BASE_MOVIES_DIR=/movies
29
+ ENV VLC_PASSWORD=pass
30
+ ENV VLC_EXECUTABLE=vlc
31
+
32
+ EXPOSE 7860
33
+
34
+ # Mount your media folder to /movies when running the container
35
+ VOLUME ["/movies"]
36
+
37
+ CMD ["sh", "-c", "uvicorn main:app --host 0.0.0.0 --port ${PORT:-7860}"]
README.md ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: WatchParty Bridge
3
+ emoji: 🎬
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: docker
7
+ app_port: 7860
8
+ pinned: false
9
+ ---
10
+
11
+ # tw-watchparty-server (WatchParty Bridge)
12
+
13
+ WatchParty Bridge is a high-performance VLC transcode controller, Twitch streamer, and Media/Download Manager. It provides a unified web dashboard to stream local/downloaded video files to Twitch with fully custom transcode profiles, hot track switching, and an integrated downloader/scraper.
14
+
15
+ ---
16
+
17
+ ## Key Features
18
+
19
+ ### 1. Advanced Twitch Stream & Transcode Customization
20
+ * **Custom Transcode Parameters**: Modify video/audio codecs, presets, samplerates, scaling, and keyframe intervals on the fly.
21
+ * **Default SOUT Preset**: Optimized specifically for Twitch streaming:
22
+ `#transcode{vcodec=h264,vb=3000,scale=Auto,acodec=mp4a,ab=128,channels=2,samplerate=44100,fps=60,soverlay,venc=x264{preset=veryfast,keyint=60}}`
23
+ * **Dynamic Stream Reconfiguration**: Subtitle burn-ins and audio tracks are locked during active transcodes. Our dynamic reconfiguration system lets you switch audio tracks/subtitles by gracefully restarting the stream on the same port in under a second.
24
+
25
+ ### 2. Media & Downloader Dashboard
26
+ * **Native In-House Downloader**: Pure Python HTTP/HTTPS chunk-downloader with Zero system daemon dependencies.
27
+ * **Pause & Resume Support**: Utilizes HTTP range requests to pause and resume downloads at any point.
28
+ * **Persistent Sessions**: Download path selections are persisted in `localStorage` and automatically synchronized with the backend.
29
+ * **File Explorer**: Browse files recursively on the host system, delete files, and click **Play** to automatically prepopulate stream startup configurations.
30
+
31
+ ### 3. Integrated Acer Movies Scraper
32
+ * **Scraper APIs**: Search movies and TV series directly on `acermovies.fun` from the dashboard.
33
+ * **Season & Episode Selector**: Fetches episodes and displays them in a clean checklist.
34
+ * **Checklist Bulk Download**: Select specific episodes or select the entire season to queue them sequentially with one click.
35
+ * **Silent Background Queues**: All browser alert alerts are muted for seamless background additions.
36
+
37
+ ---
38
+
39
+ ## Installation & Running
40
+
41
+ ### Option 1: Running Locally (Recommended)
42
+
43
+ #### Prerequisites
44
+ 1. Install [VLC Media Player](https://www.videolan.org/vlc/). Make sure the `vlc` executable is in your system PATH, or specify its location via the `VLC_EXECUTABLE` environment variable.
45
+ 2. Install Python 3.10 or higher.
46
+
47
+ #### Setup & Start
48
+ 1. Clone the repository and navigate to the directory:
49
+ ```bash
50
+ git clone https://github.com/shubhamakshit/tw-watchparty-web.git
51
+ cd tw-watchparty-web
52
+ ```
53
+ 2. Install dependencies:
54
+ ```bash
55
+ pip install -r requirements.txt
56
+ ```
57
+ 3. Run the server:
58
+ ```bash
59
+ python main.py
60
+ ```
61
+ 4. Open your browser and navigate to `http://localhost:8000`.
62
+
63
+ ---
64
+
65
+ ### Option 2: Running with Docker
66
+
67
+ 1. Ensure Docker and Docker Compose are installed.
68
+ 2. Build and start the containers:
69
+ ```bash
70
+ docker-compose up --build
71
+ ```
72
+ 3. The server will start on port `8000` and map the `./movies` folder to `/movies` inside the container.
73
+
74
+ ---
75
+
76
+ ## Environment Variables
77
+
78
+ Configure the server behavior using these environment variables (or setting them inside your shell/Docker configs):
79
+
80
+ * `BASE_MOVIES_DIR`: The root directory where files are browsed and downloads are saved (Defaults to the user's home directory `~`).
81
+ * `VLC_PASSWORD`: The Telnet password used by the backend to control VLC instances (Default: `pass`).
82
+ * `VLC_EXECUTABLE`: Path to the VLC executable (Default: `vlc`).
83
+
84
+ ---
85
+
86
+ ## Frontend Development & Rebuilding
87
+
88
+ The frontend is built using Next.js, Mantine components, and Tabler icons inside the `frontend` folder.
89
+
90
+ If you make modifications to the frontend code and want to package it for distribution:
91
+ 1. Run the build packaging script in the root directory:
92
+ ```bash
93
+ python build_package.py
94
+ ```
95
+ 2. The script will automatically compile the Next.js static export and copy the assets to the `out` directory, which is served directly by the Python FastAPI backend.
README_DEPLOY.md ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Deploying the WatchParty Bridge to a Home Server
2
+
3
+ This guide explains how to package the Next.js frontend and FastAPI backend into a single, unified package and deploy it on your home server (either directly with Python or via Docker).
4
+
5
+ ---
6
+
7
+ ## Part 1: How Subtitles Work (Updated)
8
+ We have added support for **burning subtitles directly into the Twitch stream**.
9
+ * In the UI, selecting a **Subtitle Track** will send the track index to the backend.
10
+ * The backend automatically appends the `,soverlay` parameter to VLC's `#transcode` block.
11
+ * VLC will burn (render) the selected subtitle track directly onto the video frames before streaming to Twitch.
12
+
13
+ ---
14
+
15
+ ## Part 2: Packaging the Application (Single Port Setup)
16
+ We have configured Next.js to build as a static export, and FastAPI to host these static files directly. This means **both the frontend and backend run on a single port (e.g. 8000)**.
17
+
18
+ To compile the frontend and copy it into the backend folder:
19
+ 1. Open a terminal.
20
+ 2. Navigate to the `tw-watchparty-server` directory.
21
+ 3. Run the automated build script:
22
+ ```bash
23
+ python build_package.py
24
+ ```
25
+ This script will build the Next.js app and copy the static build output into a folder named `out` in the FastAPI directory.
26
+
27
+ ---
28
+
29
+ ## Part 3: Deployment Options
30
+
31
+ ### Option A: Running Directly with Python
32
+ After running `build_package.py`, you can start the unified server using `uvicorn`:
33
+
34
+ ```bash
35
+ uvicorn main:app --host 0.0.0.0 --port 8000
36
+ ```
37
+ * Access the dashboard from any device on your local network: `http://<your-server-ip>:8000`
38
+
39
+ ---
40
+
41
+ ### Option B: Running with Docker / Docker Compose
42
+ We have included a `Dockerfile` and `docker-compose.yml` for containerized deployment.
43
+
44
+ 1. Package the build first:
45
+ ```bash
46
+ python build_package.py
47
+ ```
48
+ 2. Open `docker-compose.yml` and adjust the local path to your movies directory:
49
+ ```yaml
50
+ volumes:
51
+ - /path/to/your/movies/on/server:/movies
52
+ ```
53
+ 3. Start the container in the background:
54
+ ```bash
55
+ docker compose up -d --build
56
+ ```
57
+
58
+ Note: VLC has a built-in security policy that blocks running as `root` inside Docker. The provided `Dockerfile` creates a dedicated, non-root `watchparty` user automatically to ensure VLC starts up safely.
59
+
60
+ ---
61
+
62
+ ## Part 4: Configuration Options
63
+ You can configure the server using environment variables (which are pre-configured in the Docker setup):
64
+
65
+ | Variable | Description | Default |
66
+ | --- | --- | --- |
67
+ | `BASE_MOVIES_DIR` | Directory containing your movies | `C:\Users\Administrator\Downloads` |
68
+ | `VLC_PASSWORD` | Password for VLC Telnet/HTTP interfaces | `pass` |
69
+ | `VLC_EXECUTABLE` | Path to the VLC executable | `vlc` |
app.2.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ from textual.app import App, ComposeResult
4
+ from textual.containers import HorizontalGroup, Grid
5
+ from textual.screen import ModalScreen
6
+ from textual.widgets import Footer, Header, OptionList, Label
7
+ from textual.containers import HorizontalGroup, VerticalScroll
8
+ from textual.widgets import Button, Digits, Footer, Header
9
+ from textual.widgets._option_list import Option
10
+
11
+
12
+ class FileSelectorDialog(ModalScreen):
13
+
14
+ def compose(self) -> ComposeResult:
15
+ yield Grid(
16
+ Label("Select a file:"),
17
+ OptionList(
18
+ Option("Aerilon", id="aer"),
19
+ Option("Aquaria", id="aqu"),
20
+ None,
21
+ Option("Canceron", id="can"),
22
+ Option("Caprica", id="cap", disabled=True),
23
+ None,
24
+ Option("Gemenon", id="gem"),
25
+ None,
26
+ Option("Leonis", id="leo"),
27
+ Option("Libran", id="lib"),
28
+ None,
29
+ Option("Picon", id="pic"),
30
+ None,
31
+ Option("Sagittaron", id="sag"),
32
+ Option("Scorpia", id="sco"),
33
+ None,
34
+ Option("Tauron", id="tau"),
35
+ None,
36
+ Option("Virgon", id="vir"),
37
+ )
38
+ ,
39
+
40
+ Grid(
41
+ Button("Open", id="open"),
42
+ Button("Cancel", id="cancel"),
43
+ id = "dialog-buttons"
44
+ ),
45
+ id = "dialog"
46
+ )
47
+
48
+
49
+ class StopwatchApp(App):
50
+ """A Textual app to manage stopwatches."""
51
+
52
+ CSS_PATH = "app.css"
53
+ BINDINGS = [("d", "toggle_dark", "Toggle dark mode")]
54
+
55
+
56
+
57
+
58
+ def compose(self) -> ComposeResult:
59
+ """Create child widgets for the app."""
60
+
61
+
62
+ yield Header()
63
+ yield Footer()
64
+
65
+
66
+ def action_toggle_dark(self) -> None:
67
+ """An action to toggle dark mode."""
68
+ self.push_screen(FileSelectorDialog())
69
+
70
+
71
+ if __name__ == "__main__":
72
+ app = StopwatchApp()
73
+ app.run()
app.css ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Stopwatch {
2
+ background: $boost;
3
+ height: 5;
4
+ margin: 1;
5
+ min-width: 50;
6
+ padding: 1;
7
+ }
8
+
9
+ Screen{
10
+ layout: grid;
11
+ grid-size: 3 3;
12
+ grid-gutter: 1;
13
+
14
+ }
15
+
16
+ TimeDisplay {
17
+ text-align: center;
18
+ color: $foreground-muted;
19
+ height: 3;
20
+ }
21
+
22
+ TimeDisplay#hover{
23
+ color:green;
24
+ }
25
+
26
+ Button {
27
+ width: 10;
28
+ }
29
+
30
+ #start {
31
+ dock: left;
32
+ }
33
+
34
+ #stop {
35
+ dock: left;
36
+ display: none;
37
+ }
38
+
39
+ #reset {
40
+ dock: right;
41
+ }
42
+
43
+ .started {
44
+ background: $success-muted;
45
+ color: $text;
46
+ }
47
+
48
+ .started TimeDisplay {
49
+ color: $foreground;
50
+ }
51
+
52
+ .started #start {
53
+ display: none
54
+ }
55
+
56
+ .started #stop {
57
+ display: block
58
+ }
59
+
60
+ .started #reset {
61
+ visibility: hidden
62
+ }
63
+
64
+ #dialog{
65
+
66
+ row-span:2;
67
+ column-span:1;
68
+ align: center middle;
69
+ grid-gutter: 1 2;
70
+ grid-rows: 1fr 3;
71
+ padding: 0 1;
72
+ width: 60;
73
+ height: 30;
74
+ border: thick $background 80%;
75
+ background: $surface;
76
+ }
77
+
78
+
79
+ #dialog-buttons{
80
+ grid-size:2;
81
+ }
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ import telnetlib
3
+
4
+ HOST = "localhost"
5
+ PORT = 4200
6
+ password = "pass"
7
+
8
+
9
+ async def vlc():
10
+ print("Launching VLC...")
11
+ # Use asyncio's native non-blocking subprocess creator
12
+ process = await asyncio.create_subprocess_exec(
13
+ "vlc",
14
+ r"C:\Users\Administrator\Downloads\bbb_sunflower_1080p_30fps_normal.mp4\bbb_sunflower_1080p_30fps_normal.mp4",
15
+ "--loop",
16
+ r"--sout=#transcode{vcodec=h264,vb=2000,acodec=aac,ab=128,channels=2,soverlay,fps=30,soverlay}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://live.twitch.tv/app/live_1518336715_CrQoiygeCkDolYIZ0eF5ZJBFHA1e0i}",
17
+ "--intf",
18
+ "telnet",
19
+ "--telnet-password",
20
+ "pass",
21
+ "-vv",
22
+
23
+ "--telnet-port",
24
+ "4200",
25
+ "--extraintf",
26
+ "http",
27
+ "--http-password",
28
+ "pass",
29
+ "--no-sout-all",
30
+ "--sout-keep",
31
+ # This keeps stdout/stderr flowing without blocking your loop
32
+ stdout=asyncio.subprocess.PIPE,
33
+ stderr=asyncio.subprocess.PIPE
34
+ )
35
+
36
+
37
+ # Optional: Read logs asynchronously so they don't block
38
+
39
+ while True:
40
+ line = await process.stderr.readline()
41
+ if not line:
42
+ break
43
+ print(f"[VLC] {line.decode().strip()}")
44
+
45
+
46
+ async def tl():
47
+ # Now this will actually count down while VLC is running!
48
+ print("Waiting 5 seconds for VLC to start...")
49
+ await asyncio.sleep(5)
50
+ print("Connecting to VLC via Telnet...")
51
+
52
+ try:
53
+ tn = telnetlib.Telnet(HOST, PORT)
54
+
55
+ if password:
56
+ tn.read_until(b"Password: ")
57
+ tn.write(password.encode('ascii') + b"\n")
58
+
59
+ tn.read_until(b"> ")
60
+
61
+ tn.write(b"help\n")
62
+
63
+ output = tn.read_until(b"> ")
64
+ print(output.decode('ascii'))
65
+
66
+ tn.close()
67
+ except ConnectionRefusedError:
68
+ print("Error: Could not connect to VLC. Is the port open?")
69
+
70
+
71
+ async def main():
72
+ # Now gather will actually run them concurrently
73
+ await asyncio.gather(vlc(), tl())
74
+
75
+
76
+ asyncio.run(main())
docker-compose.yml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: '3.8'
2
+
3
+ services:
4
+ watchparty:
5
+ build: .
6
+ container_name: watchparty-bridge
7
+ ports:
8
+ - "7860:7860"
9
+ # Expose dynamic ports if you want to inspect VLC HTTP/Telnet directly:
10
+ # - "4200-4250:4200-4250"
11
+ environment:
12
+ - BASE_MOVIES_DIR=/movies
13
+ - VLC_PASSWORD=pass
14
+ volumes:
15
+ # Replace the left path with the absolute path to your movies folder on your host server
16
+ - ./movies:/movies
17
+ restart: unless-stopped
glv.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from colorama import Fore, Style, init
2
+ import glv_var
3
+ import shutil
4
+
5
+
6
+
7
+ # Initialize colorama
8
+ init()
9
+
10
+ class Global:
11
+
12
+ # PREFERENCES_FILE is currently not used in mainLogic Project
13
+ # only used in beta project
14
+ import os
15
+ disable_hr = False
16
+
17
+ def __init__(self, vout=True, outDir="./"):
18
+ self.outDir = outDir
19
+ self.vout = vout
20
+
21
+ @staticmethod
22
+ def set_color(color, style=None):
23
+ """Prints text in the specified color and style."""
24
+ print(getattr(Fore, color), end="")
25
+ if style:
26
+ print(getattr(Style, style), end="")
27
+
28
+ @staticmethod
29
+ def reset():
30
+ """Resets text color and style to defaults."""
31
+ print(Style.RESET_ALL, end="")
32
+
33
+ @staticmethod
34
+ def print_colored(text, color, style=None):
35
+ """Prints text in the specified color and style, resetting afterward."""
36
+ Global.set_color(color, style)
37
+ print(text)
38
+ Global.reset()
39
+
40
+ @staticmethod
41
+ def dprint(text):
42
+ """Prints debug text in yellow."""
43
+ Global.print_colored(text, "YELLOW")
44
+
45
+ @staticmethod
46
+ def errprint(text):
47
+ """Prints error text in red."""
48
+ Global.print_colored(text, "RED")
49
+
50
+ @staticmethod
51
+ def setDebug():
52
+ """Sets the text color to yellow (for debugging)."""
53
+ Global.set_color("YELLOW")
54
+
55
+ @staticmethod
56
+ def setSuccess():
57
+ """Sets the text color to green (for success messages)."""
58
+ Global.set_color("GREEN")
59
+
60
+ @staticmethod
61
+ def sprint(text):
62
+ """Prints success text in green."""
63
+ Global.print_colored(text, "GREEN")
64
+
65
+ @staticmethod
66
+ def hr():
67
+
68
+ # Disable horizontal rule if set
69
+ if Global.disable_hr:
70
+ return
71
+
72
+ """Fills the entire terminal with = (one row only)."""
73
+ columns, _ = shutil.get_terminal_size()
74
+ print("-" * columns)
glv_var.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # defining some variables that can be used in the preferences file
2
+ import os
3
+
4
+ from Debugger import Debugger
5
+ import os
6
+
7
+ class BasicUtils:
8
+
9
+ @staticmethod
10
+ def delete_old_files(directory, minutes):
11
+ """
12
+ Delete files in the given directory which are older than the given number of minutes.
13
+ """
14
+ import time
15
+
16
+ current_time = time.time()
17
+
18
+ for file in os.listdir(directory):
19
+ file_path = os.path.join(directory, file)
20
+
21
+ if os.path.isfile(file_path):
22
+ file_time = os.path.getmtime(file_path)
23
+
24
+ if current_time - file_time >= minutes * 60:
25
+ os.remove(file_path)
26
+
27
+ @staticmethod
28
+ def abspath(path):
29
+ return str(os.path.abspath(os.path.expandvars(path))).replace("\\", "/")
30
+
31
+ vars = {
32
+
33
+ # $script is the path to the folder containing the pwdl.py file
34
+ # Since the userPrefs.py is in the startup folder,
35
+ # we need to go one level up however we make the exception that if the pwdl.py is in the same folder as
36
+ # the startup folder, we don't need to go one level up
37
+ "$script": BasicUtils.abspath(os.path.dirname(__file__) + (
38
+ '/../..' if not os.path.exists(os.path.dirname(__file__) + '../pwdl.py') else '')),
39
+ "$home": os.path.expanduser("~") if os.name == 'posix' else os.getenv('USERPROFILE'),
40
+ }
41
+
42
+ debugger = Debugger(enabled=True,show_location=True)
43
+
44
+ env_file = os.getenv('PWDL_PREF_FILE')
45
+ sys_verbose = os.getenv('PWDL_VERBOSE')
46
+ if env_file and os.path.exists(env_file):
47
+ if sys_verbose: print(f"Using preferences file: {env_file}")
48
+ PREFS_FILE = env_file
49
+ else:
50
+ if sys_verbose: print(f"Using default preferences file: {os.path.join(vars['$script'], 'preferences.json')}")
51
+ PREFS_FILE = os.path.join(vars["$script"], 'preferences.json')
52
+
53
+ api_webdl_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../webdl'))
54
+ EXECUTABLES = ['ffmpeg', 'mp4decrypt']
55
+
56
+
57
+ MINIMUM_PORT = 1024
58
+
59
+ class ENDPOINTS_NAME:
60
+
61
+ base = 'api'
62
+
63
+ @staticmethod
64
+ def GET_PVT_FILE_FOR_A_CLIENT(client_id="<client_id>",name="<name>"):
65
+ return f"/{ENDPOINTS_NAME.base}/get-private-file/{client_id}/{name}"
66
+
main.py ADDED
@@ -0,0 +1,1382 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ import os
3
+ import shutil
4
+ import subprocess
5
+ import socket
6
+ import time
7
+ import uuid
8
+ from collections import deque
9
+ from pathlib import Path
10
+ from typing import Dict, List, Optional
11
+ from urllib.parse import urlparse, unquote
12
+ import re
13
+ import unicodedata
14
+
15
+ import telnetlib
16
+ import requests
17
+ from fastapi import FastAPI, HTTPException
18
+ from fastapi.middleware.cors import CORSMiddleware
19
+ from pydantic import BaseModel, Field
20
+
21
+ # ---------------- Config ----------------
22
+
23
+ default_movies_dir = Path.home()
24
+
25
+ BASE_MOVIES_DIR = Path(os.getenv("BASE_MOVIES_DIR", default_movies_dir)).resolve()
26
+ PASSWORD = os.getenv("VLC_PASSWORD", "pass")
27
+ TELNET_HOST = "localhost"
28
+ VLC_EXECUTABLE = os.getenv("VLC_EXECUTABLE", "vlc")
29
+
30
+
31
+ class SimpleDownload:
32
+ def __init__(self, url: str):
33
+ self.gid = str(uuid.uuid4())[:16]
34
+ self.url = url
35
+ self.status = "waiting" # waiting, active, paused, complete, error, removed
36
+ self.total_length = 0
37
+ self.completed_length = 0
38
+ self.download_speed = 0
39
+ self.download_speed_str = "0 B/s"
40
+ self.eta = "—"
41
+ self.name = ""
42
+ self.error_message = ""
43
+ self.file_path = None
44
+ self._cancel_event = False
45
+ self._pause_event = False
46
+
47
+
48
+ class InHouseDownloader:
49
+ def __init__(self):
50
+ self.downloads = {} # gid -> SimpleDownload
51
+ self._tasks = {} # gid -> asyncio.Task
52
+
53
+ def get_downloads(self):
54
+ return list(self.downloads.values())
55
+
56
+ def get_download(self, gid: str):
57
+ return self.downloads.get(gid)
58
+
59
+ def add(self, url: str, filename: Optional[str] = None, subfolder: Optional[str] = None):
60
+ dl = SimpleDownload(url)
61
+
62
+ if filename:
63
+ name = sanitize_filename(filename)
64
+ else:
65
+ parsed = urlparse(url)
66
+ name = os.path.basename(unquote(parsed.path))
67
+ if not name:
68
+ name = "download_" + dl.gid
69
+
70
+ dl.name = name
71
+
72
+ target_dir = BASE_MOVIES_DIR
73
+ if subfolder:
74
+ # Allow nested directories by splitting on slashes
75
+ parts = [re.sub(r'[?:*""<>|]', "", p).strip() for p in re.split(r'[\\/]', subfolder)]
76
+ parts = [p for p in parts if p]
77
+ if parts:
78
+ target_dir = BASE_MOVIES_DIR.joinpath(*parts)
79
+ target_dir.mkdir(parents=True, exist_ok=True)
80
+
81
+ dl.file_path = target_dir / name
82
+ self.downloads[dl.gid] = dl
83
+
84
+ # Start download task
85
+ self.resume(dl.gid)
86
+ return dl
87
+
88
+ def pause(self, gid: str):
89
+ dl = self.downloads.get(gid)
90
+ if dl and dl.status == "active":
91
+ dl.status = "paused"
92
+ dl._pause_event = True
93
+
94
+ def resume(self, gid: str):
95
+ dl = self.downloads.get(gid)
96
+ if not dl:
97
+ return
98
+
99
+ dl.status = "active"
100
+ dl._pause_event = False
101
+ dl._cancel_event = False
102
+
103
+ task = asyncio.create_task(self._download_loop(dl))
104
+ self._tasks[dl.gid] = task
105
+
106
+ def remove(self, gid: str):
107
+ dl = self.downloads.get(gid)
108
+ if dl:
109
+ dl.status = "removed"
110
+ dl._cancel_event = True
111
+ if dl.file_path and dl.file_path.exists():
112
+ try:
113
+ dl.file_path.unlink()
114
+ except Exception:
115
+ pass
116
+ self.downloads.pop(gid, None)
117
+ self._tasks.pop(gid, None)
118
+
119
+ def autopurge(self):
120
+ to_purge = [gid for gid, dl in self.downloads.items() if dl.status in ("complete", "error", "removed")]
121
+ for gid in to_purge:
122
+ self.downloads.pop(gid, None)
123
+ self._tasks.pop(gid, None)
124
+
125
+ async def _download_loop(self, dl: SimpleDownload):
126
+ try:
127
+ headers = {}
128
+ if dl.completed_length > 0:
129
+ headers["Range"] = f"bytes={dl.completed_length}-"
130
+
131
+ response = await asyncio.to_thread(
132
+ requests.get,
133
+ dl.url,
134
+ headers=headers,
135
+ stream=True,
136
+ timeout=15,
137
+ )
138
+
139
+ if "content-disposition" in response.headers:
140
+ cd = response.headers["content-disposition"]
141
+ for part in cd.split(";"):
142
+ if "filename=" in part:
143
+ dl.name = part.split("=")[1].strip('"\'')
144
+ parent_dir = dl.file_path.parent if dl.file_path else BASE_MOVIES_DIR
145
+ dl.file_path = parent_dir / dl.name
146
+
147
+ is_resume = response.status_code == 206
148
+ if not is_resume and dl.completed_length > 0:
149
+ dl.completed_length = 0
150
+
151
+ if "content-length" in response.headers:
152
+ total_len = int(response.headers["content-length"])
153
+ dl.total_length = total_len + (dl.completed_length if is_resume else 0)
154
+
155
+ mode = "ab" if (is_resume and dl.file_path.exists()) else "wb"
156
+
157
+ start_time = time.time()
158
+ bytes_since_start = 0
159
+
160
+ with open(dl.file_path, mode) as f:
161
+ for chunk in response.iter_content(chunk_size=128 * 1024):
162
+ if dl._cancel_event or dl.status == "removed":
163
+ return
164
+ if dl._pause_event or dl.status == "paused":
165
+ return
166
+
167
+ if chunk:
168
+ f.write(chunk)
169
+ dl.completed_length += len(chunk)
170
+ bytes_since_start += len(chunk)
171
+
172
+ elapsed = time.time() - start_time
173
+ if elapsed > 0.5:
174
+ dl.download_speed = bytes_since_start / elapsed
175
+ speed = dl.download_speed
176
+ if speed >= 1024**2:
177
+ dl.download_speed_str = f"{speed / 1024**2:.2f} MB/s"
178
+ elif speed >= 1024:
179
+ dl.download_speed_str = f"{speed / 1024:.2f} KB/s"
180
+ else:
181
+ dl.download_speed_str = f"{speed:.2f} B/s"
182
+
183
+ remaining = dl.total_length - dl.completed_length
184
+ if remaining > 0 and dl.download_speed > 0:
185
+ eta_secs = int(remaining / dl.download_speed)
186
+ if eta_secs >= 3600:
187
+ dl.eta = f"{eta_secs // 3600}h {(eta_secs % 3600) // 60}m"
188
+ elif eta_secs >= 60:
189
+ dl.eta = f"{eta_secs // 60}m {eta_secs % 60}s"
190
+ else:
191
+ dl.eta = f"{eta_secs}s"
192
+ else:
193
+ dl.eta = "0s"
194
+
195
+ await asyncio.sleep(0.001)
196
+
197
+ dl.status = "complete"
198
+ dl.download_speed_str = "0 B/s"
199
+ dl.eta = "done"
200
+
201
+ except Exception as e:
202
+ dl.status = "error"
203
+ dl.error_message = str(e)
204
+ dl.download_speed_str = "0 B/s"
205
+ dl.eta = "—"
206
+
207
+
208
+ aria2_manager = InHouseDownloader()
209
+
210
+ app = FastAPI(title="VLC Control API", debug=True)
211
+
212
+ app.add_middleware(
213
+ CORSMiddleware,
214
+ allow_origins=["*"],
215
+ allow_methods=["*"],
216
+ allow_headers=["*"],
217
+ )
218
+
219
+ # ---------------- Utilities ----------------
220
+
221
+ def find_free_port() -> int:
222
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
223
+ s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
224
+ s.bind(("localhost", 0))
225
+ return s.getsockname()[1]
226
+
227
+
228
+ # ---------------- Models ----------------
229
+
230
+ class StartVLCRequest(BaseModel):
231
+ video_path: str = Field(..., description="Path relative to BASE_MOVIES_DIR, or absolute")
232
+ stream_key: Optional[str] = Field(None, description="Twitch stream key")
233
+ rtmp_url: Optional[str] = Field(None, description="Full RTMP dst, overrides stream_key")
234
+ loop: bool = True
235
+ video_bitrate: int = 3000
236
+ audio_bitrate: int = 128
237
+ fps: int = 60
238
+ name: Optional[str] = None
239
+ audio_track: Optional[int] = Field(None, description="Audio track index (0 to n)")
240
+ sub_track: Optional[int] = Field(None, description="Subtitle track index (0 to n)")
241
+ scale: str = "Auto"
242
+ vcodec: str = "h264"
243
+ acodec: str = "mp4a"
244
+ samplerate: int = 44100
245
+ preset: str = "veryfast"
246
+ keyint: int = 60
247
+ start_time: Optional[int] = Field(None, description="Start playback time in seconds")
248
+ sort_by: Optional[str] = Field(None, description="Sorting logic for folders (natural, ctime_oldest, ctime_newest)")
249
+
250
+
251
+ class InstanceInfo(BaseModel):
252
+ id: str
253
+ name: str
254
+ pid: Optional[int]
255
+ telnet_port: int
256
+ http_port: int
257
+ video_path: str
258
+ status: str
259
+ started_at: Optional[float]
260
+ returncode: Optional[int]
261
+ start_req: Optional[StartVLCRequest] = None
262
+
263
+
264
+ class ExecRequest(BaseModel):
265
+ command: str
266
+
267
+
268
+ class AddDownloadRequest(BaseModel):
269
+ uri: str
270
+
271
+
272
+ class DeleteFileRequest(BaseModel):
273
+ path: str
274
+
275
+
276
+ class UpdateConfigRequest(BaseModel):
277
+ movies_dir: str
278
+ create_if_missing: bool = True
279
+
280
+
281
+ class SearchRequest(BaseModel):
282
+ query: str
283
+
284
+
285
+ class SourceQualityRequest(BaseModel):
286
+ url: str
287
+
288
+
289
+ class SourceEpisodesRequest(BaseModel):
290
+ url: str
291
+
292
+
293
+ class AcerDownloadRequest(BaseModel):
294
+ url: str
295
+ filename: str
296
+ series_type: str = "episode"
297
+ subfolder: Optional[str] = None
298
+
299
+
300
+ def sanitize_filename(filename):
301
+ normalized = unicodedata.normalize('NFKD', filename).encode('ascii', 'ignore').decode('ascii')
302
+ sanitized = re.sub(r'[\\/*?:"<>|]', "", normalized)
303
+ sanitized = sanitized.replace(' ', '_')
304
+ sanitized = re.sub(r'_+', '_', sanitized).strip('._')
305
+ if not sanitized:
306
+ return 'download'
307
+ stem, ext = os.path.splitext(sanitized)
308
+ max_length = 180
309
+ if len(sanitized) <= max_length:
310
+ return sanitized
311
+ allowed_stem_length = max_length - len(ext)
312
+ shortened_stem = stem[:allowed_stem_length].rstrip('._')
313
+ return f"{shortened_stem}{ext}" if shortened_stem else f"download{ext}"
314
+
315
+
316
+ # ---------------- VLC instance / manager ----------------
317
+
318
+ class VLCInstance:
319
+ def __init__(self, instance_id: str, name: str, video_path: str, telnet_port: int, http_port: int):
320
+ self.id = instance_id
321
+ self.name = name
322
+ self.video_path = video_path
323
+ self.telnet_port = telnet_port
324
+ self.http_port = http_port
325
+ self.process: Optional[subprocess.Popen] = None
326
+ self.status = "starting"
327
+ self.started_at: Optional[float] = None
328
+ self.log_lines: deque = deque(maxlen=200)
329
+ self._reader_task: Optional[asyncio.Task] = None
330
+ self.start_req: Optional[StartVLCRequest] = None
331
+
332
+ def to_info(self) -> InstanceInfo:
333
+ return InstanceInfo(
334
+ id=self.id,
335
+ name=self.name,
336
+ pid=self.process.pid if self.process else None,
337
+ telnet_port=self.telnet_port,
338
+ http_port=self.http_port,
339
+ video_path=self.video_path,
340
+ status=self.status,
341
+ started_at=self.started_at,
342
+ returncode=self.process.poll() if self.process else None,
343
+ start_req=self.start_req,
344
+ )
345
+
346
+ async def _read_logs(self):
347
+ if not self.process or not self.process.stderr:
348
+ return
349
+
350
+ def read_loop():
351
+ try:
352
+ for line in self.process.stderr:
353
+ self.log_lines.append(line.decode(errors="replace").strip())
354
+ except Exception as e:
355
+ self.log_lines.append(f"[log reader error] {e}")
356
+ finally:
357
+ if self.status not in ("stopped", "killed"):
358
+ self.status = "exited"
359
+
360
+ await asyncio.to_thread(read_loop)
361
+
362
+
363
+ class VLCManager:
364
+ def __init__(self):
365
+ self.instances: Dict[str, VLCInstance] = {}
366
+ self._lock = asyncio.Lock()
367
+
368
+ def _resolve_video_path(self, raw: str) -> Path:
369
+ p = Path(raw)
370
+ if not p.is_absolute():
371
+ p = BASE_MOVIES_DIR / raw
372
+ return p.resolve()
373
+ async def start(self, req: StartVLCRequest, instance_id: Optional[str] = None, telnet_port: Optional[int] = None, http_port: Optional[int] = None) -> VLCInstance:
374
+ async with self._lock:
375
+ video_path = self._resolve_video_path(req.video_path)
376
+ if not video_path.exists():
377
+ raise HTTPException(status_code=404, detail=f"Video not found: {video_path}")
378
+ if shutil.which(VLC_EXECUTABLE) is None:
379
+ raise HTTPException(status_code=500, detail="vlc executable not found on PATH")
380
+
381
+ dst = req.rtmp_url
382
+ if not dst:
383
+ if not req.stream_key:
384
+ raise HTTPException(status_code=400, detail="Provide rtmp_url or stream_key")
385
+ dst = f"rtmp://live.twitch.tv/app/{req.stream_key}"
386
+
387
+ if not instance_id:
388
+ instance_id = uuid.uuid4().hex[:8]
389
+ name = req.name or instance_id
390
+ if not telnet_port:
391
+ telnet_port = find_free_port()
392
+ if not http_port:
393
+ http_port = find_free_port()
394
+
395
+ # If path is a directory, gather all media files and sort them. Otherwise just use it as a single file.
396
+ input_items = []
397
+ if video_path.is_dir():
398
+ media_exts = {".mp4", ".mkv", ".avi", ".mov", ".m4v", ".flv", ".mp3", ".wav", ".aac"}
399
+ media_files = [f for f in video_path.iterdir() if f.is_file() and f.suffix.lower() in media_exts]
400
+ if not media_files:
401
+ raise HTTPException(status_code=400, detail="No streamable media files found in directory")
402
+
403
+ # Sorting
404
+ if req.sort_by == "ctime_oldest":
405
+ media_files.sort(key=lambda f: f.stat().st_ctime)
406
+ elif req.sort_by == "ctime_newest":
407
+ media_files.sort(key=lambda f: f.stat().st_ctime, reverse=True)
408
+ else: # Default: Natural Alphanumeric Sort
409
+ def natural_keys(path):
410
+ text = path.name
411
+ return [int(c) if c.isdigit() else c.lower() for c in re.split(r'(\d+)', text)]
412
+ media_files.sort(key=natural_keys)
413
+
414
+ input_items = [str(f.resolve()) for f in media_files]
415
+ else:
416
+ input_items = [str(video_path)]
417
+
418
+ # Generate dynamic SOUT options based on request params
419
+ transcode_opts = (
420
+ f"vcodec={req.vcodec},vb={req.video_bitrate},"
421
+ f"scale={req.scale},acodec={req.acodec},ab={req.audio_bitrate},"
422
+ f"channels=2,samplerate={req.samplerate},fps={req.fps}"
423
+ )
424
+
425
+ if req.preset or req.keyint:
426
+ venc_opts = []
427
+ if req.preset:
428
+ venc_opts.append(f"preset={req.preset}")
429
+ if req.keyint:
430
+ venc_opts.append(f"keyint={req.keyint}")
431
+ transcode_opts += f",venc=x264{{{','.join(venc_opts)}}}"
432
+
433
+ if req.sub_track is not None:
434
+ transcode_opts += ",soverlay"
435
+
436
+ sout = (
437
+ f"#transcode{{{transcode_opts}}}"
438
+ f":std{{access=rtmp,mux=flv,dst={dst}}}"
439
+ )
440
+
441
+ args = [
442
+ VLC_EXECUTABLE,
443
+ ]
444
+ args.extend(input_items)
445
+ args.extend([
446
+ f"--sout={sout}",
447
+ "--intf", "telnet",
448
+ "--telnet-password", PASSWORD,
449
+ "--telnet-port", str(telnet_port),
450
+ "--extraintf", "http",
451
+ "--http-password", PASSWORD,
452
+ "--http-port", str(http_port),
453
+ "--no-sout-all",
454
+ "--sout-keep",
455
+ "-vv",
456
+ ])
457
+ if req.loop:
458
+ args.append("--loop")
459
+ if req.audio_track is not None:
460
+ args.append(f"--audio-track={req.audio_track}")
461
+ if req.sub_track is not None:
462
+ args.append(f"--sub-track={req.sub_track}")
463
+ if req.start_time is not None and req.start_time > 0:
464
+ args.append(f"--start-time={req.start_time}")
465
+
466
+ # Reuse existing instance configuration if reconfiguring
467
+ if instance_id in self.instances:
468
+ instance = self.instances[instance_id]
469
+ instance.video_path = str(video_path)
470
+ instance.status = "starting"
471
+ instance.process = None
472
+ instance.log_lines.clear()
473
+ else:
474
+ instance = VLCInstance(instance_id, name, str(video_path), telnet_port, http_port)
475
+
476
+ instance.start_req = req
477
+
478
+ import traceback
479
+ print("--- Launching VLC ---")
480
+ print(f"Executable: {VLC_EXECUTABLE}")
481
+ print(f"Resolved executable: {shutil.which(VLC_EXECUTABLE)}")
482
+ print(f"Arguments: {args}")
483
+ try:
484
+ process = await asyncio.to_thread(
485
+ subprocess.Popen,
486
+ args,
487
+ stdout=subprocess.PIPE,
488
+ stderr=subprocess.PIPE,
489
+ )
490
+ print(f"Successfully launched VLC. PID: {process.pid}")
491
+ except Exception as e:
492
+ print(f"Exception while launching VLC: {e}")
493
+ traceback.print_exc()
494
+ raise HTTPException(status_code=500, detail=f"Failed to launch VLC: {e}")
495
+
496
+ instance.process = process
497
+ instance.started_at = time.time()
498
+ instance._reader_task = asyncio.create_task(instance._read_logs())
499
+ self.instances[instance_id] = instance
500
+
501
+ ok = await self._wait_for_telnet(instance, timeout=8)
502
+ instance.status = "running" if ok else "error"
503
+ if ok:
504
+ # Headless VLC often starts muted (volume 0) when no soundcard is detected.
505
+ # Explicitly initialize VLC volume to 256 (100%) so stream audio works.
506
+ try:
507
+ await asyncio.to_thread(
508
+ requests.get,
509
+ f"http://localhost:{instance.http_port}/requests/status.json?command=volume&val=256",
510
+ auth=("", PASSWORD),
511
+ timeout=2,
512
+ )
513
+ except Exception:
514
+ pass
515
+ if not ok:
516
+ instance.log_lines.append("Telnet interface did not become ready in time.")
517
+ return instance
518
+
519
+ async def _wait_for_telnet(self, instance: VLCInstance, timeout: float = 8) -> bool:
520
+ deadline = time.time() + timeout
521
+ while time.time() < deadline:
522
+ if instance.process.poll() is not None:
523
+ return False
524
+ try:
525
+ if await asyncio.to_thread(self._telnet_probe, instance.telnet_port):
526
+ return True
527
+ except Exception:
528
+ pass
529
+ await asyncio.sleep(0.5)
530
+ return False
531
+
532
+ @staticmethod
533
+ def _telnet_probe(port: int) -> bool:
534
+ tn = None
535
+ try:
536
+ tn = telnetlib.Telnet(TELNET_HOST, port, timeout=2)
537
+ tn.read_until(b"Password: ", timeout=2)
538
+ tn.write(PASSWORD.encode("ascii") + b"\n")
539
+ tn.read_until(b"> ", timeout=2)
540
+ return True
541
+ except Exception:
542
+ return False
543
+ finally:
544
+ if tn:
545
+ tn.close()
546
+
547
+ def get(self, instance_id: str) -> VLCInstance:
548
+ inst = self.instances.get(instance_id)
549
+ if not inst:
550
+ raise HTTPException(status_code=404, detail=f"No such instance: {instance_id}")
551
+ return inst
552
+
553
+ def list(self) -> List[VLCInstance]:
554
+ return list(self.instances.values())
555
+
556
+ async def stop(self, instance_id: str, force: bool = False) -> VLCInstance:
557
+ inst = self.get(instance_id)
558
+ if inst.process is None or inst.process.poll() is not None:
559
+ inst.status = "stopped" if inst.process is None else "exited"
560
+ return inst
561
+ try:
562
+ if force:
563
+ inst.process.kill()
564
+ else:
565
+ inst.process.terminate()
566
+ try:
567
+ await asyncio.wait_for(asyncio.to_thread(inst.process.wait), timeout=6)
568
+ except asyncio.TimeoutError:
569
+ if not force:
570
+ inst.process.kill()
571
+ await asyncio.wait_for(asyncio.to_thread(inst.process.wait), timeout=6)
572
+ inst.status = "killed" if force else "stopped"
573
+ except ProcessLookupError:
574
+ inst.status = "stopped"
575
+ except Exception as e:
576
+ inst.log_lines.append(f"[stop error] {e}")
577
+ raise HTTPException(status_code=500, detail=f"Failed to stop instance: {e}")
578
+ return inst
579
+
580
+ def remove(self, instance_id: str):
581
+ self.instances.pop(instance_id, None)
582
+
583
+
584
+ manager = VLCManager()
585
+
586
+
587
+ def _telnet_exec(port: int, command: str, timeout: float = 5) -> str:
588
+ tn = telnetlib.Telnet(TELNET_HOST, port, timeout=timeout)
589
+ try:
590
+ tn.read_until(b"Password: ", timeout=timeout)
591
+ tn.write(PASSWORD.encode("ascii") + b"\n")
592
+ tn.read_until(b"> ", timeout=timeout)
593
+ tn.write(command.encode("ascii", errors="replace") + b"\n")
594
+ return tn.read_until(b"> ", timeout=timeout).decode("ascii", errors="replace")
595
+ finally:
596
+ tn.close()
597
+
598
+
599
+ # ---------------- Routes ----------------
600
+
601
+ # @app.get("/")
602
+ # async def root():
603
+ # return {"message": "VLC Control API"}
604
+
605
+
606
+ @app.get("/movies/probe/{path:path}")
607
+ async def probe_movie(path: str):
608
+ import json
609
+ target = (BASE_MOVIES_DIR / path).resolve()
610
+ try:
611
+ target.relative_to(BASE_MOVIES_DIR)
612
+ except ValueError:
613
+ raise HTTPException(status_code=400, detail="Path escapes movies directory")
614
+ if not target.exists():
615
+ raise HTTPException(status_code=404, detail="Path not found")
616
+ if target.is_dir():
617
+ raise HTTPException(status_code=400, detail="Path is a directory")
618
+
619
+ cmd = [
620
+ "ffprobe",
621
+ "-v", "error",
622
+ "-show_entries", "stream=index,codec_type,codec_name:stream_tags=language,title",
623
+ "-of", "json",
624
+ str(target)
625
+ ]
626
+ try:
627
+ process = await asyncio.to_thread(
628
+ subprocess.run,
629
+ cmd,
630
+ stdout=subprocess.PIPE,
631
+ stderr=subprocess.PIPE,
632
+ text=True,
633
+ check=True
634
+ )
635
+ data = json.loads(process.stdout)
636
+ except Exception as e:
637
+ raise HTTPException(status_code=500, detail=f"Failed to probe file: {e}")
638
+
639
+ streams = data.get("streams", [])
640
+ audio_tracks = []
641
+ sub_tracks = []
642
+
643
+ audio_index = 0
644
+ sub_index = 0
645
+
646
+ for stream in streams:
647
+ t = stream.get("codec_type")
648
+ tags = stream.get("tags", {})
649
+ language = tags.get("language", "und")
650
+ title = tags.get("title", "")
651
+ codec = stream.get("codec_name", "")
652
+
653
+ info = {
654
+ "vlc_index": None,
655
+ "ffprobe_index": stream.get("index"),
656
+ "codec": codec,
657
+ "language": language,
658
+ "title": title
659
+ }
660
+
661
+ if t == "audio":
662
+ info["vlc_index"] = audio_index
663
+ audio_tracks.append(info)
664
+ audio_index += 1
665
+ elif t == "subtitle":
666
+ info["vlc_index"] = sub_index
667
+ sub_tracks.append(info)
668
+ sub_index += 1
669
+
670
+ return {
671
+ "audio": audio_tracks,
672
+ "subtitle": sub_tracks
673
+ }
674
+
675
+
676
+ @app.get("/movies")
677
+ @app.get("/movies/{path:path}")
678
+ async def get_movies(path: str = ""):
679
+ target = (BASE_MOVIES_DIR / path).resolve()
680
+ try:
681
+ target.relative_to(BASE_MOVIES_DIR)
682
+ except ValueError:
683
+ raise HTTPException(status_code=400, detail="Path escapes movies directory")
684
+ if not target.exists():
685
+ raise HTTPException(status_code=404, detail="Path not found")
686
+ if not target.is_dir():
687
+ raise HTTPException(status_code=400, detail="Path is not a directory")
688
+
689
+ try:
690
+ subfolders = [f.name for f in os.scandir(target) if f.is_dir() and not f.name.startswith(".")]
691
+ files = [f.name for f in os.scandir(target) if not f.is_dir() and not f.name.startswith(".")]
692
+ except PermissionError:
693
+ raise HTTPException(status_code=403, detail=f"Permission denied accessing directory: {target}")
694
+ except Exception as e:
695
+ raise HTTPException(status_code=500, detail=f"Failed to scan directory: {e}")
696
+ return {"message": {"files": files, "subfolders": subfolders}}
697
+
698
+
699
+ @app.post("/vlc/start", response_model=InstanceInfo)
700
+ async def start_vlc(req: StartVLCRequest):
701
+ instance = await manager.start(req)
702
+ return instance.to_info()
703
+
704
+
705
+ @app.post("/vlc/{instance_id}/reconfigure", response_model=InstanceInfo)
706
+ async def reconfigure_instance(instance_id: str, req: StartVLCRequest):
707
+ inst = manager.get(instance_id)
708
+ # Stop the current process
709
+ await manager.stop(instance_id, force=True)
710
+ # Start it again on the same ports!
711
+ new_inst = await manager.start(
712
+ req,
713
+ instance_id=instance_id,
714
+ telnet_port=inst.telnet_port,
715
+ http_port=inst.http_port
716
+ )
717
+ return new_inst.to_info()
718
+
719
+
720
+ @app.get("/vlc/instances", response_model=List[InstanceInfo])
721
+ async def list_instances():
722
+ return [i.to_info() for i in manager.list()]
723
+
724
+
725
+ @app.get("/vlc/{instance_id}", response_model=InstanceInfo)
726
+ async def get_instance(instance_id: str):
727
+ return manager.get(instance_id).to_info()
728
+
729
+
730
+ @app.get("/vlc/{instance_id}/logs")
731
+ async def get_logs(instance_id: str, lines: int = 50):
732
+ inst = manager.get(instance_id)
733
+ return {"status": "success", "message": list(inst.log_lines)[-lines:]}
734
+
735
+
736
+ @app.post("/vlc/{instance_id}/stop", response_model=InstanceInfo)
737
+ async def stop_instance(instance_id: str):
738
+ return (await manager.stop(instance_id, force=False)).to_info()
739
+
740
+
741
+ @app.post("/vlc/{instance_id}/kill", response_model=InstanceInfo)
742
+ async def kill_instance(instance_id: str):
743
+ return (await manager.stop(instance_id, force=True)).to_info()
744
+
745
+
746
+ @app.delete("/vlc/{instance_id}")
747
+ async def delete_instance(instance_id: str):
748
+ inst = manager.get(instance_id)
749
+ if inst.process and inst.process.poll() is None:
750
+ await manager.stop(instance_id, force=True)
751
+ manager.remove(instance_id)
752
+ return {"status": "success", "message": f"Removed instance {instance_id}"}
753
+
754
+
755
+ @app.post("/vlc/{instance_id}/exec")
756
+ async def exec_command(instance_id: str, body: ExecRequest):
757
+ inst = manager.get(instance_id)
758
+ if inst.process is None or inst.process.poll() is not None:
759
+ raise HTTPException(status_code=409, detail="Instance is not running")
760
+ try:
761
+ output = await asyncio.to_thread(_telnet_exec, inst.telnet_port, body.command)
762
+ return {"status": "success", "message": output}
763
+ except (ConnectionRefusedError, OSError) as e:
764
+ raise HTTPException(status_code=502, detail=f"Could not connect to VLC telnet: {e}")
765
+ except Exception as e:
766
+ raise HTTPException(status_code=500, detail=f"Exec failed: {e}")
767
+
768
+
769
+ @app.get("/vlc/{instance_id}/status")
770
+ async def instance_status(instance_id: str):
771
+ inst = manager.get(instance_id)
772
+ if inst.process is None or inst.process.poll() is not None:
773
+ return {"status": "error", "message": "Instance is not running"}
774
+ try:
775
+ res = await asyncio.to_thread(
776
+ requests.get,
777
+ f"http://localhost:{inst.http_port}/requests/status.json",
778
+ auth=("", PASSWORD),
779
+ timeout=5,
780
+ )
781
+ return {"status": "success", "message": res.json()}
782
+ except Exception as e:
783
+ return {"status": "error", "message": f"Could not connect to VLC HTTP interface. Error: {e}"}
784
+
785
+
786
+ @app.post("/vlc/{instance_id}/volume")
787
+ async def change_volume(instance_id: str, val: str):
788
+ inst = manager.get(instance_id)
789
+ if inst.process is None or inst.process.poll() is not None:
790
+ raise HTTPException(status_code=409, detail="Instance is not running")
791
+ try:
792
+ res = await asyncio.to_thread(
793
+ requests.get,
794
+ f"http://localhost:{inst.http_port}/requests/status.json?command=volume&val={val}",
795
+ auth=("", PASSWORD),
796
+ timeout=5,
797
+ )
798
+ return {"status": "success", "message": res.json()}
799
+ except Exception as e:
800
+ raise HTTPException(status_code=500, detail=f"Failed to change volume: {e}")
801
+
802
+
803
+ @app.post("/vlc/{instance_id}/track")
804
+ async def change_track(instance_id: str, type: str, val: int):
805
+ inst = manager.get(instance_id)
806
+ if inst.process is None or inst.process.poll() is not None:
807
+ raise HTTPException(status_code=409, detail="Instance is not running")
808
+
809
+ command = "audio_track" if type == "audio" else "subtitle_track"
810
+ try:
811
+ res = await asyncio.to_thread(
812
+ requests.get,
813
+ f"http://localhost:{inst.http_port}/requests/status.json?command={command}&val={val}",
814
+ auth=("", PASSWORD),
815
+ timeout=5,
816
+ )
817
+ return {"status": "success", "message": res.json()}
818
+ except Exception as e:
819
+ raise HTTPException(status_code=500, detail=f"Failed to change track: {e}")
820
+
821
+
822
+ # ---------------- Aria2 / Explorer API routes ----------------
823
+
824
+ @app.get("/aria2/downloads")
825
+ async def get_downloads():
826
+ try:
827
+ downloads = aria2_manager.get_downloads()
828
+ results = []
829
+ for dl in downloads:
830
+ total = dl.total_length
831
+ completed = dl.completed_length
832
+ pct = (completed / total * 100) if total > 0 else 0
833
+
834
+ results.append({
835
+ "gid": dl.gid,
836
+ "name": dl.name,
837
+ "status": dl.status,
838
+ "total_length": total,
839
+ "completed_length": completed,
840
+ "progress": round(pct, 2),
841
+ "download_speed": dl.download_speed,
842
+ "download_speed_str": dl.download_speed_str,
843
+ "eta": dl.eta,
844
+ "files": [str(dl.file_path)] if dl.file_path else [],
845
+ "error_message": dl.error_message
846
+ })
847
+ return {"status": "success", "downloads": results}
848
+ except Exception as e:
849
+ raise HTTPException(status_code=500, detail=f"Failed to fetch downloads: {e}")
850
+
851
+
852
+ @app.post("/aria2/add")
853
+ async def add_download(req: AddDownloadRequest):
854
+ try:
855
+ dl = aria2_manager.add(req.uri)
856
+ return {"status": "success", "gid": dl.gid}
857
+ except Exception as e:
858
+ raise HTTPException(status_code=400, detail=f"Failed to add download: {e}")
859
+
860
+
861
+ @app.post("/aria2/pause/{gid}")
862
+ async def pause_download(gid: str):
863
+ try:
864
+ aria2_manager.pause(gid)
865
+ return {"status": "success"}
866
+ except Exception as e:
867
+ raise HTTPException(status_code=500, detail=str(e))
868
+
869
+
870
+ @app.post("/aria2/resume/{gid}")
871
+ async def resume_download(gid: str):
872
+ try:
873
+ aria2_manager.resume(gid)
874
+ return {"status": "success"}
875
+ except Exception as e:
876
+ raise HTTPException(status_code=500, detail=str(e))
877
+
878
+
879
+ @app.post("/aria2/remove/{gid}")
880
+ async def remove_download(gid: str):
881
+ try:
882
+ aria2_manager.remove(gid)
883
+ return {"status": "success"}
884
+ except Exception as e:
885
+ raise HTTPException(status_code=500, detail=str(e))
886
+
887
+
888
+ @app.post("/aria2/purge")
889
+ async def purge_downloads():
890
+ try:
891
+ aria2_manager.autopurge()
892
+ return {"status": "success"}
893
+ except Exception as e:
894
+ raise HTTPException(status_code=500, detail=str(e))
895
+
896
+
897
+ # ---------------- Acer Scraper APIs ----------------
898
+
899
+ API_BASE_URL = 'https://api2.acermovies.fun/api'
900
+ DEFAULT_HEADERS = {
901
+ "Accept": "*/*",
902
+ "Accept-Language": "en-US,en;q=0.9",
903
+ "Content-Type": "application/json",
904
+ "Origin": "https://acermovies.fun",
905
+ "Referer": "https://acermovies.fun/",
906
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 Edg/150.0.0.0",
907
+ "sec-ch-ua": '"Not;A=Brand";v="8", "Chromium";v="150", "Microsoft Edge";v="150"',
908
+ "sec-ch-ua-mobile": "?0",
909
+ "sec-ch-ua-platform": '"Windows"',
910
+ "sec-fetch-dest": "empty",
911
+ "sec-fetch-mode": "cors",
912
+ "sec-fetch-site": "same-site"
913
+ }
914
+
915
+
916
+ @app.post("/acer/search")
917
+ async def acer_search(req: SearchRequest):
918
+ try:
919
+ res = await asyncio.to_thread(
920
+ requests.post,
921
+ f"{API_BASE_URL}/search",
922
+ headers=DEFAULT_HEADERS,
923
+ json={"searchQuery": req.query},
924
+ timeout=10
925
+ )
926
+ res.raise_for_status()
927
+ return res.json()
928
+ except Exception as e:
929
+ raise HTTPException(status_code=500, detail=f"Search failed: {e}")
930
+
931
+
932
+ @app.post("/acer/qualities")
933
+ async def acer_qualities(req: SourceQualityRequest):
934
+ try:
935
+ res = await asyncio.to_thread(
936
+ requests.post,
937
+ f"{API_BASE_URL}/sourceQuality",
938
+ headers=DEFAULT_HEADERS,
939
+ json={"url": req.url},
940
+ timeout=10
941
+ )
942
+ res.raise_for_status()
943
+ return res.json()
944
+ except Exception as e:
945
+ raise HTTPException(status_code=500, detail=f"Failed to fetch qualities: {e}")
946
+
947
+
948
+ @app.post("/acer/episodes")
949
+ async def acer_episodes(req: SourceEpisodesRequest):
950
+ try:
951
+ res = await asyncio.to_thread(
952
+ requests.post,
953
+ f"{API_BASE_URL}/sourceEpisodes",
954
+ headers=DEFAULT_HEADERS,
955
+ json={"url": req.url},
956
+ timeout=10
957
+ )
958
+ res.raise_for_status()
959
+ return res.json()
960
+ except Exception as e:
961
+ raise HTTPException(status_code=500, detail=f"Failed to fetch episodes: {e}")
962
+
963
+
964
+ @app.post("/acer/download")
965
+ async def acer_download(req: AcerDownloadRequest):
966
+ try:
967
+ # 1. Resolve sourceUrl
968
+ res = await asyncio.to_thread(
969
+ requests.post,
970
+ f"{API_BASE_URL}/sourceUrl",
971
+ headers=DEFAULT_HEADERS,
972
+ json={"url": req.url, "seriesType": req.series_type},
973
+ timeout=15
974
+ )
975
+ res.raise_for_status()
976
+ data = res.json()
977
+ direct_url = data.get("sourceUrl")
978
+ if not direct_url:
979
+ raise HTTPException(status_code=400, detail="Could not resolve download URL")
980
+
981
+ # Decode URL
982
+ direct_url = unquote(direct_url)
983
+
984
+ # 2. Add to downloader
985
+ dl = aria2_manager.add(direct_url, filename=req.filename, subfolder=req.subfolder)
986
+ return {"status": "success", "gid": dl.gid, "filename": dl.name}
987
+ except Exception as e:
988
+ raise HTTPException(status_code=500, detail=f"Download queue failed: {e}")
989
+
990
+
991
+ @app.get("/config")
992
+ async def get_config():
993
+ return {
994
+ "status": "success",
995
+ "default_movies_dir": str(default_movies_dir),
996
+ "current_movies_dir": str(BASE_MOVIES_DIR),
997
+ }
998
+
999
+
1000
+ @app.post("/config")
1001
+ async def update_config(req: UpdateConfigRequest):
1002
+ global BASE_MOVIES_DIR
1003
+ target = Path(req.movies_dir).expanduser().resolve()
1004
+
1005
+ if not target.exists():
1006
+ if req.create_if_missing:
1007
+ try:
1008
+ target.mkdir(parents=True, exist_ok=True)
1009
+ except Exception as e:
1010
+ raise HTTPException(status_code=500, detail=f"Failed to create directory: {e}")
1011
+ else:
1012
+ raise HTTPException(status_code=400, detail="Directory does not exist")
1013
+
1014
+ BASE_MOVIES_DIR = target
1015
+ return {
1016
+ "status": "success",
1017
+ "current_movies_dir": str(BASE_MOVIES_DIR),
1018
+ "message": f"Updated active movies directory to {BASE_MOVIES_DIR}"
1019
+ }
1020
+
1021
+
1022
+ @app.get("/explorer")
1023
+ @app.get("/explorer/{path:path}")
1024
+ async def explorer_list(path: str = ""):
1025
+ target = (BASE_MOVIES_DIR / path).resolve()
1026
+ try:
1027
+ target.relative_to(BASE_MOVIES_DIR)
1028
+ except ValueError:
1029
+ raise HTTPException(status_code=400, detail="Access denied")
1030
+
1031
+ if not target.exists():
1032
+ raise HTTPException(status_code=404, detail="Path not found")
1033
+
1034
+ if not target.is_dir():
1035
+ raise HTTPException(status_code=400, detail="Not a directory")
1036
+
1037
+ entries = []
1038
+ try:
1039
+ for item in os.scandir(target):
1040
+ if item.name.startswith("."):
1041
+ continue
1042
+
1043
+ stat = item.stat()
1044
+ relative = str(Path(item.path).relative_to(BASE_MOVIES_DIR)).replace("\\", "/")
1045
+
1046
+ is_directory = item.is_dir()
1047
+ size_bytes = stat.st_size if not is_directory else 0
1048
+
1049
+ if is_directory:
1050
+ size_str = "dir"
1051
+ else:
1052
+ if size_bytes >= 1024**3:
1053
+ size_str = f"{size_bytes / 1024**3:.2f} GB"
1054
+ elif size_bytes >= 1024**2:
1055
+ size_str = f"{size_bytes / 1024**2:.2f} MB"
1056
+ elif size_bytes >= 1024:
1057
+ size_str = f"{size_bytes / 1024:.2f} KB"
1058
+ else:
1059
+ size_str = f"{size_bytes} B"
1060
+
1061
+ entries.append({
1062
+ "name": item.name,
1063
+ "type": "directory" if is_directory else "file",
1064
+ "size": size_bytes,
1065
+ "size_str": size_str,
1066
+ "modified_at": stat.st_mtime,
1067
+ "path": relative
1068
+ })
1069
+ except PermissionError:
1070
+ raise HTTPException(status_code=403, detail="Permission denied")
1071
+
1072
+ entries.sort(key=lambda x: (x["type"] != "directory", x["name"].lower()))
1073
+ return {"status": "success", "entries": entries, "current_path": path}
1074
+
1075
+
1076
+ @app.post("/explorer/delete")
1077
+ async def explorer_delete(req: DeleteFileRequest):
1078
+ target = (BASE_MOVIES_DIR / req.path).resolve()
1079
+ try:
1080
+ target.relative_to(BASE_MOVIES_DIR)
1081
+ except ValueError:
1082
+ raise HTTPException(status_code=400, detail="Access denied")
1083
+
1084
+ if not target.exists():
1085
+ raise HTTPException(status_code=404, detail="File or directory not found")
1086
+
1087
+ try:
1088
+ if target.is_dir():
1089
+ shutil.rmtree(target)
1090
+ else:
1091
+ target.unlink()
1092
+ return {"status": "success", "message": f"Successfully deleted {req.path}"}
1093
+ except Exception as e:
1094
+ raise HTTPException(status_code=500, detail=f"Failed to delete: {e}")
1095
+
1096
+
1097
+ from fastapi import UploadFile, Form
1098
+ import zipfile
1099
+
1100
+ class CreateFolderRequest(BaseModel):
1101
+ parent_path: str
1102
+ folder_name: str
1103
+
1104
+ class RenameRequest(BaseModel):
1105
+ old_path: str
1106
+ new_name: str
1107
+
1108
+ class CopyMoveRequest(BaseModel):
1109
+ source_paths: List[str]
1110
+ target_dir: str
1111
+
1112
+ class ZipRequest(BaseModel):
1113
+ paths: List[str]
1114
+ target_zip_name: str
1115
+ current_dir: str
1116
+
1117
+ class UnzipRequest(BaseModel):
1118
+ zip_path: str
1119
+ target_dir: str
1120
+
1121
+ class ResumePositionRequest(BaseModel):
1122
+ file_path: str
1123
+ resume_position: int
1124
+
1125
+ # Watch History JSON file storage helpers
1126
+ HISTORY_FILE = Path.home() / ".watchparty_history.json"
1127
+
1128
+ def _load_history() -> List[dict]:
1129
+ if not HISTORY_FILE.exists():
1130
+ return []
1131
+ try:
1132
+ import json
1133
+ with open(HISTORY_FILE, "r", encoding="utf-8") as f:
1134
+ return json.load(f)
1135
+ except Exception:
1136
+ return []
1137
+
1138
+ def _save_history(history: List[dict]):
1139
+ try:
1140
+ import json
1141
+ with open(HISTORY_FILE, "w", encoding="utf-8") as f:
1142
+ json.dump(history, f, indent=2, ensure_ascii=False)
1143
+ except Exception:
1144
+ pass
1145
+
1146
+ @app.get("/history")
1147
+ async def get_history():
1148
+ return {"status": "success", "history": _load_history()}
1149
+
1150
+ @app.post("/history/resume")
1151
+ async def update_resume_position(req: ResumePositionRequest):
1152
+ history = _load_history()
1153
+ history = [item for item in history if item.get("file_path") != req.file_path]
1154
+ history.insert(0, {
1155
+ "file_path": req.file_path,
1156
+ "last_streamed": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
1157
+ "resume_position": req.resume_position
1158
+ })
1159
+ _save_history(history[:50])
1160
+ return {"status": "success"}
1161
+
1162
+ @app.post("/explorer/mkdir")
1163
+ async def explorer_mkdir(req: CreateFolderRequest):
1164
+ parent = (BASE_MOVIES_DIR / req.parent_path).resolve()
1165
+ try:
1166
+ parent.relative_to(BASE_MOVIES_DIR)
1167
+ except ValueError:
1168
+ raise HTTPException(status_code=400, detail="Access denied")
1169
+
1170
+ # Sanitize folder name
1171
+ sanitized = re.sub(r'[\\/*?:"<>|]', "", req.folder_name).strip()
1172
+ if not sanitized:
1173
+ raise HTTPException(status_code=400, detail="Invalid folder name")
1174
+
1175
+ target = parent / sanitized
1176
+ try:
1177
+ target.mkdir(parents=True, exist_ok=True)
1178
+ return {"status": "success", "message": f"Created folder {sanitized}"}
1179
+ except Exception as e:
1180
+ raise HTTPException(status_code=500, detail=str(e))
1181
+
1182
+ @app.post("/explorer/rename")
1183
+ async def explorer_rename(req: RenameRequest):
1184
+ old_target = (BASE_MOVIES_DIR / req.old_path).resolve()
1185
+ try:
1186
+ old_target.relative_to(BASE_MOVIES_DIR)
1187
+ except ValueError:
1188
+ raise HTTPException(status_code=400, detail="Access denied")
1189
+
1190
+ if not old_target.exists():
1191
+ raise HTTPException(status_code=404, detail="Path not found")
1192
+
1193
+ sanitized = re.sub(r'[\\/*?:"<>|]', "", req.new_name).strip()
1194
+ if not sanitized:
1195
+ raise HTTPException(status_code=400, detail="Invalid target name")
1196
+
1197
+ new_target = old_target.parent / sanitized
1198
+ if new_target.exists():
1199
+ raise HTTPException(status_code=400, detail="Target name already exists")
1200
+
1201
+ try:
1202
+ shutil.move(str(old_target), str(new_target))
1203
+ return {"status": "success", "message": f"Renamed to {sanitized}"}
1204
+ except Exception as e:
1205
+ raise HTTPException(status_code=500, detail=str(e))
1206
+
1207
+ @app.post("/explorer/copy")
1208
+ async def explorer_copy(req: CopyMoveRequest):
1209
+ target_dir = (BASE_MOVIES_DIR / req.target_dir).resolve()
1210
+ try:
1211
+ target_dir.relative_to(BASE_MOVIES_DIR)
1212
+ except ValueError:
1213
+ raise HTTPException(status_code=400, detail="Access denied")
1214
+
1215
+ if not target_dir.exists() or not target_dir.is_dir():
1216
+ raise HTTPException(status_code=400, detail="Target directory invalid")
1217
+
1218
+ copied = []
1219
+ errors = []
1220
+ for sp in req.source_paths:
1221
+ src = (BASE_MOVIES_DIR / sp).resolve()
1222
+ try:
1223
+ src.relative_to(BASE_MOVIES_DIR)
1224
+ dest = target_dir / src.name
1225
+ if src.is_dir():
1226
+ shutil.copytree(src, dest, dirs_exist_ok=True)
1227
+ else:
1228
+ shutil.copy2(src, dest)
1229
+ copied.append(sp)
1230
+ except Exception as e:
1231
+ errors.append(f"Failed to copy {sp}: {e}")
1232
+
1233
+ return {"status": "success", "copied": copied, "errors": errors}
1234
+
1235
+ @app.post("/explorer/move")
1236
+ async def explorer_move(req: CopyMoveRequest):
1237
+ target_dir = (BASE_MOVIES_DIR / req.target_dir).resolve()
1238
+ try:
1239
+ target_dir.relative_to(BASE_MOVIES_DIR)
1240
+ except ValueError:
1241
+ raise HTTPException(status_code=400, detail="Access denied")
1242
+
1243
+ if not target_dir.exists() or not target_dir.is_dir():
1244
+ raise HTTPException(status_code=400, detail="Target directory invalid")
1245
+
1246
+ moved = []
1247
+ errors = []
1248
+ for sp in req.source_paths:
1249
+ src = (BASE_MOVIES_DIR / sp).resolve()
1250
+ try:
1251
+ src.relative_to(BASE_MOVIES_DIR)
1252
+ dest = target_dir / src.name
1253
+ shutil.move(str(src), str(dest))
1254
+ moved.append(sp)
1255
+ except Exception as e:
1256
+ errors.append(f"Failed to move {sp}: {e}")
1257
+
1258
+ return {"status": "success", "moved": moved, "errors": errors}
1259
+
1260
+ @app.post("/explorer/upload")
1261
+ async def explorer_upload(
1262
+ target_dir: str = Form(""),
1263
+ file: UploadFile = Form(...)
1264
+ ):
1265
+ dest_dir = (BASE_MOVIES_DIR / target_dir).resolve()
1266
+ try:
1267
+ dest_dir.relative_to(BASE_MOVIES_DIR)
1268
+ except ValueError:
1269
+ raise HTTPException(status_code=400, detail="Access denied")
1270
+
1271
+ if not dest_dir.exists() or not dest_dir.is_dir():
1272
+ raise HTTPException(status_code=400, detail="Target directory invalid")
1273
+
1274
+ dest_path = dest_dir / file.filename
1275
+ try:
1276
+ with open(dest_path, "wb") as f:
1277
+ f.write(await file.read())
1278
+ return {"status": "success", "filename": file.filename}
1279
+ except Exception as e:
1280
+ raise HTTPException(status_code=500, detail=str(e))
1281
+
1282
+ @app.post("/explorer/zip")
1283
+ async def explorer_zip(req: ZipRequest):
1284
+ curr_dir = (BASE_MOVIES_DIR / req.current_dir).resolve()
1285
+ try:
1286
+ curr_dir.relative_to(BASE_MOVIES_DIR)
1287
+ except ValueError:
1288
+ raise HTTPException(status_code=400, detail="Access denied")
1289
+
1290
+ zip_name = req.target_zip_name.strip()
1291
+ if not zip_name.endswith(".zip"):
1292
+ zip_name += ".zip"
1293
+
1294
+ zip_path = curr_dir / zip_name
1295
+ try:
1296
+ with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
1297
+ for sp in req.paths:
1298
+ src = (BASE_MOVIES_DIR / sp).resolve()
1299
+ src.relative_to(BASE_MOVIES_DIR)
1300
+ if src.is_dir():
1301
+ for root, dirs, files in os.walk(src):
1302
+ for f in files:
1303
+ fpath = Path(root) / f
1304
+ arcname = fpath.relative_to(curr_dir)
1305
+ zipf.write(fpath, arcname)
1306
+ else:
1307
+ zipf.write(src, src.name)
1308
+ return {"status": "success", "zip_file": zip_name}
1309
+ except Exception as e:
1310
+ raise HTTPException(status_code=500, detail=str(e))
1311
+
1312
+ @app.post("/explorer/unzip")
1313
+ async def explorer_unzip(req: UnzipRequest):
1314
+ zip_target = (BASE_MOVIES_DIR / req.zip_path).resolve()
1315
+ target_dir = (BASE_MOVIES_DIR / req.target_dir).resolve()
1316
+ try:
1317
+ zip_target.relative_to(BASE_MOVIES_DIR)
1318
+ target_dir.relative_to(BASE_MOVIES_DIR)
1319
+ except ValueError:
1320
+ raise HTTPException(status_code=400, detail="Access denied")
1321
+
1322
+ if not zip_target.exists() or zip_target.suffix.lower() != ".zip":
1323
+ raise HTTPException(status_code=400, detail="Invalid zip file source")
1324
+
1325
+ try:
1326
+ with zipfile.ZipFile(zip_target, 'r') as zipf:
1327
+ zipf.extractall(target_dir)
1328
+ return {"status": "success", "message": f"Successfully unzipped to {req.target_dir}"}
1329
+ except Exception as e:
1330
+ raise HTTPException(status_code=500, detail=str(e))
1331
+
1332
+
1333
+
1334
+
1335
+ @app.on_event("shutdown")
1336
+ async def shutdown_event():
1337
+ for task in list(aria2_manager._tasks.values()):
1338
+ task.cancel()
1339
+ for inst in list(manager.instances.values()):
1340
+ if inst.process and inst.process.poll() is None:
1341
+ try:
1342
+ inst.process.kill()
1343
+ except Exception:
1344
+ pass
1345
+
1346
+
1347
+ from fastapi.responses import FileResponse
1348
+
1349
+ # Serve Next.js static export files from 'out' folder
1350
+ OUT_DIR = Path(__file__).parent / "out"
1351
+
1352
+ @app.get('/')
1353
+ @app.get("/{catchall:path}", include_in_schema=False)
1354
+ async def serve_static(catchall: str):
1355
+ if not OUT_DIR.exists():
1356
+ return {"message": "VLC Control API (Frontend static files 'out' folder not found)"}
1357
+
1358
+ # Try to serve exact file requested
1359
+ file_path = (OUT_DIR / catchall).resolve()
1360
+ try:
1361
+ file_path.relative_to(OUT_DIR)
1362
+ if file_path.is_file():
1363
+ return FileResponse(file_path)
1364
+
1365
+ # Try appending .html (Next.js default static routing)
1366
+ html_file = file_path.with_suffix(".html")
1367
+ if html_file.is_file():
1368
+ return FileResponse(html_file)
1369
+
1370
+ if file_path.is_dir():
1371
+ index_file = file_path / "index.html"
1372
+ if index_file.is_file():
1373
+ return FileResponse(index_file)
1374
+ except ValueError:
1375
+ pass
1376
+
1377
+ # Otherwise fall back to index.html (SPA routing)
1378
+ index_path = OUT_DIR / "index.html"
1379
+ if index_path.exists():
1380
+ return FileResponse(index_path)
1381
+
1382
+ return {"message": "VLC Control API (index.html not found)"}
movies/bbb_sunflower_1080p_30fps_normal.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ae51005850b0ff757fe60c3dd7a12d754d3cd2397d87d939b55235e457f97658
3
+ size 276134947
out/404.html ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ <!DOCTYPE html><html lang="en" data-mantine-color-scheme="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2v-rv291cn1b-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1u8kf-cumb-f7.js"/><script src="/_next/static/chunks/2dkoocrktt9k-.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3v560ngbdsqcf.js" async=""></script><script src="/_next/static/chunks/0d-c12mml-h6p.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>My Mantine app</title><meta name="description" content="I have followed setup instructions carefully"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><style data-mantine-styles="true">
2
+
3
+
4
+
5
+ </style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1u8kf-cumb-f7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[29765,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MantineProvider\"]\n3:I[39756,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nd:I[68027,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2v-rv291cn1b-.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d-c12mml-h6p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/158myu8e_yme3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-mantine-color-scheme\":\"light\",\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"nBKcDuA1Pt7_3iMhIbjDI\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"My Mantine app\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"I have followed setup instructions carefully\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]]\n"])</script></body></html>
out/404/index.html ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ <!DOCTYPE html><html lang="en" data-mantine-color-scheme="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2v-rv291cn1b-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1u8kf-cumb-f7.js"/><script src="/_next/static/chunks/2dkoocrktt9k-.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3v560ngbdsqcf.js" async=""></script><script src="/_next/static/chunks/0d-c12mml-h6p.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>My Mantine app</title><meta name="description" content="I have followed setup instructions carefully"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><style data-mantine-styles="true">
2
+
3
+
4
+
5
+ </style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1u8kf-cumb-f7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[29765,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MantineProvider\"]\n3:I[39756,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nd:I[68027,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2v-rv291cn1b-.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d-c12mml-h6p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/158myu8e_yme3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-mantine-color-scheme\":\"light\",\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"nBKcDuA1Pt7_3iMhIbjDI\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"My Mantine app\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"I have followed setup instructions carefully\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]]\n"])</script></body></html>
out/__next.__PAGE__.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[47257,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"]
3
+ 3:I[31713,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2fc-6082kgcrk.js","/_next/static/chunks/3y0d2nz4u4vwb.js"],"default"]
4
+ 6:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
5
+ 7:"$Sreact.suspense"
6
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2fc-6082kgcrk.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/3y0d2nz4u4vwb.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
7
+ 4:{}
8
+ 5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
9
+ 8:null
out/__next._full.txt ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ 5:I[47257,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"]
6
+ 6:I[31713,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2fc-6082kgcrk.js","/_next/static/chunks/3y0d2nz4u4vwb.js"],"default"]
7
+ 9:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
8
+ a:"$Sreact.suspense"
9
+ c:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
10
+ e:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
11
+ 10:I[68027,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1]
12
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
13
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2fc-6082kgcrk.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3y0d2nz4u4vwb.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nBKcDuA1Pt7_3iMhIbjDI"}
14
+ 7:{}
15
+ 8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
16
+ d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
17
+ 11:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
18
+ b:null
19
+ f:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L11","3",{}]]
out/__next._head.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
3
+ 3:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
4
+ 4:"$Sreact.suspense"
5
+ 5:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/__next._index.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
6
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/__next._tree.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
2
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/_next/static/chunks/0cz1d0mv5g_q7.js ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/0d-c12mml-h6p.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,91375,e=>{"use strict";function r(e){return"auto"===e||"dark"===e||"light"===e}e.s(["localStorageColorSchemeManager",0,function({key:e="mantine-color-scheme-value"}={}){let o;return{get:o=>{if("u"<typeof window)return o;try{let a=window.localStorage.getItem(e);return r(a)?a:o}catch{return o}},set:r=>{try{window.localStorage.setItem(e,r)}catch(e){console.warn("[@mantine/core] Local storage color scheme manager was unable to save color scheme.",e)}},subscribe:a=>{o=o=>{o.storageArea===window.localStorage&&o.key===e&&r(o.newValue)&&a(o.newValue)},window.addEventListener("storage",o)},unsubscribe:()=>{window.removeEventListener("storage",o)},clear:()=>{window.localStorage.removeItem(e)}}}],91375)},90098,e=>{"use strict";var r=e.i(71645);let o=(0,r.createContext)(null);function a(){let e=(0,r.use)(o);if(!e)throw Error("[@mantine/core] MantineProvider was not found in tree");return e}e.s(["MantineContext",0,o,"useMantineClassNamesPrefix",0,function(){return a().classNamesPrefix},"useMantineContext",0,a,"useMantineCssVariablesResolver",0,function(){return a().cssVariablesResolver},"useMantineDeduplicateInlineStyles",0,function(){return a().deduplicateInlineStyles},"useMantineEnv",0,function(){return a().env||"default"},"useMantineIsHeadless",0,function(){return a().headless},"useMantineStyleNonce",0,function(){return a().getStyleNonce},"useMantineStylesTransform",0,function(){return a().stylesTransform?.styles},"useMantineSxTransform",0,function(){return a().stylesTransform?.sx},"useMantineWithStaticClasses",0,function(){return a().withStaticClasses}])},31141,e=>{"use strict";var r=e.i(71645);let o="u">typeof document?r.useLayoutEffect:r.useEffect;e.s(["useIsomorphicEffect",0,o])},27515,e=>{"use strict";var r=e.i(71645),o=e.i(31141);function a(e,r){let o="u">typeof window&&"matchMedia"in window&&window.matchMedia("(prefers-color-scheme: dark)")?.matches;r()?.setAttribute("data-mantine-color-scheme","auto"!==e?e:o?"dark":"light")}e.s(["useProviderColorScheme",0,function({manager:e,defaultColorScheme:n,getRootElement:t,forceColorScheme:i}){let l=(0,r.useRef)(null),[c,s]=(0,r.useState)(()=>e.get(n)),m=i||c,d=(0,r.useCallback)(r=>{i||(a(r,t),s(r),e.set(r))},[e.set,m,i]),u=(0,r.useCallback)(()=>{s(n),a(n,t),e.clear()},[e.clear,n]);return(0,r.useEffect)(()=>(e.subscribe(d),e.unsubscribe),[e.subscribe,e.unsubscribe]),(0,o.useIsomorphicEffect)(()=>{a(e.get(n),t)},[]),(0,r.useEffect)(()=>{if(i)return a(i,t),()=>{};void 0===i&&a(c,t),"u">typeof window&&"matchMedia"in window&&(l.current=window.matchMedia("(prefers-color-scheme: dark)"));let e=e=>{"auto"===c&&a(e.matches?"dark":"light",t)};return l.current?.addEventListener("change",e),()=>l.current?.removeEventListener("change",e)},[c,i]),{colorScheme:m,setColorScheme:d,clearColorScheme:u}}])},22442,82451,55634,82360,89825,93738,15259,19715,71255,38944,95335,e=>{"use strict";function r(e){return"0rem"===e?"0rem":`calc(${e} * var(--mantine-scale))`}function o(e,{shouldScale:a=!1}={}){return function o(n){if(0===n||"0"===n)return`0${e}`;if("number"==typeof n){let o=`${n/16}${e}`;return a?r(o):o}if("string"==typeof n){if(""===n||n.startsWith("calc(")||n.startsWith("clamp(")||n.includes("rgba("))return n;if(n.includes(","))return n.split(",").map(e=>o(e)).join(",");if(n.includes(" "))return n.split(" ").map(e=>o(e)).join(" ");let t=n.replace("px","");if(!Number.isNaN(Number(t))){let o=`${Number(t)/16}${e}`;return a?r(o):o}}return n}}let a=o("rem",{shouldScale:!0}),n=o("em");function t(e,r){return"number"==typeof e.primaryShade?e.primaryShade:"dark"===r?e.primaryShade.dark:e.primaryShade.light}function i(e){if(/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)){let r=e.replace("#","");if(3===r.length){let e=r.split("");r=[e[0],e[0],e[1],e[1],e[2],e[2]].join("")}if(8===r.length){let e=parseInt(r.slice(6,8),16)/255;return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16),a:e}}let o=parseInt(r,16);return{r:o>>16&255,g:o>>8&255,b:255&o,a:1}}return e.startsWith("rgb")?function(e){let[r,o,a,n]=e.replace(/[^0-9,./]/g,"").split(/[/,]/).map(Number);return{r,g:o,b:a,a:void 0===n?1:n}}(e):e.startsWith("hsl")?function(e){let r,o,a,n=e.match(/^hsla?\(\s*(\d+)\s*,\s*(\d+%)\s*,\s*(\d+%)\s*(,\s*(0?\.\d+|\d+(\.\d+)?))?\s*\)$/i);if(!n)return{r:0,g:0,b:0,a:1};let t=parseInt(n[1],10),i=parseInt(n[2],10)/100,l=parseInt(n[3],10)/100,c=n[5]?parseFloat(n[5]):void 0,s=(1-Math.abs(2*l-1))*i,m=t/60,d=s*(1-Math.abs(m%2-1)),u=l-s/2;return m>=0&&m<1?(r=s,o=d,a=0):m>=1&&m<2?(r=d,o=s,a=0):m>=2&&m<3?(r=0,o=s,a=d):m>=3&&m<4?(r=0,o=d,a=s):m>=4&&m<5?(r=d,o=0,a=s):(r=s,o=0,a=d),{r:Math.round((r+u)*255),g:Math.round((o+u)*255),b:Math.round((a+u)*255),a:c||1}}(e):{r:0,g:0,b:0,a:1}}function l(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function c(e,r=.179){return!e.startsWith("var(")&&function(e){if(e.startsWith("oklch(")){let r;return(((r=e.match(/oklch\((.*?)%\s/))?parseFloat(r[1]):null)||0)/100}let{r,g:o,b:a}=i(e);return .2126*l(r/255)+.7152*l(o/255)+.0722*l(a/255)}(e)>r}function s({color:e,theme:r,colorScheme:o}){if("string"!=typeof e)throw Error(`[@mantine/core] Failed to parse color. Expected color to be a string, instead got ${typeof e}`);if("bright"===e)return{color:e,value:"dark"===o?r.white:r.black,shade:void 0,isThemeColor:!1,isLight:c("dark"===o?r.white:r.black,r.luminanceThreshold),variable:"--mantine-color-bright"};if("dimmed"===e)return{color:e,value:"dark"===o?r.colors.dark[2]:r.colors.gray[7],shade:void 0,isThemeColor:!1,isLight:c("dark"===o?r.colors.dark[2]:r.colors.gray[6],r.luminanceThreshold),variable:"--mantine-color-dimmed"};if("white"===e||"black"===e)return{color:e,value:"white"===e?r.white:r.black,shade:void 0,isThemeColor:!1,isLight:c("white"===e?r.white:r.black,r.luminanceThreshold),variable:`--mantine-color-${e}`};let[a,n]=e.split("."),i=n?Number(n):void 0,l=a in r.colors;if(l){let e=void 0!==i?r.colors[a][i]:r.colors[a][t(r,o||"light")];return{color:a,value:e,shade:i,isThemeColor:l,isLight:c(e,r.luminanceThreshold),variable:n?`--mantine-color-${a}-${i}`:`--mantine-color-${a}-filled`}}return{color:e,value:e,isThemeColor:l,isLight:c(e,r.luminanceThreshold),shade:i,variable:void 0}}function m(e){return!!e&&"object"==typeof e&&"mantine-virtual-color"in e}function d(e,r){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${100*r}%)`;let{r:o,g:a,b:n,a:t}=i(e),l=1-r,c=e=>Math.round(e*l);return`rgba(${c(o)}, ${c(a)}, ${c(n)}, ${t})`}function u(e,r){let o=s({color:e||r.primaryColor,theme:r});return o.variable?`var(${o.variable})`:e}function f(e,r){let o={from:e?.from||r.defaultGradient.from,to:e?.to||r.defaultGradient.to,deg:e?.deg??r.defaultGradient.deg??0},a=u(o.from,r),n=u(o.to,r);return`linear-gradient(${o.deg}deg, ${a} 0%, ${n} 100%)`}function h(e,r){if("string"!=typeof e||r>1||r<0)return"rgba(0, 0, 0, 1)";if(e.startsWith("var("))return`color-mix(in srgb, ${e}, transparent ${(1-r)*100}%)`;if(e.startsWith("oklch"))return e.includes("/")?e.replace(/\/\s*[\d.]+\s*\)/,`/ ${r})`):e.replace(")",` / ${r})`);let{r:o,g:a,b:n}=i(e);return`rgba(${o}, ${a}, ${n}, ${r})`}e.s(["em",0,n,"rem",0,a],82451),e.s(["getPrimaryShade",0,t],55634),e.s(["parseThemeColor",0,s],82360),e.s(["isVirtualColor",0,m],89825),e.s(["darken",0,d],93738),e.s(["getThemeColor",0,u],15259),e.s(["getGradient",0,f],19715),e.s(["alpha",0,h,"rgba",0,h],71255);let b="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",g={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:{dark:["#C9C9C9","#b8b8b8","#828282","#696969","#424242","#3b3b3b","#2e2e2e","#242424","#1f1f1f","#141414"],gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]},primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:({color:e,theme:r,variant:o,gradient:n,autoContrast:t})=>{let i=s({color:e,theme:r}),l="boolean"==typeof t?t:r.autoContrast;if("none"===o)return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if("filled"===o){let o=i.isThemeColor&&void 0===i.shade&&m(r.colors[i.color]),n=l?o?`var(--mantine-color-${i.color}-contrast)`:i.isLight?"var(--mantine-color-black)":"var(--mantine-color-white)":"var(--mantine-color-white)";return i.isThemeColor?void 0===i.shade?{background:`var(--mantine-color-${e}-filled)`,hover:`var(--mantine-color-${e}-filled-hover)`,color:n,border:`${a(1)} solid transparent`}:{background:`var(--mantine-color-${i.color}-${i.shade})`,hover:`var(--mantine-color-${i.color}-${9===i.shade?8:i.shade+1})`,color:n,border:`${a(1)} solid transparent`}:{background:e,hover:d(e,.1),color:n,border:`${a(1)} solid transparent`}}if("light"===o){if(i.isThemeColor){if(void 0===i.shade)return{background:`var(--mantine-color-${e}-light)`,hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${a(1)} solid transparent`};let o=r.colors[i.color][i.shade];return{background:o,hover:d(o,.1),color:`var(--mantine-color-${i.color}-light-color)`,border:`${a(1)} solid transparent`}}return{background:h(e,.1),hover:h(e,.12),color:e,border:`${a(1)} solid transparent`}}if("outline"===o)return i.isThemeColor?void 0===i.shade?{background:"transparent",hover:`var(--mantine-color-${e}-outline-hover)`,color:`var(--mantine-color-${e}-outline)`,border:`${a(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:h(r.colors[i.color][i.shade],.05),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${a(1)} solid var(--mantine-color-${i.color}-${i.shade})`}:{background:"transparent",hover:h(e,.05),color:e,border:`${a(1)} solid ${e}`};if("subtle"===o)return i.isThemeColor?void 0===i.shade?{background:"transparent",hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${a(1)} solid transparent`}:{background:"transparent",hover:h(r.colors[i.color][i.shade],.12),color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${a(1)} solid transparent`}:{background:"transparent",hover:h(e,.12),color:e,border:`${a(1)} solid transparent`};if("transparent"===o)return i.isThemeColor?void 0===i.shade?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${a(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${a(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${a(1)} solid transparent`};if("white"===o)return i.isThemeColor?void 0===i.shade?{background:"var(--mantine-color-white)",hover:d(r.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${a(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:d(r.white,.01),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${a(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:d(r.white,.01),color:e,border:`${a(1)} solid transparent`};return"gradient"===o?{background:f(n,r),hover:f(n,r),color:"var(--mantine-color-white)",border:"none"}:"default"===o?{background:"var(--mantine-color-default)",hover:"var(--mantine-color-default-hover)",color:"var(--mantine-color-default-color)",border:`${a(1)} solid var(--mantine-color-default-border)`}:{}},autoContrast:!1,luminanceThreshold:.3,fontFamily:b,fontFamilyMonospace:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",respectReducedMotion:!1,cursorType:"default",defaultGradient:{from:"blue",to:"cyan",deg:45},defaultRadius:"md",activeClassName:"mantine-active",focusClassName:"",headings:{fontFamily:b,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:a(34),lineHeight:"1.3"},h2:{fontSize:a(26),lineHeight:"1.35"},h3:{fontSize:a(22),lineHeight:"1.4"},h4:{fontSize:a(18),lineHeight:"1.45"},h5:{fontSize:a(16),lineHeight:"1.5"},h6:{fontSize:a(14),lineHeight:"1.5"}}},fontSizes:{xs:a(12),sm:a(14),md:a(16),lg:a(18),xl:a(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},fontWeights:{regular:"400",medium:"600",bold:"700"},radius:{xs:a(2),sm:a(4),md:a(8),lg:a(16),xl:a(32)},spacing:{xs:a(10),sm:a(12),md:a(16),lg:a(20),xl:a(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${a(1)} ${a(3)} rgba(0, 0, 0, 0.05), 0 ${a(1)} ${a(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${a(1)} ${a(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${a(10)} ${a(15)} ${a(-5)}, rgba(0, 0, 0, 0.04) 0 ${a(7)} ${a(7)} ${a(-5)}`,md:`0 ${a(1)} ${a(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${a(20)} ${a(25)} ${a(-5)}, rgba(0, 0, 0, 0.04) 0 ${a(10)} ${a(10)} ${a(-5)}`,lg:`0 ${a(1)} ${a(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${a(28)} ${a(23)} ${a(-7)}, rgba(0, 0, 0, 0.04) 0 ${a(12)} ${a(12)} ${a(-7)}`,xl:`0 ${a(1)} ${a(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${a(36)} ${a(28)} ${a(-7)}, rgba(0, 0, 0, 0.04) 0 ${a(17)} ${a(17)} ${a(-7)}`},other:{},components:{}};function v(e){return e&&"object"==typeof e&&!Array.isArray(e)}function $(e,r){let o={...e};return v(e)&&v(r)&&Object.keys(r).forEach(a=>{v(r[a])&&a in e?o[a]=$(o[a],r[a]):o[a]=r[a]}),o}e.s(["DEFAULT_THEME",0,g],38944),e.s(["deepMerge",0,$],95335);function p(e){return!(e<0)&&!(e>9)&&parseInt(e.toString(),10)===e}function y(e){if(!(e.primaryColor in e.colors))throw Error("[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color");if("object"==typeof e.primaryShade&&(!p(e.primaryShade.dark)||!p(e.primaryShade.light))||"number"==typeof e.primaryShade&&!p(e.primaryShade))throw Error("[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }")}var k=e.i(71645),C=e.i(43476);let w=(0,k.createContext)(null);function S({theme:e,children:r,inherit:o=!0}){let a=(0,k.use)(w)||g;return(0,C.jsx)(w,{value:(0,k.useMemo)(()=>(function(e,r){if(!r)return y(e),e;let o=$(e,r);return r.fontFamily&&!r.headings?.fontFamily&&(o.headings={...o.headings,fontFamily:r.fontFamily}),y(o),o})(o?a:g,e),[e,a,o]),children:r})}S.displayName="@mantine/core/MantineThemeProvider",e.s(["MantineThemeProvider",0,S,"useMantineTheme",0,function(){let e=(0,k.use)(w);if(!e)throw Error("@mantine/core: MantineProvider was not found in component tree, make sure you have it in your app");return e}],22442)},45981,e=>{"use strict";e.s(["keys",0,function(e){return Object.keys(e)}])},71033,e=>{"use strict";e.s(["px",0,function(e){let r="string"==typeof e&&e.includes("var(--mantine-scale)")?e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim():e;return"number"==typeof r?r:"string"==typeof r?r.includes("calc")||r.includes("var")?r:r.includes("px")?Number(r.replace("px","")):r.includes("rem")?16*Number(r.replace("rem","")):r.includes("em")?16*Number(r.replace("em","")):Number(r):NaN}])},86812,39143,e=>{"use strict";var r=e.i(45981),o=e.i(71033),a=e.i(82451),n=e.i(90098),t=e.i(22442),i=e.i(43476);function l(e){return Object.entries(e).map(([e,r])=>`${e}: ${r};`).join("")}e.s(["MantineClasses",0,function(){let e=(0,t.useMantineTheme)(),l=(0,n.useMantineStyleNonce)(),c=(0,r.keys)(e.breakpoints).reduce((r,n)=>{let t=e.breakpoints[n].includes("px"),i=(0,o.px)(e.breakpoints[n]);return`${r}@media (max-width: ${t?`${i-.1}px`:(0,a.em)(i-.1)}) {.mantine-visible-from-${n} {display: none !important;}}@media (min-width: ${t?`${i}px`:(0,a.em)(i)}) {.mantine-hidden-from-${n} {display: none !important;}}`},"");return(0,i.jsx)("style",{"data-mantine-styles":"classes",nonce:l?.(),dangerouslySetInnerHTML:{__html:c}})}],86812),e.s(["convertCssVariables",0,function(e,r){let o=r?[r]:[":root",":host"],a=l(e.variables),n=a?`${o.join(", ")}{${a}}`:"",t=l(e.dark),i=l(e.light),c=e=>o.map(r=>":host"===r?`${r}([data-mantine-color-scheme="${e}"])`:`${r}[data-mantine-color-scheme="${e}"]`).join(", ");return`${n}
2
+
3
+ ${t?`${c("dark")}{${t}}`:""}
4
+
5
+ ${i?`${c("light")}{${i}}`:""}`}],39143)},35783,e=>{"use strict";var r=e.i(55634),o=e.i(82360),a=e.i(89825);function n({color:e,theme:r,autoContrast:a,colorScheme:t}){return("boolean"==typeof a?a:r.autoContrast)&&(0,o.parseThemeColor)({color:e||r.primaryColor,theme:r,colorScheme:t}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function t(e,r,o){return n({color:"dark"===o?e.dark:e.light,theme:r,colorScheme:o,autoContrast:!0})}e.s(["getContrastColor",0,n,"getPrimaryContrastColor",0,function(e,o){let i=e.colors[e.primaryColor];return(0,a.isVirtualColor)(i)?e.autoContrast?t(i,e,o):"var(--mantine-color-white)":n({color:i[(0,r.getPrimaryShade)(e,o)],theme:e,autoContrast:null})},"getVirtualColorContrast",0,t])},29765,e=>{"use strict";var r=e.i(91375),o=e.i(90098),a=e.i(27515),n=e.i(22442),t=e.i(86812),i=e.i(39143),l=e.i(95335),c=e.i(45981),s=e.i(82451),m=e.i(55634),d=e.i(89825),u=e.i(35783),f=e.i(93738),h=e.i(71255);function b({theme:e,color:r,colorScheme:o,name:a=r,withColorValues:n=!0}){if(!e.colors[r])return{};if("light"===o){let o=(0,m.getPrimaryShade)(e,"light"),t={[`--mantine-color-${a}-text`]:`var(--mantine-color-${a}-filled)`,[`--mantine-color-${a}-filled`]:`var(--mantine-color-${a}-${o})`,[`--mantine-color-${a}-filled-hover`]:`var(--mantine-color-${a}-${9===o?8:o+1})`,[`--mantine-color-${a}-light`]:`var(--mantine-color-${a}-1)`,[`--mantine-color-${a}-light-hover`]:`var(--mantine-color-${a}-2)`,[`--mantine-color-${a}-light-color`]:`var(--mantine-color-${a}-9)`,[`--mantine-color-${a}-outline`]:`var(--mantine-color-${a}-${o})`,[`--mantine-color-${a}-outline-hover`]:(0,h.alpha)(e.colors[r][o],.05)};return n?{[`--mantine-color-${a}-0`]:e.colors[r][0],[`--mantine-color-${a}-1`]:e.colors[r][1],[`--mantine-color-${a}-2`]:e.colors[r][2],[`--mantine-color-${a}-3`]:e.colors[r][3],[`--mantine-color-${a}-4`]:e.colors[r][4],[`--mantine-color-${a}-5`]:e.colors[r][5],[`--mantine-color-${a}-6`]:e.colors[r][6],[`--mantine-color-${a}-7`]:e.colors[r][7],[`--mantine-color-${a}-8`]:e.colors[r][8],[`--mantine-color-${a}-9`]:e.colors[r][9],...t}:t}let t=(0,m.getPrimaryShade)(e,"dark"),i={[`--mantine-color-${a}-text`]:`var(--mantine-color-${a}-4)`,[`--mantine-color-${a}-filled`]:`var(--mantine-color-${a}-${t})`,[`--mantine-color-${a}-filled-hover`]:`var(--mantine-color-${a}-${9===t?8:t+1})`,[`--mantine-color-${a}-light`]:(0,f.darken)(e.colors[r][9],.5),[`--mantine-color-${a}-light-hover`]:(0,f.darken)(e.colors[r][9],.3),[`--mantine-color-${a}-light-color`]:`var(--mantine-color-${a}-0)`,[`--mantine-color-${a}-outline`]:`var(--mantine-color-${a}-${Math.max(t-4,0)})`,[`--mantine-color-${a}-outline-hover`]:(0,h.alpha)(e.colors[r][Math.max(t-4,0)],.05)};return n?{[`--mantine-color-${a}-0`]:e.colors[r][0],[`--mantine-color-${a}-1`]:e.colors[r][1],[`--mantine-color-${a}-2`]:e.colors[r][2],[`--mantine-color-${a}-3`]:e.colors[r][3],[`--mantine-color-${a}-4`]:e.colors[r][4],[`--mantine-color-${a}-5`]:e.colors[r][5],[`--mantine-color-${a}-6`]:e.colors[r][6],[`--mantine-color-${a}-7`]:e.colors[r][7],[`--mantine-color-${a}-8`]:e.colors[r][8],[`--mantine-color-${a}-9`]:e.colors[r][9],...i}:i}function g(e,r,o){(0,c.keys)(r).forEach(a=>Object.assign(e,{[`--mantine-${o}-${a}`]:r[a]}))}let v=e=>{let r=(0,m.getPrimaryShade)(e,"light"),o=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:(0,s.rem)(e.defaultRadius),a={variables:{"--mantine-z-index-app":"100","--mantine-z-index-modal":"200","--mantine-z-index-popover":"300","--mantine-z-index-overlay":"400","--mantine-z-index-max":"9999","--mantine-scale":e.scale.toString(),"--mantine-cursor-type":e.cursorType,"--mantine-webkit-font-smoothing":e.fontSmoothing?"antialiased":"unset","--mantine-moz-font-smoothing":e.fontSmoothing?"grayscale":"unset","--mantine-color-white":e.white,"--mantine-color-black":e.black,"--mantine-line-height":e.lineHeights.md,"--mantine-font-family":e.fontFamily,"--mantine-font-family-monospace":e.fontFamilyMonospace,"--mantine-font-family-headings":e.headings.fontFamily,"--mantine-heading-font-weight":e.headings.fontWeight,"--mantine-heading-text-wrap":e.headings.textWrap,"--mantine-radius-default":o,"--mantine-primary-color-filled":`var(--mantine-color-${e.primaryColor}-filled)`,"--mantine-primary-color-filled-hover":`var(--mantine-color-${e.primaryColor}-filled-hover)`,"--mantine-primary-color-light":`var(--mantine-color-${e.primaryColor}-light)`,"--mantine-primary-color-light-hover":`var(--mantine-color-${e.primaryColor}-light-hover)`,"--mantine-primary-color-light-color":`var(--mantine-color-${e.primaryColor}-light-color)`},light:{"--mantine-color-scheme":"light","--mantine-primary-color-contrast":(0,u.getPrimaryContrastColor)(e,"light"),"--mantine-color-bright":"var(--mantine-color-black)","--mantine-color-text":e.black,"--mantine-color-body":e.white,"--mantine-color-error":"var(--mantine-color-red-6)","--mantine-color-success":"var(--mantine-color-teal-8)","--mantine-color-placeholder":"var(--mantine-color-gray-5)","--mantine-color-anchor":`var(--mantine-color-${e.primaryColor}-${r})`,"--mantine-color-default":"var(--mantine-color-white)","--mantine-color-default-hover":"var(--mantine-color-gray-0)","--mantine-color-default-color":"var(--mantine-color-black)","--mantine-color-default-border":"var(--mantine-color-gray-4)","--mantine-color-dimmed":"var(--mantine-color-gray-6)","--mantine-color-disabled":"var(--mantine-color-gray-2)","--mantine-color-disabled-color":"var(--mantine-color-gray-5)","--mantine-color-disabled-border":"var(--mantine-color-gray-3)"},dark:{"--mantine-color-scheme":"dark","--mantine-primary-color-contrast":(0,u.getPrimaryContrastColor)(e,"dark"),"--mantine-color-bright":"var(--mantine-color-white)","--mantine-color-text":"var(--mantine-color-dark-0)","--mantine-color-body":"var(--mantine-color-dark-7)","--mantine-color-error":"var(--mantine-color-red-8)","--mantine-color-success":"var(--mantine-color-teal-8)","--mantine-color-placeholder":"var(--mantine-color-dark-3)","--mantine-color-anchor":`var(--mantine-color-${e.primaryColor}-4)`,"--mantine-color-default":"var(--mantine-color-dark-6)","--mantine-color-default-hover":"var(--mantine-color-dark-5)","--mantine-color-default-color":"var(--mantine-color-white)","--mantine-color-default-border":"var(--mantine-color-dark-4)","--mantine-color-dimmed":"var(--mantine-color-dark-2)","--mantine-color-disabled":"var(--mantine-color-dark-6)","--mantine-color-disabled-color":"var(--mantine-color-dark-3)","--mantine-color-disabled-border":"var(--mantine-color-dark-4)"}};g(a.variables,e.breakpoints,"breakpoint"),g(a.variables,e.spacing,"spacing"),g(a.variables,e.fontSizes,"font-size"),g(a.variables,e.lineHeights,"line-height"),g(a.variables,e.shadows,"shadow"),g(a.variables,e.radius,"radius"),g(a.variables,e.fontWeights,"font-weight"),e.colors[e.primaryColor].forEach((r,o)=>{a.variables[`--mantine-primary-color-${o}`]=`var(--mantine-color-${e.primaryColor}-${o})`}),(0,c.keys)(e.colors).forEach(r=>{let o=e.colors[r];if((0,d.isVirtualColor)(o)){Object.assign(a.light,b({theme:e,name:o.name,color:o.light,colorScheme:"light",withColorValues:!0})),Object.assign(a.dark,b({theme:e,name:o.name,color:o.dark,colorScheme:"dark",withColorValues:!0})),a.light[`--mantine-color-${o.name}-contrast`]=(0,u.getVirtualColorContrast)(o,e,"light"),a.dark[`--mantine-color-${o.name}-contrast`]=(0,u.getVirtualColorContrast)(o,e,"dark");return}o.forEach((e,o)=>{a.variables[`--mantine-color-${r}-${o}`]=e}),Object.assign(a.light,b({theme:e,color:r,colorScheme:"light",withColorValues:!1})),Object.assign(a.dark,b({theme:e,color:r,colorScheme:"dark",withColorValues:!1}))});let n=e.headings.sizes;return(0,c.keys)(n).forEach(r=>{a.variables[`--mantine-${r}-font-size`]=n[r].fontSize,a.variables[`--mantine-${r}-line-height`]=n[r].lineHeight,a.variables[`--mantine-${r}-font-weight`]=n[r].fontWeight||e.headings.fontWeight}),a},$=v(e.i(38944).DEFAULT_THEME);var p=e.i(43476);function y({cssVariablesSelector:e,deduplicateCssVariables:r}){let a,t=(0,n.useMantineTheme)(),s=(0,o.useMantineStyleNonce)(),m=function({theme:e,generator:r}){let o=v(e),a=r?.(e);return a?(0,l.deepMerge)(o,a):o}({theme:t,generator:(0,o.useMantineCssVariablesResolver)()}),d=(void 0===e||":root"===e||":host"===e)&&r,u=(0,i.convertCssVariables)(d?(a={variables:{},light:{},dark:{}},(0,c.keys)(m.variables).forEach(e=>{$.variables[e]!==m.variables[e]&&(a.variables[e]=m.variables[e])}),(0,c.keys)(m.light).forEach(e=>{$.light[e]!==m.light[e]&&(a.light[e]=m.light[e])}),(0,c.keys)(m.dark).forEach(e=>{$.dark[e]!==m.dark[e]&&(a.dark[e]=m.dark[e])}),a):m,e);return u?(0,p.jsx)("style",{"data-mantine-styles":!0,nonce:s?.(),dangerouslySetInnerHTML:{__html:`${u}${d?"":(0,i.convertCssVariables)({variables:{},dark:{"--mantine-color-scheme":"dark"},light:{"--mantine-color-scheme":"light"}},e)}`}}):null}y.displayName="@mantine/CssVariables";var k=e.i(31141);function C({theme:e,children:i,getStyleNonce:l,withStaticClasses:c=!0,withGlobalClasses:s=!0,deduplicateCssVariables:m=!0,withCssVariables:d=!0,cssVariablesSelector:u,classNamesPrefix:f="mantine",colorSchemeManager:h=(0,r.localStorageColorSchemeManager)(),defaultColorScheme:b="light",getRootElement:g=()=>document.documentElement,cssVariablesResolver:v,forceColorScheme:$,stylesTransform:w,env:S,deduplicateInlineStyles:M=!1}){let{colorScheme:x,setColorScheme:T,clearColorScheme:E}=(0,a.useProviderColorScheme)({defaultColorScheme:b,forceColorScheme:$,manager:h,getRootElement:g});return!function({respectReducedMotion:e,getRootElement:r}){(0,k.useIsomorphicEffect)(()=>{e&&r()?.setAttribute("data-respect-reduced-motion","true")},[e])}({respectReducedMotion:e?.respectReducedMotion||!1,getRootElement:g}),(0,p.jsx)(o.MantineContext,{value:{colorScheme:x,setColorScheme:T,clearColorScheme:E,getRootElement:g,classNamesPrefix:f,getStyleNonce:l,cssVariablesResolver:v,cssVariablesSelector:u??":root",withStaticClasses:c,stylesTransform:w,env:S,deduplicateInlineStyles:M},children:(0,p.jsxs)(n.MantineThemeProvider,{theme:e,children:[d&&(0,p.jsx)(y,{cssVariablesSelector:u,deduplicateCssVariables:m}),s&&(0,p.jsx)(t.MantineClasses,{}),i]})})}function w({children:e,theme:r,env:a}){return(0,p.jsx)(o.MantineContext,{value:{colorScheme:"auto",setColorScheme:()=>{},clearColorScheme:()=>{},getRootElement:()=>document.documentElement,classNamesPrefix:"mantine",cssVariablesSelector:":root",withStaticClasses:!1,headless:!0,env:a},children:(0,p.jsx)(n.MantineThemeProvider,{theme:r,children:e})})}C.displayName="@mantine/core/MantineProvider",w.displayName="@mantine/core/HeadlessMantineProvider",e.s(["HeadlessMantineProvider",0,w,"MantineProvider",0,C],29765)}]);
out/_next/static/chunks/0xm351i8abo9i.js ADDED
@@ -0,0 +1 @@
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10555,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(24848),l=e.i(43798),i=e.i(89549),o=e.i(14037),n=e.i(21879),s=e.i(44662),d={root:"m_7485cace"};let c={strategy:"block"},h=(0,l.createVarsResolver)((e,{size:t,fluid:r})=>({root:{"--container-size":r?void 0:(0,a.getSize)(t,"container-size")}})),u=(0,n.factory)(e=>{let r=(0,i.useProps)("Container",c,e),{classNames:a,className:l,style:n,styles:u,unstyled:p,vars:m,fluid:f,mod:x,attributes:g,strategy:v,...y}=r,j=(0,o.useStyles)({name:"Container",classes:d,props:r,className:l,style:n,classNames:a,styles:u,unstyled:p,attributes:g,vars:m,varsResolver:h});return(0,t.jsx)(s.Box,{mod:[{fluid:f,strategy:v},x],...j("root"),...y})});u.classes=d,u.varsResolver=h,u.displayName="@mantine/core/Container";var p=e.i(51501),m=e.i(98323),f=e.i(77936),x=e.i(64384),g=e.i(26200),v=e.i(92181),y=e.i(94229),j=e.i(25293),b=e.i(33372),S=e.i(82451),T=e.i(15259),w=e.i(84660);let[k,C]=(0,w.createSafeContext)("Table component was not found in the tree");var P={table:"m_b23fa0ef",th:"m_4e7aa4f3",tr:"m_4e7aa4fd",td:"m_4e7aa4ef",tbody:"m_b2404537",thead:"m_b242d975",caption:"m_9e5a3ac7",scrollContainer:"m_a100c15",scrollContainerInner:"m_62259741"};function _(e,r){let a=`Table${e.charAt(0).toUpperCase()}${e.slice(1)}`,l=(0,n.factory)(l=>{let o=(0,i.useProps)(a,{},l),{classNames:n,className:d,style:c,styles:h,...u}=o,p=C();return(0,t.jsx)(s.Box,{component:e,...function(e,t){if(!t)return;let r={};return t.columnBorder&&e.withColumnBorders&&(r["data-with-column-border"]=!0),t.rowBorder&&e.withRowBorders&&(r["data-with-row-border"]=!0),t.striped&&e.striped&&(r["data-striped"]=e.striped),t.highlightOnHover&&e.highlightOnHover&&(r["data-hover"]=!0),t.captionSide&&e.captionSide&&(r["data-side"]=e.captionSide),t.stickyHeader&&e.stickyHeader&&(r["data-sticky"]=!0),r}(p,r),...p.getStyles(e,{className:d,classNames:n,style:c,styles:h,props:o}),...u})});return l.displayName=`@mantine/core/${a}`,l.classes=P,l}let R=_("th",{columnBorder:!0}),E=_("td",{columnBorder:!0}),z=_("tr",{rowBorder:!0,striped:!0,highlightOnHover:!0}),M=_("thead",{stickyHeader:!0}),B=_("tbody"),I=_("tfoot"),A=_("caption",{captionSide:!0});function O({data:e}){return(0,t.jsxs)(t.Fragment,{children:[e.caption&&(0,t.jsx)(A,{children:e.caption}),e.head&&(0,t.jsx)(M,{children:(0,t.jsx)(z,{children:e.head.map((e,r)=>(0,t.jsx)(R,{children:e},r))})}),e.body&&(0,t.jsx)(B,{children:e.body.map((e,r)=>(0,t.jsx)(z,{children:e.map((e,r)=>(0,t.jsx)(E,{children:e},r))},r))}),e.foot&&(0,t.jsx)(I,{children:(0,t.jsx)(z,{children:e.foot.map((e,r)=>(0,t.jsx)(R,{children:e},r))})})]})}O.displayName="@mantine/core/TableDataRenderer";var D=e.i(47596);let N={type:"scrollarea"},F=(0,l.createVarsResolver)((e,{minWidth:t,maxHeight:r,type:a})=>({scrollContainer:{"--table-min-width":(0,S.rem)(t),"--table-max-height":(0,S.rem)(r),"--table-overflow":"native"===a?"auto":void 0}})),L=(0,n.factory)(e=>{let r=(0,i.useProps)("TableScrollContainer",N,e),{classNames:a,className:l,style:n,styles:d,unstyled:c,vars:h,children:u,minWidth:p,maxHeight:m,type:f,scrollAreaProps:x,attributes:g,...v}=r,y=(0,o.useStyles)({name:"TableScrollContainer",classes:P,props:r,className:l,style:n,classNames:a,styles:d,unstyled:c,attributes:g,vars:h,varsResolver:F,rootSelector:"scrollContainer"});return(0,t.jsx)(s.Box,{component:"scrollarea"===f?D.ScrollArea:"div",..."scrollarea"===f?m?{offsetScrollbars:"xy",...x}:{offsetScrollbars:"x",...x}:{},...y("scrollContainer"),...v,children:(0,t.jsx)("div",{...y("scrollContainerInner"),children:u})})});L.classes=P,L.varsResolver=F,L.displayName="@mantine/core/TableScrollContainer";let G={withRowBorders:!0,verticalSpacing:7},$=(0,l.createVarsResolver)((e,{layout:t,captionSide:r,horizontalSpacing:l,verticalSpacing:i,borderColor:o,stripedColor:n,highlightOnHoverColor:s,striped:d,highlightOnHover:c,stickyHeaderOffset:h,stickyHeader:u})=>({table:{"--table-layout":t,"--table-caption-side":r,"--table-horizontal-spacing":(0,a.getSpacing)(l),"--table-vertical-spacing":(0,a.getSpacing)(i),"--table-border-color":o?(0,T.getThemeColor)(o,e):void 0,"--table-striped-color":d&&n?(0,T.getThemeColor)(n,e):void 0,"--table-highlight-on-hover-color":c&&s?(0,T.getThemeColor)(s,e):void 0,"--table-sticky-header-offset":u?(0,S.rem)(h):void 0}})),U=(0,n.factory)(e=>{let r=(0,i.useProps)("Table",G,e),{classNames:a,className:l,style:n,styles:d,unstyled:c,vars:h,horizontalSpacing:u,verticalSpacing:p,captionSide:m,stripedColor:f,highlightOnHoverColor:x,striped:g,highlightOnHover:v,withColumnBorders:y,withRowBorders:j,withTableBorder:b,borderColor:S,layout:T,data:w,children:C,stickyHeader:_,stickyHeaderOffset:R,mod:E,tabularNums:z,attributes:M,...B}=r,I=(0,o.useStyles)({name:"Table",props:r,className:l,style:n,classes:P,classNames:a,styles:d,unstyled:c,attributes:M,rootSelector:"table",vars:h,varsResolver:$});return(0,t.jsx)(k,{value:{getStyles:I,stickyHeader:_,striped:!0===g?"odd":g||void 0,highlightOnHover:v,withColumnBorders:y,withRowBorders:j,captionSide:m||"bottom"},children:(0,t.jsx)(s.Box,{component:"table",mod:[{"data-with-table-border":b,"data-tabular-nums":z},E],...I("table"),...B,children:C||!!w&&(0,t.jsx)(O,{data:w})})})});U.classes=P,U.varsResolver=$,U.displayName="@mantine/core/Table",U.Td=E,U.Th=R,U.Tr=z,U.Thead=M,U.Tbody=B,U.Tfoot=I,U.Caption=A,U.ScrollContainer=L,U.DataRenderer=O;var H=e.i(56684),V=e.i(69625),q=e.i(73404);function W(e,t){return r=>{if("string"!=typeof r||0===r.trim().length)throw Error(t);return`${e}-${r}`}}var J=e.i(35783),X=e.i(12761);let[Z,K]=(0,w.createSafeContext)("Tabs component was not found in the tree");var Y={root:"m_89d60db1","list--default":"m_576c9d4",list:"m_89d33d6d",tab:"m_4ec4dce6",panel:"m_b0c91715",tabSection:"m_fc420b1f",tabLabel:"m_42bbd1ae","tab--default":"m_539e827b","list--outline":"m_6772fbd5","tab--outline":"m_b59ab47c","tab--pills":"m_c3381914"};let Q=(0,n.factory)(e=>{let r=(0,i.useProps)("TabsList",null,e),{children:a,className:l,grow:o,justify:n,classNames:d,styles:c,style:h,mod:u,...p}=r,m=K();return(0,t.jsx)(s.Box,{...m.getStyles("list",{className:l,style:h,classNames:d,styles:c,props:r,variant:m.variant}),role:"tablist",variant:m.variant,mod:[{grow:o,orientation:m.orientation,placement:"vertical"===m.orientation&&m.placement,inverted:m.inverted},u],"aria-orientation":m.orientation,__vars:{"--tabs-justify":n},...p,children:a})});Q.classes=Y,Q.displayName="@mantine/core/TabsList";var ee=e.i(90098);let et=(0,n.factory)(e=>{let a=(0,i.useProps)("TabsPanel",null,e),{children:l,className:o,value:n,classNames:d,styles:c,style:h,mod:u,keepMounted:p,...m}=a,f=(0,ee.useMantineEnv)(),x=K();(0,r.useEffect)(()=>(x.setMountedPanel(n,!0),()=>{x.setMountedPanel(n,!1)}),[n]);let g=x.value===n,v=x.keepMounted||p,y="display-none"!==x.keepMountedMode,j=v&&y&&"test"!==f?(0,t.jsx)(r.Activity,{mode:g?"visible":"hidden",children:l}):v||g?l:null;return(0,t.jsx)(s.Box,{...x.getStyles("panel",{className:o,classNames:d,styles:c,style:[h,g?void 0:{display:"none"}],props:a}),mod:[{orientation:x.orientation},u],role:"tabpanel",id:x.getPanelId(n),"aria-labelledby":x.getTabId(n),...m,children:j})});function er(e,t){let r=e;for(;(r=r.parentElement)&&!r.matches(t););return r}function ea(e,t,r){for(let r=e-1;r>=0;r-=1)if(!t[r].disabled)return r;if(r){for(let e=t.length-1;e>-1;e-=1)if(!t[e].disabled)return e}return e}function el(e,t,r){for(let r=e+1;r<t.length;r+=1)if(!t[r].disabled)return r;if(r){for(let e=0;e<t.length;e+=1)if(!t[e].disabled)return e}return e}et.classes=Y,et.displayName="@mantine/core/TabsPanel";var ei=e.i(22442),eo=e.i(17303),en=e.i(25436);let es=(0,n.factory)(e=>{let r=(0,i.useProps)("TabsTab",null,e),{className:a,children:l,rightSection:o,leftSection:n,value:s,onClick:d,onKeyDown:c,disabled:h,color:u,style:p,classNames:m,styles:f,vars:x,mod:g,tabIndex:v,...y}=r,j=(0,ei.useMantineTheme)(),{dir:b}=(0,eo.useDirection)(),S=K(),w=s===S.value,k={classNames:m,styles:f,props:r};return(0,t.jsxs)(en.UnstyledButton,{...S.getStyles("tab",{className:a,style:p,variant:S.variant,...k}),disabled:h,unstyled:S.unstyled,variant:S.variant,mod:[{active:w,disabled:h,orientation:S.orientation,inverted:S.inverted,placement:"vertical"===S.orientation&&S.placement},g],role:"tab",id:S.getTabId(s),"aria-selected":w,tabIndex:void 0!==v?v:w||null===S.value?0:-1,"aria-controls":S.mountedPanels.current.has(s)?S.getPanelId(s):void 0,onClick:e=>{S.onChange(S.allowTabDeactivation&&s===S.value?null:s),d?.(e)},__vars:{"--tabs-color":u?(0,T.getThemeColor)(u,j):void 0},onKeyDown:function({parentSelector:e,siblingSelector:t,onKeyDown:r,loop:a=!0,activateOnFocus:l=!1,dir:i="rtl",orientation:o}){return n=>{r?.(n);let s=Array.from(er(n.currentTarget,e)?.querySelectorAll(t)||[]).filter(t=>{var r;return r=n.currentTarget,er(r,e)===er(t,e)}),d=s.findIndex(e=>n.currentTarget===e),c=el(d,s,a),h=ea(d,s,a),u="rtl"===i?h:c,p="rtl"===i?c:h;switch(n.key){case"ArrowRight":"horizontal"===o&&(n.stopPropagation(),n.preventDefault(),s[u].focus(),l&&s[u].click());break;case"ArrowLeft":"horizontal"===o&&(n.stopPropagation(),n.preventDefault(),s[p].focus(),l&&s[p].click());break;case"ArrowUp":"vertical"===o&&(n.stopPropagation(),n.preventDefault(),s[h].focus(),l&&s[h].click());break;case"ArrowDown":"vertical"===o&&(n.stopPropagation(),n.preventDefault(),s[c].focus(),l&&s[c].click());break;case"Home":n.stopPropagation(),n.preventDefault(),s[el(-1,s,!1)]?.focus();break;case"End":n.stopPropagation(),n.preventDefault(),s[ea(s.length,s,!1)]?.focus()}}}({siblingSelector:'[role="tab"]',parentSelector:'[role="tablist"]',activateOnFocus:S.activateTabWithKeyboard,loop:S.loop,orientation:S.orientation||"horizontal",dir:b,onKeyDown:c}),...y,children:[n&&(0,t.jsx)("span",{...S.getStyles("tabSection",k),"data-position":"left",children:n}),l&&(0,t.jsx)("span",{...S.getStyles("tabLabel",k),children:l}),o&&(0,t.jsx)("span",{...S.getStyles("tabSection",k),"data-position":"right",children:o})]})});es.classes=Y,es.displayName="@mantine/core/TabsTab";let ed=e=>(e+1)%1e6;var ec=e.i(51937),eh=e.i(46614);let eu="Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value",ep={keepMounted:!0,keepMountedMode:"activity",orientation:"horizontal",loop:!0,activateTabWithKeyboard:!0,variant:"default",placement:"left"},em=(0,l.createVarsResolver)((e,{radius:t,color:r,autoContrast:l})=>({root:{"--tabs-radius":(0,a.getRadius)(t),"--tabs-color":(0,T.getThemeColor)(r,e),"--tabs-text-color":(0,X.getAutoContrastValue)(l,e)?(0,J.getContrastColor)({color:r,theme:e,autoContrast:l}):void 0}})),ef=(0,n.factory)(e=>{let a=(0,i.useProps)("Tabs",ep,e),{defaultValue:l,value:n,onChange:d,orientation:c,children:h,loop:u,id:p,activateTabWithKeyboard:m,allowTabDeactivation:f,variant:x,color:g,radius:v,inverted:y,placement:j,keepMounted:b,keepMountedMode:S,classNames:T,styles:w,unstyled:k,className:C,style:P,vars:_,autoContrast:R,mod:E,attributes:z,...M}=a,B=(0,ec.useId)(p),I=(0,r.useRef)(new Set),A=function(){let[,e]=(0,r.useReducer)(ed,0);return e}(),O=(0,r.useCallback)((e,t)=>{let r=I.current;t&&!r.has(e)?(r.add(e),A()):!t&&r.has(e)&&(r.delete(e),A())},[]),[D,N]=(0,eh.useUncontrolled)({value:n,defaultValue:l,finalValue:null,onChange:d}),F=(0,o.useStyles)({name:"Tabs",props:a,classes:Y,className:C,style:P,classNames:T,styles:w,unstyled:k,attributes:z,vars:_,varsResolver:em});return(0,t.jsx)(Z,{value:{placement:j,value:D,orientation:c,id:B,loop:u,activateTabWithKeyboard:m,getTabId:W(`${B}-tab`,eu),getPanelId:W(`${B}-panel`,eu),onChange:N,allowTabDeactivation:f,variant:x,color:g,radius:v,inverted:y,keepMounted:b,keepMountedMode:S,unstyled:k,getStyles:F,mountedPanels:I,setMountedPanel:O},children:(0,t.jsx)(s.Box,{id:B,variant:x,mod:[{orientation:c,inverted:"horizontal"===c&&y,placement:"vertical"===c&&j},E],...F("root"),...M,children:h})})});ef.classes=Y,ef.varsResolver=em,ef.displayName="@mantine/core/Tabs",ef.Tab=es,ef.Panel=et,ef.List=Q;var ex=e.i(95991),eg={root:"m_8b3717df",breadcrumb:"m_f678d540",separator:"m_3b8f2208"};let ev={separator:"/"},ey=(0,l.createVarsResolver)((e,{separatorMargin:t})=>({root:{"--bc-separator-margin":(0,a.getSpacing)(t)}})),ej=(0,n.factory)(e=>{let a=(0,i.useProps)("Breadcrumbs",ev,e),{classNames:l,className:n,style:d,styles:c,unstyled:h,vars:u,children:p,separator:m,separatorMargin:f,attributes:x,...g}=a,v=(0,o.useStyles)({name:"Breadcrumbs",classes:eg,props:a,className:n,style:d,classNames:l,styles:c,unstyled:h,attributes:x,vars:u,varsResolver:ey}),y=r.Children.toArray(p).reduce((e,t,a,l)=>{let i=(0,ex.isElement)(t)?(0,r.cloneElement)(t,{...v("breadcrumb",{className:t.props?.className}),key:a}):(0,r.createElement)("div",{...v("breadcrumb"),key:a},t);return e.push(i),a!==l.length-1&&e.push((0,r.createElement)(s.Box,{...v("separator"),key:`separator-${a}`},m)),e},[]);return(0,t.jsx)(s.Box,{...v("root"),...g,children:y})});ej.classes=eg,ej.varsResolver=ey,ej.displayName="@mantine/core/Breadcrumbs";var eb=e.i(57942),eS={root:"m_849cf0da"},eT=e.i(7670);let ew={underline:"hover"},ek=(0,eb.polymorphicFactory)(e=>{let{underline:r,className:a,unstyled:l,mod:o,...n}=(0,i.useProps)("Anchor",ew,e);return(0,t.jsx)(y.Text,{component:"a",className:(0,eT.default)({[eS.root]:!l},a),...n,mod:[{underline:r},o],__staticSelector:"Anchor",unstyled:l})});ek.classes=eS,ek.displayName="@mantine/core/Anchor";var eC=e.i(81363),eP=e.i(653),e_=e.i(98526),eR=e.i(32503),eE=e.i(67775),ez=e.i(39194),eM=e.i(68637),eB=e.i(68598),eI=e.i(95556),eA=e.i(98193);let eO={duration:100,transition:"fade"};function eD(e,t){return{...eO,...t,...e}}var eN={tooltip:"m_1b3c8819",arrow:"m_f898399f"},eF=e.i(29315),eL=e.i(58950),eG=e.i(43489),e$=e.i(31316);let eU={refProp:"ref",withinPortal:!0,offset:10,position:"right",zIndex:(0,e_.getDefaultZIndex)("popover")},eH=(0,l.createVarsResolver)((e,{radius:t,color:r})=>({tooltip:{"--tooltip-radius":void 0===t?void 0:(0,a.getRadius)(t),"--tooltip-bg":r?(0,T.getThemeColor)(r,e):void 0,"--tooltip-color":r?"var(--mantine-color-white)":void 0}})),eV=(0,n.factory)(e=>{let a=(0,i.useProps)("TooltipFloating",eU,e),{children:l,refProp:n,withinPortal:d,style:c,className:h,classNames:u,styles:p,unstyled:m,radius:f,color:x,label:g,offset:v,position:y,multiline:j,zIndex:b,disabled:S,defaultOpened:T,variant:w,vars:k,portalProps:C,attributes:P,ref:_,...R}=a,E=(0,ei.useMantineTheme)(),z=(0,o.useStyles)({name:"TooltipFloating",props:a,classes:eN,className:h,style:c,classNames:u,styles:p,unstyled:m,attributes:P,rootSelector:"tooltip",vars:k,varsResolver:eH}),{handleMouseMove:M,x:B,y:I,opened:A,boundaryRef:O,floating:D,setOpened:N}=function({offset:e,position:t,defaultOpened:a}){let[l,i]=(0,r.useState)(a),o=(0,r.useRef)(null),{x:n,y:s,elements:d,refs:c,update:h,placement:u}=(0,eG.useFloating)({placement:t,middleware:[(0,eL.shift)({crossAxis:!0,padding:5,rootBoundary:"document"})]}),p=u.includes("right")?e:t.includes("left")?-1*e:0,m=u.includes("bottom")?e:t.includes("top")?-1*e:0,f=(0,r.useCallback)(({clientX:e,clientY:t})=>{c.setPositionReference({getBoundingClientRect:()=>({width:0,height:0,x:e,y:t,left:e+p,top:t+m,right:e,bottom:t})})},[d.reference]);return(0,r.useEffect)(()=>{if(c.floating.current){let e=o.current;e.addEventListener("mousemove",f);let t=(0,eF.getOverflowAncestors)(c.floating.current);return t.forEach(e=>{e.addEventListener("scroll",h)}),()=>{e.removeEventListener("mousemove",f),t.forEach(e=>{e.removeEventListener("scroll",h)})}}},[d.reference,c.floating.current,h,f,l]),{handleMouseMove:f,x:n,y:s,opened:l,setOpened:i,boundaryRef:o,floating:c.setFloating}}({offset:v,position:y,defaultOpened:T}),F=(0,eE.getSingleElementChild)(l);if(!F)throw Error("[@mantine/core] Tooltip.Floating component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported");let L=(0,e$.useMergedRef)(O,(0,eR.getRefProp)(F),_),G=F.props;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eI.OptionalPortal,{...C,withinPortal:d,children:(0,t.jsx)(s.Box,{...R,...z("tooltip",{style:{...function e(t,r){return Array.isArray(t)?[...t].reduce((t,a)=>({...t,...e(a,r)}),{}):"function"==typeof t?t(r):null==t?{}:t}(c,E),zIndex:b,display:!S&&A?"block":"none",top:(I&&Math.round(I))??"",left:(B&&Math.round(B))??""}}),variant:w,ref:D,mod:{multiline:j},children:g})}),(0,r.cloneElement)(F,{...G,[n]:L,onMouseEnter:e=>{G.onMouseEnter?.(e),M(e),N(!0)},onMouseLeave:e=>{G.onMouseLeave?.(e),N(!1)}})]})});eV.classes=eN,eV.varsResolver=eH,eV.displayName="@mantine/core/TooltipFloating";let eq=(0,r.createContext)({withinGroup:!1}),eW={openDelay:0,closeDelay:0};function eJ(e){let{openDelay:r,closeDelay:a,children:l}=(0,i.useProps)("TooltipGroup",eW,e);return(0,t.jsx)(eq,{value:{withinGroup:!0},children:(0,t.jsx)(eG.FloatingDelayGroup,{delay:{open:r,close:a},children:l})})}eJ.displayName="@mantine/core/TooltipGroup",eJ.extend=e=>e;var eX=e.i(31141),eZ=e.i(53760);let eK={position:"top",refProp:"ref",withinPortal:!0,arrowSize:4,arrowOffset:5,arrowRadius:0,arrowPosition:"side",offset:5,transitionProps:{duration:100,transition:"fade"},events:{hover:!0,focus:!1,touch:!1},zIndex:(0,e_.getDefaultZIndex)("popover"),middlewares:{flip:!0,shift:!0,inline:!1}},eY=(0,l.createVarsResolver)((e,{radius:t,color:r,variant:l,autoContrast:i})=>{let o=e.variantColorResolver({theme:e,color:r||e.primaryColor,autoContrast:i,variant:l||"filled"});return{tooltip:{"--tooltip-radius":void 0===t?void 0:(0,a.getRadius)(t),"--tooltip-bg":r?o.background:void 0,"--tooltip-color":r?o.color:void 0}}}),eQ=(0,n.factory)(e=>{let a=(0,i.useProps)("Tooltip",eK,e),{children:l,position:n,refProp:d,label:c,openDelay:h,closeDelay:u,onPositionChange:p,opened:m,defaultOpened:f,withinPortal:x,radius:g,color:v,classNames:y,styles:j,unstyled:b,style:S,className:T,withArrow:w,arrowSize:k,arrowOffset:C,arrowRadius:P,arrowPosition:_,offset:R,transitionProps:E,multiline:z,events:M,zIndex:B,disabled:I,onClick:A,onMouseEnter:O,onMouseLeave:D,inline:N,variant:F,keepMounted:L,vars:G,portalProps:$,mod:U,floatingStrategy:H,middlewares:V,autoContrast:q,attributes:W,target:J,ref:X,...Z}=a,{dir:K}=(0,eo.useDirection)(),Y=(0,r.useRef)(null),Q=function(e){let t,a,[l,i]=(0,r.useState)(e.defaultOpened),o="boolean"==typeof e.opened?e.opened:l,n=(0,r.use)(eq).withinGroup,s=(0,ec.useId)(),d=(0,r.useCallback)(e=>{i(e),e&&y(s)},[s]),{x:c,y:h,context:u,refs:p,placement:m,middlewareData:{arrow:{x:f,y:x}={}}}=(0,eG.useFloating)({strategy:e.strategy,placement:e.position,open:o,onOpenChange:d,middleware:(t=function(e){if(void 0===e)return{shift:!0,flip:!0};let t={...e};return void 0===e.shift&&(t.shift=!0),void 0===e.flip&&(t.flip=!0),t}(e.middlewares),a=[(0,eL.offset)(e.offset)],t.shift&&a.push((0,eL.shift)("boolean"==typeof t.shift?{padding:8}:{padding:8,...t.shift})),t.flip&&a.push("boolean"==typeof t.flip?(0,eL.flip)():(0,eL.flip)(t.flip)),a.push((0,eL.arrow)({element:e.arrowRef,padding:e.arrowOffset})),t.inline?a.push("boolean"==typeof t.inline?(0,eL.inline)():(0,eL.inline)(t.inline)):e.inline&&a.push((0,eL.inline)()),a),whileElementsMounted:eZ.autoUpdate}),{delay:g,currentId:v,setCurrentId:y}=(0,eG.useDelayGroup)(u,{id:s}),{getReferenceProps:j,getFloatingProps:b}=(0,eG.useInteractions)([(0,eG.useHover)(u,{enabled:e.events?.hover,delay:n?g:{open:e.openDelay,close:e.closeDelay},mouseOnly:!e.events?.touch}),(0,eG.useFocus)(u,{enabled:e.events?.focus,visibleOnly:!0}),(0,eG.useRole)(u,{role:"tooltip"}),(0,eG.useDismiss)(u,{enabled:void 0===e.opened})]),S=(0,r.useRef)(m);(0,eX.useIsomorphicEffect)(()=>{S.current!==m&&(S.current=m,e.onPositionChange?.(m))},[m]);let T=o&&v&&v!==s;return{x:c,y:h,arrowX:f,arrowY:x,reference:p.setReference,floating:p.setFloating,getFloatingProps:b,getReferenceProps:j,isGroupPhase:T,opened:o,placement:m}}({position:(0,eB.getFloatingPosition)(K,n),closeDelay:u,openDelay:h,onPositionChange:p,opened:m,defaultOpened:f,events:M,arrowRef:Y,arrowOffset:C,offset:"number"==typeof R?R+(w?k/2:0):R,inline:N,strategy:H,middlewares:V});(0,r.useEffect)(()=>{let e=J instanceof HTMLElement?J:"string"==typeof J?document.querySelector(J):J?.current||null;e&&Q.reference(e)},[J,Q]);let ee=(0,o.useStyles)({name:"Tooltip",props:a,classes:eN,className:T,style:S,classNames:y,styles:j,unstyled:b,attributes:W,rootSelector:"tooltip",vars:G,varsResolver:eY}),et=(0,eE.getSingleElementChild)(l);if(!J&&!et)throw Error("[@mantine/core] Tooltip component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported");let er=ee("tooltip"),ea="merge"===_&&w?(0,ez.getArrowMergeDropdownStyles)({position:Q.placement,dir:K}):void 0;if(J){let e=eD(E,{duration:100,transition:"fade"});return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(eI.OptionalPortal,{...$,withinPortal:x,children:(0,t.jsx)(eA.Transition,{...e,keepMounted:L,mounted:!I&&!!Q.opened,duration:Q.isGroupPhase?10:e.duration,children:e=>(0,t.jsxs)(s.Box,{...Z,"data-fixed":"fixed"===H||void 0,variant:F,mod:[{multiline:z},U],...er,...Q.getFloatingProps({ref:Q.floating,className:er.className,style:{...er.style,...e,...ea,zIndex:B,top:Q.y??0,left:Q.x??0}}),children:[c,(0,t.jsx)(eM.FloatingArrow,{ref:Y,arrowX:Q.arrowX,arrowY:Q.arrowY,visible:w,position:Q.placement,arrowSize:k,arrowOffset:C,arrowRadius:P,arrowPosition:_,...ee("arrow")})]})})})})}let el=et.props,ei=(0,e$.useMergedRef)(Q.reference,(0,eR.getRefProp)(et),X),en=eD(E,{duration:100,transition:"fade"});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eI.OptionalPortal,{...$,withinPortal:x,children:(0,t.jsx)(eA.Transition,{...en,keepMounted:L,mounted:!I&&!!Q.opened,duration:Q.isGroupPhase?10:en.duration,children:e=>(0,t.jsxs)(s.Box,{...Z,"data-fixed":"fixed"===H||void 0,variant:F,mod:[{multiline:z},U],...Q.getFloatingProps({ref:Q.floating,className:ee("tooltip").className,style:{...ee("tooltip").style,...e,...ea,zIndex:B,top:Q.y??0,left:Q.x??0}}),children:[c,(0,t.jsx)(eM.FloatingArrow,{ref:Y,arrowX:Q.arrowX,arrowY:Q.arrowY,visible:w,position:Q.placement,arrowSize:k,arrowOffset:C,arrowRadius:P,arrowPosition:_,...ee("arrow")})]})})}),(0,r.cloneElement)(et,Q.getReferenceProps({onClick:A,onMouseEnter:O,onMouseLeave:D,onMouseMove:a.onMouseMove,onPointerDown:a.onPointerDown,onPointerEnter:a.onPointerEnter,...el,className:(0,eT.default)(T,el.className),[d]:ei}))]})});eQ.classes=eN,eQ.varsResolver=eY,eQ.displayName="@mantine/core/Tooltip",eQ.Floating=eV,eQ.Group=eJ;var e0=e.i(27556),e1={root:"m_66836ed3",wrapper:"m_a5d60502",body:"m_667c2793",title:"m_6a03f287",label:"m_698f4f23",icon:"m_667f2a6a",message:"m_7fa78076",closeButton:"m_87f54839"};let e2=(0,l.createVarsResolver)((e,{radius:t,color:r,variant:l,autoContrast:i})=>{let o=e.variantColorResolver({color:r||e.primaryColor,theme:e,variant:l||"light",autoContrast:i});return{root:{"--alert-radius":void 0===t?void 0:(0,a.getRadius)(t),"--alert-bg":r||l?o.background:void 0,"--alert-color":o.color,"--alert-bd":r||l?o.border:void 0}}}),e6=(0,n.factory)(e=>{let r=(0,i.useProps)("Alert",null,e),{classNames:a,className:l,style:n,styles:d,unstyled:c,vars:h,radius:u,color:p,title:m,children:f,id:x,icon:g,withCloseButton:v,onClose:y,closeButtonLabel:j,variant:b,autoContrast:S,role:T,attributes:w,...k}=r,C=(0,o.useStyles)({name:"Alert",classes:e1,props:r,className:l,style:n,classNames:a,styles:d,unstyled:c,attributes:w,vars:h,varsResolver:e2}),P=(0,ec.useId)(x),_=m&&`${P}-title`||void 0,R=`${P}-body`;return(0,t.jsx)(s.Box,{id:P,...C("root",{variant:b}),variant:b,...k,role:T||"alert","aria-describedby":f?R:void 0,"aria-labelledby":m?_:void 0,children:(0,t.jsxs)("div",{...C("wrapper"),children:[g&&(0,t.jsx)("div",{...C("icon"),children:g}),(0,t.jsxs)("div",{...C("body"),children:[m&&(0,t.jsx)("div",{...C("title"),"data-with-close-button":v||void 0,children:(0,t.jsx)("span",{id:_,...C("label"),children:m})}),f&&(0,t.jsx)("div",{id:R,...C("message"),"data-variant":b,children:f})]}),v&&(0,t.jsx)(e0.CloseButton,{...C("closeButton"),onClick:y,variant:"transparent",size:16,iconSize:16,"aria-label":j,unstyled:c})]})})});e6.classes=e1,e6.varsResolver=e2,e6.displayName="@mantine/core/Alert";var e5=e.i(77193),e7=e.i(29277),e4=e.i(11644),e3={root:"m_9e117634"};let e9=(0,l.createVarsResolver)((e,{radius:t,fit:r})=>({root:{"--image-radius":void 0===t?void 0:(0,a.getRadius)(t),"--image-object-fit":r}})),e8=(0,eb.polymorphicFactory)(e=>{let a=(0,i.useProps)("Image",null,e),{classNames:l,className:n,style:d,styles:c,unstyled:h,vars:u,onError:p,src:m,radius:f,fit:x,fallbackSrc:g,mod:v,attributes:y,...j}=a,[b,S]=(0,r.useState)(!m);(0,r.useEffect)(()=>S(!m),[m]);let T=(0,o.useStyles)({name:"Image",classes:e3,props:a,className:n,style:d,classNames:l,styles:c,unstyled:h,attributes:y,vars:u,varsResolver:e9});return b&&g?(0,t.jsx)(s.Box,{component:"img",src:g,...T("root"),onError:p,mod:["fallback",v],...j}):(0,t.jsx)(s.Box,{component:"img",...T("root"),src:m,onError:e=>{p?.(e),S(!0)},mod:v,...j})});e8.classes=e3,e8.varsResolver=e9,e8.displayName="@mantine/core/Image";var te=e.i(13029),tt=e.i(42948),tr={root:"m_6e45937b",loader:"m_e8eb006c",overlay:"m_df587f17"};let ta={transitionProps:{transition:"fade",duration:0},overlayProps:{backgroundOpacity:.75},zIndex:(0,e_.getDefaultZIndex)("overlay")},tl=(0,l.createVarsResolver)((e,{zIndex:t})=>({root:{"--lo-z-index":t?.toString()}})),ti=(0,n.factory)(e=>{let r=(0,i.useProps)("LoadingOverlay",ta,e),{classNames:a,className:l,style:n,styles:d,unstyled:c,vars:h,transitionProps:u,loaderProps:p,overlayProps:m,visible:f,zIndex:x,attributes:g,onEnter:v,onEntered:y,onExit:j,onExited:b,...S}=r,T=(0,ei.useMantineTheme)(),w=(0,o.useStyles)({name:"LoadingOverlay",classes:tr,props:r,className:l,style:n,classNames:a,styles:d,unstyled:c,attributes:g,vars:h,varsResolver:tl}),k={...ta.overlayProps,...m};return(0,t.jsx)(eA.Transition,{transition:"fade",...u,mounted:!!f,onEnter:v,onEntered:y,onExit:j,onExited:b,children:e=>(0,t.jsxs)(s.Box,{...w("root",{style:e}),...S,children:[(0,t.jsx)(tt.Loader,{unstyled:c,...p,...w("loader",{className:p?.className,style:p?.style})}),(0,t.jsx)(te.Overlay,{...k,...w("overlay",{className:k?.className,style:k?.style}),darkHidden:!0,unstyled:c,color:m?.color||T.white}),(0,t.jsx)(te.Overlay,{...k,...w("overlay",{className:k?.className,style:k?.style}),lightHidden:!0,unstyled:c,color:m?.color||T.colors.dark[5]})]})})});ti.classes=tr,ti.varsResolver=tl,ti.displayName="@mantine/core/LoadingOverlay";var to=e.i(29765),tn=e.i(53165),ts=e.i(32591),td=e.i(33550);let tc=(0,td.default)("outline","download","Download",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 11l5 5l5 -5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]);var th=e.i(57662),tu=e.i(12522);let tp=(0,td.default)("outline","file","File",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",key:"svg-1"}]]),tm=(0,td.default)("outline","player-play","PlayerPlay",[["path",{d:"M7 4v16l13 -8l-13 -8",key:"svg-0"}]]),tf=(0,td.default)("outline","player-pause","PlayerPause",[["path",{d:"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-0"}],["path",{d:"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-1"}]]);var tx=e.i(18716),tg=e.i(17708),tv=e.i(14552),ty=e.i(6916);let tj=(0,td.default)("outline","alert-circle","AlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]),tb=(0,td.default)("outline","check","Check",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),tS=(0,td.default)("outline","settings","Settings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),tT=(0,td.default)("outline","search","Search",[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),tw=(0,td.default)("outline","folder-plus","FolderPlus",[["path",{d:"M12 19h-7a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2h4l3 3h7a2 2 0 0 1 2 2v3.5",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}]]),tk=(0,td.default)("outline","upload","Upload",[["path",{d:"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 9l5 -5l5 5",key:"svg-1"}],["path",{d:"M12 4l0 12",key:"svg-2"}]]),tC=(0,td.default)("outline","copy","Copy",[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]]),tP=(0,td.default)("outline","scissors","Scissors",[["path",{d:"M3 7a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-0"}],["path",{d:"M3 17a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-1"}],["path",{d:"M8.6 8.6l10.4 10.4",key:"svg-2"}],["path",{d:"M8.6 15.4l10.4 -10.4",key:"svg-3"}]]),t_=(0,td.default)("outline","clipboard","Clipboard",[["path",{d:"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2",key:"svg-0"}],["path",{d:"M9 5a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2",key:"svg-1"}]]),tR=(0,td.default)("outline","archive","Archive",[["path",{d:"M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2",key:"svg-0"}],["path",{d:"M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10",key:"svg-1"}],["path",{d:"M10 12l4 0",key:"svg-2"}]]),tE=(0,td.default)("outline","file-zip","FileZip",[["path",{d:"M6 20.735a2 2 0 0 1 -1 -1.735v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-1",key:"svg-0"}],["path",{d:"M11 17a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-2a2 2 0 0 1 2 -2",key:"svg-1"}],["path",{d:"M11 5l-1 0",key:"svg-2"}],["path",{d:"M13 7l-1 0",key:"svg-3"}],["path",{d:"M11 9l-1 0",key:"svg-4"}],["path",{d:"M13 11l-1 0",key:"svg-5"}],["path",{d:"M11 13l-1 0",key:"svg-6"}],["path",{d:"M13 15l-1 0",key:"svg-7"}]]),tz=(0,td.default)("outline","edit","Edit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]);var tM=e.i(85404);e.s(["default",0,function(){let{colorScheme:e,toggleColorScheme:a}=(0,e4.useMantineColorScheme)(),[l,i]=(0,r.useState)([]),[o,n]=(0,r.useState)(""),[s,d]=(0,r.useState)(!1),[c,h]=(0,r.useState)(!1),[S,T]=(0,r.useState)(null),[w,k]=(0,r.useState)([]),[C,P]=(0,r.useState)(""),[_,R]=(0,r.useState)(!1),[E,z]=(0,r.useState)(null),[M,B]=(0,r.useState)(null),[I,A]=(0,r.useState)("blue"),[O,D]=(0,r.useState)([]),[N,F]=(0,r.useState)({action:null,paths:[]}),[L,G]=(0,r.useState)(!1),[$,W]=(0,r.useState)(""),[J,X]=(0,r.useState)(!1),[Z,K]=(0,r.useState)(null),[Y,Q]=(0,r.useState)(""),[ee,et]=(0,r.useState)(!1),[er,ea]=(0,r.useState)(""),[el,ei]=(0,r.useState)(!1),[eo,en]=(0,r.useState)(!0),es=(0,r.useRef)(null),[ed,ec]=(0,r.useState)(""),[eh,eu]=(0,r.useState)(""),[ep,em]=(0,r.useState)(""),[ex,eg]=(0,r.useState)(!0),[ev,ey]=(0,r.useState)(null),[eb,eS]=(0,r.useState)(null),[eT,ew]=(0,r.useState)(!1),[e_,eR]=(0,r.useState)(""),[eE,ez]=(0,r.useState)([]),[eM,eB]=(0,r.useState)(!1),[eI,eA]=(0,r.useState)(null),[eO,eD]=(0,r.useState)(null),[eN,eF]=(0,r.useState)([]),[eL,eG]=(0,r.useState)(!1),[e$,eU]=(0,r.useState)([]),[eH,eV]=(0,r.useState)(!1),[eq,eW]=(0,r.useState)(""),[eJ,eX]=(0,r.useState)(null),[eZ,eK]=(0,r.useState)(!1),[eY,e0]=(0,r.useState)([]),e1=(e,t,r,a)=>(eX(e),eA(null),fetch(tM.default.ACER_DOWNLOAD(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e,filename:t,series_type:r,subfolder:a||void 0})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Failed to queue download");return te(),t}).catch(e=>{throw eA(e.message||String(e)),e}).finally(()=>eX(null))),e2=async()=>{if(0!==eY.length&&eO){eK(!0);try{for(let e=0;e<e$.length;e++){let t=e$[e],r=t.link||t.url;if(!r||!eY.includes(r))continue;let a=eO.mainTitle||eO.title||"Series",l=`${a}_${eq}_${t.title||`Episode_${e+1}`}.mp4`,i=eo?`${a} - ${eq}`:void 0;try{await e1(r,l,"episode",i),await new Promise(e=>setTimeout(e,400))}catch(e){console.error("Failed to queue episode:",t.title,e)}}e0([])}finally{eK(!1)}}},e3=(0,r.useRef)(null),e9=()=>{fetch(tM.default.GET_CONFIG()).then(e=>e.json()).then(e=>{ec(e.default_movies_dir),eu(e.current_movies_dir),em(e.current_movies_dir)}).catch(()=>{})},te=()=>{d(!0),fetch(tM.default.ARIA2_LIST()).then(e=>{if(!e.ok)throw Error("Failed to fetch downloads");return e.json()}).then(e=>{i(e.downloads||[]),T(null)}).catch(e=>T(e.message||String(e))).finally(()=>d(!1))},tt=(e="")=>{R(!0),z(null),fetch(tM.default.EXPLORER_LIST(e)).then(e=>{if(!e.ok)throw Error("Failed to load directory content");return e.json()}).then(e=>{k(e.entries||[]),P(e.current_path||"")}).catch(e=>z(e.message||String(e))).finally(()=>R(!1))};(0,r.useEffect)(()=>{te();let e=localStorage.getItem("watchparty_download_path");e?fetch(tM.default.UPDATE_CONFIG(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({movies_dir:e,create_if_missing:!0})}).then(async e=>{let t=await e.json();e.ok&&(eu(t.current_movies_dir),em(t.current_movies_dir)),tt("")}).catch(()=>{tt("")}).finally(()=>{e9()}):(tt(""),e9());let t=localStorage.getItem("watchparty_accent_color");return t&&A(t),e3.current=setInterval(te,2e3),()=>{e3.current&&clearInterval(e3.current)}},[]);let tr=C.split("/").filter(Boolean),ta=[(0,t.jsx)(ek,{onClick:()=>tt(""),children:"Root"},"root"),...tr.map((e,r)=>{let a=tr.slice(0,r+1).join("/");return(0,t.jsx)(ek,{onClick:()=>tt(a),children:e},a)})];return(0,t.jsx)(to.MantineProvider,{theme:{primaryColor:I},forceColorScheme:"dark",children:(0,t.jsxs)(e5.AppShell,{header:{height:60},padding:"md",children:[(0,t.jsx)(e5.AppShell.Header,{children:(0,t.jsxs)(g.Group,{h:"100%",px:"md",justify:"space-between",children:[(0,t.jsxs)(g.Group,{gap:"xs",children:[(0,t.jsx)(b.Button,{component:"a",href:"/",variant:"subtle",leftSection:(0,t.jsx)(ts.IconArrowLeft,{size:16}),children:"Back to Control Panel"}),(0,t.jsx)(v.Title,{order:4,children:"Media & Downloader Manager"})]}),(0,t.jsx)(q.ActionIcon,{variant:"default",onClick:()=>a(),size:"lg",children:"dark"===e?(0,t.jsx)(ty.IconSun,{size:18}):(0,t.jsx)(tv.IconMoon,{size:18})})]})}),(0,t.jsx)(e5.AppShell.Main,{style:{paddingTop:"80px"},children:(0,t.jsx)(u,{size:"xl",children:(0,t.jsxs)(ef,{defaultValue:"downloader",variant:"outline",children:[(0,t.jsxs)(ef.List,{mb:"md",children:[(0,t.jsx)(ef.Tab,{value:"downloader",leftSection:(0,t.jsx)(tc,{size:16}),children:"Downloader"}),(0,t.jsx)(ef.Tab,{value:"explorer",leftSection:(0,t.jsx)(tu.IconFolder,{size:16}),children:"File Explorer"}),(0,t.jsx)(ef.Tab,{value:"scraper",leftSection:(0,t.jsx)(tT,{size:16}),children:"Search & Scrape"}),(0,t.jsx)(ef.Tab,{value:"settings",leftSection:(0,t.jsx)(tS,{size:16}),children:"Settings"})]}),(0,t.jsx)(ef.Panel,{value:"downloader",children:(0,t.jsxs)(f.Stack,{gap:"md",children:[(0,t.jsx)(p.Card,{withBorder:!0,children:(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),o.trim()&&(h(!0),T(null),fetch(tM.default.ARIA2_ADD(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uri:o.trim()})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.detail??"Failed to add download");n(""),te()}).catch(e=>T(e.message||String(e))).finally(()=>h(!1)))},children:(0,t.jsxs)(g.Group,{align:"flex-end",children:[(0,t.jsx)(j.TextInput,{label:"Download Link / Magnet Link",placeholder:"http://..., magnet:?xt=..., etc.",value:o,onChange:e=>n(e.currentTarget.value),style:{flex:1},required:!0}),(0,t.jsx)(b.Button,{type:"submit",loading:c,leftSection:(0,t.jsx)(tg.IconPlus,{size:16}),children:"Add Download"})]})})}),S&&(0,t.jsx)(e6,{icon:(0,t.jsx)(tj,{size:16}),title:"Downloader Error",color:"red",withCloseButton:!0,onClose:()=>T(null),children:S}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsxs)(g.Group,{justify:"space-between",mb:"md",children:[(0,t.jsx)(v.Title,{order:5,children:"Active Queue"}),(0,t.jsxs)(g.Group,{gap:"xs",children:[(0,t.jsx)(b.Button,{size:"xs",variant:"outline",onClick:te,loading:s,leftSection:(0,t.jsx)(tx.IconRefresh,{size:14}),children:"Refresh"}),(0,t.jsx)(b.Button,{size:"xs",variant:"light",color:"red",onClick:()=>{fetch(tM.default.ARIA2_PURGE(),{method:"POST"}).then(()=>te()).catch(e=>T(e.message||String(e)))},leftSection:(0,t.jsx)(th.IconTrash,{size:14}),children:"Purge Finished"})]})]}),0===l.length?(0,t.jsx)(y.Text,{c:"dimmed",ta:"center",py:"xl",children:"No active downloads. Add a URL or magnet link above to start downloading."}):(0,t.jsxs)(U,{striped:!0,highlightOnHover:!0,verticalSpacing:"xs",children:[(0,t.jsx)(U.Thead,{children:(0,t.jsxs)(U.Tr,{children:[(0,t.jsx)(U.Th,{style:{width:"40%"},children:"Name"}),(0,t.jsx)(U.Th,{children:"Progress"}),(0,t.jsx)(U.Th,{children:"Speed"}),(0,t.jsx)(U.Th,{children:"ETA"}),(0,t.jsx)(U.Th,{children:"Status"}),(0,t.jsx)(U.Th,{style:{width:"150px"},children:"Actions"})]})}),(0,t.jsx)(U.Tbody,{children:l.map(e=>(0,t.jsxs)(U.Tr,{children:[(0,t.jsxs)(U.Td,{style:{maxWidth:"300px"},children:[(0,t.jsx)(eQ,{label:e.name||e.gid,children:(0,t.jsx)(y.Text,{size:"sm",fw:500,truncate:!0,children:e.name||e.gid})}),e.error_message&&(0,t.jsxs)(y.Text,{size:"xs",c:"red",mt:2,truncate:!0,children:["Error: ",e.error_message]})]}),(0,t.jsx)(U.Td,{children:(0,t.jsxs)(f.Stack,{gap:4,children:[(0,t.jsx)(H.Progress,{value:e.progress,striped:"active"===e.status,animated:"active"===e.status}),(0,t.jsxs)(y.Text,{size:"xs",c:"dimmed",children:[e.progress,"% (",(e.completed_length/1024/1024).toFixed(1)," MB / ",(e.total_length/1024/1024).toFixed(1)," MB)"]})]})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(y.Text,{size:"sm",children:"active"===e.status?e.download_speed_str:"—"})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(y.Text,{size:"sm",children:"active"===e.status?e.eta:"—"})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(V.Badge,{color:(e=>{switch(e){case"active":return"blue";case"waiting":return"yellow";case"paused":default:return"gray";case"complete":return"green";case"error":return"red"}})(e.status),variant:"light",children:e.status})}),(0,t.jsx)(U.Td,{children:(0,t.jsxs)(g.Group,{gap:4,wrap:"nowrap",children:["active"===e.status&&(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"yellow",onClick:()=>{var t;return t=e.gid,void fetch(tM.default.ARIA2_PAUSE(t),{method:"POST"}).then(()=>te()).catch(e=>T(e.message||String(e)))},title:"Pause",children:(0,t.jsx)(tf,{size:16})}),("paused"===e.status||"waiting"===e.status)&&(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"green",onClick:()=>{var t;return t=e.gid,void fetch(tM.default.ARIA2_RESUME(t),{method:"POST"}).then(()=>te()).catch(e=>T(e.message||String(e)))},title:"Resume",children:(0,t.jsx)(tm,{size:16})}),(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"red",onClick:()=>{var t;return t=e.gid,void fetch(tM.default.ARIA2_REMOVE(t),{method:"POST"}).then(()=>te()).catch(e=>T(e.message||String(e)))},title:"Cancel / Delete",children:(0,t.jsx)(th.IconTrash,{size:16})})]})})]},e.gid))})]})]})]})}),(0,t.jsx)(ef.Panel,{value:"explorer",children:(0,t.jsxs)(f.Stack,{gap:"md",children:[E&&(0,t.jsx)(e6,{icon:(0,t.jsx)(tj,{size:16}),title:"Explorer Error",color:"red",withCloseButton:!0,onClose:()=>z(null),children:E}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsxs)(g.Group,{justify:"space-between",mb:"md",style:{flexWrap:"wrap",gap:"10px"},children:[(0,t.jsx)(ej,{separator:">",children:ta}),(0,t.jsxs)(g.Group,{gap:"xs",style:{flexWrap:"wrap"},children:[(0,t.jsx)("input",{type:"file",ref:es,onChange:e=>{let t=e.target.files;if(!t||0===t.length)return;let r=t[0];ei(!0);let a=new FormData;a.append("target_dir",C),a.append("file",r),fetch(tM.default.EXPLORER_UPLOAD(),{method:"POST",body:a}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Upload failed");tt(C)}).catch(e=>z(e.message||String(e))).finally(()=>ei(!1))},style:{display:"none"}}),(0,t.jsx)(b.Button,{size:"xs",variant:"outline",color:"blue",onClick:()=>G(!0),leftSection:(0,t.jsx)(tw,{size:14}),children:"New Folder"}),(0,t.jsx)(b.Button,{size:"xs",variant:"outline",color:"teal",onClick:()=>{es.current?.click()},loading:el,leftSection:(0,t.jsx)(tk,{size:14}),children:"Upload File"}),(0,t.jsx)(b.Button,{size:"xs",variant:"filled",color:"green",component:"a",href:`/?play=${encodeURIComponent(C)}&folder=true`,leftSection:(0,t.jsx)(tm,{size:14}),children:"Play Current Folder"}),O.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(b.Button,{size:"xs",variant:"outline",color:"yellow",onClick:()=>{0!==O.length&&(F({action:"copy",paths:[...O]}),D([]))},leftSection:(0,t.jsx)(tC,{size:14}),children:["Copy (",O.length,")"]}),(0,t.jsxs)(b.Button,{size:"xs",variant:"outline",color:"orange",onClick:()=>{0!==O.length&&(F({action:"cut",paths:[...O]}),D([]))},leftSection:(0,t.jsx)(tP,{size:14}),children:["Cut (",O.length,")"]}),(0,t.jsx)(b.Button,{size:"xs",variant:"outline",color:"pink",onClick:()=>{ea(""),et(!0)},leftSection:(0,t.jsx)(tE,{size:14}),children:"Zip Selected"})]}),N.paths.length>0&&(0,t.jsxs)(b.Button,{size:"xs",variant:"filled",color:"green",onClick:()=>{N.action&&0!==N.paths.length&&fetch("copy"===N.action?tM.default.EXPLORER_COPY():tM.default.EXPLORER_MOVE(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source_paths:N.paths,target_dir:C})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Paste operation failed");t.errors&&t.errors.length>0&&z(t.errors.join("; ")),F({action:null,paths:[]}),tt(C)}).catch(e=>z(e.message||String(e)))},leftSection:(0,t.jsx)(t_,{size:14}),children:["Paste (",N.paths.length,")"]}),(0,t.jsx)(b.Button,{size:"xs",variant:"outline",onClick:()=>tt(C),loading:_,leftSection:(0,t.jsx)(tx.IconRefresh,{size:14}),children:"Refresh"})]})]}),(0,t.jsx)(eP.Divider,{mb:"sm"}),0===w.length?(0,t.jsx)(y.Text,{c:"dimmed",ta:"center",py:"xl",children:"This directory is empty. Downloads completed via aria2 will appear here."}):(0,t.jsxs)(U,{striped:!0,highlightOnHover:!0,verticalSpacing:"sm",children:[(0,t.jsx)(U.Thead,{children:(0,t.jsxs)(U.Tr,{children:[(0,t.jsx)(U.Th,{style:{width:"40px"},children:(0,t.jsx)(m.Checkbox,{checked:w.length>0&&O.length===w.length,indeterminate:O.length>0&&O.length<w.length,onChange:e=>{e.currentTarget.checked?D(w.map(e=>e.path)):D([])}})}),(0,t.jsx)(U.Th,{style:{width:"50%"},children:"Name"}),(0,t.jsx)(U.Th,{children:"Size"}),(0,t.jsx)(U.Th,{children:"Type"}),(0,t.jsx)(U.Th,{style:{width:"220px"},children:"Actions"})]})}),(0,t.jsx)(U.Tbody,{children:w.map(e=>(0,t.jsxs)(U.Tr,{children:[(0,t.jsx)(U.Td,{children:(0,t.jsx)(m.Checkbox,{checked:O.includes(e.path),onChange:t=>{t.currentTarget.checked?D(t=>[...t,e.path]):D(t=>t.filter(t=>t!==e.path))}})}),(0,t.jsx)(U.Td,{children:(0,t.jsxs)(g.Group,{gap:"xs",children:["directory"===e.type?(0,t.jsx)(tu.IconFolder,{size:18,style:{color:"var(--mantine-color-blue-filled)"}}):(0,t.jsx)(tp,{size:18,style:{color:"var(--mantine-color-gray-6)"}}),"directory"===e.type?(0,t.jsx)(ek,{size:"sm",fw:500,onClick:()=>tt(e.path),style:{cursor:"pointer"},children:e.name}):(0,t.jsx)(y.Text,{size:"sm",fw:500,children:e.name})]})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(y.Text,{size:"sm",c:"dimmed",children:"file"===e.type?e.size_str:"—"})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(V.Badge,{size:"xs",color:"directory"===e.type?"blue":"gray",variant:"light",children:e.type})}),(0,t.jsx)(U.Td,{children:(0,t.jsxs)(g.Group,{gap:4,children:["file"===e.type&&(0,t.jsx)(b.Button,{size:"xs",variant:"light",color:"green",component:"a",href:`/?play=${encodeURIComponent(e.path)}`,leftSection:(0,t.jsx)(tm,{size:12}),children:"Play"}),"directory"===e.type&&(0,t.jsx)(b.Button,{size:"xs",variant:"light",color:"green",component:"a",href:`/?play=${encodeURIComponent(e.path)}&folder=true`,leftSection:(0,t.jsx)(tm,{size:12}),children:"Play Folder"}),(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>{K(e),Q(e.name),X(!0)},title:"Rename",children:(0,t.jsx)(tz,{size:16})}),e.name.endsWith(".zip")&&(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"teal",onClick:()=>{var t;return t=e.path,void fetch(tM.default.EXPLORER_UNZIP(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({zip_path:t,target_dir:C})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Unzip operation failed");tt(C)}).catch(e=>z(e.message||String(e)))},title:"Extract Zip",children:(0,t.jsx)(tR,{size:16})}),(0,t.jsx)(q.ActionIcon,{variant:"subtle",color:"red",loading:M===e.path,onClick:()=>{var t;return t=e.path,void(confirm(`Are you sure you want to delete "${t}"?`)&&(B(t),fetch(tM.default.EXPLORER_DELETE(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.detail??"Failed to delete file");tt(C)}).catch(e=>z(e.message||String(e))).finally(()=>B(null))))},title:"Delete",children:(0,t.jsx)(th.IconTrash,{size:16})})]})})]},e.name))})]})]})]})}),(0,t.jsx)(ef.Panel,{value:"scraper",children:(0,t.jsxs)(f.Stack,{gap:"md",style:{position:"relative"},children:[(0,t.jsx)(ti,{visible:eM||eL||eH}),eI&&(0,t.jsx)(e6,{icon:(0,t.jsx)(tj,{size:16}),title:"Scraper Error",color:"red",withCloseButton:!0,onClose:()=>eA(null),children:eI}),(0,t.jsx)(p.Card,{withBorder:!0,children:(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),e_.trim()&&(eB(!0),eA(null),eD(null),eF([]),eU([]),e0([]),fetch(tM.default.ACER_SEARCH(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e_.trim()})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Search failed");ez(t.searchResult||[])}).catch(e=>eA(e.message||String(e))).finally(()=>eB(!1)))},children:(0,t.jsxs)(g.Group,{align:"flex-end",children:[(0,t.jsx)(j.TextInput,{label:"Search Movies & TV Shows (via acermovies)",placeholder:"e.g. Breaking Bad, Interstellar...",value:e_,onChange:e=>eR(e.currentTarget.value),style:{flex:1},required:!0}),(0,t.jsx)(b.Button,{type:"submit",loading:eM,leftSection:(0,t.jsx)(tT,{size:16}),children:"Search"})]})})}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsxs)(v.Title,{order:5,mb:"md",children:["Search Results (",eE.length,")"]}),0===eE.length?(0,t.jsx)(y.Text,{c:"dimmed",ta:"center",py:"xl",children:"Search for a title above to find movies and shows to download."}):(0,t.jsx)(f.Stack,{gap:"xs",children:eE.map((e,r)=>(0,t.jsx)(p.Card,{withBorder:!0,padding:"sm",style:{cursor:"pointer",backgroundColor:eO?.url===e.url?"var(--mantine-color-blue-light)":"transparent"},onClick:()=>{eG(!0),eA(null),eD(e),eF([]),eU([]),e0([]),fetch(tM.default.ACER_QUALITIES(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e.url})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Failed to fetch qualities");eF(t.sourceQualityList||[]),t.meta&&eD(e=>({...e,mainTitle:t.meta.mainTitle,title:t.meta.title||e.title,image:t.meta.image||e.image,synopsis:t.meta.synopsis,type:t.meta.type,imdbId:t.meta.imdbId}))}).catch(e=>eA(e.message||String(e))).finally(()=>eG(!1))},children:(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:"12px",width:"100%"},children:[(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"row",gap:"12px",flex:1,minWidth:0,alignItems:"flex-start"},children:[e.image&&(0,t.jsx)(e8,{src:e.image,w:55,h:80,fallbackSrc:"https://placehold.co/55x80?text=No+Poster",radius:"xs",style:{flexShrink:0}}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px",flex:1,minWidth:0},children:[(0,t.jsx)(y.Text,{size:"sm",fw:600,style:{wordBreak:"break-word",whiteSpace:"normal"},children:e.title}),(0,t.jsx)(y.Text,{size:"xs",c:"dimmed",lineClamp:2,children:e.description||"No description"})]})]}),(0,t.jsx)(b.Button,{size:"xs",variant:"light",leftSection:(0,t.jsx)(tg.IconPlus,{size:12}),style:{flexShrink:0},children:"Fetch"})]})},r))})]}),(0,t.jsx)(e7.Modal,{opened:!!eO,onClose:()=>eD(null),size:"lg",title:eO?.mainTitle||eO?.title||"Media Details",centered:!0,children:eO&&(0,t.jsxs)(f.Stack,{gap:"md",children:[(0,t.jsxs)(g.Group,{align:"flex-start",gap:"md",wrap:"nowrap",children:[eO.image&&(0,t.jsx)(e8,{src:eO.image,w:90,h:130,fallbackSrc:"https://placehold.co/90x130?text=No+Poster",radius:"sm"}),(0,t.jsxs)(f.Stack,{gap:"xs",style:{flex:1},children:[eO.mainTitle&&(0,t.jsx)(y.Text,{size:"xs",c:"dimmed",fw:500,lineClamp:2,children:eO.title}),(0,t.jsxs)(g.Group,{gap:"xs",mt:2,children:[eO.type&&(0,t.jsx)(V.Badge,{color:"blue",variant:"light",children:eO.type}),eO.imdbId&&(0,t.jsx)(V.Badge,{component:"a",href:`https://www.imdb.com/title/${eO.imdbId}`,target:"_blank",color:"yellow",variant:"filled",style:{cursor:"pointer"},children:"IMDb"})]}),eO.synopsis&&(0,t.jsx)(y.Text,{size:"xs",style:{lineHeight:"1.4"},children:eO.synopsis})]})]}),(0,t.jsx)(eP.Divider,{my:"xs"}),(0,t.jsx)(v.Title,{order:5,children:"Available Sources / Seasons"}),0===eN.length?(0,t.jsx)(y.Text,{c:"dimmed",size:"xs",children:"No source qualities found."}):(0,t.jsx)(g.Group,{gap:"xs",children:eN.map((e,r)=>{let a=e.episodesUrl||e.episodes_api_url,l=eq===e.title;return(0,t.jsx)(b.Button,{size:"xs",variant:l?"filled":"outline",onClick:()=>{if(a)eV(!0),eA(null),eW(e.title||""),eU([]),e0([]),fetch(tM.default.ACER_EPISODES(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e.episodesUrl||e.episodes_api_url})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Failed to fetch episodes");eU(t.sourceEpisodes||[])}).catch(e=>eA(e.message||String(e))).finally(()=>eV(!1));else{let t=eO.mainTitle||eO.title||"Movie",r=e.quality||"Direct",a=`${t}_${r}.mp4`;e1(e.url,a,"movie")}},loading:eJ===e.url,children:e.title||e.quality||`Quality ${r+1}`},r)})}),e$.length>0&&(0,t.jsxs)(f.Stack,{gap:"sm",children:[(0,t.jsxs)(g.Group,{justify:"space-between",children:[(0,t.jsxs)(v.Title,{order:5,children:["Episodes (",e$.length,")"]}),(0,t.jsxs)(g.Group,{gap:"sm",children:[(0,t.jsx)(m.Checkbox,{label:"Save inside subfolder with season name",checked:eo,onChange:e=>en(e.currentTarget.checked)}),(0,t.jsxs)(b.Button,{size:"xs",color:"green",onClick:e2,loading:eZ,disabled:0===eY.length,children:["Download Selected (",eY.length,")"]})]})]}),(0,t.jsx)("div",{style:{maxHeight:"300px",overflowY:"auto"},children:(0,t.jsxs)(U,{striped:!0,highlightOnHover:!0,verticalSpacing:"xs",children:[(0,t.jsx)(U.Thead,{children:(0,t.jsxs)(U.Tr,{children:[(0,t.jsx)(U.Th,{style:{width:"40px"},children:(0,t.jsx)(m.Checkbox,{checked:e$.length>0&&eY.length===e$.map(e=>e.link||e.url).filter(Boolean).length,indeterminate:eY.length>0&&eY.length<e$.map(e=>e.link||e.url).filter(Boolean).length,onChange:e=>{e.currentTarget.checked?e0(e$.map(e=>e.link||e.url).filter(Boolean)):e0([])}})}),(0,t.jsx)(U.Th,{children:"Episode Name"}),(0,t.jsx)(U.Th,{style:{width:"120px"},children:"Actions"})]})}),(0,t.jsx)(U.Tbody,{children:e$.map((e,r)=>{let a=e.link||e.url;return(0,t.jsxs)(U.Tr,{children:[(0,t.jsx)(U.Td,{children:a&&(0,t.jsx)(m.Checkbox,{checked:eY.includes(a),onChange:e=>{e.currentTarget.checked?e0(e=>[...e,a]):e0(e=>e.filter(e=>e!==a))}})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(y.Text,{size:"xs",fw:500,children:e.title})}),(0,t.jsx)(U.Td,{children:(0,t.jsx)(b.Button,{size:"xs",variant:"light",onClick:()=>{let t=eO.mainTitle||eO.title||"Series",r=`${t}_${eq}_${e.title}.mp4`,l=eo?`${t} - ${eq}`:void 0;a&&e1(a,r,"episode",l)},loading:eJ===a,children:"Queue"})})]},r)})})]})})]})]})}),(0,t.jsx)(e7.Modal,{opened:L,onClose:()=>G(!1),title:"Create New Folder",children:(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),$.trim()&&fetch(tM.default.EXPLORER_MKDIR(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parent_path:C,folder_name:$.trim()})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Failed to create folder");G(!1),W(""),tt(C)}).catch(e=>z(e.message||String(e)))},children:(0,t.jsxs)(f.Stack,{gap:"sm",children:[(0,t.jsx)(j.TextInput,{label:"Folder Name",placeholder:"Enter folder name",value:$,onChange:e=>W(e.currentTarget.value),required:!0}),(0,t.jsx)(b.Button,{type:"submit",fullWidth:!0,children:"Create Folder"})]})})}),(0,t.jsx)(e7.Modal,{opened:J,onClose:()=>{X(!1),K(null)},title:"Rename File / Folder",children:(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),Z&&Y.trim()&&fetch(tM.default.EXPLORER_RENAME(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({old_path:Z.path,new_name:Y.trim()})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Failed to rename");X(!1),K(null),Q(""),tt(C)}).catch(e=>z(e.message||String(e)))},children:(0,t.jsxs)(f.Stack,{gap:"sm",children:[(0,t.jsx)(j.TextInput,{label:"New Name",placeholder:"Enter new name",value:Y,onChange:e=>Q(e.currentTarget.value),required:!0}),(0,t.jsx)(b.Button,{type:"submit",fullWidth:!0,children:"Rename"})]})})}),(0,t.jsx)(e7.Modal,{opened:ee,onClose:()=>et(!1),title:"Zip Selected Items",children:(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),0!==O.length&&er.trim()&&fetch(tM.default.EXPLORER_ZIP(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:O,target_zip_name:er.trim(),current_dir:C})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t.detail||"Zip operation failed");et(!1),ea(""),D([]),tt(C)}).catch(e=>z(e.message||String(e)))},children:(0,t.jsxs)(f.Stack,{gap:"sm",children:[(0,t.jsx)(j.TextInput,{label:"Target Zip File Name",placeholder:"e.g. archive (do not include .zip)",value:er,onChange:e=>ea(e.currentTarget.value),required:!0}),(0,t.jsx)(b.Button,{type:"submit",fullWidth:!0,children:"Compress to Zip"})]})})})]})}),(0,t.jsx)(ef.Panel,{value:"settings",children:(0,t.jsxs)(f.Stack,{gap:"md",children:[ev&&(0,t.jsx)(e6,{icon:(0,t.jsx)(tj,{size:16}),title:"Settings Error",color:"red",withCloseButton:!0,onClose:()=>ey(null),children:ev}),eb&&(0,t.jsx)(e6,{icon:(0,t.jsx)(tb,{size:16}),title:"Success",color:"green",withCloseButton:!0,onClose:()=>eS(null),children:eb}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsx)(v.Title,{order:5,mb:"xs",children:"Directory Configuration"}),(0,t.jsx)(y.Text,{size:"sm",c:"dimmed",mb:"md",children:"View and change the active directory used by the file explorer and downloader. Changes apply to the current server session."}),(0,t.jsxs)(eC.SimpleGrid,{cols:{base:1,md:2},spacing:"md",mb:"md",children:[(0,t.jsxs)(p.Card,{withBorder:!0,padding:"sm",bg:"var(--mantine-color-default-hover)",children:[(0,t.jsx)(y.Text,{size:"xs",fw:700,c:"dimmed",style:{textTransform:"uppercase"},children:"Default Movies Folder"}),(0,t.jsx)(y.Text,{size:"md",fw:500,style:{fontFamily:"monospace"},mt:4,children:ed||"—"})]}),(0,t.jsxs)(p.Card,{withBorder:!0,padding:"sm",bg:"var(--mantine-color-default-hover)",children:[(0,t.jsx)(y.Text,{size:"xs",fw:700,c:"dimmed",style:{textTransform:"uppercase"},children:"Current Active Folder"}),(0,t.jsx)(y.Text,{size:"md",fw:500,style:{fontFamily:"monospace"},mt:4,children:eh||"—"})]})]}),(0,t.jsx)("form",{onSubmit:e=>{e.preventDefault(),ep.trim()&&(ew(!0),ey(null),eS(null),fetch(tM.default.UPDATE_CONFIG(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({movies_dir:ep.trim(),create_if_missing:ex})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.detail??"Failed to update folder");eS("Download directory updated successfully!"),eu(t.current_movies_dir),em(t.current_movies_dir),localStorage.setItem("watchparty_download_path",t.current_movies_dir),tt("")}).catch(e=>ey(e.message||String(e))).finally(()=>ew(!1)))},children:(0,t.jsxs)(f.Stack,{gap:"sm",children:[(0,t.jsx)(j.TextInput,{label:"Change Download & Stream Folder",description:"Specify an absolute path on the server (e.g. ~/Downloads/WatchParty or C:\\Downloads\\WatchParty)",placeholder:eh,value:ep,onChange:e=>em(e.currentTarget.value),required:!0}),(0,t.jsx)(x.Switch,{label:"Create folder automatically if it does not exist",checked:ex,onChange:e=>eg(e.currentTarget.checked)}),(0,t.jsx)(b.Button,{type:"submit",loading:eT,style:{alignSelf:"flex-start"},children:"Apply & Update Path"})]})})]}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsx)(v.Title,{order:5,mb:"xs",children:"Theme Customization"}),(0,t.jsx)(y.Text,{size:"sm",c:"dimmed",mb:"md",children:"Personalize your dashboard theme style by picking a custom accent color saved locally."}),(0,t.jsx)(tn.Select,{label:"Select Theme Accent Color",value:I,onChange:e=>{e&&(A(e),localStorage.setItem("watchparty_accent_color",e))},data:[{value:"blue",label:"Neon Blue"},{value:"violet",label:"Cyberpunk Violet"},{value:"teal",label:"Electric Teal"},{value:"grape",label:"Grape Fusion"},{value:"orange",label:"Sunset Orange"},{value:"lime",label:"Neon Lime"}],style:{maxWidth:"300px"}})]}),(0,t.jsxs)(p.Card,{withBorder:!0,children:[(0,t.jsx)(v.Title,{order:5,mb:"xs",children:"Preferences & Guide"}),(0,t.jsx)(y.Text,{size:"sm",c:"dimmed",children:"* **Storage Location**: Completed downloads in the downloader tab are placed directly in the active folder configured above. * **Streaming Root**: The File Explorer searches recursively inside the active folder. Any files shown can be streamed instantly using the green **Play** action. * **System Port bindings**: VLC instance HTTP interfaces, telnet controls, and media stream ports are automatically allocated."})]})]})})]})})})]})})}],10555)}]);
out/_next/static/chunks/158myu8e_yme3.js ADDED
@@ -0,0 +1 @@
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},91915,(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let a=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=a}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(33525)},68017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return u}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(90373),s=e.r(54394);e.r(33525);let l=e.r(8372);class c extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,s.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,s.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:o}=this.state,i={[s.HTTPAccessErrorStatus.NOT_FOUND]:e,[s.HTTPAccessErrorStatus.FORBIDDEN]:t,[s.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(o){let l=o===s.HTTPAccessErrorStatus.NOT_FOUND&&e,c=o===s.HTTPAccessErrorStatus.FORBIDDEN&&t,u=o===s.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return l||c||u?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,i[o]]}):n}return n}}function u({notFound:e,forbidden:t,unauthorized:r,children:n}){let s=(0,i.useUntrackedPathname)(),d=(0,o.useContext)(l.MissingSlotContext);return e||t||r?(0,a.jsx)(c,{pathname:s,notFound:e,forbidden:t,unauthorized:r,missingSlots:d,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},28298,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t,r){let[a,o]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(a.tree===e)return a;let i={tree:e,cacheNode:t,stateKey:r,next:null},s=1,l=a,c=i;for(;null!==l&&s<1;){if(l.stateKey===r){c.next=l.next;break}{s++;let e={tree:l.tree,cacheNode:l.cacheNode,stateKey:l.stateKey,next:null};c.next=e,c=e}l=l.next}return o(i),i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39756,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={LoadingBoundaryProvider:function(){return j},default:function(){return A}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(55682),i=e.r(90809),s=e.r(43476),l=i._(e.r(71645)),c=o._(e.r(74080)),u=e.r(8372),d=e.r(1244),f=e.r(72383),p=e.r(91915),m=e.r(58442),h=e.r(68017),g=e.r(70725),y=e.r(28298);e.r(74180);let b=e.r(61994),P=e.r(33906),_=e.r(95871),v=c.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function O(e,t){let r=e.getClientRects();if(0===r.length)return!1;let n=1/0;for(let e=0;e<r.length;e++){let t=r[e];t.top<n&&(n=t.top)}return n>=0&&n<=t}class R extends l.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,cacheNode:t}=this.props,r=e.forceScroll?e.scrollRef:t.scrollRef;if(null===r||!r.current)return;let n=null,a=e.hashFragment;if(a&&(n="top"===a?document.body:document.getElementById(a)??document.getElementsByName(a)[0]),n||(n="u"<typeof window?null:(0,v.findDOMNode)(this)),n instanceof Element){for(;!(n instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return E.every(e=>0===t[e])}(n);){if(null===n.nextElementSibling)return;n=n.nextElementSibling}r.current=!1,(0,p.disableSmoothScrollDuringRouteTransition)(()=>{if(a)return void n.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!O(n,t)&&(e.scrollTop=0,O(n,t)||n.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,e.hashFragment=null,n.focus()}}}}function w({children:e,cacheNode:t}){let r=(0,l.useContext)(u.GlobalLayoutRouterContext);if(!r)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,s.jsx)(R,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function S({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:a,url:o,isActive:i}){let c,f=(0,l.useContext)(u.GlobalLayoutRouterContext);if((0,l.useContext)(b.NavigationPromisesContext),!f)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let p=null!==n?n:(0,l.use)(d.unresolvedThenable),m=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,h=(0,l.useDeferredValue)(p.rsc,m);if((0,_.isDeferredRsc)(h)){let e=(0,l.use)(h);null===e&&(0,l.use)(d.unresolvedThenable),c=e}else null===h&&(0,l.use)(d.unresolvedThenable),c=h;let g=c;return(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:a,parentLoadingData:null,debugNameContext:r,url:o,isActive:i},children:g})}function j({loading:e,children:t}){let r=(0,l.use)(u.LayoutRouterContext);return null===r?t:(0,s.jsx)(u.LayoutRouterContext.Provider,{value:{parentTree:r.parentTree,parentCacheNode:r.parentCacheNode,parentSegmentPath:r.parentSegmentPath,parentParams:r.parentParams,parentLoadingData:e,debugNameContext:r.debugNameContext,url:r.url,isActive:r.isActive},children:t})}function C({name:e,loading:t,children:r}){if(null!==t){let n=t[0],a=t[1],o=t[2];return(0,s.jsx)(l.Suspense,{name:e,fallback:(0,s.jsxs)(s.Fragment,{children:[a,o,n]}),children:r})}return(0,s.jsx)(s.Fragment,{children:r})}function A({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:a,templateScripts:o,template:i,notFound:c,forbidden:p,unauthorized:b,segmentViewBoundaries:_}){let v=(0,l.useContext)(u.LayoutRouterContext);if(!v)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:E,parentCacheNode:O,parentSegmentPath:R,parentParams:j,parentLoadingData:x,url:k,isActive:T,debugNameContext:N}=v,D=E[0],M=null===R?[e]:R.concat([D,e]),I=E[1][e],F=O.slots;(void 0===I||null===F)&&(0,l.use)(d.unresolvedThenable);let $=I[0],L=F[e]??null,U=(0,g.createRouterCacheKey)($,!0),X=(0,y.useRouterBFCache)(I,L,U),V=[];do{let e=X.tree,l=X.cacheNode,d=X.stateKey,g=e[0],y=j;if(Array.isArray(g)){let e=g[0],t=g[1],r=g[2],n=(0,P.getParamValueFromCacheKey)(t,r);null!==n&&(y={...j,[e]:n})}let _=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(g),v=_??N,E=void 0===_?void 0:N,O=(0,s.jsxs)(w,{cacheNode:l,children:[(0,s.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,s.jsx)(C,{name:E,loading:x,children:(0,s.jsx)(h.HTTPAccessFallbackBoundary,{notFound:c,forbidden:p,unauthorized:b,children:(0,s.jsxs)(m.RedirectBoundary,{children:[(0,s.jsx)(S,{url:k,tree:e,params:y,cacheNode:l,segmentPath:M,debugNameContext:v,isActive:T&&d===U}),null]})})})}),null]}),R=(0,s.jsxs)(u.TemplateContext.Provider,{value:O,children:[a,o,i]},d);V.push(R),X=X.next}while(null!==X)return V}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},37457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),i=e.r(8372);function s(){let e=(0,o.useContext)(i.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93504,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66996,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},6831,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97689,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={accumulateRootVaryParam:function(){return y},accumulateVaryParam:function(){return g},createResponseVaryParamsAccumulator:function(){return c},createVaryParamsAccumulator:function(){return u},createVaryingParams:function(){return b},createVaryingSearchParams:function(){return P},emptyVaryParamsAccumulator:function(){return l},finishAccumulatingVaryParams:function(){return _},getMetadataVaryParamsAccumulator:function(){return d},getMetadataVaryParamsThenable:function(){return p},getRootParamsVaryParamsAccumulator:function(){return h},getVaryParamsThenable:function(){return f},getViewportVaryParamsAccumulator:function(){return m}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(62141);function i(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let s=new Set,l={varyParams:s,status:"fulfilled",value:s,then(e){e&&e(s)},resolvers:[]};function c(){let e=i();return{head:e,rootParams:i(),segments:new Set}}function u(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=i();return t.segments.add(e),e}}}return null}function d(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}function f(e){return e}function p(){let e=d();return null!==e?e:null}let m=d;function h(){let e=o.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.rootParams}}return null}function g(e,t){e.varyParams.add(t)}function y(e){let t=h();null!==t&&g(t,e)}function b(e,t,r){if(null!==r)return new Proxy(t,{get:(t,n,a)=>("string"==typeof n&&(n===r||Object.prototype.hasOwnProperty.call(t,n))&&g(e,n),Reflect.get(t,n,a)),has:(t,n)=>(n===r&&g(e,r),Reflect.has(t,n)),ownKeys:t=>(g(e,r),Reflect.ownKeys(t))});let n={};for(let r in t)Object.defineProperty(n,r,{get:()=>(g(e,r),t[r]),enumerable:!0});return n}function P(e,t){let r={};for(let n in t)Object.defineProperty(r,n,{get:()=>(g(e,"?"),t[n]),enumerable:!0});return r}async function _(e){let t=e.rootParams.varyParams;for(let r of(v(e.head,t),e.segments))v(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function v(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}},42715,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},76361,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var r={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}(e.r(71645));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}let o={current:null},i="function"==typeof n.cache?n.cache:e=>e,s=console.warn;function l(e){return function(...t){s(e(...t))}}i(e=>{try{s(o.current)}finally{o.current=null}})},65932,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return s},describeStringPropertyAccess:function(){return i},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function i(e,t){return o.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}function s(e,t){let r=JSON.stringify(t);return`\`Reflect.has(${e}, ${r})\`, \`${r} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},83066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},41643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(83066)},50999,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(43248),i=e.r(41643);function s(e,t){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=i.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},28649,(e,t,r)=>{"use strict";var n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},l={RequestCookies:()=>h,ResponseCookies:()=>g,parseCookie:()=>d,parseSetCookie:()=>f,stringifyCookie:()=>u};for(var c in l)n(s,c,{get:l[c],enumerable:!0});function u(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function d(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function f(e){if(!e)return;let[[t,r],...n]=d(e),{domain:a,expires:o,httponly:i,maxage:s,path:l,samesite:c,secure:u,partitioned:f,priority:h}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,b={name:t,value:decodeURIComponent(r),domain:a,...o&&{expires:new Date(o)},...i&&{httpOnly:!0},..."string"==typeof s&&{maxAge:Number(s)},path:l,...c&&{sameSite:p.includes(g=(g=c).toLowerCase())?g:void 0},...u&&{secure:!0},...h&&{priority:m.includes(y=(y=h).toLowerCase())?y:void 0},...f&&{partitioned:!0}};let e={};for(let t in b)b[t]&&(e[t]=b[t]);return e}}t.exports=((e,t,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||void 0===s||n(e,s,{get:()=>t[s],enumerable:!(r=a(t,s))||r.enumerable});return e})(n({},"__esModule",{value:!0}),s);var p=["strict","lax","none"],m=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of d(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>u(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>u(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},g=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,o,i=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,o=!1;l();)if(","===(r=e.charAt(s))){for(n=s,s+=1,l(),a=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(o=!0,s=a,i.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!o||s>=e.length)&&i.push(e.substring(t,e.length))}return i}(a)){const t=f(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=u(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(u).join("; ")}}},96883,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RequestCookies:function(){return o.RequestCookies},ResponseCookies:function(){return o.ResponseCookies},stringifyCookie:function(){return o.stringifyCookie}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(28649)},97270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MutableRequestCookiesAdapter:function(){return m},ReadonlyRequestCookiesError:function(){return c},RequestCookiesAdapter:function(){return u},appendMutableCookies:function(){return p},areCookiesMutableInCurrentPhase:function(){return g},createCookiesWithMutableAccessCheck:function(){return h},getModifiedCookieValues:function(){return f},responseCookiesToRequestCookies:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(42715),s=e.r(63599),l=e.r(39146);class c extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new c}}class u{static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"clear":case"delete":case"set":return c.callable;default:return i.ReflectAdapter.get(e,t,r)}}})}}let d=Symbol.for("next.mutated.cookies");function f(e){let t=e[d];return t&&Array.isArray(t)&&0!==t.length?t:[]}function p(e,t){let r=f(t);if(0===r.length)return!1;let n=new o.ResponseCookies(e),a=n.getAll();for(let e of r)n.set(e);for(let e of a)n.set(e);return!0}class m{static wrap(e,t){let r=new o.ResponseCookies(new Headers);for(let t of e.getAll())r.set(t);let n=[],a=new Set,c=()=>{let e=s.workAsyncStorage.getStore();if(e&&(e.pathWasRevalidated=l.ActionDidRevalidateStaticAndDynamic),n=r.getAll().filter(e=>a.has(e.name)),t){let e=[];for(let t of n){let r=new o.ResponseCookies(new Headers);r.set(t),e.push(r.toString())}t(e)}},u=new Proxy(r,{get(e,t,r){switch(t){case d:return n;case"delete":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.delete(...t),u}finally{c()}};case"set":return function(...t){a.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.set(...t),u}finally{c()}};default:return i.ReflectAdapter.get(e,t,r)}}});return u}}function h(e){let t=new Proxy(e.mutableCookies,{get(r,n,a){switch(n){case"delete":return function(...n){return y(e,"cookies().delete"),r.delete(...n),t};case"set":return function(...n){return y(e,"cookies().set"),r.set(...n),t};default:return i.ReflectAdapter.get(r,n,a)}}});return t}function g(e){return"action"===e.phase}function y(e,t){if(!g(e))throw new c}function b(e){let t=new o.RequestCookies(new Headers);for(let r of e.getAll())t.set(r);return t}},87720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HeadersAdapter:function(){return s},ReadonlyHeadersError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(42715);class i extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new i}}class s extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return o.ReflectAdapter.get(t,r,n);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);if(void 0!==i)return o.ReflectAdapter.get(t,i,n)},set(t,r,n,a){if("symbol"==typeof r)return o.ReflectAdapter.set(t,r,n,a);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);return o.ReflectAdapter.set(t,s??r,n,a)},has(t,r){if("symbol"==typeof r)return o.ReflectAdapter.has(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==a&&o.ReflectAdapter.has(t,a)},deleteProperty(t,r){if("symbol"==typeof r)return o.ReflectAdapter.deleteProperty(t,r);let n=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===a||o.ReflectAdapter.deleteProperty(t,a)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return i.callable;default:return o.ReflectAdapter.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new s(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},1643,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getParamProperties:function(){return l},getSegmentParam:function(){return i},isCatchAll:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(91463);function i(e){let t=o.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{paramType:"optional-catchall",paramName:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{paramType:t?`catchall-intercepted-${t}`:"catchall",paramName:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{paramType:t?`dynamic-intercepted-${t}`:"dynamic",paramName:e.slice(1,-1)}:null}function s(e){return"catchall"===e||"catchall-intercepted-(..)(..)"===e||"catchall-intercepted-(.)"===e||"catchall-intercepted-(..)"===e||"catchall-intercepted-(...)"===e||"optional-catchall"===e}function l(e){let t=!1,r=!1;switch(e){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":t=!0;break;case"optional-catchall":t=!0,r=!0}return{repeat:t,optional:r}}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return _},NormalizeError:function(){return b},PageNotFoundError:function(){return P},SP:function(){return h},ST:function(){return g},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return c},getURL:function(){return u},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return E}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>s.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=c();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,g=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class P extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class _ extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function E(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},90929,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parseRelativeUrl",{enumerable:!0,get:function(){return o}});let n=e.r(18967),a=e.r(98183);function o(e,t,r=!0){let i=new URL("u"<typeof window?"http://n":(0,n.getLocationOrigin)()),s=t?new URL(t,i):e.startsWith(".")?new URL("u"<typeof window?"http://n":window.location.href):i,{pathname:l,searchParams:c,search:u,hash:d,href:f,origin:p}=e.startsWith("/")?new URL(`${s.protocol}//${s.host}${e}`):new URL(e,s);if(p!==i.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:l,port:null,protocol:null,query:r?(0,a.searchParamsToUrlQuery)(c):void 0,search:u,hash:d,href:f.slice(p.length),slashes:null}}},13770,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationError:function(){return s},isInstantValidationError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="INSTANT_VALIDATION_ERROR";function i(e){return!!(e&&"object"==typeof e&&e instanceof Error&&e.digest===o)}class s extends Error{constructor(...e){super(...e),this.digest=o}}},18450,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assertRootParamInSamples:function(){return S},createCookiesFromSample:function(){return y},createDraftModeForValidation:function(){return _},createExhaustiveParamsProxy:function(){return v},createExhaustiveSearchParamsProxy:function(){return E},createExhaustiveURLSearchParamsProxy:function(){return O},createHeadersFromSample:function(){return P},createRelativeURLFromSamples:function(){return w},createValidationSampleTracking:function(){return m},trackMissingSampleError:function(){return h},trackMissingSampleErrorAndThrow:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(96883),i=e.r(97270),s=e.r(87720),l=e.r(1643),c=e.r(90929),u=e.r(12718),d=e.r(13770),f=e.r(62141),p=e.r(65932);function m(){return{missingSampleErrors:[]}}function h(e){(function(){let e=null,t=f.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"request":case"validation-client":e=t.validationSampleTracking??null}if(!e)throw Object.defineProperty(new u.InvariantError("Expected to have a workUnitStore that provides validationSampleTracking"),"__NEXT_ERROR_CODE",{value:"E1110",enumerable:!1,configurable:!0});return e})().missingSampleErrors.push(e)}function g(e){throw h(e),e}function y(e,t){let r=new Set,n=new o.RequestCookies(new Headers);if(e)for(let t of e)r.add(t.name),null!==t.value&&n.set(t.name,t.value);return new Proxy(i.RequestCookiesAdapter.seal(n),{get(e,n,a){if("has"===n){let o=Reflect.get(e,n,a);return function(n){return r.has(n)||g(b(t,n)),o.call(e,n)}}if("get"===n){let o=Reflect.get(e,n,a);return function(n){let a;if("string"==typeof n)a=n;else{if(!n||"object"!=typeof n||"string"!=typeof n.name)return o.call(e,n);a=n.name}return r.has(a)||g(b(t,a)),o.call(e,a)}}return Reflect.get(e,n,a)}})}function b(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed cookie "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`cookies\` array, or \`{ name: "${t}", value: null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1115",enumerable:!1,configurable:!0})}function P(e,t,r){let n=e?[...e]:[];if(n.find(([e])=>"cookie"===e.toLowerCase()))throw Object.defineProperty(new d.InstantValidationError('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'),"__NEXT_ERROR_CODE",{value:"E1111",enumerable:!1,configurable:!0});if(t){let e=t.toString();n.push(["cookie",""!==e?e:null])}let a=new Set,o={};for(let[e,t]of n)a.add(e.toLowerCase()),null!==t&&(o[e.toLowerCase()]=t);return new Proxy(s.HeadersAdapter.seal(s.HeadersAdapter.from(o)),{get(e,t,n){if("get"===t||"has"===t){let o=Reflect.get(e,t,n);return function(t){let n=t.toLowerCase();return a.has(n)||g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed header "${n}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`headers\` array, or \`["${n}", null]\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1116",enumerable:!1,configurable:!0})),o.call(e,n)}}return Reflect.get(e,t,n)}})}function _(){return{get isEnabled(){return!1},enable(){throw Object.defineProperty(Error("Draft mode cannot be enabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1092",enumerable:!1,configurable:!0})},disable(){throw Object.defineProperty(Error("Draft mode cannot be disabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1094",enumerable:!1,configurable:!0})}}}function v(e,t,r){return new Proxy(e,{get:(n,a,o)=>("string"==typeof a&&!p.wellKnownProperties.has(a)&&a in e&&!t.has(a)&&g(Object.defineProperty(new d.InstantValidationError(`Route "${r}" accessed param "${a}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1095",enumerable:!1,configurable:!0})),Reflect.get(n,a,o))})}function E(e,t,r){return new Proxy(e,{get:(e,n,a)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(R(r,n)),Reflect.get(e,n,a)),has:(e,n)=>("string"!=typeof n||p.wellKnownProperties.has(n)||t.has(n)||g(R(r,n)),Reflect.has(e,n))})}function O(e,t,r){return new Proxy(e,{get(e,n,a){if("get"===n||"getAll"===n||"has"===n){let o=Reflect.get(e,n,a);return n=>("string"!=typeof n||t.has(n)||g(R(r,n)),o.call(e,n))}let o=Reflect.get(e,n,a);return"function"!=typeof o||Object.hasOwn(e,n)?o:o.bind(e)}})}function R(e,t){return Object.defineProperty(new d.InstantValidationError(`Route "${e}" accessed searchParam "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, or \`{ "${t}": null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1098",enumerable:!1,configurable:!0})}function w(e,t,r){let n=function(e,t){let r=[];for(let n of e.split("/")){let e=(0,l.getSegmentParam)(n);if(e)switch(e.paramType){case"catchall":case"optional-catchall":{let a=t[e.paramName];if(void 0===a)a=[n];else if(!Array.isArray(a))throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be an array of strings, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1104",enumerable:!1,configurable:!0});r.push(...a.map(e=>encodeURIComponent(e)));break}case"dynamic":{let a=t[e.paramName];if(void 0===a)a=n;else if("string"!=typeof a)throw Object.defineProperty(new d.InstantValidationError(`Expected sample param value for segment '${n}' to be a string, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1108",enumerable:!1,configurable:!0});r.push(encodeURIComponent(a));break}case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":throw Object.defineProperty(new u.InvariantError("Not implemented: Validation of interception routes"),"__NEXT_ERROR_CODE",{value:"E1106",enumerable:!1,configurable:!0});default:e.paramType}else r.push(n)}return r.join("/")}(e,t??{}),a="";if(r){let e=(function(e){let t=new URLSearchParams;if(e){for(let[r,n]of Object.entries(e))if(null!=n)if(Array.isArray(n))for(let e of n)t.append(r,e);else t.set(r,n)}return t})(r).toString();e&&(a="?"+e)}return(0,c.parseRelativeUrl)(n+a,void 0,!0)}function S(e,t,r){if(t&&r in t);else{let t=e.route;g(Object.defineProperty(new d.InstantValidationError(`Route "${t}" accessed root param "${r}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1114",enumerable:!1,configurable:!0}))}}},69882,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return P},createSearchParamsFromClient:function(){return g},createServerSearchParamsForMetadata:function(){return y},createServerSearchParamsForServerPage:function(){return b},makeErroringSearchParamsForUseCache:function(){return R}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(63138),f=e.r(76361),p=e.r(65932),m=e.r(50999),h=e.r(42852);function g(t){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(r,n);case"validation-client":return function(t,r,n){var a;let{createExhaustiveSearchParamsProxy:o}=e.r(18450);return Promise.resolve(t=o(t,new Set(Object.keys((null==(a=n.validationSamples)?void 0:a.searchParams)??{})),r.route))}(t,r,n);case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createSearchParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1133",enumerable:!1,configurable:!0});case"request":return v(t,r,n,!1)}(0,c.throwInvariantForMissingStore)()}function y(e,t){return b(e,(0,i.getMetadataVaryParamsAccumulator)(),t)}function b(e,t,r){let n=o.workAsyncStorage.getStore();if(!n)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let a=c.workUnitAsyncStorage.getStore();if(a)switch(a.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return _(n,a);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1066",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerSearchParamsForServerPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1128",enumerable:!1,configurable:!0});case"prerender-runtime":return function(e,t,r,n){let a=w(null!==r?(0,i.createVaryingSearchParams)(r,e):e),{stagedRendering:o}=t;if(!o)return a;let s=n?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return o.waitForStage(s).then(()=>a)}(e,a,t,r);case"request":return v(e,n,a,r)}(0,c.throwInvariantForMissingStore)()}function P(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});if(e.forceStatic)return Promise.resolve({});let t=c.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":return(0,d.makeHangingPromise)(t.renderSignal,e.route,"`searchParams`");case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a client validation."),"__NEXT_ERROR_CODE",{value:"E1061",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderSearchParamsForClientPage should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1124",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,c.throwInvariantForMissingStore)()}function _(e,t){if(e.forceStatic)return Promise.resolve({});switch(t.type){case"prerender":case"prerender-client":var r=e,n=t;let a=E.get(n);if(a)return a;let o=(0,d.makeHangingPromise)(n.renderSignal,r.route,"`searchParams`"),i=new Proxy(o,{get(e,t,r){if(Object.hasOwn(o,t))return s.ReflectAdapter.get(e,t,r);switch(t){case"then":return(0,l.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),s.ReflectAdapter.get(e,t,r);case"status":return(0,l.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),s.ReflectAdapter.get(e,t,r);default:return s.ReflectAdapter.get(e,t,r)}}});return E.set(n,i),i;case"prerender-ppr":case"prerender-legacy":var c=e,u=t;let f=E.get(c);if(f)return f;let p=Promise.resolve({}),h=new Proxy(p,{get(e,t,r){if(Object.hasOwn(p,t))return s.ReflectAdapter.get(e,t,r);if("string"==typeof t&&"then"===t){let e="`await searchParams`, `searchParams.then`, or similar";c.dynamicShouldError?(0,m.throwWithStaticGenerationBailoutErrorWithDynamicError)(c.route,e):"prerender-ppr"===u.type?(0,l.postponeWithTracking)(c.route,e,u.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(e,c,u)}return s.ReflectAdapter.get(e,t,r)}});return E.set(c,h),h;default:return t}}function v(t,r,n,a){if(r.forceStatic)return Promise.resolve({});if(!n.asyncApiPromises)return w(t);if(n.validationSamples){let{createExhaustiveSearchParamsProxy:a}=e.r(18450),o=new Set(Object.keys(n.validationSamples.searchParams??{}));t=a(t,o,r.route)}return(a?n.asyncApiPromises.earlySharedSearchParamsParent:n.asyncApiPromises.sharedSearchParamsParent).then(()=>t)}let E=new WeakMap,O=new WeakMap;function R(){let e=o.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let t=O.get(e);if(t)return t;let r=Promise.resolve({}),n=new Proxy(r,{get:function t(n,a,o){return Object.hasOwn(r,a)||"string"!=typeof a||"then"!==a&&p.wellKnownProperties.has(a)||(0,m.throwForSearchParamsAccessInUseCache)(e,t),s.ReflectAdapter.get(n,a,o)}});return O.set(e,n),n}function w(e){let t=E.get(e);if(t)return t;let r=Promise.resolve(e);return E.set(e,r),r}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},74804,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},88276,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(74804)},41489,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createParamsFromClient:function(){return g},createPrerenderParamsForClientSegment:function(){return _},createServerParamsForMetadata:function(){return y},createServerParamsForRoute:function(){return b},createServerParamsForServerSegment:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(63599),i=e.r(66373),s=e.r(42715),l=e.r(67673),c=e.r(62141),u=e.r(12718),d=e.r(65932),f=e.r(63138),p=e.r(76361),m=e.r(88276),h=e.r(42852);function g(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(e,null,t,r,null);case"validation-client":return O(e,t,r.validationSamples);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createParamsFromClient should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1122",enumerable:!1,configurable:!0});case"request":if(r.validationSamples)return O(e,t,r.validationSamples);return S(e)}(0,c.throwInvariantForMissingStore)()}function y(e,t,r){return P(e,t,(0,i.getMetadataVaryParamsAccumulator)(),r)}function b(e,t=null){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=c.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return v(e,null,r,n,t);case"prerender-client":case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1064",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForRoute should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1131",enumerable:!1,configurable:!0});case"prerender-runtime":return E(e,null,n,t,!1);case"request":return S(e)}(0,c.throwInvariantForMissingStore)()}function P(t,r,n,a){let i=o.workAsyncStorage.getStore();if(!i)throw Object.defineProperty(new u.InvariantError("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let s=c.workUnitAsyncStorage.getStore();if(s)switch(s.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return v(t,r,i,s,n);case"validation-client":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1101",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createServerParamsForServerSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1120",enumerable:!1,configurable:!0});case"prerender-runtime":return E(t,r,s,n,a);case"request":if(s.asyncApiPromises&&s.validationSamples)return function(t,r,n,a,o){let{createExhaustiveParamsProxy:i}=e.r(18450),s=i(t,new Set(Object.keys(n.params??{})),r.route);return(o?a.earlySharedParamsParent:a.sharedParamsParent).then(()=>s)}(t,i,s.validationSamples,s.asyncApiPromises,a);if(s.asyncApiPromises&&function(e,t){if(t){for(let r in e)if(t.has(r))return!0}return!1}(t,s.fallbackParams))return(a?s.asyncApiPromises.earlySharedParamsParent:s.asyncApiPromises.sharedParamsParent).then(()=>t);return S(t)}(0,c.throwInvariantForMissingStore)()}function _(e){let t=o.workAsyncStorage.getStore();if(!t)throw Object.defineProperty(new u.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let r=c.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":let n=r.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`")}break;case"validation-client":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in validation contexts."),"__NEXT_ERROR_CODE",{value:"E1099",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new u.InvariantError("createPrerenderParamsForClientSegment should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1126",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function v(e,t,r,n,a){let o=null!==a?(0,i.createVaryingParams)(a,e,t):e;switch(n.type){case"prerender":case"prerender-client":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r){let n=R.get(e);if(n)return n;let a=new Proxy((0,f.makeHangingPromise)(r.renderSignal,t.route,"`params`"),w);return R.set(e,a),a}(o,r,n)}break}case"prerender-ppr":{let t=n.fallbackRouteParams;if(t){for(let a in e)if(t.has(a))return function(e,t,r,n){let a=R.get(e);if(a)return a;let o={...e},i=Promise.resolve(o);return R.set(e,i),Object.keys(e).forEach(e=>{d.wellKnownProperties.has(e)||t.has(e)&&Object.defineProperty(o,e,{get(){let t=(0,d.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,l.postponeWithTracking)(r.route,t,n.dynamicTracking):(0,l.throwToInterruptStaticGeneration)(t,r,n)},enumerable:!0})}),i}(o,t,r,n)}}}return S(o)}function E(e,t,r,n,a){let o=S(null!==n?(0,i.createVaryingParams)(n,e,t):e),{stagedRendering:s}=r;if(!s)return o;let l=a?h.RenderStage.EarlyRuntime:h.RenderStage.Runtime;return s.waitForStage(l).then(()=>o)}function O(t,r,n){let{createExhaustiveParamsProxy:a}=e.r(18450);return Promise.resolve(a(t,new Set(Object.keys((null==n?void 0:n.params)??{})),r.route))}let R=new WeakMap,w={get:function(e,t,r){if("then"===t||"catch"===t||"finally"===t){let n=s.ReflectAdapter.get(e,t,r);return({[t]:(...t)=>{let r=m.dynamicAccessAsyncStorage.getStore();return r&&r.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,t),w)}})[t]}return s.ReflectAdapter.get(e,t,r)}};function S(e){let t=R.get(e);if(t)return t;let r=Promise.resolve(e);return R.set(e,r),r}(0,p.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t){let r=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${r}used ${t}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},47257,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return l}});let n=e.r(43476),a=e.r(8372),o=e.r(71645),i=e.r(33906),s=e.r(61994);function l({Component:t,serverProvidedParams:r}){let c,u;if(null!==r)c=r.searchParams,u=r.params;else{let e=(0,o.use)(a.LayoutRouterContext);u=null!==e?e.parentParams:{},c=(0,i.urlSearchParamsToParsedUrlQuery)((0,o.use)(s.SearchParamsContext))}if("u"<typeof window){let r,a,{createSearchParamsFromClient:o}=e.r(69882);r=o(c);let{createParamsFromClient:i}=e.r(41489);return a=i(u),(0,n.jsx)(t,{params:a,searchParams:r})}{let{createRenderSearchParamsFromClient:r}=e.r(66996),a=r(c),{createRenderParamsFromClient:o}=e.r(97689),i=o(u);return(0,n.jsx)(t,{params:i,searchParams:a})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92825,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return i}});let n=e.r(43476),a=e.r(8372),o=e.r(71645);function i({Component:t,slots:r,serverProvidedParams:s}){let l;if(null!==s)l=s.params;else{let e=(0,o.use)(a.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("u"<typeof window){let{createParamsFromClient:a}=e.r(41489),o=a(l);return(0,n.jsx)(t,{...r,params:o})}{let{createRenderParamsFromClient:a}=e.r(97689),o=a(l);return(0,n.jsx)(t,{...r,params:o})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27201,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(43476),a=()=>"u">typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]);
out/_next/static/chunks/1u8kf-cumb-f7.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35451,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var a=[],c=!1,l=-1;function f(){c&&n&&(c=!1,n.length?a=n.concat(a):l=-1,a.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=a.length;t;){for(n=a,a=[];++l<t;)n&&n[l].run();l=-1,t=a.length}n=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===u||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];a.push(new p(e,t)),1!==a.length||c||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},u=!0;try{n[e](r,r.exports,i),u=!1}finally{u&&delete o[e]}return r.exports}i.ab="/ROOT/node_modules/next/dist/compiled/process/",t.exports=i(229)},47167,(e,t,r)=>{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},45689,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},43476,(e,t,r)=>{"use strict";t.exports=e.r(45689)},50740,(e,t,r)=>{"use strict";var n=e.i(47167),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),h=Symbol.for("react.view_transition"),b=Symbol.iterator,v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,_={};function x(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||v}function S(){}function O(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||v}x.prototype.isReactComponent={},x.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},x.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},S.prototype=x.prototype;var j=O.prototype=new S;j.constructor=O,m(j,x.prototype),j.isPureReactComponent=!0;var E=Array.isArray;function T(){}var w={H:null,A:null,T:null,S:null},R=Object.prototype.hasOwnProperty;function C(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function H(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var k=/\/+/g;function A(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function P(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var a,c,l,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case i:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,u,s)}}if(d)return s=s(t),d=""===u?"."+A(t,0):u,E(s)?(n="",null!=d&&(n=d.replace(k,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(H(s)&&(a=s,c=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(k,"$&/")+"/")+d,s=C(a.type,c,a.props)),r.push(s)),1;d=0;var p=""===u?".":u+":";if(E(t))for(var g=0;g<t.length;g++)f=p+A(u=t[g],g),d+=e(u,r,n,f,s);else if("function"==typeof(g=null===(l=t)||"object"!=typeof l?null:"function"==typeof(l=b&&l[b]||l["@@iterator"])?l:null))for(t=g.call(t),g=0;!(u=t.next()).done;)f=p+A(u=u.value,g++),d+=e(u,r,n,f,s);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(T,T):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,u,s);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,u++)}),n}function M(e){if(-1===e._status){var t=(0,e._result)();t.then(function(r){(0===e._status||-1===e._status)&&(e._status=1,e._result=r,void 0===t.status&&(t.status="fulfilled",t.value=r))},function(r){(0===e._status||-1===e._status)&&(e._status=2,e._result=r,void 0===t.status&&(t.status="rejected",t.reason=r))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var L="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n.default&&"function"==typeof n.default.emit)return void n.default.emit("uncaughtException",e);console.error(e)};function I(e){var t=w.T,r={};r.types=null!==t?t.types:null,w.T=r;try{var n=e(),o=w.S;null!==o&&o(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(T,L)}catch(e){L(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),w.T=t}}function N(e){var t=w.T;if(null!==t){var r=t.types;null===r?t.types=[e]:-1===r.indexOf(e)&&r.push(e)}else I(N.bind(null,e))}r.Activity=g,r.Children={map:P,forEach:function(e,t,r){P(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!H(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},r.Component=x,r.Fragment=u,r.Profiler=a,r.PureComponent=O,r.StrictMode=s,r.Suspense=d,r.ViewTransition=h,r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,r.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},r.addTransitionType=N,r.cache=function(e){return function(){return e.apply(null,arguments)}},r.cacheSignal=function(){return null},r.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=m({},e.props),o=e.key;if(null!=t)for(i in void 0!==t.key&&(o=""+t.key),t)R.call(t,i)&&"key"!==i&&"__self"!==i&&"__source"!==i&&("ref"!==i||void 0!==t.ref)&&(n[i]=t[i]);var i=arguments.length-2;if(1===i)n.children=r;else if(1<i){for(var u=Array(i),s=0;s<i;s++)u[s]=arguments[s+2];n.children=u}return C(e.type,o,n)},r.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:c,_context:e},e},r.createElement=function(e,t,r){var n,o={},i=null;if(null!=t)for(n in void 0!==t.key&&(i=""+t.key),t)R.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(o[n]=t[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var s=Array(u),a=0;a<u;a++)s[a]=arguments[a+2];o.children=s}if(e&&e.defaultProps)for(n in u=e.defaultProps)void 0===o[n]&&(o[n]=u[n]);return C(e,i,o)},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:f,render:e}},r.isValidElement=H,r.lazy=function(e){return{$$typeof:y,_payload:{_status:-1,_result:e},_init:M}},r.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},r.startTransition=I,r.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},r.use=function(e){return w.H.use(e)},r.useActionState=function(e,t,r){return w.H.useActionState(e,t,r)},r.useCallback=function(e,t){return w.H.useCallback(e,t)},r.useContext=function(e){return w.H.useContext(e)},r.useDebugValue=function(){},r.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},r.useEffect=function(e,t){return w.H.useEffect(e,t)},r.useEffectEvent=function(e){return w.H.useEffectEvent(e)},r.useId=function(){return w.H.useId()},r.useImperativeHandle=function(e,t,r){return w.H.useImperativeHandle(e,t,r)},r.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},r.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},r.useMemo=function(e,t){return w.H.useMemo(e,t)},r.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},r.useReducer=function(e,t,r){return w.H.useReducer(e,t,r)},r.useRef=function(e){return w.H.useRef(e)},r.useState=function(e){return w.H.useState(e)},r.useSyncExternalStore=function(e,t,r){return w.H.useSyncExternalStore(e,t,r)},r.useTransition=function(){return w.H.useTransition()},r.version="19.3.0-canary-3f0b9e61-20260317"},71645,(e,t,r)=>{"use strict";t.exports=e.r(50740)},18800,(e,t,r)=>{"use strict";var n=e.r(71645);function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(){}var u={d:{f:i,r:function(){throw Error(o(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},s=Symbol.for("react.portal"),a=Symbol.for("react.optimistic_key"),c=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,r.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:s,key:null==n?null:n===a?a:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)},r.flushSync=function(e){var t=c.T,r=u.p;try{if(c.T=null,u.p=2,e)return e()}finally{c.T=t,u.p=r,u.d.f()}},r.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,u.d.C(e,t))},r.prefetchDNS=function(e){"string"==typeof e&&u.d.D(e)},r.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=l(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,i="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?u.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:i}):"script"===r&&u.d.X(e,{crossOrigin:n,integrity:o,fetchPriority:i,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},r.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=l(t.as,t.crossOrigin);u.d.M(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&u.d.M(e)},r.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=l(r,t.crossOrigin);u.d.L(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},r.preloadModule=function(e,t){if("string"==typeof e)if(t){var r=l(t.as,t.crossOrigin);u.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else u.d.m(e)},r.requestFormReset=function(e){u.d.r(e)},r.unstable_batchedUpdates=function(e,t){return e(t)},r.useFormState=function(e,t,r){return c.H.useFormState(e,t,r)},r.useFormStatus=function(){return c.H.useHostTransitionStatus()},r.version="19.3.0-canary-3f0b9e61-20260317"},74080,(e,t,r)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(18800)},55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new u}function c(e){return s?s.bind(e):u.bind(e)}function l(){return s?s.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},12354,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"handleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(63599).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18576,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={WarningIcon:function(){return a},errorStyles:function(){return u},errorThemeCss:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(55682);let i=e.r(43476);e.r(71645);let u={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},s=`
2
+ :root {
3
+ --next-error-bg: #fff;
4
+ --next-error-text: #171717;
5
+ --next-error-title: #171717;
6
+ --next-error-message: #171717;
7
+ --next-error-digest: #666666;
8
+ --next-error-btn-text: #fff;
9
+ --next-error-btn-bg: #171717;
10
+ --next-error-btn-border: none;
11
+ --next-error-btn-secondary-text: #171717;
12
+ --next-error-btn-secondary-bg: transparent;
13
+ --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);
14
+ }
15
+ @media (prefers-color-scheme: dark) {
16
+ :root {
17
+ --next-error-bg: #0a0a0a;
18
+ --next-error-text: #ededed;
19
+ --next-error-title: #ededed;
20
+ --next-error-message: #ededed;
21
+ --next-error-digest: #a0a0a0;
22
+ --next-error-btn-text: #0a0a0a;
23
+ --next-error-btn-bg: #ededed;
24
+ --next-error-btn-border: none;
25
+ --next-error-btn-secondary-text: #ededed;
26
+ --next-error-btn-secondary-bg: transparent;
27
+ --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);
28
+ }
29
+ }
30
+ body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
31
+ `.replace(/\n\s*/g,"");function a(){return(0,i.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:u.icon,children:(0,i.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}}),e.r(55682);let n=e.r(43476);e.r(71645);let o=e.r(12354),i=e.r(18576),u=function({error:e}){let t=e?.digest,r=!!t;return(0,o.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:i.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:i.errorStyles.container,children:(0,n.jsxs)("div",{style:i.errorStyles.card,children:[(0,n.jsx)(i.WarningIcon,{}),(0,n.jsx)("h1",{style:i.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:i.errorStyles.message,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:i.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:i.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:i.errorStyles.button,children:"Reload"})}),!r&&(0,n.jsx)("button",{type:"button",style:i.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,n.jsxs)("p",{style:i.errorStyles.digestFooter,children:["ERROR ",t]})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
out/_next/static/chunks/2dkoocrktt9k-.js ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/2fc-6082kgcrk.js ADDED
@@ -0,0 +1 @@
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31713,e=>{"use strict";var t,r,n,a,i,l=e.i(43476),o=e.i(71645),s=e.i(73404),u=e.i(77193),d=e.i(69625),c=e.i(82451),m=e.i(24848),h=e.i(43798),f=e.i(15259),v=e.i(89549),p=e.i(14037),g=e.i(21879),x=e.i(44662),b=e.i(25436),S={root:"m_fea6bf1a",burger:"m_d4fb9cad"};let j=(0,h.createVarsResolver)((e,{color:t,size:r,lineSize:n,transitionDuration:a,transitionTimingFunction:i})=>({root:{"--burger-color":t?(0,f.getThemeColor)(t,e):void 0,"--burger-size":(0,m.getSize)(r,"burger-size"),"--burger-line-size":n?(0,c.rem)(n):void 0,"--burger-transition-duration":void 0===a?void 0:`${a}ms`,"--burger-transition-timing-function":i}})),y=(0,g.factory)(e=>{let t=(0,v.useProps)("Burger",null,e),{classNames:r,className:n,style:a,styles:i,unstyled:o,vars:s,opened:u,children:d,transitionDuration:c,transitionTimingFunction:m,lineSize:h,attributes:f,...g}=t,y=(0,p.useStyles)({name:"Burger",classes:S,props:t,className:n,style:a,classNames:r,styles:i,unstyled:o,attributes:f,vars:s,varsResolver:j});return(0,l.jsxs)(b.UnstyledButton,{...y("root"),...g,children:[(0,l.jsx)(x.Box,{mod:["reduce-motion",{opened:u}],...y("burger")}),d]})});y.classes=S,y.varsResolver=j,y.displayName="@mantine/core/Burger";var w=e.i(33372),T=e.i(51501),k=e.i(98323),C=e.i(653),N=e.i(59729),E=e.i(84660);let[_,B]=(0,E.createSafeContext)("Grid component was not found in tree");var z={container:"m_8478a6da",root:"m_410352e9",inner:"m_dee7bd2f",col:"m_96bdd299"},R=e.i(45981),I=e.i(87725),M=e.i(85675),V=e.i(57678),D=e.i(22442),A=e.i(99818);let L=(e,t)=>"content"===e?"auto":"auto"===e?"0rem":e?e===t?"100%":`calc(${100*e/t}% - ${(t-e)/t} * var(--grid-column-gap))`:void 0,O=(e,t,r)=>r||"auto"===e?"100%":"content"===e?"unset":L(e,t),F=(e,t)=>{if(e)return"auto"===e||t?"1":"auto"},P=(e,t)=>0===e?"0":e?`calc(${100*e/t}% + ${e/t} * var(--grid-column-gap))`:void 0;function $({span:e,order:t,offset:r,align:n,selector:a}){let i=(0,D.useMantineTheme)(),o=B(),s=o.breakpoints||i.breakpoints,u=(0,V.getBaseValue)(e),d=void 0===u?12:u,c=(0,I.filterProps)({"--col-order":(0,V.getBaseValue)(t)?.toString(),"--col-flex-grow":F(d,o.grow),"--col-flex-basis":L(d,o.columns),"--col-width":"content"===d?"auto":void 0,"--col-max-width":O(d,o.columns,o.grow),"--col-offset":P((0,V.getBaseValue)(r),o.columns),"--col-align-self":(0,V.getBaseValue)(n)}),m=(0,R.keys)(s).reduce((a,i)=>(a[i]||(a[i]={}),"object"==typeof t&&void 0!==t[i]&&(a[i]["--col-order"]=t[i]?.toString()),"object"==typeof e&&void 0!==e[i]&&(a[i]["--col-flex-grow"]=F(e[i],o.grow),a[i]["--col-flex-basis"]=L(e[i],o.columns),a[i]["--col-width"]="content"===e[i]?"auto":void 0,a[i]["--col-max-width"]=O(e[i],o.columns,o.grow)),"object"==typeof r&&void 0!==r[i]&&(a[i]["--col-offset"]=P(r[i],o.columns)),"object"==typeof n&&void 0!==n[i]&&(a[i]["--col-align-self"]=n[i]),a),{}),h=(0,M.getSortedBreakpoints)((0,R.keys)(m),s).filter(e=>(0,R.keys)(m[e.value]).length>0).map(e=>({query:"container"===o.type?`mantine-grid (min-width: ${s[e.value]})`:`(min-width: ${s[e.value]})`,styles:m[e.value]}));return(0,l.jsx)(A.InlineStyles,{styles:c,media:"container"===o.type?void 0:h,container:"container"===o.type?h:void 0,selector:a})}var G=e.i(7670);let W={span:12},U=(0,g.factory)(e=>{let{classNames:t,className:r,style:n,styles:a,vars:i,span:o,order:s,offset:u,align:d,...c}=(0,v.useProps)("GridCol",W,e),m=B(),h=(0,N.useRandomClassName)();return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)($,{selector:`.${h}`,span:o,order:s,offset:u,align:d}),(0,l.jsx)(x.Box,{...m.getStyles("col",{className:(0,G.default)(r,h),style:n,classNames:t,styles:a}),...c})]})});function K({gap:e,rowGap:t,columnGap:r,selector:n,breakpoints:a,type:i}){let o=(0,D.useMantineTheme)(),s=a||o.breakpoints,u=(0,I.filterProps)({"--grid-gap":(0,m.getSpacing)((0,V.getBaseValue)(e)),"--grid-row-gap":(0,m.getSpacing)((0,V.getBaseValue)(t)),"--grid-column-gap":(0,m.getSpacing)((0,V.getBaseValue)(r))}),d=(0,R.keys)(s).reduce((n,a)=>(n[a]||(n[a]={}),"object"==typeof e&&void 0!==e[a]&&(n[a]["--grid-gap"]=(0,m.getSpacing)(e[a])),"object"==typeof t&&void 0!==t[a]&&(n[a]["--grid-row-gap"]=(0,m.getSpacing)(t[a])),"object"==typeof r&&void 0!==r[a]&&(n[a]["--grid-column-gap"]=(0,m.getSpacing)(r[a])),n),{}),c=(0,M.getSortedBreakpoints)((0,R.keys)(d),s).filter(e=>(0,R.keys)(d[e.value]).length>0).map(e=>({query:"container"===i?`mantine-grid (min-width: ${s[e.value]})`:`(min-width: ${s[e.value]})`,styles:d[e.value]}));return(0,l.jsx)(A.InlineStyles,{styles:u,media:"container"===i?void 0:c,container:"container"===i?c:void 0,selector:n})}U.classes=z,U.displayName="@mantine/core/GridCol";let H={gap:"md",columns:12},X=(0,h.createVarsResolver)((e,{justify:t,align:r,overflow:n})=>({root:{"--grid-justify":t,"--grid-align":r,"--grid-overflow":n}})),q=(0,g.factory)(e=>{let t=(0,v.useProps)("Grid",H,e),{classNames:r,className:n,style:a,styles:i,unstyled:o,vars:s,grow:u,gap:d,rowGap:c,columnGap:m,columns:h,align:f,justify:g,children:b,breakpoints:S,type:j,attributes:y,...w}=t,T=(0,p.useStyles)({name:"Grid",classes:z,props:t,className:n,style:a,classNames:r,styles:i,unstyled:o,attributes:y,vars:s,varsResolver:X}),k=(0,N.useRandomClassName)();return"container"===j&&S?(0,l.jsxs)(_,{value:{getStyles:T,grow:u,columns:h,breakpoints:S,type:j},children:[(0,l.jsx)(K,{selector:`.${k}`,...t}),(0,l.jsx)("div",{...T("container"),children:(0,l.jsx)(x.Box,{...T("root",{className:k}),...w,children:(0,l.jsx)("div",{...T("inner"),children:b})})})]}):(0,l.jsxs)(_,{value:{getStyles:T,grow:u,columns:h,breakpoints:S,type:j},children:[(0,l.jsx)(K,{selector:`.${k}`,...t}),(0,l.jsx)(x.Box,{...T("root",{className:k}),...w,children:(0,l.jsx)("div",{...T("inner"),children:b})})]})});q.classes=z,q.varsResolver=X,q.displayName="@mantine/core/Grid",q.Col=U;var Z=e.i(26200),J=e.i(29277),Y=e.i(44762),Q=e.i(8954),ee=e.i(78565);function et({direction:e,style:t,...r}){return(0,l.jsx)("svg",{style:{width:"var(--ni-chevron-size)",height:"var(--ni-chevron-size)",transform:"up"===e?"rotate(180deg)":void 0,...t},viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r,children:(0,l.jsx)("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})}var er={root:"m_e2f5cd4e",controls:"m_95e17d22",control:"m_80b4b171"},en=e.i(31316);function ea(e,t,r){return void 0===t&&void 0===r?e:void 0!==t&&void 0===r?Math.max(e,t):void 0===t&&void 0!==r?Math.min(e,r):Math.min(Math.max(e,t),r)}var ei=e.i(46614);function el(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)0>t.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}function eo(){}function es(e){return!!(e||"").match(/\d/)}function eu(e){return null==e}function ed(e){return eu(e)||"number"==typeof e&&isNaN(e)||"number"==typeof e&&!isFinite(e)}function ec(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&")}function em(e){var t=(0,o.useRef)(e);return t.current=e,(0,o.useRef)(function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return t.current.apply(t,e)}).current}function eh(e,t){void 0===t&&(t=!0);var r="-"===e[0],n=r&&t,a=(e=e.replace("-","")).split(".");return{beforeDecimal:a[0],afterDecimal:a[1]||"",hasNegation:r,addNegation:n}}function ef(e,t,r){for(var n="",a=r?"0":"",i=0;i<=t-1;i++)n+=e[i]||a;return n}function ev(e,t){return Array(t+1).join(e)}function ep(e){var t=e+"",r="-"===t[0]?"-":"";r&&(t=t.substring(1));var n=t.split(/[eE]/g),a=n[0],i=n[1];if(!(i=Number(i)))return r+a;a=a.replace(".","");var l=1+i,o=a.length;return l<0?a="0."+ev("0",Math.abs(l))+a:l>=o?a+=ev("0",l-o):a=(a.substring(0,l)||"0")+"."+a.substring(l),r+a}function eg(e,t,r){if(-1!==["","-"].indexOf(e))return e;var n=(-1!==e.indexOf(".")||r)&&t,a=eh(e),i=a.beforeDecimal,l=a.afterDecimal,o=a.hasNegation,s=parseFloat("0."+(l||"0")),u=(l.length<=t?"0."+l:s.toFixed(t)).split("."),d=i;return i&&Number(u[0])&&(d=i.split("").reverse().reduce(function(e,t,r){return e.length>r?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e},u[0])),(o?"-":"")+d+(n?".":"")+ef(u[1]||"",t,r)}function ex(e,t){if(e.value=e.value,null!==e){if(e.createTextRange){var r=e.createTextRange();return r.move("character",t),r.select(),!0}return e.selectionStart||0===e.selectionStart?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}(t=i||(i={})).event="event",t.props="prop";var eb=(r=function(e,t){for(var r=0,n=0,a=e.length,i=t.length;e[r]===t[r]&&r<a;)r++;for(;e[a-1-n]===t[i-1-n]&&i-n>r&&a-n>r;)n++;return{from:{start:r,end:a-n},to:{start:r,end:i-n}}},a=void 0,function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return n&&e.length===n.length&&e.every(function(e,t){return e===n[t]})?a:(n=e,a=r.apply(void 0,e))}),eS=function(e,t){var r=Math.min(e.selectionStart,t);return{from:{start:r,end:e.selectionEnd},to:{start:r,end:t}}};function ej(e){return Math.max(e.selectionStart,e.selectionEnd)}function ey(e){var t=e.currentValue,r=e.formattedValue,n=e.currentValueIndex,a=e.formattedValueIndex;return t[n]===r[a]}function ew(e,t,r,n){var a=e.length;if(t=Math.min(Math.max(t,0),a),"left"===n){for(;t>=0&&!r[t];)t--;-1===t&&(t=r.indexOf(!0))}else{for(;t<=a&&!r[t];)t++;t>a&&(t=r.lastIndexOf(!0))}return -1===t&&(t=a),t}function eT(e){for(var t=Array.from({length:e.length+1}).map(function(){return!0}),r=0,n=t.length;r<n;r++)t[r]=!!(es(e[r])||es(e[r-1]));return t}function ek(e,t,r,n,a,l){void 0===l&&(l=eo);var s=em(function(e,t){var r,i;return ed(e)?(i="",r=""):r="number"==typeof e||t?n(i="number"==typeof e?ep(e):e):n(i=a(e,void 0)),{formattedValue:r,numAsString:i}}),u=(0,o.useState)(function(){return s(eu(e)?t:e,r)}),d=u[0],c=u[1],m=em(function(e,t){e.formattedValue!==d.formattedValue&&c({formattedValue:e.formattedValue,numAsString:e.value}),l(e,t)}),h=e,f=r;eu(e)&&(h=d.numAsString,f=!0);var v=s(h,f);return(0,o.useMemo)(function(){c(v)},[v.formattedValue]),(0,o.useEffect)(function(){if(!eu(t)&&eu(e)&&""!==d.formattedValue){var r=parseFloat(d.numAsString);m({formattedValue:d.formattedValue,value:d.numAsString,floatValue:isNaN(r)?void 0:r},{event:void 0,source:i.props})}},[]),[d,m]}function eC(e){return e.replace(/[^0-9]/g,"")}function eN(e){return e}function eE(e){var t=e.type;void 0===t&&(t="text");var r=e.displayType;void 0===r&&(r="input");var n=e.customInput,a=e.renderText,l=e.getInputRef,s=e.format;void 0===s&&(s=eN);var u=e.removeFormatting;void 0===u&&(u=eC);var d=e.defaultValue,c=e.valueIsNumericString,m=e.onValueChange,h=e.isAllowed,f=e.onChange;void 0===f&&(f=eo);var v=e.onKeyDown;void 0===v&&(v=eo);var p=e.onMouseUp;void 0===p&&(p=eo);var g=e.onFocus;void 0===g&&(g=eo);var x=e.onBlur;void 0===x&&(x=eo);var b=e.value,S=e.getCaretBoundary;void 0===S&&(S=eT);var j=e.isValidInputCharacter;void 0===j&&(j=es);var y=e.isCharacterSame,w=el(e,["type","displayType","customInput","renderText","getInputRef","format","removeFormatting","defaultValue","valueIsNumericString","onValueChange","isAllowed","onChange","onKeyDown","onMouseUp","onFocus","onBlur","value","getCaretBoundary","isValidInputCharacter","isCharacterSame"]),T=ek(b,d,!!c,s,u,m),k=T[0],C=k.formattedValue,N=k.numAsString,E=T[1],_=(0,o.useRef)(),B=(0,o.useRef)({formattedValue:C,numAsString:N}),z=function(e,t){B.current={formattedValue:e.formattedValue,numAsString:e.value},E(e,t)},R=(0,o.useState)(!1),I=R[0],M=R[1],V=(0,o.useRef)(null),D=(0,o.useRef)({setCaretTimeout:null,focusTimeout:null});(0,o.useEffect)(function(){return M(!0),function(){clearTimeout(D.current.setCaretTimeout),clearTimeout(D.current.focusTimeout)}},[]);var A=s,L=function(e,t){var r=parseFloat(t);return{formattedValue:e,value:t,floatValue:isNaN(r)?void 0:r}},O=function(e,t,r){(0!==e.selectionStart||e.selectionEnd!==e.value.length)&&(ex(e,t),D.current.setCaretTimeout=setTimeout(function(){e.value===r&&e.selectionStart!==t&&ex(e,t)},0))},F=function(e,t,r){return ew(e,t,S(e),r)},P=function(e,t,r){var n=S(t),a=function(e,t,r,n,a,i,l){void 0===l&&(l=ey);var o=a.findIndex(function(e){return e}),s=e.slice(0,o);t||r.startsWith(s)||(t=s,r=s+r,n+=s.length);for(var u=r.length,d=e.length,c={},m=Array(u),h=0;h<u;h++){m[h]=-1;for(var f=0;f<d;f++)if(l({currentValue:r,lastValue:t,formattedValue:e,currentValueIndex:h,formattedValueIndex:f})&&!0!==c[f]){m[h]=f,c[f]=!0;break}}for(var v=n;v<u&&(-1===m[v]||!i(r[v]));)v++;var p=v===u||-1===m[v]?d:m[v];for(v=n-1;v>0&&-1===m[v];)v--;var g=-1===v||-1===m[v]?0:m[v]+1;return g>p?p:n-g<p-n?g:p}(t,C,e,r,n,j,y);return ew(t,a,n)},$=function(e){var t,r=e.formattedValue;void 0===r&&(r="");var n=e.input,a=e.source,i=e.event,l=e.numAsString;if(n){var o=e.inputValue||n.value,s=ej(n);n.value=r,void 0!==(t=P(o,r,s))&&O(n,t,r)}r!==C&&z(L(r,l),{event:i,source:a})};(0,o.useEffect)(function(){var e=B.current,t=e.formattedValue,r=e.numAsString;(C!==t||N!==r)&&z(L(C,N),{event:void 0,source:i.props})},[C,N]);var G=V.current?ej(V.current):void 0;("u">typeof window?o.useLayoutEffect:o.useEffect)(function(){var e=V.current;if(C!==B.current.formattedValue&&e){var t=P(B.current.formattedValue,C,G);e.value=C,O(e,t,C)}},[C]);var W=function(e,t,r){var n=t.target,a=Object.assign(Object.assign({},_.current?eS(_.current,n.selectionEnd):eb(C,e)),{lastValue:C}),i=u(e,a),l=A(i);if(i=u(l,void 0),h&&!h(L(l,i))){var o=t.target,s=P(e,C,ej(o));return o.value=C,O(o,s,C),!1}return $({formattedValue:l,numAsString:i,inputValue:e,event:t,source:r,input:t.target}),!0},U=function(e,t){void 0===t&&(t=0),_.current={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd+t}},K=Object.assign({inputMode:I&&"u">typeof navigator&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))?"numeric":void 0},w,{type:t,value:C,onChange:function(e){W(e.target.value,e,i.event)&&f(e),_.current=void 0},onKeyDown:function(e){var t,r=e.target,n=e.key,a=r.selectionStart,i=r.selectionEnd,l=r.value;void 0===l&&(l=""),"ArrowLeft"===n||"Backspace"===n?t=Math.max(a-1,0):"ArrowRight"===n?t=Math.min(a+1,l.length):"Delete"===n&&(t=a);var o=0;"Delete"===n&&a===i&&(o=1);var s="ArrowLeft"===n||"ArrowRight"===n;if(void 0===t||a!==i&&!s){v(e),U(r,o);return}var u=t;s?(u=F(l,t,"ArrowLeft"===n?"left":"right"))!==t&&e.preventDefault():"Delete"!==n||j(l[t])?"Backspace"!==n||j(l[t])||(u=F(l,t,"left")):u=F(l,t,"right"),u!==t&&O(r,u,l),v(e),U(r,o)},onMouseUp:function(e){var t=e.target,r=function(){var e=t.selectionStart,r=t.selectionEnd,n=t.value;if(void 0===n&&(n=""),e===r){var a=F(n,e);a!==e&&O(t,a,n)}};r(),requestAnimationFrame(function(){r()}),p(e),U(t)},onFocus:function(e){e.persist&&e.persist();var t=e.target,r=e.currentTarget;V.current=t,D.current.focusTimeout=setTimeout(function(){var n=t.selectionStart,a=t.selectionEnd,i=t.value;void 0===i&&(i="");var l=F(i,n);l!==n&&(0!==n||a!==i.length)&&O(t,l,i),g(Object.assign(Object.assign({},e),{currentTarget:r}))},0)},onBlur:function(e){V.current=null,clearTimeout(D.current.focusTimeout),clearTimeout(D.current.setCaretTimeout),x(e)}});return"text"===r?a?o.default.createElement(o.default.Fragment,null,a(C,w)||null):o.default.createElement("span",Object.assign({},w,{ref:l}),C):n?o.default.createElement(n,Object.assign({},K,{ref:l})):o.default.createElement("input",Object.assign({},K,{ref:l}))}function e_(e,t){var r,n,a,i=t.decimalScale,l=t.fixedDecimalScale,o=t.prefix;void 0===o&&(o="");var s=t.suffix;void 0===s&&(s="");var u=t.allowNegative,d=t.thousandsGroupStyle;if(void 0===d&&(d="thousand"),""===e||"-"===e)return e;var c=eB(t),m=c.thousandSeparator,h=c.decimalSeparator,f=0!==i&&-1!==e.indexOf(".")||i&&l,v=eh(e,u),p=v.beforeDecimal,g=v.afterDecimal,x=v.addNegation;return void 0!==i&&(g=ef(g,i,!!l)),m&&(r=p,n=function(e){switch(e){case"lakh":return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case"wan":return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}(d),a=-1===(a=r.search(/[1-9]/))?r.length:a,p=r.substring(0,a)+r.substring(a,r.length).replace(n,"$1"+m)),o&&(p=o+p),s&&(g+=s),x&&(p="-"+p),e=p+(f&&h||"")+g}function eB(e){var t=e.decimalSeparator;void 0===t&&(t=".");var r=e.thousandSeparator,n=e.allowedDecimalSeparators;return!0===r&&(r=","),n||(n=[t,"."]),{decimalSeparator:t,thousandSeparator:r,allowedDecimalSeparators:n}}function ez(e){var t,r,n,a,l,s,u,d,c,m,h,f,v,p,g,x,b,S,j,y,w,T,k,C,N,E,_,B,z,R=((t=function(e){var t=eB(e),r=t.thousandSeparator,n=t.decimalSeparator,a=e.prefix;void 0===a&&(a="");var i=e.allowNegative;if(void 0===i&&(i=!0),r===n)throw Error("\n Decimal separator can't be same as thousand separator.\n thousandSeparator: "+r+' (thousandSeparator = {true} is same as thousandSeparator = ",")\n decimalSeparator: '+n+" (default value for decimalSeparator is .)\n ");return a.startsWith("-")&&i&&(console.error("\n Prefix can't start with '-' when allowNegative is true.\n prefix: "+a+"\n allowNegative: "+i+"\n "),i=!1),Object.assign(Object.assign({},e),{allowNegative:i})}(t=e)).decimalSeparator,t.allowedDecimalSeparators,t.thousandsGroupStyle,r=t.suffix,n=t.allowNegative,a=t.allowLeadingZeros,void 0===(l=t.onKeyDown)&&(l=eo),void 0===(s=t.onBlur)&&(s=eo),u=t.thousandSeparator,d=t.decimalScale,c=t.fixedDecimalScale,void 0===(m=t.prefix)&&(m=""),h=t.defaultValue,f=t.value,v=t.valueIsNumericString,p=t.onValueChange,g=el(t,["decimalSeparator","allowedDecimalSeparators","thousandsGroupStyle","suffix","allowNegative","allowLeadingZeros","onKeyDown","onBlur","thousandSeparator","decimalScale","fixedDecimalScale","prefix","defaultValue","value","valueIsNumericString","onValueChange"]),b=(x=eB(t)).decimalSeparator,S=x.allowedDecimalSeparators,j=function(e){return e_(e,t)},y=function(e,r){return function(e,t,r){void 0===t&&(t={from:{start:0,end:0},to:{start:0,end:e.length},lastValue:""});var n,a,i,l,o=r.allowNegative,s=r.prefix;void 0===s&&(s="");var u=r.suffix;void 0===u&&(u="");var d=r.decimalScale,c=t.from,m=t.to,h=m.start,f=m.end,v=eB(r),p=v.allowedDecimalSeparators,g=v.decimalSeparator,x=e[f]===g;if(es(e)&&(e===s||e===u)&&""===t.lastValue)return e;if(f-h==1&&-1!==p.indexOf(e[h])){var b=0===d?"":g;e=e.substring(0,h)+b+e.substring(h+1,e.length)}var S=function(e,t,r){var n=!1,a=!1;s.startsWith("-")?n=!1:e.startsWith("--")?(n=!1,a=!0):u.startsWith("-")&&e.length===u.length?n=!1:"-"===e[0]&&(n=!0);var i=+!!n;return a&&(i=2),i&&(e=e.substring(i),t-=i,r-=i),{value:e,start:t,end:r,hasNegation:n}},j=S(e,h,f),y=j.hasNegation;e=j.value,h=j.start,f=j.end;var w=S(t.lastValue,c.start,c.end),T=w.start,k=w.end,C=w.value,N=e.substring(h,f);e.length&&C.length&&(T>C.length-u.length||k<s.length)&&!(N&&u.startsWith(N))&&(e=C);var E=0;e.startsWith(s)?E+=s.length:h<s.length&&(E=h),e=e.substring(E),f-=E;var _=e.length,B=e.length-u.length;e.endsWith(u)?_=B:f>B?_=f:f>e.length-u.length&&(_=f),e=e.substring(0,_),void 0===(n=y?"-"+e:e)&&(n=""),a=RegExp("(-)(.)*(-)"),i=/(-)/.test(n),l=a.test(n),n=n.replace(/-/g,""),i&&!l&&o&&(n="-"+n);var z=(e=((e=n).match(RegExp("(^-)|[0-9]|"+ec(g),"g"))||[]).join("")).indexOf(g),R=eh(e=e.replace(RegExp(ec(g),"g"),function(e,t){return t===z?".":""}),o),I=R.beforeDecimal,M=R.afterDecimal,V=R.addNegation;return m.end-m.start<c.end-c.start&&""===I&&x&&!parseFloat(M)&&(e=V?"-":""),e}(e,r,t)},w=eu(f)?h:f,k=null!=v?v:(T=m,""===w||!(null==T?void 0:T.match(/\d/))&&!(null==r?void 0:r.match(/\d/))&&"string"==typeof w&&!isNaN(Number(w))),eu(f)?eu(h)||(k=k||"number"==typeof h):k=k||"number"==typeof f,_=(E=(N=ek((C=function(e){return ed(e)?e:("number"==typeof e&&(e=ep(e)),k&&"number"==typeof d)?eg(e,d,!!c):e})(f),C(h),!!k,j,y,p))[0]).numAsString,B=E.formattedValue,z=N[1],Object.assign(Object.assign({},g),{value:B,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===b||es(e)},isCharacterSame:function(e){var t=e.currentValue,r=e.lastValue,n=e.formattedValue,a=e.currentValueIndex,i=e.formattedValueIndex,l=t[a],o=n[i],s=eb(r,t).to,u=function(e){return y(e).indexOf(".")+m.length};return!(0===f&&c&&d&&t[s.start]===b&&u(t)<a&&u(n)>i)&&(!!(a>=s.start&&a<s.end&&S&&S.includes(l))&&o===b||l===o)},onValueChange:z,format:j,removeFormatting:y,getCaretBoundary:function(e){var r,n,a,i,l,o;return void 0===(n=(r=t).prefix)&&(n=""),void 0===(a=r.suffix)&&(a=""),i=Array.from({length:e.length+1}).map(function(){return!0}),l="-"===e[0],i.fill(!1,0,Math.min(n.length+ +!!l,e.length)),o=e.length,i.fill(!1,o-a.length+1,o+1),i},onKeyDown:function(e){var t=e.target,r=e.key,a=t.selectionStart,i=t.selectionEnd,o=t.value;if(void 0===o&&(o=""),("Backspace"===r||"Delete"===r)&&i<m.length&&"-"!==o)return void e.preventDefault();if(a!==i)return void l(e);"Backspace"===r&&"-"===o[0]&&a===m.length+1&&n&&ex(t,1),d&&c&&("Backspace"===r&&o[a-1]===b?(ex(t,a-1),e.preventDefault()):"Delete"===r&&o[a]===b&&e.preventDefault()),(null==S?void 0:S.includes(r))&&o[a]===b&&ex(t,a+1);var s=!0===u?",":u;"Backspace"===r&&o[a-1]===s&&ex(t,a-1),"Delete"===r&&o[a]===s&&ex(t,a+1),l(e)},onBlur:function(e){var r=_;r.match(/\d/g)||(r=""),a||(r=function(e){if(!e)return e;var t="-"===e[0];t&&(e=e.substring(1,e.length));var r=e.split("."),n=r[0].replace(/^0+/,"")||"0",a=r[1]||"";return(t?"-":"")+n+(a?"."+a:"")}(r)),c&&d&&(r=eg(r,d,c)),r!==_&&z({formattedValue:e_(r,t),value:r,floatValue:parseFloat(r)},{event:e,source:i.event}),s(e)}}));return o.default.createElement(eE,Object.assign({},R))}let eR=/^(0\.0*|-0(\.0*)?)$/,eI=/^-?0\d+(\.\d+)?\.?$/,eM=/\.\d*0$/,eV=/^-?\d+\.$/;function eD(e){return"string"==typeof e&&""!==e&&!Number.isNaN(Number(e))}function eA(e){return"bigint"==typeof e}function eL(e){return"number"==typeof e?e<Number.MAX_SAFE_INTEGER:""===e||eD(e)&&Number(e)<Number.MAX_SAFE_INTEGER}function eO(e,t){return!(""===e||"-"===e||!t&&e.startsWith("-"))&&/^-?\d+$/.test(e)}function eF(e,t){return"bigint"==typeof e||""===e||eO(e,t)}function eP(e){if(!/^-?\d+$/.test(e))return null;try{return BigInt(e)}catch{return null}}function e$(e){return"bigint"==typeof e?e:"number"==typeof e&&Number.isFinite(e)&&Number.isInteger(e)?BigInt(e):void 0}function eG(e,t,r){return void 0!==t&&e<t?t:void 0!==r&&e>r?r:e}let eW={size:"sm",step:1,clampBehavior:"blur",allowDecimal:!0,allowNegative:!0,withKeyboardEvents:!0,allowLeadingZeros:!0,trimLeadingZeroesOnBlur:!0,startValue:0,allowedDecimalSeparators:[".",","]},eU=(0,h.createVarsResolver)((e,{size:t})=>({controls:{"--ni-chevron-size":(0,m.getSize)(t,"ni-chevron-size")}})),eK=(0,g.genericFactory)(e=>{let t=(0,v.useProps)(["Input","InputWrapper","NumberInput"],eW,e),{className:r,classNames:n,styles:a,unstyled:i,vars:s,onChange:u,onValueChange:d,value:c,defaultValue:m,max:h,min:f,step:g,hideControls:x,rightSection:S,isAllowed:j,clampBehavior:y,onBlur:w,allowDecimal:T,decimalScale:k,onKeyDown:C,onKeyDownCapture:N,handlersRef:E,startValue:_,disabled:B,rightSectionPointerEvents:z,allowNegative:R,readOnly:I,size:M,rightSectionWidth:V,stepHoldInterval:D,stepHoldDelay:A,allowLeadingZeros:L,withKeyboardEvents:O,trimLeadingZeroesOnBlur:F,allowedDecimalSeparators:P,selectAllOnFocus:$,onMinReached:W,onMaxReached:U,onFocus:K,attributes:H,ref:X,...q}=t,Z=R??!0,J=L??!0,el=(0,p.useStyles)({name:"NumberInput",classes:er,props:t,classNames:n,styles:a,unstyled:i,attributes:H,vars:s,varsResolver:eU}),{resolvedClassNames:eo,resolvedStyles:es}=(0,Q.useResolvedStylesApi)({classNames:n,styles:a,props:t}),eu=(0,o.useRef)(eA(c)||eA(m)?"bigint":"number");eA(c)?eu.current="bigint":"number"==typeof c&&(eu.current="number");let ed="bigint"===eu.current,[ec,em]=(0,ei.useUncontrolled)({value:c,defaultValue:m,finalValue:"",onChange:u}),eh=void 0!==A&&void 0!==D,ef=(0,o.useRef)(null),ev=(0,o.useRef)(null),ep=(0,o.useRef)(0),eg="number"==typeof f?f:void 0,ex="number"==typeof h?h:void 0,eb="number"==typeof g?g:eW.step,eS="number"==typeof _?_:eW.startValue,ej=e$(f),ey=e$(h),ew=e$(g)??BigInt(1),eT=e$(_)??BigInt(0),ek=e=>{let t=Number(e);return Number.isSafeInteger(t)?t:void 0},eC=e=>{let t=String(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},eN=e=>{ef.current&&void 0!==e&&ef.current.setSelectionRange(e,e)},eE=(0,o.useRef)(Y.noop);eE.current=()=>{let e;if(ed){let e;if(!eF(ec,Z))return;if("bigint"==typeof ec){let t=ec+ew;void 0!==ey&&t>ey&&U?.(),e=void 0!==ey&&t>ey?ey:t}else if("string"==typeof ec&&""!==ec){let t=eP(ec);if(null===t)return;let r=t+ew;void 0!==ey&&r>ey&&U?.(),e=void 0!==ey&&r>ey?ey:r}else e=eG(eT,ej,ey);let t=e.toString();em(e),d?.({floatValue:ek(e),formattedValue:t,value:t},{source:"increment"}),setTimeout(()=>eN(ef.current?.value.length),0);return}if(!eL(ec))return;let t=Math.max(eC(ec),eC(eb)),r=10**t;if(!eD(ec)&&("number"!=typeof ec||Number.isNaN(ec)))e=ea(eS,eg,ex);else if(void 0!==ex){let t=(Math.round(Number(ec)*r)+Math.round(eb*r))/r;t>ex&&U?.(),e=t<=ex?t:ex}else e=(Math.round(Number(ec)*r)+Math.round(eb*r))/r;let n=e.toFixed(t);em(parseFloat(n)),d?.({floatValue:parseFloat(n),formattedValue:n,value:n},{source:"increment"}),setTimeout(()=>eN(ef.current?.value.length),0)};let e_=(0,o.useRef)(Y.noop);e_.current=()=>{let e;if(ed){let e;if(!eF(ec,Z))return;let t=void 0!==ej?ej:Z?void 0:BigInt(0);if("bigint"==typeof ec){let r=ec-ew;void 0!==t&&r<t&&W?.(),e=void 0!==t&&r<t?t:r}else if("string"==typeof ec&&""!==ec){let r=eP(ec);if(null===r)return;let n=r-ew;void 0!==t&&n<t&&W?.(),e=void 0!==t&&n<t?t:n}else e=eG(eT,t,ey);let r=e.toString();em(e),d?.({floatValue:ek(e),formattedValue:r,value:r},{source:"decrement"}),setTimeout(()=>eN(ef.current?.value.length),0);return}if(!eL(ec))return;let t=void 0!==eg?eg:Z?Number.MIN_SAFE_INTEGER:0,r=Math.max(eC(ec),eC(eb)),n=10**r;if(!eD(ec)&&"number"!=typeof ec||Number.isNaN(ec))e=ea(eS,t,ex);else{let r=(Math.round(Number(ec)*n)-Math.round(eb*n))/n;void 0!==t&&r<t&&W?.(),e=void 0!==t&&r<t?t:r}let a=e.toFixed(r);em(parseFloat(a)),d?.({floatValue:parseFloat(a),formattedValue:a,value:a},{source:"decrement"}),setTimeout(()=>eN(ef.current?.value.length),0)},(0,en.assignRef)(E,{increment:eE.current,decrement:e_.current});let eB=e=>{e?eE.current?.():e_.current?.(),ep.current+=1},eK=e=>{if(eB(e),eh){let t="number"==typeof D?D:D(ep.current);ev.current=window.setTimeout(()=>eK(e),t)}},eH=(e,t)=>{e.preventDefault(),ef.current?.focus(),eB(t),eh&&(ev.current=window.setTimeout(()=>eK(t),A))},eX=()=>{ev.current&&window.clearTimeout(ev.current),ev.current=null,ep.current=0},eq=(0,l.jsxs)("div",{...el("controls"),children:[(0,l.jsx)(b.UnstyledButton,{...el("control"),tabIndex:-1,"aria-hidden":!0,disabled:B||"number"==typeof ec&&void 0!==ex&&ec>=ex||"bigint"==typeof ec&&void 0!==ey&&ec>=ey,mod:{direction:"up"},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{eH(e,!0)},onPointerUp:eX,onPointerLeave:eX,children:(0,l.jsx)(et,{direction:"up"})}),(0,l.jsx)(b.UnstyledButton,{...el("control"),tabIndex:-1,"aria-hidden":!0,disabled:B||"number"==typeof ec&&void 0!==eg&&ec<=eg||"bigint"==typeof ec&&void 0!==ej&&ec<=ej,mod:{direction:"down"},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{eH(e,!1)},onPointerUp:eX,onPointerLeave:eX,children:(0,l.jsx)(et,{direction:"down"})})]});return(0,l.jsx)(ee.InputBase,{component:ez,allowNegative:R,className:(0,G.default)(er.root,r),size:M,...q,inputMode:ed?"numeric":"decimal",readOnly:I,disabled:B,value:"bigint"==typeof ec?ec.toString():ec,getInputRef:(0,en.useMergedRef)(X,ef),onValueChange:(e,t)=>{var r,n,a;if("event"===t.source)if(ed){em(!eO(r=e.value,Z)||J&&eI.test(r)?r:eP(r)??r)}else{em((n=e.floatValue,a=e.value,("number"==typeof n?!(n<Number.MAX_SAFE_INTEGER):!!Number.isNaN(Number(n)))||Number.isNaN(n)||!(14>a.toString().replace(".","").length)||""===a||eR.test(e.value)||J&&eI.test(e.value)||eM.test(e.value)||eV.test(e.value))?e.value:e.floatValue)}d?.(e,t)},rightSection:x||I||!(ed?eF(ec,Z):eL(ec))?S:S||eq,classNames:eo,styles:es,unstyled:i,__staticSelector:"NumberInput",decimalScale:ed?0:T?k:0,onPaste:e=>{let t=e.clipboardData.getData("text"),r=q.decimalSeparator||".",n=(P||[".",","]).filter(e=>e!==r);if(n.some(e=>t.includes(e))){e.preventDefault();let a=t;n.forEach(e=>{a=a.split(e).join(r)});let i=ef.current;if(i){let e=i.selectionStart??0,t=i.selectionEnd??0,r=i.value,n=r.substring(0,e)+a+r.substring(t);Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value")?.set?.call(i,n),i.dispatchEvent(new Event("change",{bubbles:!0}));let l=e+a.length;setTimeout(()=>eN(l),0)}}q.onPaste?.(e)},onFocus:e=>{$&&setTimeout(()=>e.currentTarget.select(),0),K?.(e)},onKeyDown:e=>{C?.(e),!I&&O&&("ArrowUp"===e.key&&(e.preventDefault(),eE.current?.()),"ArrowDown"===e.key&&(e.preventDefault(),e_.current?.()))},onKeyDownCapture:e=>{if(N?.(e),"Backspace"===e.key){let t=ef.current;t&&0===t.selectionStart&&t.selectionStart===t.selectionEnd&&(e.preventDefault(),window.setTimeout(()=>eN(0),0))}},rightSectionPointerEvents:z??(B?"none":void 0),rightSectionWidth:V??`var(--ni-right-section-width-${M||"sm"})`,allowLeadingZeros:L,allowedDecimalSeparators:P,onBlur:e=>{let t=ec;ed?("blur"===y&&"bigint"==typeof t&&(t=eG(t,ej,ey)),F&&"string"==typeof t&&(t=function(e,t){if(""===e||"-"===e)return e;let r=eP(e);return null===r?e:"blur"===t.clampBehavior?eG(r,t.min,t.max):r}(t,{min:ej,max:ey,clampBehavior:y}))):("blur"===y&&"number"==typeof t&&(t=ea(t,eg,ex)),F&&"string"==typeof t&&15>eC(t)&&(t=function(e,t,r){let n=e.toString(),a=eV.test(n),i=n.replace(/^0+(?=\d)/,""),l=parseFloat(i);if(Number.isNaN(l))return i;if(l>Number.MAX_SAFE_INTEGER)return void 0!==t?t:i;let o=ea(l,r,t);return a?`${o.toString().replace(/^0+(?=\d)/,"")}.`:o}(t,ex,eg))),ec!==t&&em(t),w?.(e)},attributes:H,isAllowed:e=>{if(!(!j||j(e)))return!1;if("strict"!==y)return!0;if(!ed){var t;return t=e.floatValue,void 0===t||(void 0===eg||t>=eg)&&(void 0===ex||t<=ex)}if(""===e.value||"-"===e.value)return!0;let r=eP(e.value);return null===r||(void 0===ej||r>=ej)&&(void 0===ey||r<=ey)}})});eK.classes={...ee.InputBase.classes,...er},eK.varsResolver=eU,eK.displayName="@mantine/core/NumberInput";var eH=e.i(56684),eX=e.i(47596),eq=e.i(53165),eZ=e.i(81363);function eJ(e,t){return 0===t.length?e:t.reduce((t,r)=>Math.abs(r-e)<Math.abs(t-e)?r:t)}var eY=e.i(17303);let[eQ,e0]=(0,E.createSafeContext)("SliderProvider was not found in tree");function e1({size:e,disabled:t,variant:r,color:n,thumbSize:a,radius:i,orientation:o,...s}){let{getStyles:u}=e0();return(0,l.jsx)(x.Box,{tabIndex:-1,variant:r,size:e,...u("root"),mod:{orientation:o},...s})}e1.displayName="@mantine/core/SliderRoot";var e2=e.i(98193);function e6({max:e,min:t,value:r,position:n,label:a,dragging:i,onMouseDown:s,onKeyDownCapture:u,labelTransitionProps:d,labelAlwaysOn:c,thumbLabel:m,thumbValueText:h,onFocus:f,onBlur:v,showLabelOnHover:p,isHovered:g,children:b=null,disabled:S,orientation:j="horizontal",ref:y}){let{getStyles:w}=e0(),[T,k]=(0,o.useState)(!1),C=c||i||T||p&&g,N="function"==typeof h?h(r):h;return(0,l.jsxs)(x.Box,{tabIndex:S?-1:0,role:"slider","aria-label":m,"aria-valuemax":e,"aria-valuemin":t,"aria-valuenow":r,"aria-valuetext":N,"aria-disabled":S,"aria-orientation":j,ref:y,__vars:{"--slider-thumb-offset":`${n}%`},...w("thumb",{focusable:!0}),mod:{dragging:i,disabled:S},onFocus:e=>{k(!0),"function"==typeof f&&f(e)},onBlur:e=>{k(!1),"function"==typeof v&&v(e)},onTouchStart:s,onMouseDown:s,onKeyDownCapture:u,onClick:e=>e.stopPropagation(),children:[b,(0,l.jsx)(e2.Transition,{mounted:null!=a&&!!C,transition:"fade",duration:0,...d,children:e=>(0,l.jsx)("div",{...w("label",{style:e}),children:a})})]})}function e4({value:e,min:t,max:r}){return Math.min(Math.max((e-t)/(r-t)*100,0),100)}function e5({marks:e,min:t,max:r,disabled:n,value:a,offset:i,inverted:s,startPointValue:u}){let{getStyles:d}=e0();return e?(0,l.jsx)("div",{children:e.map((e,c)=>e.hidden?null:(0,o.createElement)(x.Box,{...d("markWrapper"),__vars:{"--mark-offset":`${e4({value:e.value,min:t,max:r})}%`},key:c},(0,l.jsx)(x.Box,{...d("mark"),mod:{filled:function({mark:e,offset:t,value:r,inverted:n=!1,startPointValue:a}){return"number"!=typeof a||n?n?"number"==typeof t&&e.value<=t||e.value>=r:"number"==typeof t?e.value>=t&&e.value<=r:e.value<=r:e.value>=a&&e.value<=r||e.value<=a&&e.value>=r}({mark:e,value:a,offset:i,inverted:s,startPointValue:u}),disabled:n}}),e.label&&(0,l.jsx)("div",{...d("markLabel"),children:e.label})))}):null}function e3({filled:e,children:t,offset:r,disabled:n,marksOffset:a,inverted:i,startPointValue:o,containerProps:s,...u}){let{getStyles:d}=e0();return(0,l.jsx)(x.Box,{...d("trackContainer"),mod:{disabled:n},...s,children:(0,l.jsxs)(x.Box,{...d("track"),mod:{inverted:i,disabled:n},children:[(0,l.jsx)(x.Box,{mod:{inverted:i,disabled:n},__vars:{"--slider-bar-width":`calc(${e}% + 2 * var(--slider-size))`,"--slider-bar-offset":`calc(${r}% - var(--slider-size))`},...d("bar")}),t,(0,l.jsx)(e5,{...u,offset:a,disabled:n,inverted:i,startPointValue:o})]})})}function e8(e,t){return parseFloat(e.toFixed(t))}function e7(e,t){let r=[...t].sort((e,t)=>e.value-t.value).find(t=>t.value>e);return r?r.value:e}function e9(e,t){let r=[...t].sort((e,t)=>t.value-e.value).find(t=>t.value<e);return r?r.value:e}function te(e){let t=[...e].sort((e,t)=>e.value-t.value);return t.length>0?t[0].value:0}function tt(e){let t=[...e].sort((e,t)=>e.value-t.value);return t.length>0?t[t.length-1].value:100}e6.displayName="@mantine/core/SliderThumb",e5.displayName="@mantine/core/SliderMarks",e3.displayName="@mantine/core/SliderTrack";var tr={root:"m_dd36362e",label:"m_c9357328",thumb:"m_c9a9a60a",trackContainer:"m_a8645c2",track:"m_c9ade57f",bar:"m_38aeed47",markWrapper:"m_b7b0423a",mark:"m_dd33bc19",markLabel:"m_68c77a5b"};let tn={radius:"xl",min:0,max:100,step:1,marks:[],label:e=>e,labelTransitionProps:{transition:"fade",duration:0},thumbLabel:"",showLabelOnHover:!0,scale:e=>e,size:"md"},ta=(0,h.createVarsResolver)((e,{size:t,color:r,thumbSize:n,radius:a})=>({root:{"--slider-size":(0,m.getSize)(t,"slider-size"),"--slider-color":r?(0,f.getThemeColor)(r,e):void 0,"--slider-radius":void 0===a?void 0:(0,m.getRadius)(a),"--slider-thumb-size":void 0!==n?(0,c.rem)(n):"calc(var(--slider-size) * 2)"}})),ti=(0,g.factory)(e=>{let t=(0,v.useProps)("Slider",tn,e),{classNames:r,styles:n,value:a,onChange:i,onChangeEnd:s,size:u,min:d,max:c,domain:m,step:h,precision:f,defaultValue:g,name:x,marks:b,label:S,labelTransitionProps:j,labelAlwaysOn:y,thumbLabel:w,thumbValueText:T,showLabelOnHover:k,thumbChildren:C,disabled:N,unstyled:E,scale:_,inverted:B,startPointValue:z,orientation:R,className:I,style:M,vars:V,hiddenInputProps:D,restrictToMarks:A,thumbProps:L,attributes:O,ref:F,...P}=t,$=(0,p.useStyles)({name:"Slider",props:t,classes:tr,classNames:r,className:I,styles:n,style:M,attributes:O,vars:V,varsResolver:ta,unstyled:E}),{dir:G}=(0,eY.useDirection)(),[W,U]=(0,o.useState)(!1),[K,H]=(0,ei.useUncontrolled)({value:"number"==typeof a?ea(a,d,c):a,defaultValue:"number"==typeof g?ea(g,d,c):g,finalValue:ea(0,d,c),onChange:i}),X=(0,o.useRef)(K),q=(0,o.useRef)(s);(0,o.useEffect)(()=>{q.current=s},[s]);let Z=(0,o.useRef)(null),J=(0,o.useRef)(null),[Y,Q]=m||[d,c],ee=e4({value:K,min:Y,max:Q}),et=_(K),er="function"==typeof S?S(et):S,el=f??function(e){if(!e)return 0;let t=e.toString().split(".");return t.length>1?t[1].length:0}(h),eo="number"==typeof z&&!B,es=eo?e4({value:z,min:Y,max:Q}):0,eu=eo?Math.min(ee,es):0,ed=eo?Math.abs(ee-es):ee,ec=(0,o.useCallback)(({x:e})=>{if(!N){let t=ea(function({value:e,containerWidth:t,min:r,max:n,step:a,precision:i}){let l=(t?Math.min(Math.max(e,0),t)/t:e)*(n-r),o=Math.max((0!==l?Math.round(l/a)*a:0)+r,r);return void 0!==i?Number(o.toFixed(i)):o}({value:e,min:Y,max:Q,step:h,precision:el}),d,c);H(A&&b?.length?eJ(t,b.map(e=>e.value)):t),X.current=t}},[N,d,c,Y,Q,h,el,H,b,A]),{ref:em,active:eh}=function(e,t,r="ltr"){let n=(0,o.useRef)(!1),a=(0,o.useRef)(!1),i=(0,o.useRef)(0),l=(0,o.useRef)(null),[s,u]=(0,o.useState)(!1);return(0,o.useEffect)(()=>(n.current=!0,()=>{l.current?.()}),[]),{ref:(0,o.useCallback)(o=>{let s=({x:t,y:a})=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame(()=>{if(n.current&&o){o.style.userSelect="none";let n=o.getBoundingClientRect();if(n.width&&n.height){let i=ea((t-n.left)/n.width,0,1);e({x:"ltr"===r?i:1-i,y:ea((a-n.top)/n.height,0,1)})}}})},d=()=>{document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",m),document.removeEventListener("touchmove",p),document.removeEventListener("touchend",m)},c=()=>{!a.current&&n.current&&(a.current=!0,"function"==typeof t?.onScrubStart&&t.onScrubStart(),u(!0),document.addEventListener("mousemove",f),document.addEventListener("mouseup",m),document.addEventListener("touchmove",p,{passive:!1}),document.addEventListener("touchend",m))},m=()=>{a.current&&n.current&&(a.current=!1,u(!1),d(),setTimeout(()=>{"function"==typeof t?.onScrubEnd&&t.onScrubEnd()},0))},h=e=>{c(),e.preventDefault(),f(e)},f=e=>s({x:e.clientX,y:e.clientY}),v=e=>{e.cancelable&&e.preventDefault(),c(),p(e)},p=e=>{e.cancelable&&e.preventDefault(),s({x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY})};return o?.addEventListener("mousedown",h),o?.addEventListener("touchstart",v,{passive:!1}),l.current=()=>{d(),cancelAnimationFrame(i.current)},()=>{o&&(o.removeEventListener("mousedown",h),o.removeEventListener("touchstart",v))}},[r,e]),active:s}}(({x:e,y:t})=>ec({x:"vertical"===R?1-t:e}),{onScrubEnd:(0,o.useCallback)(()=>{if(!N&&q.current){let e=A&&b?.length?eJ(X.current,b.map(e=>e.value)):X.current;q.current(e)}},[N,b,A])},G),ef=(0,o.useCallback)(e=>{!N&&q.current&&q.current(e)},[N]);return(0,l.jsx)(eQ,{value:{getStyles:$},children:(0,l.jsxs)(e1,{...P,ref:(0,en.useMergedRef)(F,Z),onKeyDownCapture:e=>{if(!N)switch(e.key){case"ArrowUp":{if(e.preventDefault(),J.current?.focus(),A&&b){let e=e7(K,b);H(e),ef(e);break}let t=e8(Math.min(Math.max(K+h,Y),Q),el);H(t),ef(t);break}case"ArrowRight":{if(e.preventDefault(),J.current?.focus(),A&&b){let e="rtl"===G?e9(K,b):e7(K,b);H(e),ef(e);break}let t=e8(Math.min(Math.max("rtl"===G?K-h:K+h,Y),Q),el);H(t),ef(t);break}case"ArrowDown":{if(e.preventDefault(),J.current?.focus(),A&&b){let e=e9(K,b);H(e),ef(e);break}let t=e8(Math.min(Math.max(K-h,Y),Q),el);H(t),ef(t);break}case"ArrowLeft":{if(e.preventDefault(),J.current?.focus(),A&&b){let e="rtl"===G?e7(K,b):e9(K,b);H(e),ef(e);break}let t=e8(Math.min(Math.max("rtl"===G?K+h:K-h,Y),Q),el);H(t),ef(t);break}case"Home":if(e.preventDefault(),J.current?.focus(),A&&b){H(te(b)),ef(te(b));break}H(d),ef(d);break;case"End":if(e.preventDefault(),J.current?.focus(),A&&b){H(tt(b)),ef(tt(b));break}H(c),ef(c)}},onMouseDownCapture:()=>Z.current?.focus(),size:u,disabled:N,orientation:R,children:[(0,l.jsx)(e3,{inverted:B,offset:eu,filled:ed,marks:b,min:Y,max:Q,value:et,startPointValue:eo?z:void 0,disabled:N,containerProps:{ref:em,onMouseEnter:k?()=>U(!0):void 0,onMouseLeave:k?()=>U(!1):void 0},children:(0,l.jsx)(e6,{max:Q,min:Y,value:et,position:ee,dragging:eh,label:er,ref:J,labelTransitionProps:j,labelAlwaysOn:y,thumbLabel:w,thumbValueText:T,showLabelOnHover:k,isHovered:W,disabled:N,orientation:R,...L,children:C})}),(0,l.jsx)("input",{type:"hidden",name:x,value:et,...D})]})})});ti.classes=tr,ti.varsResolver=ta,ti.displayName="@mantine/core/Slider";var tl=e.i(77936),to=e.i(64384),ts=e.i(94229),tu=e.i(47167);let td=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],tc={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"};function tm(e){Object.keys(tc).forEach(t=>{e.style.setProperty(t,tc[t],"important")})}let th=null;function tf({maxRows:e,minRows:t,onChange:r,ref:n,...a}){let i=void 0!==a.value,s=(0,o.useRef)(null),u=(0,en.useMergedRef)(s,n),d=(0,o.useRef)(0),c=(0,o.useRef)(0),m=()=>{let r=s.current;if(!r)return;let n=function(e){let t=window.getComputedStyle(e);if(null===t)return null;let r={};for(let e of td)r[e]=t[e];return""===r.boxSizing?null:{sizingStyle:r,paddingSize:parseFloat(r.paddingBottom)+parseFloat(r.paddingTop),borderSize:parseFloat(r.borderBottomWidth)+parseFloat(r.borderTopWidth)}}(r);if(!n)return;let[a]=function(e,t,r=1,n=1/0){th||((th=document.createElement("textarea")).setAttribute("tabindex","-1"),th.setAttribute("aria-hidden","true"),th.setAttribute("aria-label","autosize measurement"),tm(th)),null===th.parentNode&&document.body.appendChild(th);let{paddingSize:a,borderSize:i,sizingStyle:l}=e,{boxSizing:o}=l;Object.keys(l).forEach(e=>{th.style[e]=l[e]}),tm(th),th.value=t;let s="border-box"===o?th.scrollHeight+i:th.scrollHeight-a;th.value=t,s="border-box"===o?th.scrollHeight+i:th.scrollHeight-a,th.value="x";let u=th.scrollHeight-a,d=u*r;"border-box"===o&&(d=d+a+i),s=Math.max(d,s);let c=u*n;return"border-box"===o&&(c=c+a+i),[s=Math.min(c,s),u]}(n,r.value||r.placeholder||"x",t,e);d.current!==a&&(d.current=a,r.style.setProperty("height",`${a}px`,"important"))};return(0,o.useLayoutEffect)(m),(0,o.useEffect)(()=>{let e=()=>m();return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,o.useEffect)(()=>{let e=s.current;if(!e||"u"<typeof ResizeObserver)return;c.current=e.offsetWidth;let t=new ResizeObserver(()=>{s.current&&s.current.offsetWidth!==c.current&&(c.current=s.current.offsetWidth,m())});return t.observe(e),()=>t.disconnect()},[]),(0,o.useEffect)(()=>{let e=()=>m();return document.fonts.addEventListener("loadingdone",e),()=>document.fonts.removeEventListener("loadingdone",e)},[]),(0,o.useEffect)(()=>{let e=e=>{if(s.current?.form===e.target&&!i){let e=s.current.value;requestAnimationFrame(()=>{s.current&&e!==s.current.value&&m()})}};return document.body.addEventListener("reset",e),()=>document.body.removeEventListener("reset",e)},[i]),(0,l.jsx)("textarea",{rows:t,...a,onChange:e=>{i||m(),r?.(e)},ref:u})}let tv=(0,g.factory)(e=>{let{autosize:t,maxRows:r,minRows:n,__staticSelector:a,resize:i,bottomSection:o,bottomSectionProps:s,...u}=(0,v.useProps)(["Input","InputWrapper","Textarea"],null,e),d=t&&"test"!=(void 0!==tu.default&&tu.default.env,"development");return(0,l.jsx)(ee.InputBase,{component:d?tf:"textarea",...u,__staticSelector:a||"Textarea",__bottomSection:o,__bottomSectionProps:s,multiline:!0,"data-no-overflow":t&&void 0===r||void 0,__vars:{"--input-resize":i},...d?{maxRows:r,minRows:n}:{}})});tv.classes=ee.InputBase.classes,tv.displayName="@mantine/core/Textarea";var tp=e.i(25293),tg=e.i(92181),tx=e.i(11644),tb=e.i(29765);function tS(e=!1,t={}){let[r,n]=(0,o.useState)(e),a=(0,o.useCallback)(()=>{n(e=>e||(t.onOpen?.(),!0))},[t.onOpen]),i=(0,o.useCallback)(()=>{n(e=>e?(t.onClose?.(),!1):e)},[t.onClose]);return[r,{open:a,close:i,toggle:(0,o.useCallback)(()=>{r?i():a()},[i,a,r]),set:n}]}var tj=e.i(32591),ty=e.i(12522),tw=e.i(33550);let tT=(0,tw.default)("outline","movie","Movie",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M8 4l0 16",key:"svg-1"}],["path",{d:"M16 4l0 16",key:"svg-2"}],["path",{d:"M4 8l4 0",key:"svg-3"}],["path",{d:"M4 16l4 0",key:"svg-4"}],["path",{d:"M4 12l16 0",key:"svg-5"}],["path",{d:"M16 8l4 0",key:"svg-6"}],["path",{d:"M16 16l4 0",key:"svg-7"}]]);var tk=e.i(17708),tC=e.i(18716),tN=e.i(57662),tE=e.i(6916),t_=e.i(14552);let tB=(0,tw.default)("outline","volume","Volume",[["path",{d:"M15 8a5 5 0 0 1 0 8",key:"svg-0"}],["path",{d:"M17.7 5a9 9 0 0 1 0 14",key:"svg-1"}],["path",{d:"M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5",key:"svg-2"}]]),tz=(0,tw.default)("outline","volume-off","VolumeOff",[["path",{d:"M15 8a5 5 0 0 1 1.912 4.934m-1.377 2.602a5 5 0 0 1 -.535 .464",key:"svg-0"}],["path",{d:"M17.7 5a9 9 0 0 1 2.362 11.086m-1.676 2.299a9 9 0 0 1 -.686 .615",key:"svg-1"}],["path",{d:"M9.069 5.054l.431 -.554a.8 .8 0 0 1 1.5 .5v2m0 4v8a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l1.294 -1.664",key:"svg-2"}],["path",{d:"M3 3l18 18",key:"svg-3"}]]);var tR=e.i(85404);function tI(e){if(!e||e<0)return"00:00";let t=Math.floor(e/3600),r=Math.floor(e%3600/60),n=Math.floor(e%60),a=e=>e.toString().padStart(2,"0");return t>0?`${a(t)}:${a(r)}:${a(n)}`:`${a(r)}:${a(n)}`}e.s(["default",0,function(){var e;let{colorScheme:t,toggleColorScheme:r}=(0,tx.useMantineColorScheme)(),[n,{toggle:a}]=tS(),[i,{open:c,close:m}]=tS(),[h,f]=(0,o.useState)([]),[v,p]=(0,o.useState)(null),[g,x]=(0,o.useState)(!1),[b,S]=(0,o.useState)(null),[j,N]=(0,o.useState)(""),[E,_]=(0,o.useState)(""),[B,z]=(0,o.useState)(""),[R,I]=(0,o.useState)(!0),[M,V]=(0,o.useState)(3e3),[D,A]=(0,o.useState)(128),[L,O]=(0,o.useState)(60),[F,P]=(0,o.useState)("Auto"),[$,G]=(0,o.useState)("h264"),[W,U]=(0,o.useState)("mp4a"),[K,H]=(0,o.useState)(44100),[X,Y]=(0,o.useState)("veryfast"),[Q,ee]=(0,o.useState)(60),[et,er]=(0,o.useState)(!1),[en,ea]=(0,o.useState)(!1),[ei,el]=(0,o.useState)(!0),[eo,es]=(0,o.useState)(""),[eu,ed]=(0,o.useState)(!1),[ec,em]=(0,o.useState)(null),[eh,ef]=(0,o.useState)("blue"),[ev,ep]=(0,o.useState)([]),[eg,ex]=(0,o.useState)(null),[eb,eS]=(0,o.useState)(!1),[ej,ey]=(0,o.useState)(!1),[ew,eT]=(0,o.useState)("natural"),ek=(0,o.useRef)(null),eC=()=>{ea(!1),el(!0),N(""),I(!0),V(3e3),A(128),O(60),P("Auto"),G("h264"),U("mp4a"),H(44100),Y("veryfast"),ee(60),eG(null),eU(null),es(""),em(null);let e=localStorage.getItem("twitch_stream_key")||"",t=localStorage.getItem("rtmp_url")||"";_(e),z(t),c()},[eN,{open:eE,close:e_}]=tS(),[eB,ez]=(0,o.useState)(""),[eR,eI]=(0,o.useState)(null),[eM,eV]=(0,o.useState)(!1),[eD,eA]=(0,o.useState)(null),[eL,eO]=(0,o.useState)([]),[eF,eP]=(0,o.useState)([]),[e$,eG]=(0,o.useState)(null),[eW,eU]=(0,o.useState)(null),[eJ,eY]=(0,o.useState)(!1),[eQ,e0]=(0,o.useState)(null),[e1,e2]=(0,o.useState)([]),[e6,e4]=(0,o.useState)([]),[e5,e3]=(0,o.useState)([]),[e8,e7]=(0,o.useState)(null),[e9,te]=(0,o.useState)(null),[tt,tr]=(0,o.useState)(100),[tn,ta]=(0,o.useState)(!1),[tu,td]=(0,o.useState)(100),[tc,tm]=(0,o.useState)(""),[th,tf]=(0,o.useState)([]),[tw,tM]=(0,o.useState)(!1),[tV,tD]=(0,o.useState)(null),[tA,tL]=(0,o.useState)(null),tO=(0,o.useRef)(null),tF=(0,o.useRef)(null),tP=(0,o.useRef)(null),t$=(0,o.useRef)(0),tG=(0,o.useRef)(null);(0,o.useEffect)(()=>{tG.current=v},[v]),(0,o.useEffect)(()=>{let e=()=>{x(!0),fetch(tR.default.LIST_INSTANCES(),{method:"GET"}).then(e=>e.json()).then(e=>{f(e),p(t=>t&&e.some(e=>e.id===t)?t:e[0]?.id??null)}).catch(()=>{}).finally(()=>x(!1))};return e(),tP.current=setInterval(e,3e3),()=>{tP.current&&clearInterval(tP.current)}},[]);let tW=()=>{fetch(tR.default.GET_HISTORY()).then(e=>e.json()).then(e=>{ep(e.history||[])}).catch(()=>{})};(0,o.useEffect)(()=>{let e=localStorage.getItem("twitch_stream_key");e&&_(e);let t=localStorage.getItem("rtmp_url");t&&z(t);let r=localStorage.getItem("watchparty_accent_color");r&&ef(r),tW();let n=new URLSearchParams(window.location.search),a=n.get("play"),i="true"===n.get("folder");a&&(window.history.replaceState({},document.title,window.location.pathname),ea(!1),N(a),ey(i),c())},[]),(0,o.useEffect)(()=>{eN&&(eV(!0),eA(null),fetch(tR.default.MOVIES(eB)).then(e=>{if(!e.ok)throw Error("Failed to load movies directory");return e.json()}).then(e=>{eI(e.message)}).catch(e=>{eA(e.message||String(e)),eI(null)}).finally(()=>eV(!1)))},[eB,eN]),(0,o.useEffect)(()=>{if(!j.trim()||ej){eO([]),eP([]),eG(null),eU(null);return}eY(!0),e0(null),fetch(tR.default.PROBE(j)).then(e=>{if(!e.ok)throw Error("Failed to probe video file");return e.json()}).then(e=>{eO(e.audio||[]),eP(e.subtitle||[]),ei&&(e.audio&&e.audio.length>0?eG(e.audio[0].vlc_index):eG(null),e.subtitle&&e.subtitle.length>0?eU(e.subtitle[0].vlc_index):eU(null))}).catch(e=>{e0(e.message||String(e)),eO([]),eP([]),eG(null),eU(null)}).finally(()=>{eY(!1),el(!0)})},[j,ei]),(0,o.useEffect)(()=>{if(!j.trim()||ej){ex(null),eS(!1);return}let e=ev.find(e=>e.file_path===j);e&&e.resume_position>0?(ex(e.resume_position),eS(!0)):(ex(null),eS(!1))},[j,ev,ej]),(0,o.useEffect)(()=>{if(tF.current&&clearInterval(tF.current),S(null),e2([]),!v)return;let e=()=>{let e=tG.current;e&&(fetch(tR.default.STATUS(e),{method:"GET"}).then(e=>e.json()).then(t=>{if(tG.current===e){S(t),t.message&&"number"==typeof t.message.volume&&(tr(Math.round(t.message.volume/256*100)),ta(0===t.message.volume));let r=Date.now();if(t.message&&t.message.time>0&&(!ek.current||r-ek.current>=1e4)){ek.current=r;let n=h.find(t=>t.id===e);n&&n.video_path&&fetch(tR.default.UPDATE_HISTORY(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file_path:n.video_path,resume_position:t.message.time})}).then(()=>{tW()}).catch(()=>{})}}}).catch(()=>{}),fetch(tR.default.LOGS(e),{method:"GET"}).then(e=>e.json()).then(t=>{tG.current===e&&"success"===t.status&&e2(t.message)}).catch(()=>{}))};return e(),tF.current=setInterval(e,1e3),()=>{tF.current&&clearInterval(tF.current)}},[v]),(0,o.useEffect)(()=>{let e=h.find(e=>e.id===v);if(!e){e4([]),e3([]);return}fetch(tR.default.PROBE(e.video_path)).then(e=>{if(!e.ok)throw Error();return e.json()}).then(e=>{e4(e.audio||[]),e3(e.subtitle||[])}).catch(()=>{e4([]),e3([])})},[v,h]);let tU=e=>{if(!v)return;tr(e),ta(0===e);let t=Math.round(e/100*256);fetch(tR.default.VOLUME(v,String(t)),{method:"POST"}).catch(()=>{})},tK=(e,t)=>{v&&("audio"===e?e7(t):te(t),fetch(tR.default.TRACK(v,e,t),{method:"POST"}).catch(()=>{}))},tH=e=>{v&&(tM(!0),fetch(tR.default.EXECUTE(v),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e})}).then(e=>e.json()).then(t=>{t$.current+=1,tf(r=>[{id:t$.current,command:e,response:t,timestamp:new Date().toLocaleTimeString()},...r].slice(0,50))}).catch(t=>{t$.current+=1,tf(r=>[{id:t$.current,command:e,response:{status:"error",message:String(t)},timestamp:new Date().toLocaleTimeString()},...r].slice(0,50))}).finally(()=>tM(!1)))},tX=()=>{tc.trim()&&(tH(tc),tm(""))},tq=e=>{v&&fetch(e?tR.default.KILL(v):tR.default.STOP(v),{method:"POST"}).then(e=>e.json()).then(e=>{f(t=>t.map(t=>t.id===e.id?e:t))}).catch(()=>{})},tZ=h.find(e=>e.id===v)??null,tJ=b?.status!=="error"?b?.message:void 0,tY=tJ?.information?.category,tQ=tY?Object.entries(tY).filter(([e,t])=>{var r;return"meta"!==e&&!!(r=t)&&"object"==typeof r&&"Type"in r}):[],t0=tY?.meta,t1=tQ.find(([,e])=>"Video"===e.Type)?.[1],t2=tQ.find(([,e])=>"Audio"===e.Type)?.[1],t6=tQ.find(([,e])=>"Subtitle"===e.Type)?.[1];return(0,l.jsx)(tb.MantineProvider,{theme:{primaryColor:eh},forceColorScheme:"dark",children:(0,l.jsxs)(u.AppShell,{header:{height:60},navbar:{width:300,breakpoint:"sm",collapsed:{mobile:!n,desktop:!1}},padding:"md",children:[(0,l.jsx)(u.AppShell.Header,{children:(0,l.jsxs)(Z.Group,{h:"100%",px:"md",justify:"space-between",style:{width:"100%",flexWrap:"nowrap"},children:[(0,l.jsxs)(Z.Group,{gap:"xs",style:{flexWrap:"nowrap"},children:[(0,l.jsx)(y,{opened:n,onClick:a,hiddenFrom:"sm",size:"sm"}),(0,l.jsx)(tg.Title,{order:4,style:{whiteSpace:"nowrap"},children:"The TWITCH WatchParty Bridge"})]}),(0,l.jsxs)(Z.Group,{gap:"xs",style:{flexWrap:"nowrap"},children:[tZ&&(0,l.jsxs)(d.Badge,{color:"running"===(e=tZ.status)?"green":"starting"===e?"yellow":"error"===e?"red":"gray",children:[tZ.name," · ",tZ.status]}),(0,l.jsx)(w.Button,{component:"a",href:"/manager",variant:"light",size:"sm",leftSection:(0,l.jsx)(ty.IconFolder,{size:16}),children:"Media Manager"}),(0,l.jsx)(s.ActionIcon,{variant:"default",onClick:()=>r(),size:"lg","aria-label":"Toggle color scheme",children:"dark"===t?(0,l.jsx)(tE.IconSun,{size:18}):(0,l.jsx)(t_.IconMoon,{size:18})})]})]})}),(0,l.jsx)(u.AppShell.Navbar,{p:"md",children:(0,l.jsx)(eX.ScrollArea,{h:"100%",scrollbarSize:6,offsetScrollbars:!0,children:(0,l.jsxs)(tl.Stack,{gap:"xs",pr:"xs",children:[(0,l.jsxs)(Z.Group,{justify:"space-between",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"VLC Instances"}),(0,l.jsxs)(Z.Group,{gap:4,children:[(0,l.jsx)(s.ActionIcon,{variant:"subtle",onClick:()=>fetch(tR.default.LIST_INSTANCES()).then(e=>e.json()).then(f),loading:g,"aria-label":"Refresh instances",children:(0,l.jsx)(tC.IconRefresh,{size:16})}),(0,l.jsx)(s.ActionIcon,{variant:"filled",onClick:eC,"aria-label":"Start new instance",children:(0,l.jsx)(tk.IconPlus,{size:16})})]})]}),(0,l.jsx)(eq.Select,{placeholder:"Select an instance",data:h.filter((e,t,r)=>r.findIndex(t=>t.id===e.id)===t).map(e=>({value:e.id,label:`${e.name} (${e.status})`})),value:v,onChange:p,searchable:!0,nothingFoundMessage:"No instances yet"}),tZ&&(0,l.jsxs)(T.Card,{withBorder:!0,padding:"xs",children:[(0,l.jsxs)(tl.Stack,{gap:2,children:[(0,l.jsxs)(ts.Text,{size:"xs",c:"dimmed",children:["PID: ",tZ.pid??"—"]}),(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",truncate:!0,children:tZ.video_path}),(0,l.jsxs)(ts.Text,{size:"xs",c:"dimmed",children:["telnet:",tZ.telnet_port," · http:",tZ.http_port]})]}),(0,l.jsxs)(Z.Group,{mt:"xs",grow:!0,gap:4,children:[(0,l.jsx)(w.Button,{size:"xs",color:"blue",variant:"light",onClick:()=>{var e;tZ&&(ea(!0),el(!1),N((e=tZ.start_req||{video_path:tZ.video_path,loop:!0,video_bitrate:3e3,audio_bitrate:128,fps:60,scale:"Auto",vcodec:"h264",acodec:"mp4a",samplerate:44100,preset:"veryfast",keyint:60,audio_track:null,sub_track:null,name:tZ.name,stream_key:localStorage.getItem("twitch_stream_key")||"",rtmp_url:localStorage.getItem("rtmp_url")||""}).video_path),_(e.stream_key||""),z(e.rtmp_url||""),I(e.loop),V(e.video_bitrate),A(e.audio_bitrate),O(e.fps),P(e.scale||"Auto"),G(e.vcodec||"h264"),U(e.acodec||"mp4a"),H(e.samplerate||44100),Y(e.preset||"veryfast"),ee(e.keyint||60),eG(e.audio_track??null),eU(e.sub_track??null),es(e.name||""),c())},children:"Configure"}),(0,l.jsx)(w.Button,{size:"xs",color:"orange",variant:"light",onClick:()=>tq(!1),children:"Stop"}),(0,l.jsx)(w.Button,{size:"xs",color:"red",variant:"light",onClick:()=>tq(!0),children:"Kill"})]}),(0,l.jsx)(w.Button,{size:"xs",mt:6,fullWidth:!0,color:"red",variant:"subtle",leftSection:(0,l.jsx)(tN.IconTrash,{size:14}),onClick:()=>{v&&fetch(tR.default.DELETE(v),{method:"DELETE"}).then(()=>{f(e=>e.filter(e=>e.id!==v)),p(e=>e===v?null:e)}).catch(()=>{})},children:"Remove"})]}),(0,l.jsx)(C.Divider,{label:"Media Controls",my:"xs"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:2,children:[(0,l.jsx)(w.Button,{onClick:()=>tH("play"),loading:tw,disabled:!v,children:"Play"}),(0,l.jsx)(w.Button,{onClick:()=>tH("pause"),loading:tw,variant:"light",disabled:!v,children:"Pause"}),(0,l.jsx)(w.Button,{onClick:()=>tH("stop"),loading:tw,color:"red",variant:"light",disabled:!v,children:"Stop"}),(0,l.jsx)(w.Button,{onClick:()=>tH("fullscreen"),loading:tw,variant:"light",disabled:!v,children:"Fullscreen"}),(0,l.jsx)(w.Button,{onClick:()=>tH("prev"),loading:tw,variant:"light",disabled:!v,children:"Previous"}),(0,l.jsx)(w.Button,{onClick:()=>tH("next"),loading:tw,variant:"light",disabled:!v,children:"Next"}),(0,l.jsx)(w.Button,{onClick:()=>tH("snapshot"),loading:tw,variant:"light",disabled:!v,children:"Snapshot"})]}),(0,l.jsx)(C.Divider,{label:"Seek",my:"xs"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:2,children:[(0,l.jsx)(w.Button,{onClick:()=>tH("seek -60s"),variant:"default",disabled:!v,children:"-60s"}),(0,l.jsx)(w.Button,{onClick:()=>tH("seek +60s"),variant:"default",disabled:!v,children:"+60s"}),(0,l.jsx)(w.Button,{onClick:()=>tH("seek -10s"),variant:"default",disabled:!v,children:"-10s"}),(0,l.jsx)(w.Button,{onClick:()=>tH("seek +10s"),variant:"default",disabled:!v,children:"+10s"})]}),(0,l.jsx)(C.Divider,{label:"Volume",my:"xs"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:2,children:[(0,l.jsx)(w.Button,{onClick:()=>tH("voldown 1"),variant:"default",disabled:!v,children:"Vol -"}),(0,l.jsx)(w.Button,{onClick:()=>tH("volup 1"),variant:"default",disabled:!v,children:"Vol +"})]}),(0,l.jsx)(C.Divider,{label:"Playback rate",my:"xs"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:3,children:[(0,l.jsx)(w.Button,{onClick:()=>tH("slower"),variant:"default",disabled:!v,children:"Slower"}),(0,l.jsx)(w.Button,{onClick:()=>tH("normal"),variant:"default",disabled:!v,children:"Normal"}),(0,l.jsx)(w.Button,{onClick:()=>tH("faster"),variant:"default",disabled:!v,children:"Faster"})]}),(0,l.jsx)(C.Divider,{label:"Toggles",my:"xs"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:3,children:[(0,l.jsx)(w.Button,{size:"xs",variant:tJ?.loop?"filled":"default",onClick:()=>tH("loop"),disabled:!v,children:"Loop"}),(0,l.jsx)(w.Button,{size:"xs",variant:tJ?.repeat?"filled":"default",onClick:()=>tH("repeat"),disabled:!v,children:"Repeat"}),(0,l.jsx)(w.Button,{size:"xs",variant:tJ?.random?"filled":"default",onClick:()=>tH("random"),disabled:!v,children:"Random"})]}),(0,l.jsx)(C.Divider,{label:"Custom command",my:"xs"}),(0,l.jsx)(tp.TextInput,{value:tc,onChange:e=>tm(e.currentTarget.value),placeholder:"e.g. volume 150",onKeyDown:e=>"Enter"===e.key&&tX(),disabled:!v}),(0,l.jsx)(w.Button,{fullWidth:!0,onClick:tX,loading:tw,disabled:!v,children:"Execute"})]})})}),(0,l.jsx)(u.AppShell.Main,{children:v?(0,l.jsxs)(tl.Stack,{gap:"md",children:[(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsxs)(Z.Group,{justify:"space-between",mb:4,children:[(0,l.jsx)(ts.Text,{size:"sm",children:tI(tJ?.time??0)}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:tI(tJ?.length??0)})]}),(0,l.jsxs)("div",{ref:tO,onClick:e=>{if(!tO.current||!tJ?.length)return;let t=tO.current.getBoundingClientRect(),r=Math.min(100,Math.max(0,(e.clientX-t.left)/t.width*100));tH(`seek ${r.toFixed(1)}%`)},onMouseMove:e=>{if(!tO.current||!tJ?.length)return;let t=tO.current.getBoundingClientRect(),r=Math.min(100,Math.max(0,(e.clientX-t.left)/t.width*100));tD(r),tL(r/100*tJ.length)},onMouseLeave:()=>tD(null),style:{position:"relative",cursor:tJ?.length?"pointer":"default",padding:"8px 0"},children:[(0,l.jsx)(eH.Progress,{value:(tJ?.position??0)*100,animated:tJ?.state==="playing",size:"lg"}),null!==tV&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{style:{position:"absolute",top:4,left:`${tV}%`,width:2,height:"calc(100% - 8px)",background:"var(--mantine-color-gray-6)",pointerEvents:"none"}}),(0,l.jsx)("div",{style:{position:"absolute",top:-20,left:`${tV}%`,transform:"translateX(-50%)",background:"var(--mantine-color-dark-6)",color:"white",fontSize:11,padding:"2px 6px",borderRadius:4,pointerEvents:"none",whiteSpace:"nowrap"},children:tI(tA??0)})]})]})]}),(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Live Stream Controls"}),(0,l.jsxs)(q,{align:"flex-end",children:[(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsxs)(Z.Group,{gap:"xs",align:"flex-end",children:[(0,l.jsx)(s.ActionIcon,{variant:"light",size:"lg",onClick:()=>{v&&(tn?(tU(tu||100),ta(!1)):(td(tt),tU(0),ta(!0)))},color:tn?"red":"blue",style:{marginBottom:4},children:tn?(0,l.jsx)(tz,{size:18}):(0,l.jsx)(tB,{size:18})}),(0,l.jsxs)("div",{style:{flex:1},children:[(0,l.jsxs)(ts.Text,{size:"xs",c:"dimmed",mb:4,children:["Volume: ",tt,"%"]}),(0,l.jsx)(ti,{value:tt,onChange:tU,min:0,max:150,step:1,label:e=>`${e}%`})]})]})}),(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsx)(eq.Select,{label:"Live Audio Track",placeholder:0===e6.length?"No audio tracks":"Select audio track",value:null!==e8?String(e8):"",onChange:e=>e&&tK("audio",Number(e)),disabled:0===e6.length,data:e6.map(e=>({value:String(e.vlc_index),label:`Track ${e.vlc_index} [${e.language.toUpperCase()}] (${e.title||e.codec})`}))})}),(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsx)(eq.Select,{label:"Live Subtitle Track",placeholder:"None / Disabled",value:null!==e9?String(e9):"none",onChange:e=>tK("subtitle","none"===e?-1:Number(e)),disabled:0===e5.length,data:[{value:"none",label:"None / Disabled"},...e5.map(e=>({value:String(e.vlc_index),label:`Track ${e.vlc_index} [${e.language.toUpperCase()}] (${e.title||e.codec})`}))]})})]})]}),(0,l.jsxs)(q,{children:[(0,l.jsx)(q.Col,{span:{base:12,md:6},children:(0,l.jsxs)(T.Card,{withBorder:!0,h:"100%",children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Playback"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:2,spacing:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"State"}),(0,l.jsx)(ts.Text,{size:"sm",children:tJ?.state??"—"}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Volume"}),(0,l.jsx)(ts.Text,{size:"sm",children:tJ?.volume??"—"}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Rate"}),(0,l.jsxs)(ts.Text,{size:"sm",children:[tJ?.rate??"—","x"]}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Loop / Repeat / Random"}),(0,l.jsxs)(ts.Text,{size:"sm",children:[tJ?.loop?"on":"off"," / ",tJ?.repeat?"on":"off"," / ",tJ?.random?"on":"off"]})]})]})}),(0,l.jsx)(q.Col,{span:{base:12,md:6},children:(0,l.jsxs)(T.Card,{withBorder:!0,h:"100%",children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Metadata"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:2,spacing:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Title"}),(0,l.jsx)(ts.Text,{size:"sm",truncate:!0,children:t0?.title??"—"}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Filename"}),(0,l.jsx)(ts.Text,{size:"sm",truncate:!0,children:t0?.filename??"—"}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Duration"}),(0,l.jsx)(ts.Text,{size:"sm",children:t0?.DURATION??"—"})]})]})}),(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsxs)(T.Card,{withBorder:!0,h:"100%",children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Video"}),t1?(0,l.jsxs)(eZ.SimpleGrid,{cols:2,spacing:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Codec"}),(0,l.jsx)(ts.Text,{size:"sm",children:t1.Codec}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Resolution"}),(0,l.jsx)(ts.Text,{size:"sm",children:t1.Video_resolution}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Frame rate"}),(0,l.jsx)(ts.Text,{size:"sm",children:t1.Frame_rate})]}):(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"No video stream"})]})}),(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsxs)(T.Card,{withBorder:!0,h:"100%",children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Audio"}),t2?(0,l.jsxs)(eZ.SimpleGrid,{cols:2,spacing:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Codec"}),(0,l.jsx)(ts.Text,{size:"sm",children:t2.Codec}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Sample rate"}),(0,l.jsx)(ts.Text,{size:"sm",children:t2.Sample_rate}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Language"}),(0,l.jsx)(ts.Text,{size:"sm",children:t2.Language??"—"})]}):(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"No audio stream"})]})}),(0,l.jsx)(q.Col,{span:{base:12,md:4},children:(0,l.jsxs)(T.Card,{withBorder:!0,h:"100%",children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Subtitles"}),t6?(0,l.jsxs)(eZ.SimpleGrid,{cols:2,spacing:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Codec"}),(0,l.jsx)(ts.Text,{size:"sm",children:t6.Codec}),(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"Description"}),(0,l.jsx)(ts.Text,{size:"sm",children:t6.Description})]}):(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"No subtitle stream"})]})}),(0,l.jsx)(q.Col,{span:12,children:(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsxs)(tg.Title,{order:5,mb:"sm",children:["All Streams (",tQ.length,")"]}),(0,l.jsx)(eZ.SimpleGrid,{cols:{base:1,sm:2,lg:3},children:tQ.map(([e,t])=>(0,l.jsxs)(T.Card,{withBorder:!0,padding:"xs",children:[(0,l.jsx)(ts.Text,{size:"sm",fw:600,mb:4,children:e}),Object.entries(t).map(([e,t])=>(0,l.jsxs)(Z.Group,{justify:"space-between",gap:"xs",children:[(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",children:e}),(0,l.jsx)(ts.Text,{size:"xs",children:t})]},e))]},e))})]})})]}),(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"Command Log"}),(0,l.jsx)(eX.ScrollArea,{h:220,children:(0,l.jsxs)(tl.Stack,{gap:4,children:[0===th.length&&(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",children:"No commands sent yet."}),th.map(e=>(0,l.jsxs)(Z.Group,{justify:"space-between",wrap:"nowrap",children:[(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",children:e.timestamp}),(0,l.jsx)(ts.Text,{size:"xs",fw:600,children:e.command}),(0,l.jsx)(d.Badge,{size:"xs",color:"error"===e.response.status?"red":"green",children:e.response.status}),(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",truncate:!0,style:{flex:1},children:e.response.message})]},e.id))]})}),(0,l.jsx)(tv,{mt:"sm",label:"Raw status",value:JSON.stringify(b,null,2),readOnly:!0,autosize:!0,minRows:4,maxRows:10})]}),(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsx)(tg.Title,{order:5,mb:"sm",children:"VLC System Logs"}),(0,l.jsx)(eX.ScrollArea,{h:250,style:{backgroundColor:"var(--mantine-color-dark-8)",borderRadius:"4px",padding:"8px"},children:(0,l.jsxs)(tl.Stack,{gap:2,children:[0===e1.length&&(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",style:{fontFamily:"monospace"},children:"No logs yet..."}),e1.map((e,t)=>{let r="white";return(e.toLowerCase().includes("error")||e.toLowerCase().includes("failed"))&&(r="var(--mantine-color-red-3)"),(0,l.jsx)(ts.Text,{size:"xs",style:{fontFamily:"monospace",color:r,whiteSpace:"pre-wrap"},children:e},t)})]})})]})]}):(0,l.jsxs)(T.Card,{withBorder:!0,children:[(0,l.jsx)(ts.Text,{c:"dimmed",children:"No instance selected. Start a new VLC stream to begin."}),(0,l.jsx)(w.Button,{mt:"sm",leftSection:(0,l.jsx)(tk.IconPlus,{size:16}),onClick:eC,children:"Start VLC"})]})}),(0,l.jsx)(J.Modal,{opened:i,onClose:m,title:en?"Configure Stream Settings":"Start a new VLC stream",children:(0,l.jsxs)(tl.Stack,{gap:"sm",children:[(0,l.jsxs)(Z.Group,{align:"flex-end",gap:"xs",children:[(0,l.jsx)(tp.TextInput,{label:"Video path",description:"Relative to the server's movies folder, or an absolute path",placeholder:String.raw`bbb_sunflower_1080p_30fps_normal.mp4`,value:j,onChange:e=>N(e.currentTarget.value),required:!0,style:{flex:1}}),(0,l.jsx)(w.Button,{variant:"default",onClick:eE,children:"Browse..."})]}),eJ&&(0,l.jsx)(ts.Text,{size:"xs",c:"dimmed",children:"Probing video file tracks..."}),eQ&&(0,l.jsxs)(ts.Text,{size:"xs",c:"red",children:["Failed to probe tracks: ",eQ]}),!eJ&&!eQ&&eL.length>0&&(0,l.jsx)(eq.Select,{label:"Audio Track",placeholder:"Select audio track",value:null!==e$?String(e$):"",onChange:e=>eG(e?Number(e):null),data:eL.map(e=>({value:String(e.vlc_index),label:`Track ${e.vlc_index} [${e.language.toUpperCase()}] (${e.title||e.codec})`}))}),!eJ&&!eQ&&eF.length>0&&(0,l.jsx)(eq.Select,{label:"Subtitle Track",placeholder:"None",value:null!==eW?String(eW):"none",onChange:e=>eU("none"===e?null:Number(e)),data:[{value:"none",label:"None / Disabled"},...eF.map(e=>({value:String(e.vlc_index),label:`Track ${e.vlc_index} [${e.language.toUpperCase()}] (${e.title||e.codec})`}))]}),null!==eg&&eg>0&&(0,l.jsx)(k.Checkbox,{label:`Resume playback from last position: ${tI(eg)}`,checked:eb,onChange:e=>eS(e.currentTarget.checked)}),ej&&(0,l.jsx)(eq.Select,{label:"Folder Playlist Sort Order",value:ew,onChange:e=>eT(e||"natural"),data:[{value:"natural",label:"Natural Alphanumeric (1, 2, ... 10)"},{value:"ctime_oldest",label:"Date Created (Oldest First)"},{value:"ctime_newest",label:"Date Created (Newest First)"}]}),(0,l.jsx)(tp.TextInput,{label:"Instance name",placeholder:"optional label, defaults to a random id",value:eo,onChange:e=>es(e.currentTarget.value)}),(0,l.jsx)(tp.TextInput,{label:"Twitch stream key",placeholder:"live_xxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx",value:E,onChange:e=>_(e.currentTarget.value)}),(0,l.jsx)(tp.TextInput,{label:"Or full RTMP URL",description:"Overrides stream key if set",placeholder:"rtmp://live.twitch.tv/app/...",value:B,onChange:e=>z(e.currentTarget.value)}),(0,l.jsx)(to.Switch,{label:"Loop video",checked:R,onChange:e=>I(e.currentTarget.checked)}),(0,l.jsxs)(eZ.SimpleGrid,{cols:3,children:[(0,l.jsx)(eK,{label:"Video kbps",value:M,onChange:e=>V(Number(e)),min:200}),(0,l.jsx)(eK,{label:"Audio kbps",value:D,onChange:e=>A(Number(e)),min:32}),(0,l.jsx)(eK,{label:"FPS",value:L,onChange:e=>O(Number(e)),min:1,max:60})]}),(0,l.jsx)(to.Switch,{label:"Show advanced transcode settings",checked:et,onChange:e=>er(e.currentTarget.checked)}),et&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(C.Divider,{label:"Advanced transcode options"}),(0,l.jsxs)(eZ.SimpleGrid,{cols:3,children:[(0,l.jsx)(tp.TextInput,{label:"Video Codec",placeholder:"h264",value:$,onChange:e=>G(e.currentTarget.value)}),(0,l.jsx)(tp.TextInput,{label:"Audio Codec",placeholder:"mp4a",value:W,onChange:e=>U(e.currentTarget.value)}),(0,l.jsx)(tp.TextInput,{label:"Scale",placeholder:"Auto",value:F,onChange:e=>P(e.currentTarget.value)})]}),(0,l.jsxs)(eZ.SimpleGrid,{cols:3,children:[(0,l.jsx)(eK,{label:"Samplerate",value:K,onChange:e=>H(Number(e)),min:8e3}),(0,l.jsx)(tp.TextInput,{label:"Preset",placeholder:"veryfast",value:X,onChange:e=>Y(e.currentTarget.value)}),(0,l.jsx)(eK,{label:"Keyframe interval",value:Q,onChange:e=>ee(Number(e)),min:1})]})]}),ec&&(0,l.jsx)(ts.Text,{size:"sm",c:"red",children:ec}),(0,l.jsx)(w.Button,{onClick:()=>{(em(null),j.trim())?E.trim()||B.trim()?(E.trim()?localStorage.setItem("twitch_stream_key",E.trim()):localStorage.removeItem("twitch_stream_key"),B.trim()?localStorage.setItem("rtmp_url",B.trim()):localStorage.removeItem("rtmp_url"),ed(!0),fetch(en&&v?tR.default.RECONFIGURE(v):tR.default.START(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({video_path:j,stream_key:E||void 0,rtmp_url:B||void 0,loop:R,video_bitrate:M,audio_bitrate:D,fps:L,name:eo||void 0,audio_track:null!==e$?e$:void 0,sub_track:null!==eW?eW:void 0,scale:F,vcodec:$,acodec:W,samplerate:K,preset:X,keyint:Q,start_time:eb&&eg?eg:void 0,sort_by:ej?ew:void 0})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.detail??"Failed to start VLC");return t}).then(e=>{f(t=>t.some(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]),p(e.id),m(),N(""),es(""),tW()}).catch(e=>em(String(e.message??e))).finally(()=>ed(!1))):em("Provide a stream key or a full RTMP URL."):em("Video path is required.")},loading:eu,fullWidth:!0,children:en?"Reconfigure & Restart Stream":"Start VLC"})]})}),(0,l.jsx)(J.Modal,{opened:eN,onClose:e_,title:"Browse Movies",size:"lg",children:(0,l.jsxs)(tl.Stack,{gap:"sm",children:[(0,l.jsxs)(Z.Group,{justify:"space-between",align:"center",children:[(0,l.jsxs)(Z.Group,{gap:"xs",children:[eB&&(0,l.jsx)(s.ActionIcon,{variant:"subtle",onClick:()=>{let e=eB.split("/").filter(Boolean);e.pop(),ez(e.join("/"))},title:"Go back",children:(0,l.jsx)(tj.IconArrowLeft,{size:18})}),(0,l.jsxs)(ts.Text,{size:"sm",fw:500,children:["Path: ",(0,l.jsxs)("span",{style:{fontFamily:"monospace"},children:["/ ",eB||"(root)"]})]})]}),eB&&(0,l.jsx)(w.Button,{size:"xs",variant:"subtle",onClick:()=>ez(""),children:"Root"})]}),(0,l.jsx)(C.Divider,{}),eM?(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",ta:"center",py:"xl",children:"Loading directory contents..."}):eD?(0,l.jsxs)(ts.Text,{size:"sm",c:"red",ta:"center",py:"xl",children:["Error: ",eD]}):(0,l.jsx)(eX.ScrollArea,{h:350,type:"auto",children:(0,l.jsx)(tl.Stack,{gap:"xs",children:eR&&(0!==(eR.subfolders||[]).length||0!==(eR.files||[]).length)?(0,l.jsxs)(l.Fragment,{children:[(eR.subfolders||[]).map(e=>(0,l.jsx)(T.Card,{withBorder:!0,padding:"xs",shadow:"none",style:{cursor:"pointer"},onClick:()=>{ez(eB?`${eB}/${e}`:e)},children:(0,l.jsxs)(Z.Group,{gap:"sm",children:[(0,l.jsx)(ty.IconFolder,{size:20,color:"var(--mantine-color-blue-6)"}),(0,l.jsx)(ts.Text,{size:"sm",fw:500,children:e})]})},e)),(eR.files||[]).map(e=>(0,l.jsx)(T.Card,{withBorder:!0,padding:"xs",shadow:"none",style:{cursor:"pointer"},onClick:()=>{N(eB?`${eB}/${e}`:e),e_()},children:(0,l.jsxs)(Z.Group,{gap:"sm",children:[(0,l.jsx)(tT,{size:20,color:"var(--mantine-color-teal-6)"}),(0,l.jsx)(ts.Text,{size:"sm",style:{wordBreak:"break-all"},children:e})]})},e))]}):(0,l.jsx)(ts.Text,{size:"sm",c:"dimmed",ta:"center",py:"xl",children:"This directory is empty."})})})]})})]})})}],31713)}]);
out/_next/static/chunks/2v-rv291cn1b-.css ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/3rxl-jt3pdxgx.js ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/3sfsn9t1uaymg.js ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/3y0d2nz4u4vwb.js ADDED
The diff for this file is too large to render. See raw diff
 
out/_next/static/chunks/turbopack-3v560ngbdsqcf.js ADDED
@@ -0,0 +1 @@
 
 
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/1u8kf-cumb-f7.js","static/chunks/2dkoocrktt9k-.js","static/chunks/3rxl-jt3pdxgx.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,l=((o=l||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let i=new WeakMap;function u(e,t){this.m=e,this.e=t}let s=u.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}s.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},s.j=function(e,t){var r,n;let o,l,u;null!=t?l=(o=p(this.c,t)).exports:(o=this.m,l=this.e);let s=(r=o,n=l,(u=i.get(r))||(i.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&s.push(e)},s.v=m,s.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function k(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}s.i=O,s.A=function(e){return this.r(e)(O.bind(this))},s.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},s.r=function(e){return B(e,this.m).exports},s.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let j=Symbol("turbopack queues"),U=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}s.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:u}=k(),s=Object.assign(u,{[U]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),s.catch(()=>{})}}),a={get:()=>s,set(e){e!==s&&(s[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[j]:e=>e(t)};return e.then(e=>{r[U]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[U]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[U]}),{promise:l,resolve:i}=k(),u=Object.assign(()=>i(r),{queueCount:0});function s(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(u.queueCount++,e.push(u)))}return t.map(e=>e[j](s)),u.queueCount?l:r()},function(e){e?i(s[C]=e):l(s[U]),P(n)}),n&&-1===n.status&&(n.status=0)};let v=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}v.prototype=URL.prototype,s.U=v,s.z=function(e){throw Error("dynamic usage of require is not supported")},s.g=globalThis;let S=u.prototype,$=new Map;s.M=$;let E=new Map,_=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],l=o.map(e=>!!$.has(e)||E.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],u=i.map(e=>_.get(e)).filter(e=>e);if(u.length>0){if(u.length===i.length)return void await Promise.all(u);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));_.set(n,r),u.push(r)}n=Promise.all(u)}else{for(let o of(n=M(e,t,N(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)E.has(e)||E.set(e,n);await n}S.l=function(e){return T(l.Parent,this.m.id,e)};let x=Promise.resolve(void 0),A=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),i=A.get(o);if(void 0===i){let e=A.set.bind(A,o,x);i=o.then(e).catch(e=>{let o;switch(t){case l.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case l.Parent:o=`from module ${r}`;break;case l.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),A.set(o,i)}return i}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(l.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,l){let i="SharedWorker"===e.name,u=[o.map(e=>N(e)).reverse(),r];for(let e of n)u.push(globalThis[e]);let s=new URL(N(t),location.origin),a=JSON.stringify(u);return i?s.searchParams.set("params",a):s.hash="#params="+encodeURIComponent(a),new e(s,l?{...l,type:void 0}:void 0)};let K=/\.js(?:\?[^#]*)?(?:#.*)?$/,q=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return q.test(e)}s.w=function(t,r,n){return e.loadWebAssembly(l.Parent,this.m.id,t,r,n)},s.u=function(t,r){return e.loadWebAssemblyModule(l.Parent,this.m.id,t,r)};let I={};s.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,l.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),l=o.exports;I[e]=o;let i=new u(o,l);try{n(i,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),u=!0),t.set(r,i))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(l.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,l.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===l.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(K.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(K.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(N(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
out/_next/static/media/favicon.2vob68tjqpejf.ico ADDED
out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_buildManifest.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ self.__BUILD_MANIFEST = {
2
+ "__rewrites": {
3
+ "afterFiles": [
4
+ {
5
+ "source": "/vlc/:path*"
6
+ },
7
+ {
8
+ "source": "/movies/:path*"
9
+ }
10
+ ],
11
+ "beforeFiles": [],
12
+ "fallback": []
13
+ },
14
+ "sortedPages": [
15
+ "/_app",
16
+ "/_error"
17
+ ]
18
+ };self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_clientMiddlewareManifest.js ADDED
@@ -0,0 +1 @@
 
 
1
+ self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()
out/_next/static/nBKcDuA1Pt7_3iMhIbjDI/_ssgManifest.js ADDED
@@ -0,0 +1 @@
 
 
1
+ self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
out/_not-found/__next._full.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ 5:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
6
+ 6:"$Sreact.suspense"
7
+ 9:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
8
+ b:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
9
+ d:I[68027,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1]
10
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
11
+ 0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$@8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nBKcDuA1Pt7_3iMhIbjDI"}
12
+ e:[]
13
+ 8:"$We"
14
+ a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
+ f:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
16
+ 7:null
17
+ c:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Lf","3",{}]]
out/_not-found/__next._head.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
3
+ 3:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
4
+ 4:"$Sreact.suspense"
5
+ 5:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
6
+ 0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/_not-found/__next._index.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
6
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/_not-found/__next._not-found.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
3
+ 3:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:[]
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/_not-found/__next._not-found/__PAGE__.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
3
+ 3:"$Sreact.suspense"
4
+ 0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
5
+ 4:null
out/_not-found/__next._tree.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
2
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"nBKcDuA1Pt7_3iMhIbjDI"}
out/_not-found/index.html ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ <!DOCTYPE html><html lang="en" data-mantine-color-scheme="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2v-rv291cn1b-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1u8kf-cumb-f7.js"/><script src="/_next/static/chunks/2dkoocrktt9k-.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3v560ngbdsqcf.js" async=""></script><script src="/_next/static/chunks/0d-c12mml-h6p.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>My Mantine app</title><meta name="description" content="I have followed setup instructions carefully"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><style data-mantine-styles="true">
2
+
3
+
4
+
5
+ </style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1u8kf-cumb-f7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[29765,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MantineProvider\"]\n3:I[39756,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\nb:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nd:I[68027,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2v-rv291cn1b-.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d-c12mml-h6p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/158myu8e_yme3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-mantine-color-scheme\":\"light\",\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"nBKcDuA1Pt7_3iMhIbjDI\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"f:I[27201,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"My Mantine app\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"I have followed setup instructions carefully\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Lf\",\"3\",{}]]\n"])</script></body></html>
out/_not-found/index.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ 5:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
6
+ 6:"$Sreact.suspense"
7
+ 9:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
8
+ b:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
9
+ d:I[68027,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1]
10
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
11
+ 0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$@8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nBKcDuA1Pt7_3iMhIbjDI"}
12
+ e:[]
13
+ 8:"$We"
14
+ a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
15
+ f:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
16
+ 7:null
17
+ c:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Lf","3",{}]]
out/favicon.ico ADDED
out/file.svg ADDED
out/globe.svg ADDED
out/index.html ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html><html lang="en" data-mantine-color-scheme="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2v-rv291cn1b-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1u8kf-cumb-f7.js"/><script src="/_next/static/chunks/2dkoocrktt9k-.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3v560ngbdsqcf.js" async=""></script><script src="/_next/static/chunks/0d-c12mml-h6p.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><script src="/_next/static/chunks/2fc-6082kgcrk.js" async=""></script><script src="/_next/static/chunks/3y0d2nz4u4vwb.js" async=""></script><title>My Mantine app</title><meta name="description" content="I have followed setup instructions carefully"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><style data-mantine-styles="true">
2
+
3
+
4
+
5
+ </style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><style data-mantine-styles="true">
6
+
7
+
8
+
9
+ </style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><style data-mantine-styles="inline">:root{--app-shell-navbar-width:calc(18.75rem * var(--mantine-scale));--app-shell-navbar-offset:calc(18.75rem * var(--mantine-scale));--app-shell-header-height:calc(3.75rem * var(--mantine-scale));--app-shell-header-offset:calc(3.75rem * var(--mantine-scale));--app-shell-padding:var(--mantine-spacing-md);}@media(max-width: 47.99375em){:root{--app-shell-navbar-width:100%;--app-shell-navbar-offset:0px;--app-shell-navbar-transform:translateX(calc(var(--app-shell-navbar-width) * -1));--app-shell-navbar-transform-rtl:translateX(var(--app-shell-navbar-width));}}</style><div style="--app-shell-transition-duration:200ms;--app-shell-transition-timing-function:ease" class="m_89ab340 mantine-AppShell-root" data-resizing="true" data-mode="fixed" id="mantine-_R_1lftb_"><header style="--app-shell-header-z-index:100" class="m_3b16f56b mantine-AppShell-header right-scroll-bar-position" data-with-border="true"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;width:100%;flex-wrap:nowrap;padding-inline:var(--mantine-spacing-md);height:100%" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;flex-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><button style="--burger-size:var(--burger-size-sm)" class="mantine-focus-auto m_fea6bf1a mantine-Burger-root m_87cf2631 mantine-UnstyledButton-root mantine-hidden-from-sm" data-size="sm" type="button"><div class="m_d4fb9cad mantine-Burger-burger" data-reduce-motion="true"></div></button><h4 style="--title-fw:var(--mantine-h4-font-weight);--title-lh:var(--mantine-h4-line-height);--title-fz:var(--mantine-h4-font-size);white-space:nowrap" class="m_8a5d1357 mantine-Title-root" data-order="4">The TWITCH WatchParty Bridge</h4></div><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;flex-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><a style="--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-size="sm" data-with-left-section="true" href="/manager"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-folder "><path d="M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2"></path></svg></span><span class="m_811560b9 mantine-Button-label">Media Manager</span></span></a><button style="--ai-size:var(--ai-size-lg);--ai-bg:var(--mantine-color-default);--ai-hover:var(--mantine-color-default-hover);--ai-color:var(--mantine-color-default-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="lg" type="button" aria-label="Toggle color scheme"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-moon "><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008"></path></svg></span></button></div></div></header><nav style="--app-shell-navbar-z-index:calc(100 + 1);padding:var(--mantine-spacing-md)" class="m_45252eee mantine-AppShell-navbar" data-with-border="true"><div style="--scrollarea-scrollbar-size:calc(0.375rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px;height:100%" class="m_d57069b5 mantine-ScrollArea-root"><div style="overflow-x:hidden;overflow-y:hidden" class="m_c0783ff9 mantine-ScrollArea-viewport" data-offset-scrollbars="xy" data-scrollbars="xy" data-scrollarea-viewport="true"><div class="m_b1336c6 mantine-ScrollArea-content"><div style="--stack-gap:var(--mantine-spacing-xs);--stack-align:stretch;--stack-justify:flex-start;padding-right:var(--mantine-spacing-xs)" class="m_6d731127 mantine-Stack-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="sm">VLC Instances</p><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><button style="--ai-bg:transparent;--ai-hover:var(--mantine-color-blue-light-hover);--ai-color:var(--mantine-color-blue-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" type="button" aria-label="Refresh instances"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-refresh "><path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4"></path><path d="M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"></path></svg></span></button><button style="--ai-bg:var(--mantine-color-blue-filled);--ai-hover:var(--mantine-color-blue-filled-hover);--ai-color:var(--mantine-color-white);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="filled" type="button" aria-label="Start new instance"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg></span></button></div></div><div class="m_46b77525 mantine-InputWrapper-root mantine-Select-root" data-size="sm"><div style="--input-height:var(--input-height-sm);--input-fz:var(--mantine-font-size-sm);--input-right-section-pointer-events:none" class="m_6c018570 mantine-Input-wrapper mantine-Select-wrapper" data-variant="default" data-size="sm" data-with-right-section="true"><input class="m_8fb7ebe7 mantine-Input-input mantine-Select-input" data-variant="default" placeholder="Select an instance" role="combobox" aria-haspopup="listbox" aria-expanded="false" autoComplete="off" id="mantine-_R_2mjdarlftb_" value=""/><div data-position="right" class="m_82577fc2 mantine-Input-section mantine-Select-section"><svg style="--combobox-chevron-size:var(--combobox-chevron-size-sm)" class="m_2943220b mantine-ComboboxChevron-chevron" data-size="sm" data-combobox-chevron="true" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></div></div></div><input type="hidden" value=""/><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Media Controls</span></div><style data-mantine-styles="inline">.__m__-_R_5mjdarlftb_{--sg-spacing-x:var(--mantine-spacing-md);--sg-spacing-y:var(--mantine-spacing-md);--sg-cols:2;}</style><div class="m_2415a157 mantine-SimpleGrid-root __m__-_R_5mjdarlftb_"><button style="--button-color:var(--mantine-color-white)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Play</span></span></button><button style="--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Pause</span></span></button><button style="--button-bg:var(--mantine-color-red-light);--button-hover:var(--mantine-color-red-light-hover);--button-color:var(--mantine-color-red-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Stop</span></span></button><button style="--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Fullscreen</span></span></button><button style="--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Previous</span></span></button><button style="--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Next</span></span></button><button style="--button-bg:var(--mantine-color-blue-light);--button-hover:var(--mantine-color-blue-light-hover);--button-color:var(--mantine-color-blue-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="light" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Snapshot</span></span></button></div><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Seek</span></div><style data-mantine-styles="inline">.__m__-_R_7mjdarlftb_{--sg-spacing-x:var(--mantine-spacing-md);--sg-spacing-y:var(--mantine-spacing-md);--sg-cols:2;}</style><div class="m_2415a157 mantine-SimpleGrid-root __m__-_R_7mjdarlftb_"><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">-60s</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">+60s</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">-10s</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">+10s</span></span></button></div><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Volume</span></div><style data-mantine-styles="inline">.__m__-_R_9mjdarlftb_{--sg-spacing-x:var(--mantine-spacing-md);--sg-spacing-y:var(--mantine-spacing-md);--sg-cols:2;}</style><div class="m_2415a157 mantine-SimpleGrid-root __m__-_R_9mjdarlftb_"><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Vol -</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Vol +</span></span></button></div><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Playback rate</span></div><style data-mantine-styles="inline">.__m__-_R_bmjdarlftb_{--sg-spacing-x:var(--mantine-spacing-md);--sg-spacing-y:var(--mantine-spacing-md);--sg-cols:3;}</style><div class="m_2415a157 mantine-SimpleGrid-root __m__-_R_bmjdarlftb_"><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Slower</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Normal</span></span></button><button style="--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Faster</span></span></button></div><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Toggles</span></div><style data-mantine-styles="inline">.__m__-_R_dmjdarlftb_{--sg-spacing-x:var(--mantine-spacing-md);--sg-spacing-y:var(--mantine-spacing-md);--sg-cols:3;}</style><div class="m_2415a157 mantine-SimpleGrid-root __m__-_R_dmjdarlftb_"><button style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="xs" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Loop</span></span></button><button style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="xs" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Repeat</span></span></button><button style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="xs" data-disabled="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Random</span></span></button></div><div style="margin-block:var(--mantine-spacing-xs)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" data-with-label="true" role="separator"><span class="m_9e365f20 mantine-Divider-label">Custom command</span></div><div class="m_46b77525 mantine-InputWrapper-root mantine-TextInput-root" data-size="sm"><div style="--input-height:var(--input-height-sm);--input-fz:var(--mantine-font-size-sm)" class="m_6c018570 mantine-Input-wrapper mantine-TextInput-wrapper" data-variant="default" data-size="sm" data-disabled="true"><input class="m_8fb7ebe7 mantine-Input-input mantine-TextInput-input" data-variant="default" data-disabled="true" placeholder="e.g. volume 150" disabled="" id="mantine-_R_fmjdarlftb_" value=""/></div></div><button style="--button-color:var(--mantine-color-white)" class="mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-disabled="true" data-block="true" type="button" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Execute</span></span></button></div></div></div></div></nav><main class="m_8983817 mantine-AppShell-main"><div class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true" data-orientation="vertical"><p style="color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">No instance selected. Start a new VLC stream to begin.</p><button style="--button-color:var(--mantine-color-white);margin-top:var(--mantine-spacing-sm)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-with-left-section="true" type="button"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-plus "><path d="M12 5l0 14"></path><path d="M5 12l14 0"></path></svg></span><span class="m_811560b9 mantine-Button-label">Start VLC</span></span></button></div></main></div><!--$--><!--/$--><script src="/_next/static/chunks/1u8kf-cumb-f7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[29765,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MantineProvider\"]\n3:I[39756,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"ClientPageRoot\"]\n6:I[31713,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\",\"/_next/static/chunks/2fc-6082kgcrk.js\",\"/_next/static/chunks/3y0d2nz4u4vwb.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2v-rv291cn1b-.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d-c12mml-h6p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/158myu8e_yme3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"data-mantine-color-scheme\":\"light\",\"children\":[[\"$\",\"head\",null,{}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2fc-6082kgcrk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3y0d2nz4u4vwb.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2v-rv291cn1b-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"nBKcDuA1Pt7_3iMhIbjDI\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/0d-c12mml-h6p.js\",\"/_next/static/chunks/158myu8e_yme3.js\"],\"IconMark\"]\nb:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"My Mantine app\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"I have followed setup instructions carefully\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L11\",\"3\",{}]]\n"])</script></body></html>
out/index.txt ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ 5:I[47257,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"]
6
+ 6:I[31713,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/2fc-6082kgcrk.js","/_next/static/chunks/3y0d2nz4u4vwb.js"],"default"]
7
+ 9:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
8
+ a:"$Sreact.suspense"
9
+ c:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
10
+ e:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
11
+ 10:I[68027,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1]
12
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
13
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2fc-6082kgcrk.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3y0d2nz4u4vwb.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nBKcDuA1Pt7_3iMhIbjDI"}
14
+ 7:{}
15
+ 8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
16
+ d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
17
+ 11:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
18
+ b:null
19
+ f:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L11","3",{}]]
out/manager/__next._full.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 1:"$Sreact.fragment"
2
+ 2:I[29765,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MantineProvider"]
3
+ 3:I[39756,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
+ 4:I[37457,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default"]
5
+ 5:I[47257,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ClientPageRoot"]
6
+ 6:I[10555,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js","/_next/static/chunks/0xm351i8abo9i.js","/_next/static/chunks/3sfsn9t1uaymg.js"],"default"]
7
+ 9:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
8
+ a:"$Sreact.suspense"
9
+ d:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
10
+ f:I[97367,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
11
+ 11:I[68027,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"default",1]
12
+ :HL["/_next/static/chunks/2v-rv291cn1b-.css","style"]
13
+ 0:{"P":null,"c":["","manager",""],"q":"","i":false,"f":[[["",{"children":["manager",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0d-c12mml-h6p.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"data-mantine-color-scheme":"light","children":[["$","head",null,{}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0xm351i8abo9i.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3sfsn9t1uaymg.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2v-rv291cn1b-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nBKcDuA1Pt7_3iMhIbjDI"}
14
+ 12:[]
15
+ c:"$W12"
16
+ 7:{}
17
+ 8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
18
+ e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
19
+ 13:I[27201,["/_next/static/chunks/0d-c12mml-h6p.js","/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
20
+ b:null
21
+ 10:[["$","title","0",{"children":"My Mantine app"}],["$","meta","1",{"name":"description","content":"I have followed setup instructions carefully"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L13","3",{}]]