(()=>{"use strict";var e={22:(e,t)=>{Object.prototype.toString},635:e=>{var t={decodeValues:!0,map:!1,silent:!1};function a(e){return"string"==typeof e&&!!e.trim()}function r(e,r){var n=e.split(";").filter(a),o=function(e){var t="",a="",r=e.split("=");return r.length>1?(t=r.shift(),a=r.join("=")):a=e,{name:t,value:a}}(n.shift()),i=o.name,l=o.value;r=r?Object.assign({},t,r):t;try{l=r.decodeValues?decodeURIComponent(l):l}catch(e){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+l+"'. Set options.decodeValues to false to disable this feature.",e)}var s={name:i,value:l};return n.forEach(function(e){var t=e.split("="),a=t.shift().trimLeft().toLowerCase(),r=t.join("=");"expires"===a?s.expires=new Date(r):"max-age"===a?s.maxAge=parseInt(r,10):"secure"===a?s.secure=!0:"httponly"===a?s.httpOnly=!0:"samesite"===a?s.sameSite=r:"partitioned"===a?s.partitioned=!0:s[a]=r}),s}function n(e,n){if(n=n?Object.assign({},t,n):t,!e)return n.map?{}:[];if(e.headers)if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var o=e.headers[Object.keys(e.headers).find(function(e){return"set-cookie"===e.toLowerCase()})];o||!e.headers.cookie||n.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=o}return Array.isArray(e)||(e=[e]),n.map?e.filter(a).reduce(function(e,t){var a=r(t,n);return e[a.name]=a,e},{}):e.filter(a).map(function(e){return r(e,n)})}e.exports=n,e.exports.parse=n,e.exports.parseString=r,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,a,r,n,o,i=[],l=0;function s(){for(;l=e.length)&&i.push(e.substring(t,e.length))}return i}}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};a.r(r),a.d(r,{ListBulkActionsRegistry:()=>wt,ListConsumer:()=>Pt,ListFiltersRegistry:()=>Et,ListOptionsRegistry:()=>Dt,ListProvider:()=>xt,ListQuickActionsRegistry:()=>jt,getGlobalVars:()=>Kt,getListBulkActions:()=>Ct,getListFilters:()=>Bt,getListOptions:()=>It,getListQuickActions:()=>Rt,init:()=>da,registerListBulkAction:()=>bt,registerListBulkActionGroup:()=>kt,registerListFilter:()=>Mt,registerListFilterGroup:()=>Nt,registerListOption:()=>$t,registerListOptionGroup:()=>Ot,registerListQuickAction:()=>At,registerListQuickActionGroup:()=>Tt,useList:()=>yt,useListBulkActions:()=>Gt,useListFilters:()=>Lt,useListOptions:()=>Ft,useListQuickActions:()=>_t});var n={};a.r(n),a.d(n,{deleteBulkAction:()=>ra,disableBulkAction:()=>ta,enableBulkAction:()=>ea,exportBulkAction:()=>na,trashBulkAction:()=>aa});var o={};a.r(o),a.d(o,{statusFilter:()=>ia,typeFilter:()=>la});var i={};a.r(i),a.d(i,{exportListOption:()=>ua,importListOption:()=>sa});var l={};a.r(l),a.d(l,{deleteQuickAction:()=>pa,editQuickAction:()=>ca,trashQuickAction:()=>ha});const s=window.React;Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),"undefined"!=typeof window?window:"undefined"!=typeof globalThis&&globalThis,a(22),a(635);var u="popstate";function c(e={}){return function(e,t,a,r={}){let{window:n=document.defaultView,v5Compat:o=!1}=r,i=n.history,l="POP",s=null,c=p();function p(){return(i.state||{idx:null}).idx}function g(){l="POP";let e=p(),t=null==e?null:e-c;c=e,s&&s({action:l,location:v.location,delta:t})}function S(e){let t="null"!==n.location.origin?n.location.origin:n.location.href,a="string"==typeof e?e:f(e);return a=a.replace(/ $/,"%20"),h(t,`No window.location.(origin|href) available to create URL for href: ${a}`),new URL(a,t)}null==c&&(c=0,i.replaceState({...i.state,idx:c},""));let v={get action(){return l},get location(){return e(n,i)},listen(e){if(s)throw new Error("A history only accepts one active listener");return n.addEventListener(u,g),s=e,()=>{n.removeEventListener(u,g),s=null}},createHref:e=>t(n,e),createURL:S,encodeLocation(e){let t=S(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l="PUSH";let r=m(v.location,e,t);a&&a(r,e),c=p()+1;let u=d(r,c),h=v.createHref(r);try{i.pushState(u,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;n.location.assign(h)}o&&s&&s({action:l,location:v.location,delta:1})},replace:function(e,t){l="REPLACE";let r=m(v.location,e,t);a&&a(r,e),c=p();let n=d(r,c),u=v.createHref(r);i.replaceState(n,"",u),o&&s&&s({action:l,location:v.location,delta:0})},go:e=>i.go(e)};return v}(function(e,t){let{pathname:a,search:r,hash:n}=e.location;return m("",{pathname:a,search:r,hash:n},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){return"string"==typeof t?t:f(t)},null,e)}function h(e,t){if(!1===e||null==e)throw new Error(t)}function p(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function d(e,t){return{usr:e.state,key:e.key,idx:t}}function m(e,t,a=null,r){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?g(t):t,state:a,key:t&&t.key||r||Math.random().toString(36).substring(2,10)}}function f({pathname:e="/",search:t="",hash:a=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),a&&"#"!==a&&(e+="#"===a.charAt(0)?a:"#"+a),e}function g(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function S(e,t,a="/"){return function(e,t,a,r){let n=T(("string"==typeof t?g(t):t).pathname||"/",a);if(null==n)return null;let o=v(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every((e,a)=>e===t[a])?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(o);let i=null;for(let e=0;null==i&&e{let i={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:n,route:e};i.relativePath.startsWith("/")&&(h(i.relativePath.startsWith(r),`Absolute route path "${i.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),i.relativePath=i.relativePath.slice(r.length));let l=M([r,i.relativePath]),s=a.concat(i);e.children&&e.children.length>0&&(h(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),v(e.children,t,s,l)),(null!=e.path||e.index)&&t.push({path:l,score:C(l,e.index),routesMeta:s})};return e.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let a of P(e.path))n(e,t,a);else n(e,t)}),t}function P(e){let t=e.split("/");if(0===t.length)return[];let[a,...r]=t,n=a.endsWith("?"),o=a.replace(/\?$/,"");if(0===r.length)return n?[o,""]:[o];let i=P(r.join("/")),l=[];return l.push(...i.map(e=>""===e?o:[o,e].join("/"))),n&&l.push(...i),l.map(t=>e.startsWith("/")&&""===t?"/":t)}var x=/^:[\w-]+$/,y=3,V=2,w=1,G=10,b=-2,k=e=>"*"===e;function C(e,t){let a=e.split("/"),r=a.length;return a.some(k)&&(r+=b),t&&(r+=V),a.filter(e=>!k(e)).reduce((e,t)=>e+(x.test(t)?y:""===t?w:G),r)}function j(e,t,a=!1){let{routesMeta:r}=e,n={},o="/",i=[];for(let e=0;e(r.push({paramName:t,isOptional:null!=a}),a?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),n+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?n+="\\/*$":""!==e&&"/"!==e&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),r]}(e.path,e.caseSensitive,e.end),n=t.match(a);if(!n)return null;let o=n[0],i=o.replace(/(.)\/+$/,"$1"),l=n.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:a},r)=>{if("*"===t){let e=l[r]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const n=l[r];return e[t]=a&&!n?void 0:(n||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function A(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return p(!1,`The URL path "${e}" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function T(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,r=e.charAt(a);return r&&"/"!==r?null:e.slice(a)||"/"}function R(e,t,a,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function E(e){let t=function(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}(e);return t.map((e,a)=>a===t.length-1?e.pathname:e.pathnameBase)}function L(e,t,a,r=!1){let n;"string"==typeof e?n=g(e):(n={...e},h(!n.pathname||!n.pathname.includes("?"),R("?","pathname","search",n)),h(!n.pathname||!n.pathname.includes("#"),R("#","pathname","hash",n)),h(!n.search||!n.search.includes("#"),R("#","search","hash",n)));let o,i=""===e||""===n.pathname,l=i?"/":n.pathname;if(null==l)o=a;else{let e=t.length-1;if(!r&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;n.pathname=t.join("/")}o=e>=0?t[e]:"/"}let s=function(e,t="/"){let{pathname:a,search:r="",hash:n=""}="string"==typeof e?g(e):e,o=a?a.startsWith("/")?a:function(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?a.length>1&&a.pop():"."!==e&&a.push(e)}),a.length>1?a.join("/"):"/"}(a,t):t;return{pathname:o,search:B(r),hash:D(n)}}(n,o),u=l&&"/"!==l&&l.endsWith("/"),c=(i||"."===l)&&a.endsWith("/");return s.pathname.endsWith("/")||!u&&!c||(s.pathname+="/"),s}var M=e=>e.join("/").replace(/\/\/+/g,"/"),N=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),B=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",D=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";function F(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}var $=["POST","PUT","PATCH","DELETE"],O=(new Set($),["GET",...$]);new Set(O),Symbol("ResetLoaderData");var I=s.createContext(null);I.displayName="DataRouter";var H=s.createContext(null);H.displayName="DataRouterState";var U=s.createContext({isTransitioning:!1});U.displayName="ViewTransition",s.createContext(new Map).displayName="Fetchers",s.createContext(null).displayName="Await";var W=s.createContext(null);W.displayName="Navigation";var z=s.createContext(null);z.displayName="Location";var Q=s.createContext({outlet:null,matches:[],isDataRoute:!1});Q.displayName="Route";var Z=s.createContext(null);function J(){return null!=s.useContext(z)}function Y(){return h(J(),"useLocation() may be used only in the context of a component."),s.useContext(z).location}Z.displayName="RouteError";var K="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function q(e){s.useContext(W).static||s.useLayoutEffect(e)}function X(){let{isDataRoute:e}=s.useContext(Q);return e?function(){let{router:e}=function(e){let t=s.useContext(I);return h(t,ie(e)),t}("useNavigate"),t=le("useNavigate"),a=s.useRef(!1);q(()=>{a.current=!0});let r=s.useCallback(async(r,n={})=>{p(a.current,K),a.current&&("number"==typeof r?e.navigate(r):await e.navigate(r,{fromRouteId:t,...n}))},[e,t]);return r}():function(){h(J(),"useNavigate() may be used only in the context of a component.");let e=s.useContext(I),{basename:t,navigator:a}=s.useContext(W),{matches:r}=s.useContext(Q),{pathname:n}=Y(),o=JSON.stringify(E(r)),i=s.useRef(!1);q(()=>{i.current=!0});let l=s.useCallback((r,l={})=>{if(p(i.current,K),!i.current)return;if("number"==typeof r)return void a.go(r);let s=L(r,JSON.parse(o),n,"path"===l.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:M([t,s.pathname])),(l.replace?a.replace:a.push)(s,l.state,l)},[t,a,o,n,e]);return l}()}function ee(e,{relative:t}={}){let{matches:a}=s.useContext(Q),{pathname:r}=Y(),n=JSON.stringify(E(a));return s.useMemo(()=>L(e,JSON.parse(n),r,"path"===t),[e,n,r,t])}function te(e,t,a,r){h(J(),"useRoutes() may be used only in the context of a component.");let{navigator:n}=s.useContext(W),{matches:o}=s.useContext(Q),i=o[o.length-1],l=i?i.params:{},u=i?i.pathname:"/",c=i?i.pathnameBase:"/",d=i&&i.route;{let e=d&&d.path||"";ue(u,!d||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${u}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent to .`)}let m,f=Y();if(t){let e="string"==typeof t?g(t):t;h("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),m=e}else m=f;let v=m.pathname||"/",P=v;if("/"!==c){let e=c.replace(/^\//,"").split("/");P="/"+v.replace(/^\//,"").split("/").slice(e.length).join("/")}let x=S(e,{pathname:P});p(d||null!=x,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),p(null==x||void 0!==x[x.length-1].route.element||void 0!==x[x.length-1].route.Component||void 0!==x[x.length-1].route.lazy,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let y=function(e,t=[],a=null){if(null==e){if(!a)return null;if(a.errors)e=a.matches;else{if(0!==t.length||a.initialized||!(a.matches.length>0))return null;e=a.matches}}let r=e,n=a?.errors;if(null!=n){let e=r.findIndex(e=>e.route.id&&void 0!==n?.[e.route.id]);h(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(n).join(",")}`),r=r.slice(0,Math.min(r.length,e+1))}let o=!1,i=-1;if(a)for(let e=0;e=0?r.slice(0,i+1):[r[0]];break}}}return r.reduceRight((e,l,u)=>{let c,h=!1,p=null,d=null;a&&(c=n&&l.route.id?n[l.route.id]:void 0,p=l.route.errorElement||re,o&&(i<0&&0===u?(ue("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),h=!0,d=null):i===u&&(h=!0,d=l.route.hydrateFallbackElement||null)));let m=t.concat(r.slice(0,u+1)),f=()=>{let t;return t=c?p:h?d:l.route.Component?s.createElement(l.route.Component,null):l.route.element?l.route.element:e,s.createElement(oe,{match:l,routeContext:{outlet:e,matches:m,isDataRoute:null!=a},children:t})};return a&&(l.route.ErrorBoundary||l.route.errorElement||0===u)?s.createElement(ne,{location:a.location,revalidation:a.revalidation,component:p,error:c,children:f(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):f()},null)}(x&&x.map(e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:M([c,n.encodeLocation?n.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:M([c,n.encodeLocation?n.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),o,a,r);return t&&y?s.createElement(z.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:"POP"}},y):y}function ae(){let e=function(){let e=s.useContext(Z),t=function(e){let t=s.useContext(H);return h(t,ie(e)),t}("useRouteError"),a=le("useRouteError");return void 0!==e?e:t.errors?.[a]}(),t=F(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:r},o={padding:"2px 4px",backgroundColor:r},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=s.createElement(s.Fragment,null,s.createElement("p",null,"💿 Hey developer 👋"),s.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",s.createElement("code",{style:o},"ErrorBoundary")," or"," ",s.createElement("code",{style:o},"errorElement")," prop on your route.")),s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),a?s.createElement("pre",{style:n},a):null,i)}s.createContext(null);var re=s.createElement(ae,null),ne=class extends s.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?s.createElement(Q.Provider,{value:this.props.routeContext},s.createElement(Z.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function oe({routeContext:e,match:t,children:a}){let r=s.useContext(I);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),s.createElement(Q.Provider,{value:e},a)}function ie(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function le(e){let t=function(e){let t=s.useContext(Q);return h(t,ie(e)),t}(e),a=t.matches[t.matches.length-1];return h(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}var se={};function ue(e,t,a){t||se[e]||(se[e]=!0,p(!1,a))}function ce({basename:e="/",children:t=null,location:a,navigationType:r="POP",navigator:n,static:o=!1}){h(!J(),"You cannot render a inside another . You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),l=s.useMemo(()=>({basename:i,navigator:n,static:o,future:{}}),[i,n,o]);"string"==typeof a&&(a=g(a));let{pathname:u="/",search:c="",hash:d="",state:m=null,key:f="default"}=a,S=s.useMemo(()=>{let e=T(u,i);return null==e?null:{location:{pathname:e,search:c,hash:d,state:m,key:f},navigationType:r}},[i,u,c,d,m,f,r]);return p(null!=S,` is not able to match the URL "${u}${c}${d}" because it does not start with the basename, so the won't render anything.`),null==S?null:s.createElement(W.Provider,{value:l},s.createElement(z.Provider,{children:t,value:S}))}s.memo(function({routes:e,future:t,state:a}){return te(e,void 0,a,t)}),s.Component;var he="get",pe="application/x-www-form-urlencoded";function de(e){return null!=e&&"string"==typeof e.tagName}var me=null,fe=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function ge(e){return null==e||fe.has(e)?e:(p(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${pe}"`),null)}function Se(e,t){if(!1===e||null==e)throw new Error(t)}function ve(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function Pe(e,t,a,r,n,o){let i=(e,t)=>!a[t]||e.route.id!==a[t].route.id,l=(e,t)=>a[t].pathname!==e.pathname||a[t].route.path?.endsWith("*")&&a[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||l(e,t)):"data"===o?t.filter((t,o)=>{let s=r.routes[t.route.id];if(!s||!s.hasLoader)return!1;if(i(t,o)||l(t,o))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:a[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof r)return r}return!0}):[]}function xe(){let e=s.useContext(I);return Se(e,"You must render this element inside a element"),e}function ye(){let e=s.useContext(H);return Se(e,"You must render this element inside a element"),e}Symbol("SingleFetchRedirect"),s.Component;var Ve=s.createContext(void 0);function we(){let e=s.useContext(Ve);return Se(e,"You must render this element inside a element"),e}function Ge(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function be({page:e,...t}){let{router:a}=xe(),r=s.useMemo(()=>S(a.routes,e,a.basename),[a.routes,e,a.basename]);return r?s.createElement(Ce,{page:e,matches:r,...t}):null}function ke(e){let{manifest:t,routeModules:a}=we(),[r,n]=s.useState([]);return s.useEffect(()=>{let r=!1;return async function(e,t,a){return function(e,t){let a=new Set,r=new Set(t);return e.reduce((e,n)=>{if(t&&(null==(o=n)||"string"!=typeof o.page)&&"script"===n.as&&n.href&&r.has(n.href))return e;var o;let i=JSON.stringify(function(e){let t={},a=Object.keys(e).sort();for(let r of a)t[r]=e[r];return t}(n));return a.has(i)||(a.add(i),e.push({key:i,link:n})),e},[])}((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await async function(e,t){if(e.id in t)return t[e.id];try{let a=await import(e.module);return t[e.id]=a,a}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}(r,a);return e.links?e.links():[]}return[]}))).flat(1).filter(ve).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}(e,t,a).then(e=>{r||n(e)}),()=>{r=!0}},[e,t,a]),r}function Ce({page:e,matches:t,...a}){let r=Y(),{manifest:n,routeModules:o}=we(),{loaderData:i,matches:l}=ye(),u=s.useMemo(()=>Pe(e,t,l,n,r,"data"),[e,t,l,n,r]),c=s.useMemo(()=>Pe(e,t,l,n,r,"assets"),[e,t,l,n,r]),h=s.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let a=new Set,l=!1;if(t.forEach(e=>{let t=n.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in i&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:a.add(e.route.id))}),0===a.size)return[];let s=function(e){let t="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===t.pathname?t.pathname="_root.data":t.pathname=`${t.pathname.replace(/\/$/,"")}.data`,t}(e);return l&&a.size>0&&s.searchParams.set("_routes",t.filter(e=>a.has(e.route.id)).map(e=>e.route.id).join(",")),[s.pathname+s.search]},[i,r,n,u,t,e,o]),p=s.useMemo(()=>function(e,t){return a=e.map(e=>{let a=t.routes[e.route.id];if(!a)return[];let r=[a.module];return a.imports&&(r=r.concat(a.imports)),r}).flat(1),[...new Set(a)];var a}(c,n),[c,n]),d=ke(c);return s.createElement(s.Fragment,null,h.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...a})),p.map(e=>s.createElement("link",{key:e,rel:"modulepreload",href:e,...a})),d.map(({key:e,link:t})=>s.createElement("link",{key:e,...t})))}Ve.displayName="FrameworkContext";function je(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}var _e="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{_e&&(window.__reactRouterVersion="7.1.1")}catch(e){}function Ae({basename:e,children:t,window:a}){let r=s.useRef();null==r.current&&(r.current=c({window:a,v5Compat:!0}));let n=r.current,[o,i]=s.useState({action:n.action,location:n.location}),l=s.useCallback(e=>{s.startTransition(()=>i(e))},[i]);return s.useLayoutEffect(()=>n.listen(l),[n,l]),s.createElement(ce,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:n})}var Te=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Re=s.forwardRef(function({onClick:e,discover:t="render",prefetch:a="none",relative:r,reloadDocument:n,replace:o,state:i,target:l,to:u,preventScrollReset:c,viewTransition:d,...m},g){let S,{basename:v}=s.useContext(W),P="string"==typeof u&&Te.test(u),x=!1;if("string"==typeof u&&P&&(S=u,_e))try{let e=new URL(window.location.href),t=u.startsWith("//")?new URL(e.protocol+u):new URL(u),a=T(t.pathname,v);t.origin===e.origin&&null!=a?u=a+t.search+t.hash:x=!0}catch(e){p(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let y=function(e,{relative:t}={}){h(J(),"useHref() may be used only in the context of a component.");let{basename:a,navigator:r}=s.useContext(W),{hash:n,pathname:o,search:i}=ee(e,{relative:t}),l=o;return"/"!==a&&(l="/"===o?a:M([a,o])),r.createHref({pathname:l,search:i,hash:n})}(u,{relative:r}),[V,w,G]=function(e,t){let a=s.useContext(Ve),[r,n]=s.useState(!1),[o,i]=s.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:h,onTouchStart:p}=t,d=s.useRef(null);s.useEffect(()=>{if("render"===e&&i(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{i(e.isIntersecting)})},{threshold:.5});return d.current&&e.observe(d.current),()=>{e.disconnect()}}},[e]),s.useEffect(()=>{if(r){let e=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(e)}}},[r]);let m=()=>{n(!0)},f=()=>{n(!1),i(!1)};return a?"intent"!==e?[o,d,{}]:[o,d,{onFocus:Ge(l,m),onBlur:Ge(u,f),onMouseEnter:Ge(c,m),onMouseLeave:Ge(h,f),onTouchStart:Ge(p,m)}]:[!1,d,{}]}(a,m),b=function(e,{target:t,replace:a,state:r,preventScrollReset:n,relative:o,viewTransition:i}={}){let l=X(),u=Y(),c=ee(e,{relative:o});return s.useCallback(s=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(s,t)){s.preventDefault();let t=void 0!==a?a:f(u)===f(c);l(e,{replace:t,state:r,preventScrollReset:n,relative:o,viewTransition:i})}},[u,l,c,a,r,t,e,n,o,i])}(u,{replace:o,state:i,target:l,preventScrollReset:c,relative:r,viewTransition:d}),k=s.createElement("a",{...m,...G,href:S||y,onClick:x||n?e:function(t){e&&e(t),t.defaultPrevented||b(t)},ref:je(g,w),target:l,"data-discover":P||"render"!==t?void 0:"true"});return V&&!P?s.createElement(s.Fragment,null,k,s.createElement(be,{page:y})):k});Re.displayName="Link",s.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:a="",end:r=!1,style:n,to:o,viewTransition:i,children:l,...u},c){let p=ee(o,{relative:u.relative}),d=Y(),m=s.useContext(H),{navigator:f,basename:g}=s.useContext(W),S=null!=m&&function(e,t={}){let a=s.useContext(U);h(null!=a,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Le("useViewTransitionState"),n=ee(e,{relative:t.relative});if(!a.isTransitioning)return!1;let o=T(a.currentLocation.pathname,r)||a.currentLocation.pathname,i=T(a.nextLocation.pathname,r)||a.nextLocation.pathname;return null!=_(n.pathname,i)||null!=_(n.pathname,o)}(p)&&!0===i,v=f.encodeLocation?f.encodeLocation(p).pathname:p.pathname,P=d.pathname,x=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;t||(P=P.toLowerCase(),x=x?x.toLowerCase():null,v=v.toLowerCase()),x&&g&&(x=T(x,g)||x);const y="/"!==v&&v.endsWith("/")?v.length-1:v.length;let V,w=P===v||!r&&P.startsWith(v)&&"/"===P.charAt(y),G=null!=x&&(x===v||!r&&x.startsWith(v)&&"/"===x.charAt(v.length)),b={isActive:w,isPending:G,isTransitioning:S},k=w?e:void 0;V="function"==typeof a?a(b):[a,w?"active":null,G?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let C="function"==typeof n?n(b):n;return s.createElement(Re,{...u,"aria-current":k,className:V,ref:c,style:C,to:o,viewTransition:i},"function"==typeof l?l(b):l)}).displayName="NavLink";var Ee=s.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:r,replace:n,state:o,method:i=he,action:l,onSubmit:u,relative:c,preventScrollReset:p,viewTransition:d,...m},g)=>{let S=function(){let{router:e}=Le("useSubmit"),{basename:t}=s.useContext(W),a=le("useRouteId");return s.useCallback(async(r,n={})=>{let{action:o,method:i,encType:l,formData:s,body:u}=function(e,t){let a,r,n,o,i;if(de(l=e)&&"form"===l.tagName.toLowerCase()){let i=e.getAttribute("action");r=i?T(i,t):null,a=e.getAttribute("method")||he,n=ge(e.getAttribute("enctype"))||pe,o=new FormData(e)}else if(function(e){return de(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return de(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw new Error('Cannot submit a