diff --git a/CHANGELOG.md b/CHANGELOG.md index baf4df250..3ffdbf2ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,8 +26,14 @@ All notable changes to Bambuddy will be documented in this file. - **FTP retry for unreliable WiFi** - Configurable retry logic for all FTP operations: - Enable/disable retry in Settings > General > FTP Retry - Configure retry count (1-10 attempts) and delay (1-30 seconds) + - Configurable connection timeout (10-120 seconds, default 30s) - Applies to: 3MF archiving, print uploads, timelapse downloads, firmware updates - Helps P1S, X1C, and other printers with weak WiFi connections +- **A1/A1 Mini FTP fix** - Resolved FTP upload failures on A1 series printers: + - A1 printers don't support SSL session reuse on data connections + - Automatic detection and workaround for A1 and A1 Mini models + - Maintains full encryption while skipping problematic session reuse + - Fixes "read operation timed out" errors during file uploads ### Fixed - **QR code endpoint** - Fixed 500 error on archive QR code generation: diff --git a/backend/app/api/routes/archives.py b/backend/app/api/routes/archives.py index f8e5b6aeb..9ffe4f574 100644 --- a/backend/app/api/routes/archives.py +++ b/backend/app/api/routes/archives.py @@ -1088,7 +1088,7 @@ async def scan_timelapse( remote_path = matching_file.get("path") or f"/timelapse/{matching_file['name']}" # Get FTP retry settings - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() if ftp_retry_enabled: timelapse_data = await with_ftp_retry( @@ -1096,12 +1096,20 @@ async def scan_timelapse( printer.ip_address, printer.access_code, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Download timelapse {matching_file['name']}", ) else: - timelapse_data = await download_file_bytes_async(printer.ip_address, printer.access_code, remote_path) + timelapse_data = await download_file_bytes_async( + printer.ip_address, + printer.access_code, + remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, + ) if not timelapse_data: raise HTTPException(500, "Failed to download timelapse") @@ -1166,7 +1174,7 @@ async def select_timelapse( raise HTTPException(404, f"Timelapse '{filename}' not found on printer") # Download and attach - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() if ftp_retry_enabled: timelapse_data = await with_ftp_retry( @@ -1174,12 +1182,20 @@ async def select_timelapse( printer.ip_address, printer.access_code, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Download timelapse {filename}", ) else: - timelapse_data = await download_file_bytes_async(printer.ip_address, printer.access_code, remote_path) + timelapse_data = await download_file_bytes_async( + printer.ip_address, + printer.access_code, + remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, + ) if not timelapse_data: raise HTTPException(500, "Failed to download timelapse") @@ -2071,16 +2087,18 @@ async def reprint_archive( remote_filename = f"{base_name}.3mf" remote_path = f"/{remote_filename}" + # Get FTP retry settings + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() + # Delete existing file if present (avoids 553 error) await delete_file_async( printer.ip_address, printer.access_code, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, ) - # Get FTP retry settings - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() - if ftp_retry_enabled: uploaded = await with_ftp_retry( upload_file_async, @@ -2088,6 +2106,8 @@ async def reprint_archive( printer.access_code, file_path, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Upload for reprint to {printer.name}", @@ -2098,6 +2118,8 @@ async def reprint_archive( printer.access_code, file_path, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, ) if not uploaded: diff --git a/backend/app/main.py b/backend/app/main.py index bff255774..733e9d8ef 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -590,7 +590,7 @@ async def on_print_start(printer_id: int, data: dict): downloaded_filename = None # Get FTP retry settings - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() for try_filename in possible_names: if not try_filename.endswith(".3mf"): @@ -615,6 +615,8 @@ async def on_print_start(printer_id: int, data: dict): printer.access_code, remote_path, temp_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Download 3MF from {remote_path}", @@ -625,6 +627,8 @@ async def on_print_start(printer_id: int, data: dict): printer.access_code, remote_path, temp_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, ) if downloaded: downloaded_filename = try_filename diff --git a/backend/app/services/bambu_ftp.py b/backend/app/services/bambu_ftp.py index 58c018f56..2c421a5ca 100644 --- a/backend/app/services/bambu_ftp.py +++ b/backend/app/services/bambu_ftp.py @@ -15,11 +15,16 @@ T = TypeVar("T") class ImplicitFTP_TLS(FTP_TLS): - """FTP_TLS subclass for implicit FTPS (port 990) with session reuse.""" + """FTP_TLS subclass for implicit FTPS (port 990) with optional session reuse. - def __init__(self, *args, **kwargs): + SSL session reuse is required by X1C/P1S printers (vsFTPd), but causes issues + with A1/A1 Mini printers. Set skip_session_reuse=True for A1 printers. + """ + + def __init__(self, *args, skip_session_reuse: bool = False, **kwargs): super().__init__(*args, **kwargs) self._sock = None + self.skip_session_reuse = skip_session_reuse self.ssl_context = ssl.create_default_context() self.ssl_context.check_hostname = False self.ssl_context.verify_mode = ssl.CERT_NONE @@ -44,15 +49,27 @@ class ImplicitFTP_TLS(FTP_TLS): return self.welcome def ntransfercmd(self, cmd, rest=None): - """Override to reuse SSL session for data connection (required by vsFTPd).""" + """Override to wrap data connection in SSL. + + Session reuse is required by X1C/P1S (vsFTPd) but breaks A1/A1 Mini printers. + When skip_session_reuse is True, we still encrypt the data channel but + don't reuse the control connection's session. + """ conn, size = FTP.ntransfercmd(self, cmd, rest) if self._prot_p: - # Reuse the SSL session from the control connection - conn = self.ssl_context.wrap_socket( - conn, - server_hostname=self.host, - session=self.sock.session, # Reuse session! - ) + if self.skip_session_reuse: + # A1/A1 Mini: Don't reuse session (causes timeouts/hangs) + conn = self.ssl_context.wrap_socket( + conn, + server_hostname=self.host, + ) + else: + # X1C/P1S: Reuse SSL session (required by vsFTPd) + conn = self.ssl_context.wrap_socket( + conn, + server_hostname=self.host, + session=self.sock.session, + ) return conn, size @@ -60,18 +77,39 @@ class BambuFTPClient: """FTP client for retrieving files from Bambu Lab printers.""" FTP_PORT = 990 + DEFAULT_TIMEOUT = 30 # Default timeout in seconds (increased for A1 printers) + # Models that need SSL session reuse disabled (A1 series has FTP issues with session reuse) + SKIP_SESSION_REUSE_MODELS = ("A1", "A1 Mini") - def __init__(self, ip_address: str, access_code: str): + def __init__( + self, + ip_address: str, + access_code: str, + timeout: float | None = None, + printer_model: str | None = None, + ): self.ip_address = ip_address self.access_code = access_code + self.timeout = timeout if timeout is not None else self.DEFAULT_TIMEOUT + self.printer_model = printer_model self._ftp: ImplicitFTP_TLS | None = None + def _should_skip_session_reuse(self) -> bool: + """Check if this printer model needs SSL session reuse disabled.""" + if not self.printer_model: + return False + return self.printer_model in self.SKIP_SESSION_REUSE_MODELS + def connect(self) -> bool: """Connect to the printer FTP server (implicit FTPS on port 990).""" try: - logger.debug(f"FTP connecting to {self.ip_address}:{self.FTP_PORT}") - self._ftp = ImplicitFTP_TLS() - self._ftp.connect(self.ip_address, self.FTP_PORT, timeout=10) + skip_reuse = self._should_skip_session_reuse() + logger.debug( + f"FTP connecting to {self.ip_address}:{self.FTP_PORT} " + f"(timeout={self.timeout}s, model={self.printer_model}, skip_session_reuse={skip_reuse})" + ) + self._ftp = ImplicitFTP_TLS(skip_session_reuse=skip_reuse) + self._ftp.connect(self.ip_address, self.FTP_PORT, timeout=self.timeout) logger.debug("FTP connected, logging in as bblp") self._ftp.login("bblp", self.access_code) logger.debug("FTP logged in, setting prot_p and passive mode") @@ -314,12 +352,24 @@ async def download_file_async( remote_path: str, local_path: Path, timeout: float = 60.0, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> bool: - """Async wrapper for downloading a file with timeout.""" + """Async wrapper for downloading a file with timeout. + + Args: + ip_address: Printer IP address + access_code: Printer access code + remote_path: Remote file path on printer + local_path: Local path to save file + timeout: Overall operation timeout (asyncio) + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _download(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): try: return client.download_to_file(remote_path, local_path) @@ -339,12 +389,19 @@ async def download_file_try_paths_async( access_code: str, remote_paths: list[str], local_path: Path, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> bool: - """Try downloading a file from multiple paths using a single connection.""" + """Try downloading a file from multiple paths using a single connection. + + Args: + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _download(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if not client.connect(): return False @@ -363,13 +420,28 @@ async def upload_file_async( remote_path: str, timeout: float = 600.0, progress_callback: Callable[[int, int], None] | None = None, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> bool: - """Async wrapper for uploading a file with timeout and progress callback.""" + """Async wrapper for uploading a file with timeout and progress callback. + + Args: + ip_address: Printer IP address + access_code: Printer access code + local_path: Local file path to upload + remote_path: Remote path on printer + timeout: Overall operation timeout (asyncio) + progress_callback: Optional callback for progress updates + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _upload(): - logger.info(f"FTP connecting to {ip_address} for upload...") - client = BambuFTPClient(ip_address, access_code) + logger.info( + f"FTP connecting to {ip_address} for upload (model={printer_model}, socket_timeout={socket_timeout}s)..." + ) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): logger.info(f"FTP connected to {ip_address}") try: @@ -391,12 +463,19 @@ async def list_files_async( access_code: str, path: str = "/", timeout: float = 30.0, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> list[dict]: - """Async wrapper for listing files with timeout.""" + """Async wrapper for listing files with timeout. + + Args: + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _list(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): try: return client.list_files(path) @@ -415,12 +494,19 @@ async def delete_file_async( ip_address: str, access_code: str, remote_path: str, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> bool: - """Async wrapper for deleting a file.""" + """Async wrapper for deleting a file. + + Args: + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _delete(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): try: return client.delete_file(remote_path) @@ -435,12 +521,19 @@ async def download_file_bytes_async( ip_address: str, access_code: str, remote_path: str, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> bytes | None: - """Async wrapper for downloading file as bytes.""" + """Async wrapper for downloading file as bytes. + + Args: + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _download(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): try: return client.download_file(remote_path) @@ -454,12 +547,19 @@ async def download_file_bytes_async( async def get_storage_info_async( ip_address: str, access_code: str, + socket_timeout: float | None = None, + printer_model: str | None = None, ) -> dict | None: - """Async wrapper for getting storage info.""" + """Async wrapper for getting storage info. + + Args: + socket_timeout: FTP socket timeout for slow connections (e.g., A1 printers) + printer_model: Printer model for A1-specific workarounds + """ loop = asyncio.get_event_loop() def _get_storage(): - client = BambuFTPClient(ip_address, access_code) + client = BambuFTPClient(ip_address, access_code, timeout=socket_timeout, printer_model=printer_model) if client.connect(): try: return client.get_storage_info() @@ -470,8 +570,12 @@ async def get_storage_info_async( return await loop.run_in_executor(None, _get_storage) -async def get_ftp_retry_settings() -> tuple[bool, int, float]: - """Get FTP retry settings from database.""" +async def get_ftp_retry_settings() -> tuple[bool, int, float, float]: + """Get FTP retry settings from database. + + Returns: + Tuple of (retry_enabled, retry_count, retry_delay, timeout) + """ from backend.app.api.routes.settings import get_setting from backend.app.core.database import async_session @@ -479,7 +583,8 @@ async def get_ftp_retry_settings() -> tuple[bool, int, float]: enabled = (await get_setting(db, "ftp_retry_enabled") or "true") == "true" count = int(await get_setting(db, "ftp_retry_count") or "3") delay = float(await get_setting(db, "ftp_retry_delay") or "2") - return enabled, count, delay + timeout = float(await get_setting(db, "ftp_timeout") or "30") + return enabled, count, delay, timeout async def with_ftp_retry( diff --git a/backend/app/services/firmware_update.py b/backend/app/services/firmware_update.py index 4537d0841..f3c560cd3 100644 --- a/backend/app/services/firmware_update.py +++ b/backend/app/services/firmware_update.py @@ -302,7 +302,7 @@ class FirmwareUpdateService: asyncio.run_coroutine_threadsafe(self._broadcast_progress(printer_id, state), loop) # Get FTP retry settings - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() if ftp_retry_enabled: success = await with_ftp_retry( @@ -312,6 +312,8 @@ class FirmwareUpdateService: firmware_path, remote_path, progress_callback=on_upload_progress, + socket_timeout=ftp_timeout, + printer_model=model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Upload firmware to printer {printer_id}", @@ -323,6 +325,8 @@ class FirmwareUpdateService: firmware_path, remote_path, progress_callback=on_upload_progress, + socket_timeout=ftp_timeout, + printer_model=model, ) if not success: diff --git a/backend/app/services/print_scheduler.py b/backend/app/services/print_scheduler.py index 285c4c860..fa38e7ab6 100644 --- a/backend/app/services/print_scheduler.py +++ b/backend/app/services/print_scheduler.py @@ -272,7 +272,7 @@ class PrintScheduler: remote_path = f"/cache/{remote_filename}" # Get FTP retry settings - ftp_retry_enabled, ftp_retry_count, ftp_retry_delay = await get_ftp_retry_settings() + ftp_retry_enabled, ftp_retry_count, ftp_retry_delay, ftp_timeout = await get_ftp_retry_settings() try: if ftp_retry_enabled: @@ -282,6 +282,8 @@ class PrintScheduler: printer.access_code, file_path, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, max_retries=ftp_retry_count, retry_delay=ftp_retry_delay, operation_name=f"Upload print to {printer.name}", @@ -292,6 +294,8 @@ class PrintScheduler: printer.access_code, file_path, remote_path, + socket_timeout=ftp_timeout, + printer_model=printer.model, ) except Exception as e: uploaded = False diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index 8f79c7221..12cbe5787 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -568,6 +568,7 @@ export interface AppSettings { ftp_retry_enabled: boolean; ftp_retry_count: number; ftp_retry_delay: number; + ftp_timeout: number; } export type AppSettingsUpdate = Partial; diff --git a/frontend/src/pages/SettingsPage.tsx b/frontend/src/pages/SettingsPage.tsx index a6903b230..be80175f5 100644 --- a/frontend/src/pages/SettingsPage.tsx +++ b/frontend/src/pages/SettingsPage.tsx @@ -347,7 +347,8 @@ export function SettingsPage() { settings.default_printer_id !== localSettings.default_printer_id || settings.ftp_retry_enabled !== localSettings.ftp_retry_enabled || settings.ftp_retry_count !== localSettings.ftp_retry_count || - settings.ftp_retry_delay !== localSettings.ftp_retry_delay; + settings.ftp_retry_delay !== localSettings.ftp_retry_delay || + settings.ftp_timeout !== localSettings.ftp_timeout; if (!hasChanges) { return; @@ -383,6 +384,7 @@ export function SettingsPage() { ftp_retry_enabled: localSettings.ftp_retry_enabled, ftp_retry_count: localSettings.ftp_retry_count, ftp_retry_delay: localSettings.ftp_retry_delay, + ftp_timeout: localSettings.ftp_timeout, }; updateMutation.mutate(settingsToSave); }, 500); @@ -1086,6 +1088,26 @@ export function SettingsPage() { )} + +
+ +
+ updateSetting('ftp_timeout', Math.min(120, Math.max(10, parseInt(e.target.value) || 30)))} + className="w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none" + /> + seconds +
+

+ Socket timeout for slow connections. Increase for A1/A1 Mini printers with weak WiFi (10-120) +

+
diff --git a/static/assets/index-_3zW21zb.js b/static/assets/index-7FRtmIRx.js similarity index 90% rename from static/assets/index-_3zW21zb.js rename to static/assets/index-7FRtmIRx.js index d57978177..90fac7db8 100644 --- a/static/assets/index-_3zW21zb.js +++ b/static/assets/index-7FRtmIRx.js @@ -1,20 +1,20 @@ -function gie(t,e){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var Ev=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var zA={exports:{}},bx={};var CF;function xie(){if(CF)return bx;CF=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(r,i,a){var o=null;if(a!==void 0&&(o=""+a),i.key!==void 0&&(o=""+i.key),"key"in i){a={};for(var l in i)l!=="key"&&(a[l]=i[l])}else a=i;return i=a.ref,{$$typeof:t,type:r,key:o,ref:i!==void 0?i:null,props:a}}return bx.Fragment=e,bx.jsx=n,bx.jsxs=n,bx}var kF;function bie(){return kF||(kF=1,zA.exports=xie()),zA.exports}var s=bie(),BA={exports:{}},ln={};var PF;function yie(){if(PF)return ln;PF=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),g=Symbol.iterator;function p(F){return F===null||typeof F!="object"?null:(F=g&&F[g]||F["@@iterator"],typeof F=="function"?F:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,x={};function y(F,V,ne){this.props=F,this.context=V,this.refs=x,this.updater=ne||b}y.prototype.isReactComponent={},y.prototype.setState=function(F,V){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,V,"setState")},y.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function E(){}E.prototype=y.prototype;function w(F,V,ne){this.props=F,this.context=V,this.refs=x,this.updater=ne||b}var T=w.prototype=new E;T.constructor=w,v(T,y.prototype),T.isPureReactComponent=!0;var A=Array.isArray;function C(){}var N={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function k(F,V,ne){var oe=ne.ref;return{$$typeof:t,type:F,key:V,ref:oe!==void 0?oe:null,props:ne}}function j(F,V){return k(F.type,V,F.props)}function z(F){return typeof F=="object"&&F!==null&&F.$$typeof===t}function I(F){var V={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(ne){return V[ne]})}var W=/\/+/g;function R(F,V){return typeof F=="object"&&F!==null&&F.key!=null?I(""+F.key):V.toString(36)}function q(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(C,C):(F.status="pending",F.then(function(V){F.status==="pending"&&(F.status="fulfilled",F.value=V)},function(V){F.status==="pending"&&(F.status="rejected",F.reason=V)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function K(F,V,ne,oe,ae){var me=typeof F;(me==="undefined"||me==="boolean")&&(F=null);var Q=!1;if(F===null)Q=!0;else switch(me){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(F.$$typeof){case t:case e:Q=!0;break;case d:return Q=F._init,K(Q(F._payload),V,ne,oe,ae)}}if(Q)return ae=ae(F),Q=oe===""?"."+R(F,0):oe,A(ae)?(ne="",Q!=null&&(ne=Q.replace(W,"$&/")+"/"),K(ae,V,ne,"",function(fe){return fe})):ae!=null&&(z(ae)&&(ae=j(ae,ne+(ae.key==null||F&&F.key===ae.key?"":(""+ae.key).replace(W,"$&/")+"/")+Q)),V.push(ae)),1;Q=0;var Ee=oe===""?".":oe+":";if(A(F))for(var he=0;he>>1,Y=K[ee];if(0>>1;eei(ne,J))oei(ae,ne)?(K[ee]=ae,K[oe]=J,ee=oe):(K[ee]=ne,K[V]=J,ee=V);else if(oei(ae,J))K[ee]=ae,K[oe]=J,ee=oe;else break e}}return G}function i(K,G){var J=K.sortIndex-G.sortIndex;return J!==0?J:K.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,g=3,p=!1,b=!1,v=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function T(K){for(var G=n(u);G!==null;){if(G.callback===null)r(u);else if(G.startTime<=K)r(u),G.sortIndex=G.expirationTime,e(c,G);else break;G=n(u)}}function A(K){if(v=!1,T(K),!b)if(n(c)!==null)b=!0,C||(C=!0,I());else{var G=n(u);G!==null&&q(A,G.startTime-K)}}var C=!1,N=-1,O=5,k=-1;function j(){return x?!0:!(t.unstable_now()-kK&&j());){var ee=f.callback;if(typeof ee=="function"){f.callback=null,g=f.priorityLevel;var Y=ee(f.expirationTime<=K);if(K=t.unstable_now(),typeof Y=="function"){f.callback=Y,T(K),G=!0;break t}f===n(c)&&r(c),T(K)}else r(c);f=n(c)}if(f!==null)G=!0;else{var F=n(u);F!==null&&q(A,F.startTime-K),G=!1}}break e}finally{f=null,g=J,p=!1}G=void 0}}finally{G?I():C=!1}}}var I;if(typeof w=="function")I=function(){w(z)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,R=W.port2;W.port1.onmessage=z,I=function(){R.postMessage(null)}}else I=function(){y(z,0)};function q(K,G){N=y(function(){K(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(K){K.callback=null},t.unstable_forceFrameRate=function(K){0>K||125ee?(K.sortIndex=J,e(u,K),n(c)===null&&K===n(u)&&(v?(E(N),N=-1):v=!0,q(A,J-ee))):(K.sortIndex=Y,e(c,K),b||p||(b=!0,C||(C=!0,I()))),K},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(K){var G=g;return function(){var J=g;g=G;try{return K.apply(this,arguments)}finally{g=J}}}})(VA)),VA}var DF;function wie(){return DF||(DF=1,$A.exports=_ie()),$A.exports}var GA={exports:{}},ha={};var OF;function Sie(){if(OF)return ha;OF=1;var t=rg();function e(c){var u="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),GA.exports=Sie(),GA.exports}var IF;function Mie(){if(IF)return yx;IF=1;var t=wie(),e=rg(),n=r9();function r(h){var m="https://react.dev/errors/"+h;if(1Y||(h.current=ee[Y],ee[Y]=null,Y--)}function ne(h,m){Y++,ee[Y]=h.current,h.current=m}var oe=F(null),ae=F(null),me=F(null),Q=F(null);function Ee(h,m){switch(ne(me,m),ne(ae,h),ne(oe,null),m.nodeType){case 9:case 11:h=(h=m.documentElement)&&(h=h.namespaceURI)?Q5(h):0;break;default:if(h=m.tagName,m=m.namespaceURI)m=Q5(m),h=J5(m,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}V(oe),ne(oe,h)}function he(){V(oe),V(ae),V(me)}function fe(h){h.memoizedState!==null&&ne(Q,h);var m=oe.current,_=J5(m,h.type);m!==_&&(ne(ae,h),ne(oe,_))}function pe(h){ae.current===h&&(V(oe),V(ae)),Q.current===h&&(V(Q),mx._currentValue=J)}var le,Qe;function B(h){if(le===void 0)try{throw Error()}catch(_){var m=_.stack.trim().match(/\n( *(at )?)/);le=m&&m[1]||"",Qe=-1<_.stack.indexOf(` +function gie(t,e){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var Ev=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var zA={exports:{}},bx={};var CF;function xie(){if(CF)return bx;CF=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(r,i,a){var o=null;if(a!==void 0&&(o=""+a),i.key!==void 0&&(o=""+i.key),"key"in i){a={};for(var l in i)l!=="key"&&(a[l]=i[l])}else a=i;return i=a.ref,{$$typeof:t,type:r,key:o,ref:i!==void 0?i:null,props:a}}return bx.Fragment=e,bx.jsx=n,bx.jsxs=n,bx}var kF;function bie(){return kF||(kF=1,zA.exports=xie()),zA.exports}var s=bie(),BA={exports:{}},ln={};var PF;function yie(){if(PF)return ln;PF=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),g=Symbol.iterator;function p(F){return F===null||typeof F!="object"?null:(F=g&&F[g]||F["@@iterator"],typeof F=="function"?F:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,x={};function y(F,V,ne){this.props=F,this.context=V,this.refs=x,this.updater=ne||b}y.prototype.isReactComponent={},y.prototype.setState=function(F,V){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,V,"setState")},y.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function E(){}E.prototype=y.prototype;function w(F,V,ne){this.props=F,this.context=V,this.refs=x,this.updater=ne||b}var N=w.prototype=new E;N.constructor=w,v(N,y.prototype),N.isPureReactComponent=!0;var A=Array.isArray;function C(){}var T={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function k(F,V,ne){var oe=ne.ref;return{$$typeof:t,type:F,key:V,ref:oe!==void 0?oe:null,props:ne}}function j(F,V){return k(F.type,V,F.props)}function z(F){return typeof F=="object"&&F!==null&&F.$$typeof===t}function I(F){var V={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(ne){return V[ne]})}var W=/\/+/g;function R(F,V){return typeof F=="object"&&F!==null&&F.key!=null?I(""+F.key):V.toString(36)}function q(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(C,C):(F.status="pending",F.then(function(V){F.status==="pending"&&(F.status="fulfilled",F.value=V)},function(V){F.status==="pending"&&(F.status="rejected",F.reason=V)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function K(F,V,ne,oe,ae){var me=typeof F;(me==="undefined"||me==="boolean")&&(F=null);var Q=!1;if(F===null)Q=!0;else switch(me){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(F.$$typeof){case t:case e:Q=!0;break;case d:return Q=F._init,K(Q(F._payload),V,ne,oe,ae)}}if(Q)return ae=ae(F),Q=oe===""?"."+R(F,0):oe,A(ae)?(ne="",Q!=null&&(ne=Q.replace(W,"$&/")+"/"),K(ae,V,ne,"",function(fe){return fe})):ae!=null&&(z(ae)&&(ae=j(ae,ne+(ae.key==null||F&&F.key===ae.key?"":(""+ae.key).replace(W,"$&/")+"/")+Q)),V.push(ae)),1;Q=0;var Ee=oe===""?".":oe+":";if(A(F))for(var he=0;he>>1,Y=K[ee];if(0>>1;eei(ne,J))oei(ae,ne)?(K[ee]=ae,K[oe]=J,ee=oe):(K[ee]=ne,K[V]=J,ee=V);else if(oei(ae,J))K[ee]=ae,K[oe]=J,ee=oe;else break e}}return G}function i(K,G){var J=K.sortIndex-G.sortIndex;return J!==0?J:K.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,g=3,p=!1,b=!1,v=!1,x=!1,y=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function N(K){for(var G=n(u);G!==null;){if(G.callback===null)r(u);else if(G.startTime<=K)r(u),G.sortIndex=G.expirationTime,e(c,G);else break;G=n(u)}}function A(K){if(v=!1,N(K),!b)if(n(c)!==null)b=!0,C||(C=!0,I());else{var G=n(u);G!==null&&q(A,G.startTime-K)}}var C=!1,T=-1,O=5,k=-1;function j(){return x?!0:!(t.unstable_now()-kK&&j());){var ee=f.callback;if(typeof ee=="function"){f.callback=null,g=f.priorityLevel;var Y=ee(f.expirationTime<=K);if(K=t.unstable_now(),typeof Y=="function"){f.callback=Y,N(K),G=!0;break t}f===n(c)&&r(c),N(K)}else r(c);f=n(c)}if(f!==null)G=!0;else{var F=n(u);F!==null&&q(A,F.startTime-K),G=!1}}break e}finally{f=null,g=J,p=!1}G=void 0}}finally{G?I():C=!1}}}var I;if(typeof w=="function")I=function(){w(z)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,R=W.port2;W.port1.onmessage=z,I=function(){R.postMessage(null)}}else I=function(){y(z,0)};function q(K,G){T=y(function(){K(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(K){K.callback=null},t.unstable_forceFrameRate=function(K){0>K||125ee?(K.sortIndex=J,e(u,K),n(c)===null&&K===n(u)&&(v?(E(T),T=-1):v=!0,q(A,J-ee))):(K.sortIndex=Y,e(c,K),b||p||(b=!0,C||(C=!0,I()))),K},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(K){var G=g;return function(){var J=g;g=G;try{return K.apply(this,arguments)}finally{g=J}}}})(VA)),VA}var DF;function wie(){return DF||(DF=1,$A.exports=_ie()),$A.exports}var GA={exports:{}},ha={};var OF;function Sie(){if(OF)return ha;OF=1;var t=rg();function e(c){var u="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),GA.exports=Sie(),GA.exports}var IF;function Mie(){if(IF)return yx;IF=1;var t=wie(),e=rg(),n=r9();function r(h){var m="https://react.dev/errors/"+h;if(1Y||(h.current=ee[Y],ee[Y]=null,Y--)}function ne(h,m){Y++,ee[Y]=h.current,h.current=m}var oe=F(null),ae=F(null),me=F(null),Q=F(null);function Ee(h,m){switch(ne(me,m),ne(ae,h),ne(oe,null),m.nodeType){case 9:case 11:h=(h=m.documentElement)&&(h=h.namespaceURI)?Q5(h):0;break;default:if(h=m.tagName,m=m.namespaceURI)m=Q5(m),h=J5(m,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}V(oe),ne(oe,h)}function he(){V(oe),V(ae),V(me)}function fe(h){h.memoizedState!==null&&ne(Q,h);var m=oe.current,_=J5(m,h.type);m!==_&&(ne(ae,h),ne(oe,_))}function pe(h){ae.current===h&&(V(oe),V(ae)),Q.current===h&&(V(Q),mx._currentValue=J)}var le,Qe;function B(h){if(le===void 0)try{throw Error()}catch(_){var m=_.stack.trim().match(/\n( *(at )?)/);le=m&&m[1]||"",Qe=-1<_.stack.indexOf(` at`)?" ()":-1<_.stack.indexOf("@")?"@unknown:0:0":""}return` `+le+h+Qe}var $=!1;function ie(h,m){if(!h||$)return"";$=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(m){var ft=function(){throw Error()};if(Object.defineProperty(ft.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ft,[])}catch(ot){var nt=ot}Reflect.construct(h,[],ft)}else{try{ft.call()}catch(ot){nt=ot}h.call(ft.prototype)}}else{try{throw Error()}catch(ot){nt=ot}(ft=h())&&typeof ft.catch=="function"&&ft.catch(function(){})}}catch(ot){if(ot&&nt&&typeof ot.stack=="string")return[ot.stack,nt.stack]}return[null,null]}};M.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var P=Object.getOwnPropertyDescriptor(M.DetermineComponentFrameRoot,"name");P&&P.configurable&&Object.defineProperty(M.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var D=M.DetermineComponentFrameRoot(),X=D[0],ue=D[1];if(X&&ue){var Pe=X.split(` `),et=ue.split(` `);for(P=M=0;MP||Pe[M]!==et[P]){var ut=` `+Pe[M].replace(" at new "," at ");return h.displayName&&ut.includes("")&&(ut=ut.replace("",h.displayName)),ut}while(1<=M&&0<=P);break}}}finally{$=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function H(h,m){switch(h.tag){case 26:case 27:case 5:return B(h.type);case 16:return B("Lazy");case 13:return h.child!==m&&m!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return ie(h.type,!1);case 11:return ie(h.type.render,!1);case 1:return ie(h.type,!0);case 31:return B("Activity");default:return""}}function Z(h){try{var m="",_=null;do m+=H(h,_),_=h,h=h.return;while(h);return m}catch(M){return` Error generating stack: `+M.message+` -`+M.stack}}var se=Object.prototype.hasOwnProperty,we=t.unstable_scheduleCallback,ke=t.unstable_cancelCallback,Me=t.unstable_shouldYield,U=t.unstable_requestPaint,L=t.unstable_now,te=t.unstable_getCurrentPriorityLevel,ve=t.unstable_ImmediatePriority,Ae=t.unstable_UserBlockingPriority,ye=t.unstable_NormalPriority,qe=t.unstable_LowPriority,Ge=t.unstable_IdlePriority,Ke=t.log,ct=t.unstable_setDisableYieldValue,Ve=null,de=null;function xe(h){if(typeof Ke=="function"&&ct(h),de&&typeof de.setStrictMode=="function")try{de.setStrictMode(Ve,h)}catch{}}var Oe=Math.clz32?Math.clz32:ge,He=Math.log,it=Math.LN2;function ge(h){return h>>>=0,h===0?32:31-(He(h)/it|0)|0}var rt=256,be=262144,Be=4194304;function Re(h){var m=h&42;if(m!==0)return m;switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function Se(h,m,_){var M=h.pendingLanes;if(M===0)return 0;var P=0,D=h.suspendedLanes,X=h.pingedLanes;h=h.warmLanes;var ue=M&134217727;return ue!==0?(M=ue&~D,M!==0?P=Re(M):(X&=ue,X!==0?P=Re(X):_||(_=ue&~h,_!==0&&(P=Re(_))))):(ue=M&~D,ue!==0?P=Re(ue):X!==0?P=Re(X):_||(_=M&~h,_!==0&&(P=Re(_)))),P===0?0:m!==0&&m!==P&&(m&D)===0&&(D=P&-P,_=m&-m,D>=_||D===32&&(_&4194048)!==0)?m:P}function Xe(h,m){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&m)===0}function ht(h,m){switch(h){case 1:case 2:case 4:case 8:case 64:return m+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return m+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function At(){var h=Be;return Be<<=1,(Be&62914560)===0&&(Be=4194304),h}function wt(h){for(var m=[],_=0;31>_;_++)m.push(h);return m}function Kt(h,m){h.pendingLanes|=m,m!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Ft(h,m,_,M,P,D){var X=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var ue=h.entanglements,Pe=h.expirationTimes,et=h.hiddenUpdates;for(_=X&~_;0<_;){var ut=31-Oe(_),ft=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var Xr=/[\n"\\]/g;function Gn(h){return h.replace(Xr,function(m){return"\\"+m.charCodeAt(0).toString(16)+" "})}function So(h,m,_,M,P,D,X,ue){h.name="",X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?h.type=X:h.removeAttribute("type"),m!=null?X==="number"?(m===0&&h.value===""||h.value!=m)&&(h.value=""+Mn(m)):h.value!==""+Mn(m)&&(h.value=""+Mn(m)):X!=="submit"&&X!=="reset"||h.removeAttribute("value"),m!=null?Oi(h,X,Mn(m)):_!=null?Oi(h,X,Mn(_)):M!=null&&h.removeAttribute("value"),P==null&&D!=null&&(h.defaultChecked=!!D),P!=null&&(h.checked=P&&typeof P!="function"&&typeof P!="symbol"),ue!=null&&typeof ue!="function"&&typeof ue!="symbol"&&typeof ue!="boolean"?h.name=""+Mn(ue):h.removeAttribute("name")}function Kn(h,m,_,M,P,D,X,ue){if(D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"&&(h.type=D),m!=null||_!=null){if(!(D!=="submit"&&D!=="reset"||m!=null)){on(h);return}_=_!=null?""+Mn(_):"",m=m!=null?""+Mn(m):_,ue||m===h.value||(h.value=m),h.defaultValue=m}M=M??P,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=ue?h.checked:!!M,h.defaultChecked=!!M,X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"&&(h.name=X),on(h)}function Oi(h,m,_){m==="number"&&Ur(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function gi(h,m,_,M){if(h=h.options,m){m={};for(var P=0;P<_.length;P++)m["$"+_[P]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),zE=!1;if(Bl)try{var jg={};Object.defineProperty(jg,"passive",{get:function(){zE=!0}}),window.addEventListener("test",jg,jg),window.removeEventListener("test",jg,jg)}catch{zE=!1}var au=null,BE=null,xy=null;function JL(){if(xy)return xy;var h,m=BE,_=m.length,M,P="value"in au?au.value:au.textContent,D=P.length;for(h=0;h<_&&m[h]===P[h];h++);var X=_-h;for(M=1;M<=X&&m[_-M]===P[D-M];M++);return xy=P.slice(h,1=Og),a4=" ",s4=!1;function o4(h,m){switch(h){case"keyup":return Fne.indexOf(m.keyCode)!==-1;case"keydown":return m.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function l4(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var Of=!1;function zne(h,m){switch(h){case"compositionend":return l4(m);case"keypress":return m.which!==32?null:(s4=!0,a4);case"textInput":return h=m.data,h===a4&&s4?null:h;default:return null}}function Bne(h,m){if(Of)return h==="compositionend"||!WE&&o4(h,m)?(h=JL(),xy=BE=au=null,Of=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(m.ctrlKey||m.altKey||m.metaKey)||m.ctrlKey&&m.altKey){if(m.char&&1=m)return{node:_,offset:m-h};h=M}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=g4(_)}}function b4(h,m){return h&&m?h===m?!0:h&&h.nodeType===3?!1:m&&m.nodeType===3?b4(h,m.parentNode):"contains"in h?h.contains(m):h.compareDocumentPosition?!!(h.compareDocumentPosition(m)&16):!1:!1}function y4(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var m=Ur(h.document);m instanceof h.HTMLIFrameElement;){try{var _=typeof m.contentWindow.location.href=="string"}catch{_=!1}if(_)h=m.contentWindow;else break;m=Ur(h.document)}return m}function XE(h){var m=h&&h.nodeName&&h.nodeName.toLowerCase();return m&&(m==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||m==="textarea"||h.contentEditable==="true")}var Xne=Bl&&"documentMode"in document&&11>=document.documentMode,Lf=null,YE=null,Ug=null,ZE=!1;function v4(h,m,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;ZE||Lf==null||Lf!==Ur(M)||(M=Lf,"selectionStart"in M&&XE(M)?M={start:M.selectionStart,end:M.selectionEnd}:(M=(M.ownerDocument&&M.ownerDocument.defaultView||window).getSelection(),M={anchorNode:M.anchorNode,anchorOffset:M.anchorOffset,focusNode:M.focusNode,focusOffset:M.focusOffset}),Ug&&Fg(Ug,M)||(Ug=M,M=uv(YE,"onSelect"),0>=X,P-=X,el=1<<32-Oe(m)+P|_<mn?(Rn=zt,zt=null):Rn=zt.sibling;var Un=nt($e,zt,Je[mn],dt);if(Un===null){zt===null&&(zt=Rn);break}h&&zt&&Un.alternate===null&&m($e,zt),Le=D(Un,Le,mn),Fn===null?Gt=Un:Fn.sibling=Un,Fn=Un,zt=Rn}if(mn===Je.length)return _($e,zt),Dn&&$l($e,mn),Gt;if(zt===null){for(;mnmn?(Rn=zt,zt=null):Rn=zt.sibling;var Tu=nt($e,zt,Un.value,dt);if(Tu===null){zt===null&&(zt=Rn);break}h&&zt&&Tu.alternate===null&&m($e,zt),Le=D(Tu,Le,mn),Fn===null?Gt=Tu:Fn.sibling=Tu,Fn=Tu,zt=Rn}if(Un.done)return _($e,zt),Dn&&$l($e,mn),Gt;if(zt===null){for(;!Un.done;mn++,Un=Je.next())Un=ft($e,Un.value,dt),Un!==null&&(Le=D(Un,Le,mn),Fn===null?Gt=Un:Fn.sibling=Un,Fn=Un);return Dn&&$l($e,mn),Gt}for(zt=M(zt);!Un.done;mn++,Un=Je.next())Un=ot(zt,$e,mn,Un.value,dt),Un!==null&&(h&&Un.alternate!==null&&zt.delete(Un.key===null?mn:Un.key),Le=D(Un,Le,mn),Fn===null?Gt=Un:Fn.sibling=Un,Fn=Un);return h&&zt.forEach(function(pie){return m($e,pie)}),Dn&&$l($e,mn),Gt}function ir($e,Le,Je,dt){if(typeof Je=="object"&&Je!==null&&Je.type===v&&Je.key===null&&(Je=Je.props.children),typeof Je=="object"&&Je!==null){switch(Je.$$typeof){case p:e:{for(var Gt=Je.key;Le!==null;){if(Le.key===Gt){if(Gt=Je.type,Gt===v){if(Le.tag===7){_($e,Le.sibling),dt=P(Le,Je.props.children),dt.return=$e,$e=dt;break e}}else if(Le.elementType===Gt||typeof Gt=="object"&&Gt!==null&&Gt.$$typeof===O&&eh(Gt)===Le.type){_($e,Le.sibling),dt=P(Le,Je.props),Gg(dt,Je),dt.return=$e,$e=dt;break e}_($e,Le);break}else m($e,Le);Le=Le.sibling}Je.type===v?(dt=Xd(Je.props.children,$e.mode,dt,Je.key),dt.return=$e,$e=dt):(dt=Ty(Je.type,Je.key,Je.props,null,$e.mode,dt),Gg(dt,Je),dt.return=$e,$e=dt)}return X($e);case b:e:{for(Gt=Je.key;Le!==null;){if(Le.key===Gt)if(Le.tag===4&&Le.stateNode.containerInfo===Je.containerInfo&&Le.stateNode.implementation===Je.implementation){_($e,Le.sibling),dt=P(Le,Je.children||[]),dt.return=$e,$e=dt;break e}else{_($e,Le);break}else m($e,Le);Le=Le.sibling}dt=i2(Je,$e.mode,dt),dt.return=$e,$e=dt}return X($e);case O:return Je=eh(Je),ir($e,Le,Je,dt)}if(q(Je))return It($e,Le,Je,dt);if(I(Je)){if(Gt=I(Je),typeof Gt!="function")throw Error(r(150));return Je=Gt.call(Je),Yt($e,Le,Je,dt)}if(typeof Je.then=="function")return ir($e,Le,Dy(Je),dt);if(Je.$$typeof===w)return ir($e,Le,ky($e,Je),dt);Oy($e,Je)}return typeof Je=="string"&&Je!==""||typeof Je=="number"||typeof Je=="bigint"?(Je=""+Je,Le!==null&&Le.tag===6?(_($e,Le.sibling),dt=P(Le,Je),dt.return=$e,$e=dt):(_($e,Le),dt=r2(Je,$e.mode,dt),dt.return=$e,$e=dt),X($e)):_($e,Le)}return function($e,Le,Je,dt){try{Vg=0;var Gt=ir($e,Le,Je,dt);return qf=null,Gt}catch(zt){if(zt===Wf||zt===jy)throw zt;var Fn=ps(29,zt,null,$e.mode);return Fn.lanes=dt,Fn.return=$e,Fn}finally{}}}var nh=$4(!0),V4=$4(!1),uu=!1;function g2(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function x2(h,m){h=h.updateQueue,m.updateQueue===h&&(m.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function du(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function hu(h,m,_){var M=h.updateQueue;if(M===null)return null;if(M=M.shared,($n&2)!==0){var P=M.pending;return P===null?m.next=m:(m.next=P.next,P.next=m),M.pending=m,m=Ay(h),T4(h,null,_),m}return Ey(h,M,m,_),Ay(h)}function Wg(h,m,_){if(m=m.updateQueue,m!==null&&(m=m.shared,(_&4194048)!==0)){var M=m.lanes;M&=h.pendingLanes,_|=M,m.lanes=_,Hn(h,_)}}function b2(h,m){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var P=null,D=null;if(_=_.firstBaseUpdate,_!==null){do{var X={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};D===null?P=D=X:D=D.next=X,_=_.next}while(_!==null);D===null?P=D=m:D=D.next=m}else P=D=m;_={baseState:M.baseState,firstBaseUpdate:P,lastBaseUpdate:D,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=m:h.next=m,_.lastBaseUpdate=m}var y2=!1;function qg(){if(y2){var h=Gf;if(h!==null)throw h}}function Kg(h,m,_,M){y2=!1;var P=h.updateQueue;uu=!1;var D=P.firstBaseUpdate,X=P.lastBaseUpdate,ue=P.shared.pending;if(ue!==null){P.shared.pending=null;var Pe=ue,et=Pe.next;Pe.next=null,X===null?D=et:X.next=et,X=Pe;var ut=h.alternate;ut!==null&&(ut=ut.updateQueue,ue=ut.lastBaseUpdate,ue!==X&&(ue===null?ut.firstBaseUpdate=et:ue.next=et,ut.lastBaseUpdate=Pe))}if(D!==null){var ft=P.baseState;X=0,ut=et=Pe=null,ue=D;do{var nt=ue.lane&-536870913,ot=nt!==ue.lane;if(ot?(jn&nt)===nt:(M&nt)===nt){nt!==0&&nt===Vf&&(y2=!0),ut!==null&&(ut=ut.next={lane:0,tag:ue.tag,payload:ue.payload,callback:null,next:null});e:{var It=h,Yt=ue;nt=m;var ir=_;switch(Yt.tag){case 1:if(It=Yt.payload,typeof It=="function"){ft=It.call(ir,ft,nt);break e}ft=It;break e;case 3:It.flags=It.flags&-65537|128;case 0:if(It=Yt.payload,nt=typeof It=="function"?It.call(ir,ft,nt):It,nt==null)break e;ft=f({},ft,nt);break e;case 2:uu=!0}}nt=ue.callback,nt!==null&&(h.flags|=64,ot&&(h.flags|=8192),ot=P.callbacks,ot===null?P.callbacks=[nt]:ot.push(nt))}else ot={lane:nt,tag:ue.tag,payload:ue.payload,callback:ue.callback,next:null},ut===null?(et=ut=ot,Pe=ft):ut=ut.next=ot,X|=nt;if(ue=ue.next,ue===null){if(ue=P.shared.pending,ue===null)break;ot=ue,ue=ot.next,ot.next=null,P.lastBaseUpdate=ot,P.shared.pending=null}}while(!0);ut===null&&(Pe=ft),P.baseState=Pe,P.firstBaseUpdate=et,P.lastBaseUpdate=ut,D===null&&(P.shared.lanes=0),xu|=X,h.lanes=X,h.memoizedState=ft}}function G4(h,m){if(typeof h!="function")throw Error(r(191,h));h.call(m)}function W4(h,m){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)G4(_[h],m)}var Kf=F(null),Ly=F(0);function q4(h,m){h=ec,ne(Ly,h),ne(Kf,m),ec=h|m.baseLanes}function v2(){ne(Ly,ec),ne(Kf,Kf.current)}function _2(){ec=Ly.current,V(Kf),V(Ly)}var gs=F(null),Hs=null;function fu(h){var m=h.alternate;ne(Yr,Yr.current&1),ne(gs,h),Hs===null&&(m===null||Kf.current!==null||m.memoizedState!==null)&&(Hs=h)}function w2(h){ne(Yr,Yr.current),ne(gs,h),Hs===null&&(Hs=h)}function K4(h){h.tag===22?(ne(Yr,Yr.current),ne(gs,h),Hs===null&&(Hs=h)):mu()}function mu(){ne(Yr,Yr.current),ne(gs,gs.current)}function xs(h){V(gs),Hs===h&&(Hs=null),V(Yr)}var Yr=F(0);function Iy(h){for(var m=h;m!==null;){if(m.tag===13){var _=m.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||NA(_)||CA(_)))return m}else if(m.tag===19&&(m.memoizedProps.revealOrder==="forwards"||m.memoizedProps.revealOrder==="backwards"||m.memoizedProps.revealOrder==="unstable_legacy-backwards"||m.memoizedProps.revealOrder==="together")){if((m.flags&128)!==0)return m}else if(m.child!==null){m.child.return=m,m=m.child;continue}if(m===h)break;for(;m.sibling===null;){if(m.return===null||m.return===h)return null;m=m.return}m.sibling.return=m.return,m=m.sibling}return null}var Wl=0,dn=null,nr=null,ii=null,Fy=!1,Xf=!1,rh=!1,Uy=0,Xg=0,Yf=null,are=0;function zr(){throw Error(r(321))}function S2(h,m){if(m===null)return!1;for(var _=0;_D?D:8;var X=K.T,ue={};K.T=ue,F2(h,!1,m,_);try{var Pe=P(),et=K.S;if(et!==null&&et(ue,Pe),Pe!==null&&typeof Pe=="object"&&typeof Pe.then=="function"){var ut=ire(Pe,M);Zg(h,m,ut,vs(h))}else Zg(h,m,M,vs(h))}catch(ft){Zg(h,m,{then:function(){},status:"rejected",reason:ft},vs())}finally{G.p=D,X!==null&&ue.types!==null&&(X.types=ue.types),K.T=X}}function ure(){}function L2(h,m,_,M){if(h.tag!==5)throw Error(r(476));var P=MI(h).queue;SI(h,P,m,J,_===null?ure:function(){return EI(h),_(M)})}function MI(h){var m=h.memoizedState;if(m!==null)return m;m={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ql,lastRenderedState:J},next:null};var _={};return m.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ql,lastRenderedState:_},next:null},h.memoizedState=m,h=h.alternate,h!==null&&(h.memoizedState=m),m}function EI(h){var m=MI(h);m.next===null&&(m=h.alternate.memoizedState),Zg(h,m.next.queue,{},vs())}function I2(){return Qi(mx)}function AI(){return Zr().memoizedState}function TI(){return Zr().memoizedState}function dre(h){for(var m=h.return;m!==null;){switch(m.tag){case 24:case 3:var _=vs();h=du(_);var M=hu(m,h,_);M!==null&&(Ka(M,m,_),Wg(M,m,_)),m={cache:h2()},h.payload=m;return}m=m.return}}function hre(h,m,_){var M=vs();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},Gy(h)?CI(m,_):(_=t2(h,m,_,M),_!==null&&(Ka(_,h,M),kI(_,m,M)))}function NI(h,m,_){var M=vs();Zg(h,m,_,M)}function Zg(h,m,_,M){var P={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if(Gy(h))CI(m,P);else{var D=h.alternate;if(h.lanes===0&&(D===null||D.lanes===0)&&(D=m.lastRenderedReducer,D!==null))try{var X=m.lastRenderedState,ue=D(X,_);if(P.hasEagerState=!0,P.eagerState=ue,ms(ue,X))return Ey(h,m,P,0),fr===null&&My(),!1}catch{}finally{}if(_=t2(h,m,P,M),_!==null)return Ka(_,h,M),kI(_,m,M),!0}return!1}function F2(h,m,_,M){if(M={lane:2,revertLane:gA(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},Gy(h)){if(m)throw Error(r(479))}else m=t2(h,_,M,2),m!==null&&Ka(m,h,2)}function Gy(h){var m=h.alternate;return h===dn||m!==null&&m===dn}function CI(h,m){Xf=Fy=!0;var _=h.pending;_===null?m.next=m:(m.next=_.next,_.next=m),h.pending=m}function kI(h,m,_){if((_&4194048)!==0){var M=m.lanes;M&=h.pendingLanes,_|=M,m.lanes=_,Hn(h,_)}}var Qg={readContext:Qi,use:By,useCallback:zr,useContext:zr,useEffect:zr,useImperativeHandle:zr,useLayoutEffect:zr,useInsertionEffect:zr,useMemo:zr,useReducer:zr,useRef:zr,useState:zr,useDebugValue:zr,useDeferredValue:zr,useTransition:zr,useSyncExternalStore:zr,useId:zr,useHostTransitionStatus:zr,useFormState:zr,useActionState:zr,useOptimistic:zr,useMemoCache:zr,useCacheRefresh:zr};Qg.useEffectEvent=zr;var PI={readContext:Qi,use:By,useCallback:function(h,m){return Ta().memoizedState=[h,m===void 0?null:m],h},useContext:Qi,useEffect:mI,useImperativeHandle:function(h,m,_){_=_!=null?_.concat([h]):null,$y(4194308,4,bI.bind(null,m,h),_)},useLayoutEffect:function(h,m){return $y(4194308,4,h,m)},useInsertionEffect:function(h,m){$y(4,2,h,m)},useMemo:function(h,m){var _=Ta();m=m===void 0?null:m;var M=h();if(rh){xe(!0);try{h()}finally{xe(!1)}}return _.memoizedState=[M,m],M},useReducer:function(h,m,_){var M=Ta();if(_!==void 0){var P=_(m);if(rh){xe(!0);try{_(m)}finally{xe(!1)}}}else P=m;return M.memoizedState=M.baseState=P,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:P},M.queue=h,h=h.dispatch=hre.bind(null,dn,h),[M.memoizedState,h]},useRef:function(h){var m=Ta();return h={current:h},m.memoizedState=h},useState:function(h){h=P2(h);var m=h.queue,_=NI.bind(null,dn,m);return m.dispatch=_,[h.memoizedState,_]},useDebugValue:D2,useDeferredValue:function(h,m){var _=Ta();return O2(_,h,m)},useTransition:function(){var h=P2(!1);return h=SI.bind(null,dn,h.queue,!0,!1),Ta().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,m,_){var M=dn,P=Ta();if(Dn){if(_===void 0)throw Error(r(407));_=_()}else{if(_=m(),fr===null)throw Error(r(349));(jn&127)!==0||Q4(M,m,_)}P.memoizedState=_;var D={value:_,getSnapshot:m};return P.queue=D,mI(eI.bind(null,M,D,h),[h]),M.flags|=2048,Zf(9,{destroy:void 0},J4.bind(null,M,D,_,m),null),_},useId:function(){var h=Ta(),m=fr.identifierPrefix;if(Dn){var _=tl,M=el;_=(M&~(1<<32-Oe(M)-1)).toString(32)+_,m="_"+m+"R_"+_,_=Uy++,0<_&&(m+="H"+_.toString(32)),m+="_"}else _=are++,m="_"+m+"r_"+_.toString(32)+"_";return h.memoizedState=m},useHostTransitionStatus:I2,useFormState:cI,useActionState:cI,useOptimistic:function(h){var m=Ta();m.memoizedState=m.baseState=h;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return m.queue=_,m=F2.bind(null,dn,!0,_),_.dispatch=m,[h,m]},useMemoCache:N2,useCacheRefresh:function(){return Ta().memoizedState=dre.bind(null,dn)},useEffectEvent:function(h){var m=Ta(),_={impl:h};return m.memoizedState=_,function(){if(($n&2)!==0)throw Error(r(440));return _.impl.apply(void 0,arguments)}}},U2={readContext:Qi,use:By,useCallback:vI,useContext:Qi,useEffect:R2,useImperativeHandle:yI,useInsertionEffect:gI,useLayoutEffect:xI,useMemo:_I,useReducer:Hy,useRef:fI,useState:function(){return Hy(ql)},useDebugValue:D2,useDeferredValue:function(h,m){var _=Zr();return wI(_,nr.memoizedState,h,m)},useTransition:function(){var h=Hy(ql)[0],m=Zr().memoizedState;return[typeof h=="boolean"?h:Yg(h),m]},useSyncExternalStore:Z4,useId:AI,useHostTransitionStatus:I2,useFormState:uI,useActionState:uI,useOptimistic:function(h,m){var _=Zr();return rI(_,nr,h,m)},useMemoCache:N2,useCacheRefresh:TI};U2.useEffectEvent=pI;var jI={readContext:Qi,use:By,useCallback:vI,useContext:Qi,useEffect:R2,useImperativeHandle:yI,useInsertionEffect:gI,useLayoutEffect:xI,useMemo:_I,useReducer:k2,useRef:fI,useState:function(){return k2(ql)},useDebugValue:D2,useDeferredValue:function(h,m){var _=Zr();return nr===null?O2(_,h,m):wI(_,nr.memoizedState,h,m)},useTransition:function(){var h=k2(ql)[0],m=Zr().memoizedState;return[typeof h=="boolean"?h:Yg(h),m]},useSyncExternalStore:Z4,useId:AI,useHostTransitionStatus:I2,useFormState:hI,useActionState:hI,useOptimistic:function(h,m){var _=Zr();return nr!==null?rI(_,nr,h,m):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:N2,useCacheRefresh:TI};jI.useEffectEvent=pI;function z2(h,m,_,M){m=h.memoizedState,_=_(M,m),_=_==null?m:f({},m,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var B2={enqueueSetState:function(h,m,_){h=h._reactInternals;var M=vs(),P=du(M);P.payload=m,_!=null&&(P.callback=_),m=hu(h,P,M),m!==null&&(Ka(m,h,M),Wg(m,h,M))},enqueueReplaceState:function(h,m,_){h=h._reactInternals;var M=vs(),P=du(M);P.tag=1,P.payload=m,_!=null&&(P.callback=_),m=hu(h,P,M),m!==null&&(Ka(m,h,M),Wg(m,h,M))},enqueueForceUpdate:function(h,m){h=h._reactInternals;var _=vs(),M=du(_);M.tag=2,m!=null&&(M.callback=m),m=hu(h,M,_),m!==null&&(Ka(m,h,_),Wg(m,h,_))}};function RI(h,m,_,M,P,D,X){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,D,X):m.prototype&&m.prototype.isPureReactComponent?!Fg(_,M)||!Fg(P,D):!0}function DI(h,m,_,M){h=m.state,typeof m.componentWillReceiveProps=="function"&&m.componentWillReceiveProps(_,M),typeof m.UNSAFE_componentWillReceiveProps=="function"&&m.UNSAFE_componentWillReceiveProps(_,M),m.state!==h&&B2.enqueueReplaceState(m,m.state,null)}function ih(h,m){var _=m;if("ref"in m){_={};for(var M in m)M!=="ref"&&(_[M]=m[M])}if(h=h.defaultProps){_===m&&(_=f({},_));for(var P in h)_[P]===void 0&&(_[P]=h[P])}return _}function OI(h){Sy(h)}function LI(h){console.error(h)}function II(h){Sy(h)}function Wy(h,m){try{var _=h.onUncaughtError;_(m.value,{componentStack:m.stack})}catch(M){setTimeout(function(){throw M})}}function FI(h,m,_){try{var M=h.onCaughtError;M(_.value,{componentStack:_.stack,errorBoundary:m.tag===1?m.stateNode:null})}catch(P){setTimeout(function(){throw P})}}function H2(h,m,_){return _=du(_),_.tag=3,_.payload={element:null},_.callback=function(){Wy(h,m)},_}function UI(h){return h=du(h),h.tag=3,h}function zI(h,m,_,M){var P=_.type.getDerivedStateFromError;if(typeof P=="function"){var D=M.value;h.payload=function(){return P(D)},h.callback=function(){FI(m,_,M)}}var X=_.stateNode;X!==null&&typeof X.componentDidCatch=="function"&&(h.callback=function(){FI(m,_,M),typeof P!="function"&&(bu===null?bu=new Set([this]):bu.add(this));var ue=M.stack;this.componentDidCatch(M.value,{componentStack:ue!==null?ue:""})})}function fre(h,m,_,M,P){if(_.flags|=32768,M!==null&&typeof M=="object"&&typeof M.then=="function"){if(m=_.alternate,m!==null&&$f(m,_,P,!0),_=gs.current,_!==null){switch(_.tag){case 31:case 13:return Hs===null?iv():_.alternate===null&&Br===0&&(Br=3),_.flags&=-257,_.flags|=65536,_.lanes=P,M===Ry?_.flags|=16384:(m=_.updateQueue,m===null?_.updateQueue=new Set([M]):m.add(M),fA(h,M,P)),!1;case 22:return _.flags|=65536,M===Ry?_.flags|=16384:(m=_.updateQueue,m===null?(m={transitions:null,markerInstances:null,retryQueue:new Set([M])},_.updateQueue=m):(_=m.retryQueue,_===null?m.retryQueue=new Set([M]):_.add(M)),fA(h,M,P)),!1}throw Error(r(435,_.tag))}return fA(h,M,P),iv(),!1}if(Dn)return m=gs.current,m!==null?((m.flags&65536)===0&&(m.flags|=256),m.flags|=65536,m.lanes=P,M!==o2&&(h=Error(r(422),{cause:M}),Bg(Fs(h,_)))):(M!==o2&&(m=Error(r(423),{cause:M}),Bg(Fs(m,_))),h=h.current.alternate,h.flags|=65536,P&=-P,h.lanes|=P,M=Fs(M,_),P=H2(h.stateNode,M,P),b2(h,P),Br!==4&&(Br=2)),!1;var D=Error(r(520),{cause:M});if(D=Fs(D,_),sx===null?sx=[D]:sx.push(D),Br!==4&&(Br=2),m===null)return!0;M=Fs(M,_),_=m;do{switch(_.tag){case 3:return _.flags|=65536,h=P&-P,_.lanes|=h,h=H2(_.stateNode,M,h),b2(_,h),!1;case 1:if(m=_.type,D=_.stateNode,(_.flags&128)===0&&(typeof m.getDerivedStateFromError=="function"||D!==null&&typeof D.componentDidCatch=="function"&&(bu===null||!bu.has(D))))return _.flags|=65536,P&=-P,_.lanes|=P,P=UI(P),zI(P,h,_,M),b2(_,P),!1}_=_.return}while(_!==null);return!1}var $2=Error(r(461)),ai=!1;function Ji(h,m,_,M){m.child=h===null?V4(m,null,_,M):nh(m,h.child,_,M)}function BI(h,m,_,M,P){_=_.render;var D=m.ref;if("ref"in M){var X={};for(var ue in M)ue!=="ref"&&(X[ue]=M[ue])}else X=M;return Qd(m),M=M2(h,m,_,X,D,P),ue=E2(),h!==null&&!ai?(A2(h,m,P),Kl(h,m,P)):(Dn&&ue&&a2(m),m.flags|=1,Ji(h,m,M,P),m.child)}function HI(h,m,_,M,P){if(h===null){var D=_.type;return typeof D=="function"&&!n2(D)&&D.defaultProps===void 0&&_.compare===null?(m.tag=15,m.type=D,$I(h,m,D,M,P)):(h=Ty(_.type,null,M,m,m.mode,P),h.ref=m.ref,h.return=m,m.child=h)}if(D=h.child,!Z2(h,P)){var X=D.memoizedProps;if(_=_.compare,_=_!==null?_:Fg,_(X,M)&&h.ref===m.ref)return Kl(h,m,P)}return m.flags|=1,h=Hl(D,M),h.ref=m.ref,h.return=m,m.child=h}function $I(h,m,_,M,P){if(h!==null){var D=h.memoizedProps;if(Fg(D,M)&&h.ref===m.ref)if(ai=!1,m.pendingProps=M=D,Z2(h,P))(h.flags&131072)!==0&&(ai=!0);else return m.lanes=h.lanes,Kl(h,m,P)}return V2(h,m,_,M,P)}function VI(h,m,_,M){var P=M.children,D=h!==null?h.memoizedState:null;if(h===null&&m.stateNode===null&&(m.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),M.mode==="hidden"){if((m.flags&128)!==0){if(D=D!==null?D.baseLanes|_:_,h!==null){for(M=m.child=h.child,P=0;M!==null;)P=P|M.lanes|M.childLanes,M=M.sibling;M=P&~D}else M=0,m.child=null;return GI(h,m,D,_,M)}if((_&536870912)!==0)m.memoizedState={baseLanes:0,cachePool:null},h!==null&&Py(m,D!==null?D.cachePool:null),D!==null?q4(m,D):v2(),K4(m);else return M=m.lanes=536870912,GI(h,m,D!==null?D.baseLanes|_:_,_,M)}else D!==null?(Py(m,D.cachePool),q4(m,D),mu(),m.memoizedState=null):(h!==null&&Py(m,null),v2(),mu());return Ji(h,m,P,_),m.child}function Jg(h,m){return h!==null&&h.tag===22||m.stateNode!==null||(m.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),m.sibling}function GI(h,m,_,M,P){var D=m2();return D=D===null?null:{parent:ri._currentValue,pool:D},m.memoizedState={baseLanes:_,cachePool:D},h!==null&&Py(m,null),v2(),K4(m),h!==null&&$f(h,m,M,!0),m.childLanes=P,null}function qy(h,m){return m=Xy({mode:m.mode,children:m.children},h.mode),m.ref=h.ref,h.child=m,m.return=h,m}function WI(h,m,_){return nh(m,h.child,null,_),h=qy(m,m.pendingProps),h.flags|=2,xs(m),m.memoizedState=null,h}function mre(h,m,_){var M=m.pendingProps,P=(m.flags&128)!==0;if(m.flags&=-129,h===null){if(Dn){if(M.mode==="hidden")return h=qy(m,M),m.lanes=536870912,Jg(null,h);if(w2(m),(h=_r)?(h=iF(h,Bs),h=h!==null&&h.data==="&"?h:null,h!==null&&(m.memoizedState={dehydrated:h,treeContext:su!==null?{id:el,overflow:tl}:null,retryLane:536870912,hydrationErrors:null},_=C4(h),_.return=m,m.child=_,Zi=m,_r=null)):h=null,h===null)throw lu(m);return m.lanes=536870912,null}return qy(m,M)}var D=h.memoizedState;if(D!==null){var X=D.dehydrated;if(w2(m),P)if(m.flags&256)m.flags&=-257,m=WI(h,m,_);else if(m.memoizedState!==null)m.child=h.child,m.flags|=128,m=null;else throw Error(r(558));else if(ai||$f(h,m,_,!1),P=(_&h.childLanes)!==0,ai||P){if(M=fr,M!==null&&(X=yt(M,_),X!==0&&X!==D.retryLane))throw D.retryLane=X,Kd(h,X),Ka(M,h,X),$2;iv(),m=WI(h,m,_)}else h=D.treeContext,_r=$s(X.nextSibling),Zi=m,Dn=!0,ou=null,Bs=!1,h!==null&&j4(m,h),m=qy(m,M),m.flags|=4096;return m}return h=Hl(h.child,{mode:M.mode,children:M.children}),h.ref=m.ref,m.child=h,h.return=m,h}function Ky(h,m){var _=m.ref;if(_===null)h!==null&&h.ref!==null&&(m.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(r(284));(h===null||h.ref!==_)&&(m.flags|=4194816)}}function V2(h,m,_,M,P){return Qd(m),_=M2(h,m,_,M,void 0,P),M=E2(),h!==null&&!ai?(A2(h,m,P),Kl(h,m,P)):(Dn&&M&&a2(m),m.flags|=1,Ji(h,m,_,P),m.child)}function qI(h,m,_,M,P,D){return Qd(m),m.updateQueue=null,_=Y4(m,M,_,P),X4(h),M=E2(),h!==null&&!ai?(A2(h,m,D),Kl(h,m,D)):(Dn&&M&&a2(m),m.flags|=1,Ji(h,m,_,D),m.child)}function KI(h,m,_,M,P){if(Qd(m),m.stateNode===null){var D=Uf,X=_.contextType;typeof X=="object"&&X!==null&&(D=Qi(X)),D=new _(M,D),m.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=B2,m.stateNode=D,D._reactInternals=m,D=m.stateNode,D.props=M,D.state=m.memoizedState,D.refs={},g2(m),X=_.contextType,D.context=typeof X=="object"&&X!==null?Qi(X):Uf,D.state=m.memoizedState,X=_.getDerivedStateFromProps,typeof X=="function"&&(z2(m,_,X,M),D.state=m.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof D.getSnapshotBeforeUpdate=="function"||typeof D.UNSAFE_componentWillMount!="function"&&typeof D.componentWillMount!="function"||(X=D.state,typeof D.componentWillMount=="function"&&D.componentWillMount(),typeof D.UNSAFE_componentWillMount=="function"&&D.UNSAFE_componentWillMount(),X!==D.state&&B2.enqueueReplaceState(D,D.state,null),Kg(m,M,D,P),qg(),D.state=m.memoizedState),typeof D.componentDidMount=="function"&&(m.flags|=4194308),M=!0}else if(h===null){D=m.stateNode;var ue=m.memoizedProps,Pe=ih(_,ue);D.props=Pe;var et=D.context,ut=_.contextType;X=Uf,typeof ut=="object"&&ut!==null&&(X=Qi(ut));var ft=_.getDerivedStateFromProps;ut=typeof ft=="function"||typeof D.getSnapshotBeforeUpdate=="function",ue=m.pendingProps!==ue,ut||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(ue||et!==X)&&DI(m,D,M,X),uu=!1;var nt=m.memoizedState;D.state=nt,Kg(m,M,D,P),qg(),et=m.memoizedState,ue||nt!==et||uu?(typeof ft=="function"&&(z2(m,_,ft,M),et=m.memoizedState),(Pe=uu||RI(m,_,Pe,M,nt,et,X))?(ut||typeof D.UNSAFE_componentWillMount!="function"&&typeof D.componentWillMount!="function"||(typeof D.componentWillMount=="function"&&D.componentWillMount(),typeof D.UNSAFE_componentWillMount=="function"&&D.UNSAFE_componentWillMount()),typeof D.componentDidMount=="function"&&(m.flags|=4194308)):(typeof D.componentDidMount=="function"&&(m.flags|=4194308),m.memoizedProps=M,m.memoizedState=et),D.props=M,D.state=et,D.context=X,M=Pe):(typeof D.componentDidMount=="function"&&(m.flags|=4194308),M=!1)}else{D=m.stateNode,x2(h,m),X=m.memoizedProps,ut=ih(_,X),D.props=ut,ft=m.pendingProps,nt=D.context,et=_.contextType,Pe=Uf,typeof et=="object"&&et!==null&&(Pe=Qi(et)),ue=_.getDerivedStateFromProps,(et=typeof ue=="function"||typeof D.getSnapshotBeforeUpdate=="function")||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(X!==ft||nt!==Pe)&&DI(m,D,M,Pe),uu=!1,nt=m.memoizedState,D.state=nt,Kg(m,M,D,P),qg();var ot=m.memoizedState;X!==ft||nt!==ot||uu||h!==null&&h.dependencies!==null&&Cy(h.dependencies)?(typeof ue=="function"&&(z2(m,_,ue,M),ot=m.memoizedState),(ut=uu||RI(m,_,ut,M,nt,ot,Pe)||h!==null&&h.dependencies!==null&&Cy(h.dependencies))?(et||typeof D.UNSAFE_componentWillUpdate!="function"&&typeof D.componentWillUpdate!="function"||(typeof D.componentWillUpdate=="function"&&D.componentWillUpdate(M,ot,Pe),typeof D.UNSAFE_componentWillUpdate=="function"&&D.UNSAFE_componentWillUpdate(M,ot,Pe)),typeof D.componentDidUpdate=="function"&&(m.flags|=4),typeof D.getSnapshotBeforeUpdate=="function"&&(m.flags|=1024)):(typeof D.componentDidUpdate!="function"||X===h.memoizedProps&&nt===h.memoizedState||(m.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||X===h.memoizedProps&&nt===h.memoizedState||(m.flags|=1024),m.memoizedProps=M,m.memoizedState=ot),D.props=M,D.state=ot,D.context=Pe,M=ut):(typeof D.componentDidUpdate!="function"||X===h.memoizedProps&&nt===h.memoizedState||(m.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||X===h.memoizedProps&&nt===h.memoizedState||(m.flags|=1024),M=!1)}return D=M,Ky(h,m),M=(m.flags&128)!==0,D||M?(D=m.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:D.render(),m.flags|=1,h!==null&&M?(m.child=nh(m,h.child,null,P),m.child=nh(m,null,_,P)):Ji(h,m,_,P),m.memoizedState=D.state,h=m.child):h=Kl(h,m,P),h}function XI(h,m,_,M){return Yd(),m.flags|=256,Ji(h,m,_,M),m.child}var G2={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function W2(h){return{baseLanes:h,cachePool:F4()}}function q2(h,m,_){return h=h!==null?h.childLanes&~_:0,m&&(h|=ys),h}function YI(h,m,_){var M=m.pendingProps,P=!1,D=(m.flags&128)!==0,X;if((X=D)||(X=h!==null&&h.memoizedState===null?!1:(Yr.current&2)!==0),X&&(P=!0,m.flags&=-129),X=(m.flags&32)!==0,m.flags&=-33,h===null){if(Dn){if(P?fu(m):mu(),(h=_r)?(h=iF(h,Bs),h=h!==null&&h.data!=="&"?h:null,h!==null&&(m.memoizedState={dehydrated:h,treeContext:su!==null?{id:el,overflow:tl}:null,retryLane:536870912,hydrationErrors:null},_=C4(h),_.return=m,m.child=_,Zi=m,_r=null)):h=null,h===null)throw lu(m);return CA(h)?m.lanes=32:m.lanes=536870912,null}var ue=M.children;return M=M.fallback,P?(mu(),P=m.mode,ue=Xy({mode:"hidden",children:ue},P),M=Xd(M,P,_,null),ue.return=m,M.return=m,ue.sibling=M,m.child=ue,M=m.child,M.memoizedState=W2(_),M.childLanes=q2(h,X,_),m.memoizedState=G2,Jg(null,M)):(fu(m),K2(m,ue))}var Pe=h.memoizedState;if(Pe!==null&&(ue=Pe.dehydrated,ue!==null)){if(D)m.flags&256?(fu(m),m.flags&=-257,m=X2(h,m,_)):m.memoizedState!==null?(mu(),m.child=h.child,m.flags|=128,m=null):(mu(),ue=M.fallback,P=m.mode,M=Xy({mode:"visible",children:M.children},P),ue=Xd(ue,P,_,null),ue.flags|=2,M.return=m,ue.return=m,M.sibling=ue,m.child=M,nh(m,h.child,null,_),M=m.child,M.memoizedState=W2(_),M.childLanes=q2(h,X,_),m.memoizedState=G2,m=Jg(null,M));else if(fu(m),CA(ue)){if(X=ue.nextSibling&&ue.nextSibling.dataset,X)var et=X.dgst;X=et,M=Error(r(419)),M.stack="",M.digest=X,Bg({value:M,source:null,stack:null}),m=X2(h,m,_)}else if(ai||$f(h,m,_,!1),X=(_&h.childLanes)!==0,ai||X){if(X=fr,X!==null&&(M=yt(X,_),M!==0&&M!==Pe.retryLane))throw Pe.retryLane=M,Kd(h,M),Ka(X,h,M),$2;NA(ue)||iv(),m=X2(h,m,_)}else NA(ue)?(m.flags|=192,m.child=h.child,m=null):(h=Pe.treeContext,_r=$s(ue.nextSibling),Zi=m,Dn=!0,ou=null,Bs=!1,h!==null&&j4(m,h),m=K2(m,M.children),m.flags|=4096);return m}return P?(mu(),ue=M.fallback,P=m.mode,Pe=h.child,et=Pe.sibling,M=Hl(Pe,{mode:"hidden",children:M.children}),M.subtreeFlags=Pe.subtreeFlags&65011712,et!==null?ue=Hl(et,ue):(ue=Xd(ue,P,_,null),ue.flags|=2),ue.return=m,M.return=m,M.sibling=ue,m.child=M,Jg(null,M),M=m.child,ue=h.child.memoizedState,ue===null?ue=W2(_):(P=ue.cachePool,P!==null?(Pe=ri._currentValue,P=P.parent!==Pe?{parent:Pe,pool:Pe}:P):P=F4(),ue={baseLanes:ue.baseLanes|_,cachePool:P}),M.memoizedState=ue,M.childLanes=q2(h,X,_),m.memoizedState=G2,Jg(h.child,M)):(fu(m),_=h.child,h=_.sibling,_=Hl(_,{mode:"visible",children:M.children}),_.return=m,_.sibling=null,h!==null&&(X=m.deletions,X===null?(m.deletions=[h],m.flags|=16):X.push(h)),m.child=_,m.memoizedState=null,_)}function K2(h,m){return m=Xy({mode:"visible",children:m},h.mode),m.return=h,h.child=m}function Xy(h,m){return h=ps(22,h,null,m),h.lanes=0,h}function X2(h,m,_){return nh(m,h.child,null,_),h=K2(m,m.pendingProps.children),h.flags|=2,m.memoizedState=null,h}function ZI(h,m,_){h.lanes|=m;var M=h.alternate;M!==null&&(M.lanes|=m),u2(h.return,m,_)}function Y2(h,m,_,M,P,D){var X=h.memoizedState;X===null?h.memoizedState={isBackwards:m,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:P,treeForkCount:D}:(X.isBackwards=m,X.rendering=null,X.renderingStartTime=0,X.last=M,X.tail=_,X.tailMode=P,X.treeForkCount=D)}function QI(h,m,_){var M=m.pendingProps,P=M.revealOrder,D=M.tail;M=M.children;var X=Yr.current,ue=(X&2)!==0;if(ue?(X=X&1|2,m.flags|=128):X&=1,ne(Yr,X),Ji(h,m,M,_),M=Dn?zg:0,!ue&&h!==null&&(h.flags&128)!==0)e:for(h=m.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&ZI(h,_,m);else if(h.tag===19)ZI(h,_,m);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===m)break e;for(;h.sibling===null;){if(h.return===null||h.return===m)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}switch(P){case"forwards":for(_=m.child,P=null;_!==null;)h=_.alternate,h!==null&&Iy(h)===null&&(P=_),_=_.sibling;_=P,_===null?(P=m.child,m.child=null):(P=_.sibling,_.sibling=null),Y2(m,!1,P,_,D,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,P=m.child,m.child=null;P!==null;){if(h=P.alternate,h!==null&&Iy(h)===null){m.child=P;break}h=P.sibling,P.sibling=_,_=P,P=h}Y2(m,!0,_,null,D,M);break;case"together":Y2(m,!1,null,null,void 0,M);break;default:m.memoizedState=null}return m.child}function Kl(h,m,_){if(h!==null&&(m.dependencies=h.dependencies),xu|=m.lanes,(_&m.childLanes)===0)if(h!==null){if($f(h,m,_,!1),(_&m.childLanes)===0)return null}else return null;if(h!==null&&m.child!==h.child)throw Error(r(153));if(m.child!==null){for(h=m.child,_=Hl(h,h.pendingProps),m.child=_,_.return=m;h.sibling!==null;)h=h.sibling,_=_.sibling=Hl(h,h.pendingProps),_.return=m;_.sibling=null}return m.child}function Z2(h,m){return(h.lanes&m)!==0?!0:(h=h.dependencies,!!(h!==null&&Cy(h)))}function pre(h,m,_){switch(m.tag){case 3:Ee(m,m.stateNode.containerInfo),cu(m,ri,h.memoizedState.cache),Yd();break;case 27:case 5:fe(m);break;case 4:Ee(m,m.stateNode.containerInfo);break;case 10:cu(m,m.type,m.memoizedProps.value);break;case 31:if(m.memoizedState!==null)return m.flags|=128,w2(m),null;break;case 13:var M=m.memoizedState;if(M!==null)return M.dehydrated!==null?(fu(m),m.flags|=128,null):(_&m.child.childLanes)!==0?YI(h,m,_):(fu(m),h=Kl(h,m,_),h!==null?h.sibling:null);fu(m);break;case 19:var P=(h.flags&128)!==0;if(M=(_&m.childLanes)!==0,M||($f(h,m,_,!1),M=(_&m.childLanes)!==0),P){if(M)return QI(h,m,_);m.flags|=128}if(P=m.memoizedState,P!==null&&(P.rendering=null,P.tail=null,P.lastEffect=null),ne(Yr,Yr.current),M)break;return null;case 22:return m.lanes=0,VI(h,m,_,m.pendingProps);case 24:cu(m,ri,h.memoizedState.cache)}return Kl(h,m,_)}function JI(h,m,_){if(h!==null)if(h.memoizedProps!==m.pendingProps)ai=!0;else{if(!Z2(h,_)&&(m.flags&128)===0)return ai=!1,pre(h,m,_);ai=(h.flags&131072)!==0}else ai=!1,Dn&&(m.flags&1048576)!==0&&P4(m,zg,m.index);switch(m.lanes=0,m.tag){case 16:e:{var M=m.pendingProps;if(h=eh(m.elementType),m.type=h,typeof h=="function")n2(h)?(M=ih(h,M),m.tag=1,m=KI(null,m,h,M,_)):(m.tag=0,m=V2(null,m,h,M,_));else{if(h!=null){var P=h.$$typeof;if(P===T){m.tag=11,m=BI(null,m,h,M,_);break e}else if(P===N){m.tag=14,m=HI(null,m,h,M,_);break e}}throw m=R(h)||h,Error(r(306,m,""))}}return m;case 0:return V2(h,m,m.type,m.pendingProps,_);case 1:return M=m.type,P=ih(M,m.pendingProps),KI(h,m,M,P,_);case 3:e:{if(Ee(m,m.stateNode.containerInfo),h===null)throw Error(r(387));M=m.pendingProps;var D=m.memoizedState;P=D.element,x2(h,m),Kg(m,M,null,_);var X=m.memoizedState;if(M=X.cache,cu(m,ri,M),M!==D.cache&&d2(m,[ri],_,!0),qg(),M=X.element,D.isDehydrated)if(D={element:M,isDehydrated:!1,cache:X.cache},m.updateQueue.baseState=D,m.memoizedState=D,m.flags&256){m=XI(h,m,M,_);break e}else if(M!==P){P=Fs(Error(r(424)),m),Bg(P),m=XI(h,m,M,_);break e}else{switch(h=m.stateNode.containerInfo,h.nodeType){case 9:h=h.body;break;default:h=h.nodeName==="HTML"?h.ownerDocument.body:h}for(_r=$s(h.firstChild),Zi=m,Dn=!0,ou=null,Bs=!0,_=V4(m,null,M,_),m.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling}else{if(Yd(),M===P){m=Kl(h,m,_);break e}Ji(h,m,M,_)}m=m.child}return m;case 26:return Ky(h,m),h===null?(_=uF(m.type,null,m.pendingProps,null))?m.memoizedState=_:Dn||(_=m.type,h=m.pendingProps,M=dv(me.current).createElement(_),M[Zt]=m,M[Sn]=h,ea(M,_,h),De(M),m.stateNode=M):m.memoizedState=uF(m.type,h.memoizedProps,m.pendingProps,h.memoizedState),null;case 27:return fe(m),h===null&&Dn&&(M=m.stateNode=oF(m.type,m.pendingProps,me.current),Zi=m,Bs=!0,P=_r,wu(m.type)?(kA=P,_r=$s(M.firstChild)):_r=P),Ji(h,m,m.pendingProps.children,_),Ky(h,m),h===null&&(m.flags|=4194304),m.child;case 5:return h===null&&Dn&&((P=M=_r)&&(M=Gre(M,m.type,m.pendingProps,Bs),M!==null?(m.stateNode=M,Zi=m,_r=$s(M.firstChild),Bs=!1,P=!0):P=!1),P||lu(m)),fe(m),P=m.type,D=m.pendingProps,X=h!==null?h.memoizedProps:null,M=D.children,EA(P,D)?M=null:X!==null&&EA(P,X)&&(m.flags|=32),m.memoizedState!==null&&(P=M2(h,m,sre,null,null,_),mx._currentValue=P),Ky(h,m),Ji(h,m,M,_),m.child;case 6:return h===null&&Dn&&((h=_=_r)&&(_=Wre(_,m.pendingProps,Bs),_!==null?(m.stateNode=_,Zi=m,_r=null,h=!0):h=!1),h||lu(m)),null;case 13:return YI(h,m,_);case 4:return Ee(m,m.stateNode.containerInfo),M=m.pendingProps,h===null?m.child=nh(m,null,M,_):Ji(h,m,M,_),m.child;case 11:return BI(h,m,m.type,m.pendingProps,_);case 7:return Ji(h,m,m.pendingProps,_),m.child;case 8:return Ji(h,m,m.pendingProps.children,_),m.child;case 12:return Ji(h,m,m.pendingProps.children,_),m.child;case 10:return M=m.pendingProps,cu(m,m.type,M.value),Ji(h,m,M.children,_),m.child;case 9:return P=m.type._context,M=m.pendingProps.children,Qd(m),P=Qi(P),M=M(P),m.flags|=1,Ji(h,m,M,_),m.child;case 14:return HI(h,m,m.type,m.pendingProps,_);case 15:return $I(h,m,m.type,m.pendingProps,_);case 19:return QI(h,m,_);case 31:return mre(h,m,_);case 22:return VI(h,m,_,m.pendingProps);case 24:return Qd(m),M=Qi(ri),h===null?(P=m2(),P===null&&(P=fr,D=h2(),P.pooledCache=D,D.refCount++,D!==null&&(P.pooledCacheLanes|=_),P=D),m.memoizedState={parent:M,cache:P},g2(m),cu(m,ri,P)):((h.lanes&_)!==0&&(x2(h,m),Kg(m,null,null,_),qg()),P=h.memoizedState,D=m.memoizedState,P.parent!==M?(P={parent:M,cache:M},m.memoizedState=P,m.lanes===0&&(m.memoizedState=m.updateQueue.baseState=P),cu(m,ri,M)):(M=D.cache,cu(m,ri,M),M!==P.cache&&d2(m,[ri],_,!0))),Ji(h,m,m.pendingProps.children,_),m.child;case 29:throw m.pendingProps}throw Error(r(156,m.tag))}function Xl(h){h.flags|=4}function Q2(h,m,_,M,P){if((m=(h.mode&32)!==0)&&(m=!1),m){if(h.flags|=16777216,(P&335544128)===P)if(h.stateNode.complete)h.flags|=8192;else if(A5())h.flags|=8192;else throw th=Ry,p2}else h.flags&=-16777217}function e5(h,m){if(m.type!=="stylesheet"||(m.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!pF(m))if(A5())h.flags|=8192;else throw th=Ry,p2}function Yy(h,m){m!==null&&(h.flags|=4),h.flags&16384&&(m=h.tag!==22?At():536870912,h.lanes|=m,tm|=m)}function ex(h,m){if(!Dn)switch(h.tailMode){case"hidden":m=h.tail;for(var _=null;m!==null;)m.alternate!==null&&(_=m),m=m.sibling;_===null?h.tail=null:_.sibling=null;break;case"collapsed":_=h.tail;for(var M=null;_!==null;)_.alternate!==null&&(M=_),_=_.sibling;M===null?m||h.tail===null?h.tail=null:h.tail.sibling=null:M.sibling=null}}function wr(h){var m=h.alternate!==null&&h.alternate.child===h.child,_=0,M=0;if(m)for(var P=h.child;P!==null;)_|=P.lanes|P.childLanes,M|=P.subtreeFlags&65011712,M|=P.flags&65011712,P.return=h,P=P.sibling;else for(P=h.child;P!==null;)_|=P.lanes|P.childLanes,M|=P.subtreeFlags,M|=P.flags,P.return=h,P=P.sibling;return h.subtreeFlags|=M,h.childLanes=_,m}function gre(h,m,_){var M=m.pendingProps;switch(s2(m),m.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return wr(m),null;case 1:return wr(m),null;case 3:return _=m.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),m.memoizedState.cache!==M&&(m.flags|=2048),Gl(ri),he(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Hf(m)?Xl(m):h===null||h.memoizedState.isDehydrated&&(m.flags&256)===0||(m.flags|=1024,l2())),wr(m),null;case 26:var P=m.type,D=m.memoizedState;return h===null?(Xl(m),D!==null?(wr(m),e5(m,D)):(wr(m),Q2(m,P,null,M,_))):D?D!==h.memoizedState?(Xl(m),wr(m),e5(m,D)):(wr(m),m.flags&=-16777217):(h=h.memoizedProps,h!==M&&Xl(m),wr(m),Q2(m,P,h,M,_)),null;case 27:if(pe(m),_=me.current,P=m.type,h!==null&&m.stateNode!=null)h.memoizedProps!==M&&Xl(m);else{if(!M){if(m.stateNode===null)throw Error(r(166));return wr(m),null}h=oe.current,Hf(m)?R4(m):(h=oF(P,M,_),m.stateNode=h,Xl(m))}return wr(m),null;case 5:if(pe(m),P=m.type,h!==null&&m.stateNode!=null)h.memoizedProps!==M&&Xl(m);else{if(!M){if(m.stateNode===null)throw Error(r(166));return wr(m),null}if(D=oe.current,Hf(m))R4(m);else{var X=dv(me.current);switch(D){case 1:D=X.createElementNS("http://www.w3.org/2000/svg",P);break;case 2:D=X.createElementNS("http://www.w3.org/1998/Math/MathML",P);break;default:switch(P){case"svg":D=X.createElementNS("http://www.w3.org/2000/svg",P);break;case"math":D=X.createElementNS("http://www.w3.org/1998/Math/MathML",P);break;case"script":D=X.createElement("div"),D.innerHTML=" +