@palladium-ethiopia/esm-clinical-workflow-app 5.4.2-pre.20 → 5.4.2-pre.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/dist/152.js +1 -1
  3. package/dist/152.js.map +1 -1
  4. package/dist/164.js +1 -0
  5. package/dist/164.js.map +1 -0
  6. package/dist/208.js +1 -1
  7. package/dist/208.js.map +1 -1
  8. package/dist/209.js +1 -1
  9. package/dist/209.js.map +1 -1
  10. package/dist/363.js +1 -1
  11. package/dist/363.js.map +1 -1
  12. package/dist/534.js +1 -0
  13. package/dist/534.js.map +1 -0
  14. package/dist/677.js +1 -1
  15. package/dist/677.js.map +1 -1
  16. package/dist/689.js +1 -1
  17. package/dist/689.js.map +1 -1
  18. package/dist/712.js +1 -1
  19. package/dist/712.js.map +1 -1
  20. package/dist/771.js +1 -1
  21. package/dist/771.js.map +1 -1
  22. package/dist/825.js +1 -0
  23. package/dist/825.js.map +1 -0
  24. package/dist/914.js +37 -0
  25. package/dist/914.js.map +1 -0
  26. package/dist/926.js +17 -0
  27. package/dist/926.js.map +1 -0
  28. package/dist/ethiopia-esm-clinical-workflow-app.js +5 -5
  29. package/dist/ethiopia-esm-clinical-workflow-app.js.buildmanifest.json +144 -144
  30. package/dist/ethiopia-esm-clinical-workflow-app.js.map +1 -1
  31. package/dist/main.js +34 -8
  32. package/dist/main.js.map +1 -1
  33. package/dist/routes.json +1 -1
  34. package/package.json +1 -1
  35. package/src/config-schema.ts +98 -0
  36. package/src/index.ts +32 -1
  37. package/src/patient-chart/clinical-views/hooks/useEncountersByVisit.ts +13 -0
  38. package/src/patient-chart/constants.ts +11 -0
  39. package/src/patient-chart/visit/visit-history-table/diagnosis-tags.component.tsx +43 -0
  40. package/src/patient-chart/visit/visit-history-table/diagnosis-tags.module.scss +57 -0
  41. package/src/patient-chart/visit/visit-history-table/visit-actions-cell.component.tsx +20 -0
  42. package/src/patient-chart/visit/visit-history-table/visit-actions-cell.scss +4 -0
  43. package/src/patient-chart/visit/visit-history-table/visit-date-cell.component.tsx +19 -0
  44. package/src/patient-chart/visit/visit-history-table/visit-diagnoses-cell-with-certainty.component.tsx +31 -0
  45. package/src/patient-chart/visit/visit-history-table/visit-diagnoses-cell-with-certainty.module.scss +16 -0
  46. package/src/patient-chart/visit/visit-history-table/visit-history-table.component.tsx +144 -0
  47. package/src/patient-chart/visit/visit-history-table/visit-history-table.scss +25 -0
  48. package/src/patient-chart/visit/visit-history-table/visit-type-cell.component.tsx +15 -0
  49. package/src/patient-chart/visit/visits-widget/encounter-observations/encounter-observations.component.tsx +67 -0
  50. package/src/patient-chart/visit/visits-widget/encounter-observations/index.ts +3 -0
  51. package/src/patient-chart/visit/visits-widget/encounter-observations/styles.scss +22 -0
  52. package/src/patient-chart/visit/visits-widget/past-visits-components/encounters-table/all-encounters-table.component.tsx +44 -0
  53. package/src/patient-chart/visit/visits-widget/past-visits-components/encounters-table/encounters-table.component.tsx +388 -0
  54. package/src/patient-chart/visit/visits-widget/past-visits-components/encounters-table/encounters-table.resource.ts +97 -0
  55. package/src/patient-chart/visit/visits-widget/past-visits-components/encounters-table/encounters-table.scss +113 -0
  56. package/src/patient-chart/visit/visits-widget/past-visits-components/encounters-table/visit-encounters-table.component.tsx +42 -0
  57. package/src/patient-chart/visit/visits-widget/past-visits-components/medications-summary.component.tsx +157 -0
  58. package/src/patient-chart/visit/visits-widget/past-visits-components/notes-summary.component.tsx +34 -0
  59. package/src/patient-chart/visit/visits-widget/past-visits-components/tests-summary.component.tsx +16 -0
  60. package/src/patient-chart/visit/visits-widget/past-visits-components/visit-actions-cell.scss +4 -0
  61. package/src/patient-chart/visit/visits-widget/past-visits-components/visit-summary.component.tsx +176 -0
  62. package/src/patient-chart/visit/visits-widget/past-visits-components/visit-summary.scss +72 -0
  63. package/src/patient-chart/visit/visits-widget/single-visit-details/visit-timeline/visit-timeline.component.tsx +94 -0
  64. package/src/patient-chart/visit/visits-widget/single-visit-details/visit-timeline/visit-timeline.scss +60 -0
  65. package/src/patient-chart/visit/visits-widget/visit-detail-overview.component.tsx +50 -0
  66. package/src/patient-chart/visit/visits-widget/visit-detail-overview.scss +262 -0
  67. package/src/patient-chart/visit/visits-widget/visit.resource.tsx +144 -0
  68. package/src/patient-notes/types/index.ts +194 -0
  69. package/src/patient-notes/visit-note-action-button.extension.tsx +28 -0
  70. package/src/patient-notes/visit-note-config-schema.ts +38 -0
  71. package/src/patient-notes/visit-notes-form-shadow.workspace.tsx +963 -0
  72. package/src/patient-notes/visit-notes-form.scss +453 -0
  73. package/src/patient-notes/visit-notes.resource.ts +113 -0
  74. package/src/routes.json +23 -0
  75. package/translations/am.json +168 -0
  76. package/translations/en.json +168 -0
  77. package/dist/410.js +0 -1
  78. package/dist/410.js.map +0 -1
  79. package/dist/484.js +0 -11
  80. package/dist/484.js.map +0 -1
  81. package/dist/540.js +0 -1
  82. package/dist/540.js.map +0 -1
  83. package/dist/545.js +0 -43
  84. package/dist/545.js.map +0 -1
package/dist/712.js CHANGED
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_palladium_ethiopia_esm_clinical_workflow_app=globalThis.webpackChunk_palladium_ethiopia_esm_clinical_workflow_app||[]).push([["712"],{7059(e,t,r){r.r(t),r.d(t,{useFetchers:()=>rU,unstable_HistoryRouter:()=>ry,useLoaderData:()=>tk,ScrollRestoration:()=>rR,Route:()=>t$,MemoryRouter:()=>tI,useMatches:()=>tL,redirect:()=>et,useOutletContext:()=>tc,createRoutesFromElements:()=>tQ,useLinkClickHandler:()=>rP,useRouteError:()=>tT,generatePath:()=>O,replace:()=>en,useHref:()=>tr,useParams:()=>th,UNSAFE_ViewTransitionContext:()=>ri,useRoutes:()=>tp,useSubmit:()=>r_,UNSAFE_NavigationContext:()=>e8,Navigate:()=>tH,UNSAFE_ErrorResponseImpl:()=>ea,UNSAFE_FetchersContext:()=>rl,useAsyncError:()=>tj,createRoutesFromChildren:()=>tQ,unstable_usePrompt:()=>rN,useFetcher:()=>rT,useBlocker:()=>tO,createHashRouter:()=>ra,UNSAFE_useRouteId:()=>tC,useMatch:()=>ti,useNavigation:()=>tP,HashRouter:()=>rv,useFormAction:()=>rA,useResolvedPath:()=>tf,defer:()=>ee,Router:()=>tV,Routes:()=>tJ,useActionData:()=>tA,useRouteLoaderData:()=>t_,Await:()=>tK,matchPath:()=>F,UNSAFE_DataRouterContext:()=>e3,BrowserRouter:()=>rm,NavigationType:()=>c,Form:()=>rS,UNSAFE_RouteContext:()=>te,createSearchParams:()=>t5,RouterProvider:()=>rf,UNSAFE_LocationContext:()=>e9,parsePath:()=>D,Outlet:()=>tW,createMemoryRouter:()=>t1,UNSAFE_useScrollRestoration:()=>rO,useNavigate:()=>ts,matchRoutes:()=>A,createPath:()=>P,resolvePath:()=>I,useInRouterContext:()=>tn,useOutlet:()=>td,useAsyncValue:()=>tU,useViewTransitionState:()=>rB,Link:()=>rw,AbortedDeferredError:()=>Q,renderMatches:()=>tZ,NavLink:()=>rE,UNSAFE_DataRouterStateContext:()=>e5,json:()=>G,useSearchParams:()=>rD,redirectDocument:()=>er,useBeforeUnload:()=>rF,useLocation:()=>ta,createBrowserRouter:()=>rn,isRouteErrorResponse:()=>eo,useNavigationType:()=>to,useRevalidator:()=>tD});var n,a,o,i,l,s,u,c,d,h,f,p=r(3763),m=r(3144),v=r.t(m,2);function y(){return(y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}(n=c||(c={})).Pop="POP",n.Push="PUSH",n.Replace="REPLACE";let g="popstate";function b(e){let t;void 0===e&&(e={});let{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0));let o=s(null==n?t.length-1:n),i=c.Pop,l=null;function s(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r,n){void 0===r&&(r=null);let a=C(t?t[o].pathname:"/",e,r,n);return R("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function d(e){return"string"==typeof e?e:P(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:d,createURL:e=>new URL(d(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?D(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=c.Push;let n=u(e,r);o+=1,t.splice(o,t.length,n),a&&l&&l({action:i,location:n,delta:1})},replace(e,r){i=c.Replace;let n=u(e,r);t[o]=n,a&&l&&l({action:i,location:n,delta:0})},go(e){i=c.Pop;let r=s(o+e),n=t[r];o=r,l&&l({action:i,location:n,delta:e})},listen:e=>(l=e,()=>{l=null})}}function w(e){return void 0===e&&(e={}),L(function(e,t){let{pathname:r,search:n,hash:a}=e.location;return C("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){return"string"==typeof t?t:P(t)},null,e)}function E(e){return void 0===e&&(e={}),L(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=D(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),C("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:P(t))},function(e,t){R("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")},e)}function S(e,t){if(!1===e||null==e)throw Error(t)}function R(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function x(e,t){return{usr:e.state,key:e.key,idx:t}}function C(e,t,r,n){return void 0===r&&(r=null),y({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?D(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function P(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&"?"!==r&&(t+="?"===r.charAt(0)?r:"?"+r),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function D(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function L(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=c.Pop,s=null,u=d();function d(){return(i.state||{idx:null}).idx}function h(){l=c.Pop;let e=d(),t=null==e?null:e-u;u=e,s&&s({action:l,location:p.location,delta:t})}function f(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:P(e);return S(t,"No window.location.(origin|href) available to create URL for href: "+(r=r.replace(/ $/,"%20"))),new URL(r,t)}null==u&&(u=0,i.replaceState(y({},i.state,{idx:u}),""));let p={get action(){return l},get location(){return e(a,i)},listen(e){if(s)throw Error("A history only accepts one active listener");return a.addEventListener(g,h),s=e,()=>{a.removeEventListener(g,h),s=null}},createHref:e=>t(a,e),createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l=c.Push;let n=C(p.location,e,t);r&&r(n,e);let h=x(n,u=d()+1),f=p.createHref(n);try{i.pushState(h,"",f)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(f)}o&&s&&s({action:l,location:p.location,delta:1})},replace:function(e,t){l=c.Replace;let n=C(p.location,e,t);r&&r(n,e);let a=x(n,u=d()),h=p.createHref(n);i.replaceState(a,"",h),o&&s&&s({action:l,location:p.location,delta:0})},go:e=>i.go(e)};return p}(a=d||(d={})).data="data",a.deferred="deferred",a.redirect="redirect",a.error="error";let k=new Set(["lazy","caseSensitive","path","id","index","children"]);function _(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(S(!0!==e.index||!e.children,"Cannot specify children on an index route"),S(!n[i],'Found a route id collision on id "'+i+"\". Route id's must be globally unique within Data Router usages"),!0===e.index){let r=y({},e,t(e),{id:i});return n[i]=r,r}{let r=y({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=_(e.children,t,o,n)),r}})}function A(e,t,r){return void 0===r&&(r="/"),T(e,t,r,!1)}function T(e,t,r,n){let a=B(("string"==typeof t?D(t):t).pathname||"/",r);if(null==a)return null;let o=function e(t,r,n,a){void 0===r&&(r=[]),void 0===n&&(n=[]),void 0===a&&(a="");let o=(t,o,i)=>{var l,s;let u,c,d={relativePath:void 0===i?t.path||"":i,caseSensitive:!0===t.caseSensitive,childrenIndex:o,route:t};d.relativePath.startsWith("/")&&(S(d.relativePath.startsWith(a),'Absolute route path "'+d.relativePath+'" nested under path "'+a+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),d.relativePath=d.relativePath.slice(a.length));let h=K([a,d.relativePath]),f=n.concat(d);t.children&&t.children.length>0&&(S(!0!==t.index,'Index routes must not have child routes. Please remove all child routes from route path "'+h+'".'),e(t.children,r,f,h)),(null!=t.path||t.index)&&r.push({path:h,score:(l=h,s=t.index,c=(u=l.split("/")).length,u.some(M)&&(c+=-2),s&&(c+=2),u.filter(e=>!M(e)).reduce((e,t)=>e+(j.test(t)?3:""===t?1:10),c)),routesMeta:f})};return t.forEach((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let l=e(a.join("/")),s=[];return s.push(...l.map(e=>""===e?i:[i,e].join("/"))),o&&s.push(...l),s.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))o(e,t,r);else o(e,t)}),r}(e);o.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)});let i=null;for(let e=0;null==i&&e<o.length;++e){let t=N(a);i=function(e,t,r){void 0===r&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let l=n[e],s=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=F({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},u),d=l.route;if(!c&&s&&r&&!n[n.length-1].route.index&&(c=F({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:K([o,c.pathname]),pathnameBase:Y(K([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=K([o,c.pathnameBase]))}return i}(o[e],t,n)}return i}function U(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}let j=/^:[\w-]+$/,M=e=>"*"===e;function O(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(R(!1,'Route path "'+r+'" will be treated as if it were "'+r.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+r.replace(/\*$/,"/*")+'".'),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)$/);if(o){let[,e,r]=o,n=t[e];return S("?"===r||null!=n,'Missing ":'+e+'" param'),a(n)}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function F(e,t){var r,n,a;let o,i;"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[l,s]=(r=e.path,n=e.caseSensitive,a=e.end,void 0===n&&(n=!1),void 0===a&&(a=!0),R("*"===r||!r.endsWith("*")||r.endsWith("/*"),'Route path "'+r+'" will be treated as if it were "'+r.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+r.replace(/\*$/,"/*")+'".'),o=[],i="^"+r.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r)=>(o.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")),r.endsWith("*")?(o.push({paramName:"*"}),i+="*"===r||"/*"===r?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?i+="\\/*$":""!==r&&"/"!==r&&(i+="(?:(?=\\/|$))"),[new RegExp(i,n?void 0:"i"),o]),u=t.match(l);if(!u)return null;let c=u[0],d=c.replace(/(.)\/+$/,"$1"),h=u.slice(1);return{params:s.reduce((e,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=h[r]||"";d=c.slice(0,c.length-e.length).replace(/(.)\/+$/,"$1")}let o=h[r];return a&&!o?e[n]=void 0:e[n]=(o||"").replace(/%2F/g,"/"),e},{}),pathname:c,pathnameBase:d,pattern:e}}function N(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return R(!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 B(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}let z=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function I(e,t){let r;void 0===t&&(t="/");let{pathname:n,search:a="",hash:o=""}="string"==typeof e?D(e):e;if(n){let e;(e=n,z.test(e))?r=n:(n.includes("//")&&R(!1,"Pathnames cannot have embedded double slashes - normalizing "+n+" -> "+(n=n.replace(/\/\/+/g,"/"))),r=n.startsWith("/")?H(n.substring(1),"/"):H(n,t))}else r=t;return{pathname:r,search:q(a),hash:X(o)}}function H(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function W(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field [")+JSON.stringify(n)+"]. Please separate it out to the `to."+r+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function $(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function V(e,t){let r=$(e);return t?r.map((e,t)=>t===r.length-1?e.pathname:e.pathnameBase):r.map(e=>e.pathnameBase)}function J(e,t,r,n){let a,o;void 0===n&&(n=!1),"string"==typeof e?a=D(e):(S(!(a=y({},e)).pathname||!a.pathname.includes("?"),W("?","pathname","search",a)),S(!a.pathname||!a.pathname.includes("#"),W("#","pathname","hash",a)),S(!a.search||!a.search.includes("#"),W("#","search","hash",a)));let i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let s=I(a,o),u=l&&"/"!==l&&l.endsWith("/"),c=(i||"."===l)&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}let K=e=>e.join("/").replace(/\/\/+/g,"/"),Y=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),q=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",X=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",G=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),y({},r,{headers:n}))};class Q extends Error{}class Z{constructor(e,t){let r;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],S(e&&"object"==typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise((e,t)=>r=t),this.controller=new AbortController;let n=()=>r(new Q("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",n),this.controller.signal.addEventListener("abort",n),this.data=Object.entries(e).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:this.trackPromise(r,n)})},{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let r=Promise.race([t,this.abortPromise]).then(t=>this.onSettle(r,e,void 0,t),t=>this.onSettle(r,e,t));return r.catch(()=>{}),Object.defineProperty(r,"_tracked",{get:()=>!0}),r}onSettle(e,t,r,n){if(this.controller.signal.aborted&&r instanceof Q)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>r}),Promise.reject(r);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===r&&void 0===n){let r=Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)}return void 0===n?(Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)):(Object.defineProperty(e,"_data",{get:()=>n}),this.emit(!1,t),n)}emit(e,t){this.subscribers.forEach(r=>r(e,t))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((e,t)=>this.pendingKeysSet.delete(t)),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let r=()=>this.cancel();e.addEventListener("abort",r),t=await new Promise(t=>{this.subscribe(n=>{e.removeEventListener("abort",r),(n||this.done)&&t(n)})})}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return S(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:function(e){if(!(e instanceof Promise&&!0===e._tracked))return e;if(e._error)throw e._error;return e._data}(n)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}let ee=function(e,t){return void 0===t&&(t={}),new Z(e,"number"==typeof t?{status:t}:t)},et=function(e,t){void 0===t&&(t=302);let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,y({},r,{headers:n}))},er=(e,t)=>{let r=et(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},en=(e,t)=>{let r=et(e,t);return r.headers.set("X-Remix-Replace","true"),r};class ea{constructor(e,t,r,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function eo(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}let ei=["post","put","patch","delete"],el=new Set(ei),es=new Set(["get",...ei]),eu=new Set([301,302,303,307,308]),ec=new Set([307,308]),ed={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eh={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ef={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ep=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,em=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),ev="remix-router-transitions";function ey(e){let t,r,n,a,o,i,l=e.window?e.window:"undefined"!=typeof window?window:void 0,s=void 0!==l&&void 0!==l.document&&void 0!==l.document.createElement,u=!s;if(S(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let r=e.detectErrorBoundary;t=e=>({hasErrorBoundary:r(e)})}else t=em;let h={},f=_(e.routes,t,void 0,h),p=e.basename||"/",m=e.dataStrategy||eD,v=e.patchRoutesOnNavigation,g=y({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),b=null,w=new Set,E=null,x=null,P=null,D=null!=e.hydrationData,L=A(f,e.history.location,p),k=!1,j=null;if(null==L&&!v){let t=ez(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=eB(f);L=r,j={[n.id]:t}}if(L&&!e.hydrationData&&to(L,f,e.history.location.pathname).active&&(L=null),L)if(L.some(e=>e.route.lazy))n=!1;else if(L.some(e=>e.route.loader))if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null;if(r){let e=L.findIndex(e=>void 0!==r[e.route.id]);n=L.slice(0,e+1).every(e=>!eS(e.route,t,r))}else n=L.every(e=>!eS(e.route,t,r))}else n=null!=e.hydrationData;else n=!0;else if(n=!1,L=[],g.v7_partialHydration){let t=to(null,f,e.history.location.pathname);t.active&&t.matches&&(k=!0,L=t.matches)}let M={historyAction:e.history.action,location:e.history.location,matches:L,initialized:n,navigation:ed,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||j,fetchers:new Map,blockers:new Map},O=c.Pop,F=!1,N=!1,z=new Map,I=null,H=!1,W=!1,$=[],V=new Set,J=new Map,K=0,Y=-1,q=new Map,X=new Set,G=new Map,Q=new Map,Z=new Set,ee=new Map,et=new Map;function er(e,t){void 0===t&&(t={}),M=y({},M,e);let r=[],n=[];g.v7_fetcherPersist&&M.fetchers.forEach((e,t)=>{"idle"===e.state&&(Z.has(t)?n.push(t):r.push(t))}),Z.forEach(e=>{M.fetchers.has(e)||J.has(e)||n.push(e)}),[...w].forEach(e=>e(M,{deletedFetchers:n,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),g.v7_fetcherPersist?(r.forEach(e=>M.fetchers.delete(e)),n.forEach(e=>eQ(e))):n.forEach(e=>Z.delete(e))}function en(t,n,a){var o,i;let l,s,{flushSync:u}=void 0===a?{}:a,d=null!=M.actionData&&null!=M.navigation.formMethod&&eY(M.navigation.formMethod)&&"loading"===M.navigation.state&&(null==(o=t.state)?void 0:o._isRedirect)!==!0;l=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:d?M.actionData:null;let h=n.loaderData?eO(M.loaderData,n.loaderData,n.matches||[],n.errors):M.loaderData,p=M.blockers;p.size>0&&(p=new Map(p)).forEach((e,t)=>p.set(t,ef));let m=!0===F||null!=M.navigation.formMethod&&eY(M.navigation.formMethod)&&(null==(i=t.state)?void 0:i._isRedirect)!==!0;if(r&&(f=r,r=void 0),H||O===c.Pop||(O===c.Push?e.history.push(t,t.state):O===c.Replace&&e.history.replace(t,t.state)),O===c.Pop){let e=z.get(M.location.pathname);e&&e.has(t.pathname)?s={currentLocation:M.location,nextLocation:t}:z.has(t.pathname)&&(s={currentLocation:t,nextLocation:M.location})}else if(N){let e=z.get(M.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),z.set(M.location.pathname,e)),s={currentLocation:M.location,nextLocation:t}}er(y({},n,{actionData:l,loaderData:h,historyAction:O,location:t,initialized:!0,navigation:ed,revalidation:"idle",restoreScrollPosition:ta(t,n.matches||M.matches),preventScrollReset:m,blockers:p}),{viewTransitionOpts:s,flushSync:!0===u}),O=c.Pop,F=!1,N=!1,H=!1,W=!1,$=[]}async function ea(t,r){if("number"==typeof t)return void e.history.go(t);let n=eg(M.location,M.matches,p,g.v7_prependBasename,t,g.v7_relativeSplatPath,null==r?void 0:r.fromRouteId,null==r?void 0:r.relative),{path:a,submission:o,error:i}=eb(g.v7_normalizeFormMethod,!1,n,r),l=M.location,s=C(M.location,a,r&&r.state);s=y({},s,e.history.encodeLocation(s));let u=r&&null!=r.replace?r.replace:void 0,d=c.Push;!0===u?d=c.Replace:!1===u||null!=o&&eY(o.formMethod)&&o.formAction===M.location.pathname+M.location.search&&(d=c.Replace);let h=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,f=!0===(r&&r.flushSync),m=te({currentLocation:l,nextLocation:s,historyAction:d});return m?void e9(m,{state:"blocked",location:s,proceed(){e9(m,{state:"proceeding",proceed:void 0,reset:void 0,location:s}),ea(t,r)},reset(){let e=new Map(M.blockers);e.set(m,ef),er({blockers:e})}}):await ei(d,s,{submission:o,pendingError:i,preventScrollReset:h,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:f})}async function ei(t,n,a){var i,l,s,u;let c;o&&o.abort(),o=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),i=M.location,l=M.matches,E&&P&&(E[tn(i,l)]=P()),F=!0===(a&&a.preventScrollReset),N=!0===(a&&a.enableViewTransition);let h=r||f,m=a&&a.overrideNavigation,v=null!=a&&a.initialHydration&&M.matches&&M.matches.length>0&&!k?M.matches:A(h,n,p),g=!0===(a&&a.flushSync);if(v&&M.initialized&&!W&&(s=M.location,u=n,s.pathname===u.pathname&&s.search===u.search&&(""===s.hash?""!==u.hash:s.hash===u.hash||""!==u.hash||!1))&&!(a&&a.submission&&eY(a.submission.formMethod)))return void en(n,{matches:v},{flushSync:g});let b=to(v,h,n.pathname);if(b.active&&b.matches&&(v=b.matches),!v){let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);en(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:g});return}o=new AbortController;let w=eT(e.history,n,o.signal,a&&a.submission);if(a&&a.pendingError)c=[eN(v).route.id,{type:d.error,error:a.pendingError}];else if(a&&a.submission&&eY(a.submission.formMethod)){let t=await el(w,n,a.submission,v,b.active,{replace:a.replace,flushSync:g});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(e$(r)&&eo(r.error)&&404===r.error.status){o=null,en(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}v=t.matches||v,c=t.pendingActionResult,m=e1(n,a.submission),g=!1,b.active=!1,w=eT(e.history,w.url,w.signal)}let{shortCircuited:S,matches:R,loaderData:x,errors:C}=await es(w,n,v,b.active,m,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,g,c);S||(o=null,en(n,y({matches:R||v},eF(c),{loaderData:x,errors:C})))}async function el(e,t,r,n,a,o){var i;let l;if(void 0===o&&(o={}),eU(),er({navigation:{state:"submitting",location:t,formMethod:(i=r).formMethod,formAction:i.formAction,formEncType:i.formEncType,formData:i.formData,json:i.json,text:i.text}},{flushSync:!0===o.flushSync}),a){let r=await ti(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let e=eN(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:d.error,error:r.error}]}}if(r.matches)n=r.matches;else{let{notFoundMatches:e,error:r,route:n}=tt(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:d.error,error:r}]}}}let s=eZ(n,t);if(s.route.action||s.route.lazy){if(l=(await eP("action",M,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else l={type:d.error,error:ez(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(eV(l)){let t;return t=o&&null!=o.replace?o.replace:eA(l.response.headers.get("Location"),new URL(e.url),p)===M.location.pathname+M.location.search,await ex(e,l,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(eW(l))throw ez(400,{type:"defer-action"});if(e$(l)){let e=eN(n,s.route.id);return!0!==(o&&o.replace)&&(O=c.Push),{matches:n,pendingActionResult:[e.route.id,l]}}return{matches:n,pendingActionResult:[s.route.id,l]}}async function es(t,n,a,i,l,s,u,c,d,h,m){let v=l||e1(n,s),b=s||u||e0(v),w=!H&&(!g.v7_partialHydration||!d);if(i){if(w){let e=ey(m);er(y({navigation:v},void 0!==e?{actionData:e}:{}),{flushSync:h})}let e=await ti(a,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=eN(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)a=e.matches;else{let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let E=r||f,[S,R]=eE(e.history,M,a,b,n,g.v7_partialHydration&&!0===d,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,E,p,m);if(tr(e=>!(a&&a.some(t=>t.route.id===e))||S&&S.some(t=>t.route.id===e)),Y=++K,0===S.length&&0===R.length){let e=e5();return en(n,y({matches:a,loaderData:{},errors:m&&e$(m[1])?{[m[0]]:m[1].error}:null},eF(m),e?{fetchers:new Map(M.fetchers)}:{}),{flushSync:h}),{shortCircuited:!0}}if(w){let e={};if(!i){e.navigation=v;let t=ey(m);void 0!==t&&(e.actionData=t)}R.length>0&&(R.forEach(e=>{let t=M.fetchers.get(e.key),r=e7(void 0,t?t.data:void 0);M.fetchers.set(e.key,r)}),e.fetchers=new Map(M.fetchers)),er(e,{flushSync:h})}R.forEach(e=>{e2(e.key),e.controller&&J.set(e.key,e.controller)});let x=()=>R.forEach(e=>e2(e.key));o&&o.signal.addEventListener("abort",x);let{loaderResults:C,fetcherResults:P}=await ek(M,a,S,R,t);if(t.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",x),R.forEach(e=>J.delete(e.key));let D=eI(C);if(D)return await ex(t,D.result,!0,{replace:c}),{shortCircuited:!0};if(D=eI(P))return X.add(D.key),await ex(t,D.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:L,errors:k}=eM(M,a,C,m,R,P,ee);ee.forEach((e,t)=>{e.subscribe(r=>{(r||e.done)&&ee.delete(t)})}),g.v7_partialHydration&&d&&M.errors&&(k=y({},M.errors,k));let _=e5(),A=e6(Y),T=_||A||R.length>0;return y({matches:a,loaderData:L,errors:k},T?{fetchers:new Map(M.fetchers)}:{})}function ey(e){if(e&&!e$(e[1]))return{[e[0]]:e[1].data};if(M.actionData)if(0===Object.keys(M.actionData).length)return null;else return M.actionData}async function ew(t,n,a,i,l,s,u,c,d){var h,m;function v(e){if(!e.route.action&&!e.route.lazy){let e=ez(405,{method:d.formMethod,pathname:a,routeId:n});return eH(t,n,e,{flushSync:u}),!0}return!1}if(eU(),G.delete(t),!s&&v(i))return;let y=M.fetchers.get(t);ej(t,(h=d,m=y,{state:"submitting",formMethod:h.formMethod,formAction:h.formAction,formEncType:h.formEncType,formData:h.formData,json:h.json,text:h.text,data:m?m.data:void 0}),{flushSync:u});let b=new AbortController,w=eT(e.history,a,b.signal,d);if(s){let e=await ti(l,new URL(w.url).pathname,w.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eH(t,n,e.error,{flushSync:u});if(!e.matches)return void eH(t,n,ez(404,{pathname:a}),{flushSync:u});if(v(i=eZ(l=e.matches,a)))return}J.set(t,b);let E=K,R=(await eP("action",M,w,[i],l,t))[i.route.id];if(w.signal.aborted){J.get(t)===b&&J.delete(t);return}if(g.v7_fetcherPersist&&Z.has(t)){if(eV(R)||e$(R))return void ej(t,e4(void 0))}else{if(eV(R))return(J.delete(t),Y>E)?void ej(t,e4(void 0)):(X.add(t),ej(t,e7(d)),ex(w,R,!1,{fetcherSubmission:d,preventScrollReset:c}));if(e$(R))return void eH(t,n,R.error)}if(eW(R))throw ez(400,{type:"defer-action"});let x=M.navigation.location||M.location,C=eT(e.history,x,b.signal),P=r||f,D="idle"!==M.navigation.state?A(P,M.navigation.location,p):M.matches;S(D,"Didn't find any matches after fetcher action");let L=++K;q.set(t,L);let k=e7(d,R.data);M.fetchers.set(t,k);let[_,T]=eE(e.history,M,D,d,x,!1,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,P,p,[i.route.id,R]);T.filter(e=>e.key!==t).forEach(e=>{let t=e.key,r=M.fetchers.get(t),n=e7(void 0,r?r.data:void 0);M.fetchers.set(t,n),e2(t),e.controller&&J.set(t,e.controller)}),er({fetchers:new Map(M.fetchers)});let U=()=>T.forEach(e=>e2(e.key));b.signal.addEventListener("abort",U);let{loaderResults:j,fetcherResults:F}=await ek(M,D,_,T,C);if(b.signal.aborted)return;b.signal.removeEventListener("abort",U),q.delete(t),J.delete(t),T.forEach(e=>J.delete(e.key));let N=eI(j);if(N)return ex(C,N.result,!1,{preventScrollReset:c});if(N=eI(F))return X.add(N.key),ex(C,N.result,!1,{preventScrollReset:c});let{loaderData:B,errors:z}=eM(M,D,j,void 0,T,F,ee);if(M.fetchers.has(t)){let e=e4(R.data);M.fetchers.set(t,e)}e6(L),"loading"===M.navigation.state&&L>Y?(S(O,"Expected pending action"),o&&o.abort(),en(M.navigation.location,{matches:D,loaderData:B,errors:z,fetchers:new Map(M.fetchers)})):(er({errors:z,loaderData:eO(M.loaderData,B,D,z),fetchers:new Map(M.fetchers)}),W=!1)}async function eR(t,r,n,a,o,i,l,s,u){let c=M.fetchers.get(t);ej(t,e7(u,c?c.data:void 0),{flushSync:l});let d=new AbortController,h=eT(e.history,n,d.signal);if(i){let e=await ti(o,new URL(h.url).pathname,h.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eH(t,r,e.error,{flushSync:l});if(!e.matches)return void eH(t,r,ez(404,{pathname:n}),{flushSync:l});a=eZ(o=e.matches,n)}J.set(t,d);let f=K,p=(await eP("loader",M,h,[a],o,t))[a.route.id];if(eW(p)&&(p=await eG(p,h.signal,!0)||p),J.get(t)===d&&J.delete(t),!h.signal.aborted){if(Z.has(t))return void ej(t,e4(void 0));if(eV(p))if(Y>f)return void ej(t,e4(void 0));else{X.add(t),await ex(h,p,!1,{preventScrollReset:s});return}if(e$(p))return void eH(t,r,p.error);S(!eW(p),"Unhandled fetcher deferred data"),ej(t,e4(p.data))}}async function ex(t,r,n,a){let{submission:i,fetcherSubmission:u,preventScrollReset:d,replace:h}=void 0===a?{}:a;r.response.headers.has("X-Remix-Revalidate")&&(W=!0);let f=r.response.headers.get("Location");S(f,"Expected a Location header on the redirect Response"),f=eA(f,new URL(t.url),p);let m=C(M.location,f,{_isRedirect:!0});if(s){let t=!1;if(r.response.headers.has("X-Remix-Reload-Document"))t=!0;else if(ep.test(f)){let r=e.history.createURL(f);t=r.origin!==l.location.origin||null==B(r.pathname,p)}if(t)return void(h?l.location.replace(f):l.location.assign(f))}o=null;let v=!0===h||r.response.headers.has("X-Remix-Replace")?c.Replace:c.Push,{formMethod:g,formAction:b,formEncType:w}=M.navigation;!i&&!u&&g&&b&&w&&(i=e0(M.navigation));let E=i||u;if(ec.has(r.response.status)&&E&&eY(E.formMethod))await ei(v,m,{submission:y({},E,{formAction:f}),preventScrollReset:d||F,enableViewTransition:n?N:void 0});else{let e=e1(m,i);await ei(v,m,{overrideNavigation:e,fetcherSubmission:u,preventScrollReset:d||F,enableViewTransition:n?N:void 0})}}async function eP(e,r,n,a,o,i){let l,s={};try{l=await eL(m,e,r,n,a,o,i,h,t)}catch(e){return a.forEach(t=>{s[t.route.id]={type:d.error,error:e}}),s}for(let[e,t]of Object.entries(l)){var u;if(eK((u=t).result)&&eu.has(u.result.status)){let r=t.result;s[e]={type:d.redirect,response:function(e,t,r,n,a,o){let i=e.headers.get("Location");if(S(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!ep.test(i)){let l=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=eg(new URL(t.url),l,a,!0,i,o),e.headers.set("Location",i)}return e}(r,n,e,o,p,g.v7_relativeSplatPath)}}else s[e]=await e_(t)}return s}async function ek(t,r,n,a,o){let i=t.matches,l=eP("loader",t,o,n,r,null),s=Promise.all(a.map(async r=>{if(!r.matches||!r.match||!r.controller)return Promise.resolve({[r.key]:{type:d.error,error:ez(404,{pathname:r.path})}});{let n=(await eP("loader",t,eT(e.history,r.path,r.controller.signal),[r.match],r.matches,r.key))[r.match.route.id];return{[r.key]:n}}})),u=await l,c=(await s).reduce((e,t)=>Object.assign(e,t),{});return await Promise.all([eq(r,u,o.signal,i,t.loaderData),eX(r,c,a)]),{loaderResults:u,fetcherResults:c}}function eU(){W=!0,$.push(...tr()),G.forEach((e,t)=>{J.has(t)&&V.add(t),e2(t)})}function ej(e,t,r){void 0===r&&(r={}),M.fetchers.set(e,t),er({fetchers:new Map(M.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function eH(e,t,r,n){void 0===n&&(n={});let a=eN(M.matches,t);eQ(e),er({errors:{[a.route.id]:r},fetchers:new Map(M.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function eJ(e){return Q.set(e,(Q.get(e)||0)+1),Z.has(e)&&Z.delete(e),M.fetchers.get(e)||eh}function eQ(e){let t=M.fetchers.get(e);J.has(e)&&!(t&&"loading"===t.state&&q.has(e))&&e2(e),G.delete(e),q.delete(e),X.delete(e),g.v7_fetcherPersist&&Z.delete(e),V.delete(e),M.fetchers.delete(e)}function e2(e){let t=J.get(e);t&&(t.abort(),J.delete(e))}function e3(e){for(let t of e){let e=e4(eJ(t).data);M.fetchers.set(t,e)}}function e5(){let e=[],t=!1;for(let r of X){let n=M.fetchers.get(r);S(n,"Expected fetcher: "+r),"loading"===n.state&&(X.delete(r),e.push(r),t=!0)}return e3(e),t}function e6(e){let t=[];for(let[r,n]of q)if(n<e){let e=M.fetchers.get(r);S(e,"Expected fetcher: "+r),"loading"===e.state&&(e2(r),q.delete(r),t.push(r))}return e3(t),t.length>0}function e8(e){M.blockers.delete(e),et.delete(e)}function e9(e,t){let r=M.blockers.get(e)||ef;S("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,"Invalid blocker state transition: "+r.state+" -> "+t.state);let n=new Map(M.blockers);n.set(e,t),er({blockers:n})}function te(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===et.size)return;et.size>1&&R(!1,"A router only supports one blocker at a time");let a=Array.from(et.entries()),[o,i]=a[a.length-1],l=M.blockers.get(o);if((!l||"proceeding"!==l.state)&&i({currentLocation:t,nextLocation:r,historyAction:n}))return o}function tt(e){let t=ez(404,{pathname:e}),{matches:n,route:a}=eB(r||f);return tr(),{notFoundMatches:n,route:a,error:t}}function tr(e){let t=[];return ee.forEach((r,n)=>{(!e||e(n))&&(r.cancel(),t.push(n),ee.delete(n))}),t}function tn(e,t){return x&&x(e,t.map(e=>U(e,M.loaderData)))||e.key}function ta(e,t){if(E){let r=E[tn(e,t)];if("number"==typeof r)return r}return null}function to(e,t,r){if(v){if(!e)return{active:!0,matches:T(t,r,p,!0)||[]};else if(Object.keys(e[0].params).length>0)return{active:!0,matches:T(t,r,p,!0)}}return{active:!1,matches:null}}async function ti(e,n,a,o){if(!v)return{type:"success",matches:e};let i=e;for(;;){let e=null==r,l=r||f,s=h;try{await v({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,r)=>{a.aborted||eC(e,r,l,s,t)}})}catch(e){return{type:"error",error:e,partialMatches:i}}finally{e&&!a.aborted&&(f=[...f])}if(a.aborted)return{type:"aborted"};let u=A(l,n,p);if(u)return{type:"success",matches:u};let c=T(l,n,p,!0);if(!c||i.length===c.length&&i.every((e,t)=>e.route.id===c[t].route.id))return{type:"success",matches:null};i=c}}return a={get basename(){return p},get future(){return g},get state(){return M},get routes(){return f},get window(){return l},initialize:function(){if(b=e.history.listen(t=>{let{action:r,location:n,delta:a}=t;if(i){i(),i=void 0;return}R(0===et.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=te({currentLocation:M.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise(e=>{i=e});e.history.go(-1*a),e9(o,{state:"blocked",location:n,proceed(){e9(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(a))},reset(){let e=new Map(M.blockers);e.set(o,ef),er({blockers:e})}});return}return ei(r,n)}),s){var t=l,r=z;try{let e=t.sessionStorage.getItem(ev);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ev,JSON.stringify(r))}catch(e){R(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}})(l,z);l.addEventListener("pagehide",e),I=()=>l.removeEventListener("pagehide",e)}return M.initialized||ei(c.Pop,M.location,{initialHydration:!0}),a},subscribe:function(e){return w.add(e),()=>w.delete(e)},enableScrollRestoration:function(e,t,r){if(E=e,P=t,x=r||null,!D&&M.navigation===ed){D=!0;let e=ta(M.location,M.matches);null!=e&&er({restoreScrollPosition:e})}return()=>{E=null,P=null,x=null}},navigate:ea,fetch:function(e,t,n,a){if(u)throw Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");e2(e);let o=!0===(a&&a.flushSync),i=r||f,l=eg(M.location,M.matches,p,g.v7_prependBasename,n,g.v7_relativeSplatPath,t,null==a?void 0:a.relative),s=A(i,l,p),c=to(s,i,l);if(c.active&&c.matches&&(s=c.matches),!s)return void eH(e,t,ez(404,{pathname:l}),{flushSync:o});let{path:d,submission:h,error:m}=eb(g.v7_normalizeFormMethod,!0,l,a);if(m)return void eH(e,t,m,{flushSync:o});let v=eZ(s,d),y=!0===(a&&a.preventScrollReset);h&&eY(h.formMethod)?ew(e,t,d,v,s,c.active,o,y,h):(G.set(e,{routeId:t,path:d}),eR(e,t,d,v,s,c.active,o,y,h))},revalidate:function(){if(eU(),er({revalidation:"loading"}),"submitting"!==M.navigation.state){if("idle"===M.navigation.state)return void ei(M.historyAction,M.location,{startUninterruptedRevalidation:!0});ei(O||M.historyAction,M.navigation.location,{overrideNavigation:M.navigation,enableViewTransition:!0===N})}},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:eJ,deleteFetcher:function(e){let t=(Q.get(e)||0)-1;t<=0?(Q.delete(e),Z.add(e),g.v7_fetcherPersist||eQ(e)):Q.set(e,t),er({fetchers:new Map(M.fetchers)})},dispose:function(){b&&b(),I&&I(),w.clear(),o&&o.abort(),M.fetchers.forEach((e,t)=>eQ(t)),M.blockers.forEach((e,t)=>e8(t))},getBlocker:function(e,t){let r=M.blockers.get(e)||ef;return et.get(e)!==t&&et.set(e,t),r},deleteBlocker:e8,patchRoutes:function(e,n){let a=null==r;eC(e,n,r||f,h,t),a&&(f=[...f],er({}))},_internalFetchControllers:J,_internalActiveDeferreds:ee,_internalSetRoutes:function(e){r=_(e,t,void 0,h={})}}}function eg(e,t,r,n,a,o,i,l){let s,u;if(i){for(let e of(s=[],t))if(s.push(e),e.route.id===i){u=e;break}}else s=t,u=t[t.length-1];let c=J(a||".",V(s,o),B(e.pathname,r)||e.pathname,"path"===l);if(null==a&&(c.search=e.search,c.hash=e.hash),(null==a||""===a||"."===a)&&u){let e=eQ(c.search);if(u.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();c.search=r?"?"+r:""}}return n&&"/"!==r&&(c.pathname="/"===c.pathname?r:K([r,c.pathname])),P(c)}function eb(e,t,r,n){var a;let o,i;if(!n||!(null!=n&&("formData"in n&&null!=n.formData||"body"in n&&void 0!==n.body)))return{path:r};if(n.formMethod&&(a=n.formMethod,!es.has(a.toLowerCase())))return{path:r,error:ez(405,{method:n.formMethod})};let l=()=>({path:r,error:ez(400,{type:"invalid-body"})}),s=n.formMethod||"get",u=e?s.toUpperCase():s.toLowerCase(),c=eH(r);if(void 0!==n.body){if("text/plain"===n.formEncType){if(!eY(u))return l();let e="string"==typeof n.body?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,t)=>{let[r,n]=t;return""+e+r+"="+n+"\n"},""):String(n.body);return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===n.formEncType){if(!eY(u))return l();try{let e="string"==typeof n.body?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return l()}}}if(S("function"==typeof FormData,"FormData is not available in this environment"),n.formData)o=eU(n.formData),i=n.formData;else if(n.body instanceof FormData)o=eU(n.body),i=n.body;else if(n.body instanceof URLSearchParams)i=ej(o=n.body);else if(null==n.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(n.body),i=ej(o)}catch(e){return l()}let d={formMethod:u,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(eY(d.formMethod))return{path:r,submission:d};let h=D(r);return t&&h.search&&eQ(h.search)&&o.append("index",""),h.search="?"+o,{path:P(h),submission:d}}function ew(e,t,r){void 0===r&&(r=!1);let n=e.findIndex(e=>e.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function eE(e,t,r,n,a,o,i,l,s,u,c,d,h,f,p,m){let v=m?e$(m[1])?m[1].error:m[1].data:void 0,g=e.createURL(t.location),b=e.createURL(a),w=r;o&&t.errors?w=ew(r,Object.keys(t.errors)[0],!0):m&&e$(m[1])&&(w=ew(r,m[0]));let E=m?m[1].statusCode:void 0,S=i&&E&&E>=400,R=w.filter((e,r)=>{var a,i,u;let c,d,{route:h}=e;if(h.lazy)return!0;if(null==h.loader)return!1;if(o)return eS(h,t.loaderData,t.errors);if(a=t.loaderData,i=t.matches[r],u=e,c=!i||u.route.id!==i.route.id,d=void 0===a[u.route.id],c||d||s.some(t=>t===e.route.id))return!0;let f=t.matches[r];return ex(e,y({currentUrl:g,currentParams:f.params,nextUrl:b,nextParams:e.params},n,{actionResult:v,actionStatus:E,defaultShouldRevalidate:!S&&(l||g.pathname+g.search===b.pathname+b.search||g.search!==b.search||eR(f,e))}))}),x=[];return d.forEach((e,a)=>{if(o||!r.some(t=>t.route.id===e.routeId)||c.has(a))return;let i=A(f,e.path,p);if(!i)return void x.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let s=t.fetchers.get(a),d=eZ(i,e.path),m=!1;h.has(a)?m=!1:u.has(a)?(u.delete(a),m=!0):m=s&&"idle"!==s.state&&void 0===s.data?l:ex(d,y({currentUrl:g,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:r[r.length-1].params},n,{actionResult:v,actionStatus:E,defaultShouldRevalidate:!S&&l})),m&&x.push({key:a,routeId:e.routeId,path:e.path,matches:i,match:d,controller:new AbortController})}),[R,x]}function eS(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&void 0!==t[e.id],a=null!=r&&void 0!==r[e.id];return(!!n||!a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function eR(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ex(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function eC(e,t,r,n,a){var o;let i;if(e){let t=n[e];S(t,"No route found to patch children into: routeId = "+e),t.children||(t.children=[]),i=t.children}else i=r;let l=_(t.filter(e=>!i.some(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||t.children.every((t,n)=>{var a;return null==(a=r.children)?void 0:a.some(r=>e(t,r))}))})(e,t))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...l)}async function eP(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];S(a,"No route found in manifest");let o={};for(let e in n){let t=void 0!==a[e]&&"hasErrorBoundary"!==e;R(!t,'Route "'+a.id+'" has a static property "'+e+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+e+'" will be ignored.'),t||k.has(e)||(o[e]=n[e])}Object.assign(a,o),Object.assign(a,y({},t(a),{lazy:void 0}))}async function eD(e){let{matches:t}=e,r=t.filter(e=>e.shouldLoad);return(await Promise.all(r.map(e=>e.resolve()))).reduce((e,t,n)=>Object.assign(e,{[r[n].route.id]:t}),{})}async function eL(e,t,r,n,a,o,i,l,s,u){let c=o.map(e=>e.route.lazy?eP(e.route,s,l):void 0),h=o.map((e,r)=>{let o=c[r],i=a.some(t=>t.route.id===e.route.id),l=async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?ek(t,n,e,o,r,u):Promise.resolve({type:d.data,result:void 0}));return y({},e,{shouldLoad:i,resolve:l})}),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(c)}catch(e){}return f}async function ek(e,t,r,n,a,o){let i,l,s=n=>{let i,s=new Promise((e,t)=>i=t);l=()=>i(),t.signal.addEventListener("abort",l);let u=a=>"function"!=typeof n?Promise.reject(Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: ')+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]);return Promise.race([(async()=>{try{let e=await (a?a(e=>u(e)):u());return{type:"data",result:e}}catch(e){return{type:"error",result:e}}})(),s])};try{let a=r.route[e];if(n)if(a){let e,[t]=await Promise.all([s(a).catch(t=>{e=t}),n]);if(void 0!==e)throw e;i=t}else if(await n,a=r.route[e])i=await s(a);else{if("action"!==e)return{type:d.data,result:void 0};let n=new URL(t.url),a=n.pathname+n.search;throw ez(405,{method:t.method,pathname:a,routeId:r.route.id})}else if(a)i=await s(a);else{let e=new URL(t.url),r=e.pathname+e.search;throw ez(404,{pathname:r})}S(void 0!==i.result,"You defined "+("action"===e?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `")+e+"` function. Please return a value or `null`.")}catch(e){return{type:d.error,result:e}}finally{l&&t.signal.removeEventListener("abort",l)}return i}async function e_(e){var t,r,n,a,o,i,l,s,u;let{result:c,type:h}=e;if(eK(c)){let e;try{let t=c.headers.get("Content-Type");e=t&&/\bapplication\/json\b/.test(t)?null==c.body?null:await c.json():await c.text()}catch(e){return{type:d.error,error:e}}return h===d.error?{type:d.error,error:new ea(c.status,c.statusText,e),statusCode:c.status,headers:c.headers}:{type:d.data,data:e,statusCode:c.status,headers:c.headers}}if(h===d.error)return eJ(c)?c.data instanceof Error?{type:d.error,error:c.data,statusCode:null==(n=c.init)?void 0:n.status,headers:null!=(a=c.init)&&a.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:new ea((null==(t=c.init)?void 0:t.status)||500,void 0,c.data),statusCode:eo(c)?c.status:void 0,headers:null!=(r=c.init)&&r.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:c,statusCode:eo(c)?c.status:void 0};return(u=c)&&"object"==typeof u&&"object"==typeof u.data&&"function"==typeof u.subscribe&&"function"==typeof u.cancel&&"function"==typeof u.resolveData?{type:d.deferred,deferredData:c,statusCode:null==(o=c.init)?void 0:o.status,headers:(null==(i=c.init)?void 0:i.headers)&&new Headers(c.init.headers)}:eJ(c)?{type:d.data,data:c.data,statusCode:null==(l=c.init)?void 0:l.status,headers:null!=(s=c.init)&&s.headers?new Headers(c.init.headers):void 0}:{type:d.data,data:c}}function eA(e,t,r){if(ep.test(e)){let n=new URL(e.startsWith("//")?t.protocol+e:e),a=null!=B(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}return e}function eT(e,t,r,n){let a=e.createURL(eH(t)).toString(),o={signal:r};if(n&&eY(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=eU(n.formData):o.body=n.formData}return new Request(a,o)}function eU(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function ej(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function eM(e,t,r,n,a,o,i){let l,s,u,c,d,h,{loaderData:f,errors:p}=(s={},u=null,c=!1,d={},h=n&&e$(n[1])?n[1].error:void 0,t.forEach(e=>{if(!(e.route.id in r))return;let n=e.route.id,a=r[n];if(S(!eV(a),"Cannot handle redirect results in processLoaderData"),e$(a)){let e=a.error;void 0!==h&&(e=h,h=void 0),u=u||{},1;{let r=eN(t,n);null==u[r.route.id]&&(u[r.route.id]=e)}s[n]=void 0,c||(c=!0,l=eo(a.error)?a.error.status:500),a.headers&&(d[n]=a.headers)}else eW(a)?(i.set(n,a.deferredData),s[n]=a.deferredData.data,null==a.statusCode||200===a.statusCode||c||(l=a.statusCode)):(s[n]=a.data,a.statusCode&&200!==a.statusCode&&!c&&(l=a.statusCode)),a.headers&&(d[n]=a.headers)}),void 0!==h&&n&&(u={[n[0]]:h},s[n[0]]=void 0),{loaderData:s,errors:u,statusCode:l||200,loaderHeaders:d});return a.forEach(t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(S(i,"Did not find corresponding fetcher result"),!a||!a.signal.aborted)if(e$(i)){let t=eN(e.matches,null==n?void 0:n.route.id);p&&p[t.route.id]||(p=y({},p,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if(eV(i))S(!1,"Unhandled fetcher revalidation redirect");else if(eW(i))S(!1,"Unhandled fetcher deferred data");else{let t=e4(i.data);e.fetchers.set(r,t)}}),{loaderData:f,errors:p}}function eO(e,t,r,n){let a=y({},t);for(let o of r){let r=o.route.id;if(t.hasOwnProperty(r)?void 0!==t[r]&&(a[r]=t[r]):void 0!==e[r]&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function eF(e){return e?e$(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function eN(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function eB(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ez(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,l="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(l="Bad Request",a&&r&&n?s="You made a "+a+' request to "'+r+'" but did not provide a `loader` for route "'+n+'", so there is no way to handle the request.':"defer-action"===o?s="defer() is not supported in actions":"invalid-body"===o&&(s="Unable to encode submission body")):403===e?(l="Forbidden",s='Route "'+n+'" does not match URL "'+r+'"'):404===e?(l="Not Found",s='No route matches URL "'+r+'"'):405===e&&(l="Method Not Allowed",a&&r&&n?s="You made a "+a.toUpperCase()+' request to "'+r+'" but did not provide an `action` for route "'+n+'", so there is no way to handle the request.':a&&(s='Invalid request method "'+a.toUpperCase()+'"')),new ea(e||500,l,Error(s),!0)}function eI(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(eV(n))return{key:r,result:n}}}function eH(e){let t="string"==typeof e?D(e):e;return P(y({},t,{hash:""}))}function eW(e){return e.type===d.deferred}function e$(e){return e.type===d.error}function eV(e){return(e&&e.type)===d.redirect}function eJ(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function eK(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function eY(e){return el.has(e.toLowerCase())}async function eq(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[l,s]=o[i],u=e.find(e=>(null==e?void 0:e.route.id)===l);if(!u)continue;let c=n.find(e=>e.route.id===u.route.id),d=null!=c&&!eR(c,u)&&(a&&a[u.route.id])!==void 0;eW(s)&&d&&await eG(s,r,!1).then(e=>{e&&(t[l]=e)})}}async function eX(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],l=t[a];e.find(e=>(null==e?void 0:e.route.id)===o)&&eW(l)&&(S(i,"Expected an AbortController for revalidating fetcher deferred result"),await eG(l,i.signal,!0).then(e=>{e&&(t[a]=e)}))}}async function eG(e,t,r){if(void 0===r&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:d.data,data:e.deferredData.unwrappedData}}catch(e){return{type:d.error,error:e}}return{type:d.data,data:e.deferredData.data}}}function eQ(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function eZ(e,t){let r="string"==typeof t?D(t).search:t.search;if(e[e.length-1].route.index&&eQ(r||""))return e[e.length-1];let n=$(e);return n[n.length-1]}function e0(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function e1(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function e7(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function e4(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function e2(){return(e2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}Symbol("deferred");let e3=p.createContext(null),e5=p.createContext(null),e6=p.createContext(null),e8=p.createContext(null),e9=p.createContext(null),te=p.createContext({outlet:null,matches:[],isDataRoute:!1}),tt=p.createContext(null);function tr(e,t){let{relative:r}=void 0===t?{}:t;tn()||S(!1);let{basename:n,navigator:a}=p.useContext(e8),{hash:o,pathname:i,search:l}=tf(e,{relative:r}),s=i;return"/"!==n&&(s="/"===i?n:K([n,i])),a.createHref({pathname:s,search:l,hash:o})}function tn(){return null!=p.useContext(e9)}function ta(){return tn()||S(!1),p.useContext(e9).location}function to(){return p.useContext(e9).navigationType}function ti(e){tn()||S(!1);let{pathname:t}=ta();return p.useMemo(()=>F(e,N(t)),[t,e])}function tl(e){p.useContext(e8).static||p.useLayoutEffect(e)}function ts(){let{isDataRoute:e}=p.useContext(te);return e?function(){let{router:e}=tS(tw.UseNavigateStable),t=tx(tE.UseNavigateStable),r=p.useRef(!1);return tl(()=>{r.current=!0}),p.useCallback(function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,e2({fromRouteId:t},a)))},[e,t])}():function(){tn()||S(!1);let e=p.useContext(e3),{basename:t,future:r,navigator:n}=p.useContext(e8),{matches:a}=p.useContext(te),{pathname:o}=ta(),i=JSON.stringify(V(a,r.v7_relativeSplatPath)),l=p.useRef(!1);return tl(()=>{l.current=!0}),p.useCallback(function(r,a){if(void 0===a&&(a={}),!l.current)return;if("number"==typeof r)return void n.go(r);let s=J(r,JSON.parse(i),o,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:K([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,i,o,e])}()}let tu=p.createContext(null);function tc(){return p.useContext(tu)}function td(e){let t=p.useContext(te).outlet;return t?p.createElement(tu.Provider,{value:e},t):t}function th(){let{matches:e}=p.useContext(te),t=e[e.length-1];return t?t.params:{}}function tf(e,t){let{relative:r}=void 0===t?{}:t,{future:n}=p.useContext(e8),{matches:a}=p.useContext(te),{pathname:o}=ta(),i=JSON.stringify(V(a,n.v7_relativeSplatPath));return p.useMemo(()=>J(e,JSON.parse(i),o,"path"===r),[e,i,o,r])}function tp(e,t){return tm(e,t)}function tm(e,t,r,n){let a;tn()||S(!1);let{navigator:o}=p.useContext(e8),{matches:i}=p.useContext(te),l=i[i.length-1],s=l?l.params:{};l&&l.pathname;let u=l?l.pathnameBase:"/";l&&l.route;let d=ta();if(t){var h;let e="string"==typeof t?D(t):t;"/"===u||(null==(h=e.pathname)?void 0:h.startsWith(u))||S(!1),a=e}else a=d;let f=a.pathname||"/",m=f;if("/"!==u){let e=u.replace(/^\//,"").split("/");m="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let v=A(e,{pathname:m}),y=tb(v&&v.map(e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:K([u,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:K([u,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),i,r,n);return t&&y?p.createElement(e9.Provider,{value:{location:e2({pathname:"/",search:"",hash:"",state:null,key:"default"},a),navigationType:c.Pop}},y):y}let tv=p.createElement(function(){let e=tT(),t=eo(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null;return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},t),r?p.createElement("pre",{style:{padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"}},r):null,null)},null);class ty extends p.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?p.createElement(te.Provider,{value:this.props.routeContext},p.createElement(tt.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function tg(e){let{routeContext:t,match:r,children:n}=e,a=p.useContext(e3);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),p.createElement(te.Provider,{value:t},n)}function tb(e,t,r,n){var a,o;if(void 0===t&&(t=[]),void 0===r&&(r=null),void 0===n&&(n=null),null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(null==(o=n)||!o.v7_partialHydration||0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let i=e,l=null==(a=r)?void 0:a.errors;if(null!=l){let e=i.findIndex(e=>e.route.id&&(null==l?void 0:l[e.route.id])!==void 0);e>=0||S(!1),i=i.slice(0,Math.min(i.length,e+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&void 0===e[t.route.id]&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){s=!0,i=u>=0?i.slice(0,u+1):[i[0]];break}}}return i.reduceRight((e,n,a)=>{var o;let c,d=!1,h=null,f=null;r&&(c=l&&n.route.id?l[n.route.id]:void 0,h=n.route.errorElement||tv,s&&(u<0&&0===a?(o="route-fallback",tF[o]||(tF[o]=!0),d=!0,f=null):u===a&&(d=!0,f=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,a+1)),v=()=>{let t;return t=c?h:d?f:n.route.Component?p.createElement(n.route.Component,null):n.route.element?n.route.element:e,p.createElement(tg,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?p.createElement(ty,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:v(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):v()},null)}var tw=((o=tw||{}).UseBlocker="useBlocker",o.UseRevalidator="useRevalidator",o.UseNavigateStable="useNavigate",o),tE=((i=tE||{}).UseBlocker="useBlocker",i.UseLoaderData="useLoaderData",i.UseActionData="useActionData",i.UseRouteError="useRouteError",i.UseNavigation="useNavigation",i.UseRouteLoaderData="useRouteLoaderData",i.UseMatches="useMatches",i.UseRevalidator="useRevalidator",i.UseNavigateStable="useNavigate",i.UseRouteId="useRouteId",i);function tS(e){let t=p.useContext(e3);return t||S(!1),t}function tR(e){let t=p.useContext(e5);return t||S(!1),t}function tx(e){let t,r=((t=p.useContext(te))||S(!1),t),n=r.matches[r.matches.length-1];return n.route.id||S(!1),n.route.id}function tC(){return tx(tE.UseRouteId)}function tP(){return tR(tE.UseNavigation).navigation}function tD(){let e=tS(tw.UseRevalidator),t=tR(tE.UseRevalidator);return p.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function tL(){let{matches:e,loaderData:t}=tR(tE.UseMatches);return p.useMemo(()=>e.map(e=>U(e,t)),[e,t])}function tk(){let e=tR(tE.UseLoaderData),t=tx(tE.UseLoaderData);return e.errors&&null!=e.errors[t]?void console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")"):e.loaderData[t]}function t_(e){return tR(tE.UseRouteLoaderData).loaderData[e]}function tA(){let e=tR(tE.UseActionData),t=tx(tE.UseLoaderData);return e.actionData?e.actionData[t]:void 0}function tT(){var e;let t=p.useContext(tt),r=tR(tE.UseRouteError),n=tx(tE.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function tU(){let e=p.useContext(e6);return null==e?void 0:e._data}function tj(){let e=p.useContext(e6);return null==e?void 0:e._error}let tM=0;function tO(e){let{router:t,basename:r}=tS(tw.UseBlocker),n=tR(tE.UseBlocker),[a,o]=p.useState(""),i=p.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:e2({},n,{pathname:B(n.pathname,r)||n.pathname}),nextLocation:e2({},a,{pathname:B(a.pathname,r)||a.pathname}),historyAction:o})},[r,e]);return p.useEffect(()=>{let e=String(++tM);return o(e),()=>t.deleteBlocker(e)},[t]),p.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):ef}let tF={},tN=(e,t,r)=>{};function tB(e,t){(null==e?void 0:e.v7_startTransition)===void 0&&tN("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),(null==e?void 0:e.v7_relativeSplatPath)!==void 0||t&&void 0!==t.v7_relativeSplatPath||tN("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(void 0===t.v7_fetcherPersist&&tN("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),void 0===t.v7_normalizeFormMethod&&tN("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),void 0===t.v7_partialHydration&&tN("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),void 0===t.v7_skipActionErrorRevalidation&&tN("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}let tz=p.startTransition;function tI(e){let{basename:t,children:r,initialEntries:n,initialIndex:a,future:o}=e,i=p.useRef();null==i.current&&(i.current=b({initialEntries:n,initialIndex:a,v5Compat:!0}));let l=i.current,[s,u]=p.useState({action:l.action,location:l.location}),{v7_startTransition:c}=o||{},d=p.useCallback(e=>{c&&tz?tz(()=>u(e)):u(e)},[u,c]);return p.useLayoutEffect(()=>l.listen(d),[l,d]),p.useEffect(()=>tB(o),[o]),p.createElement(tV,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:l,future:o})}function tH(e){let{to:t,replace:r,state:n,relative:a}=e;tn()||S(!1);let{future:o,static:i}=p.useContext(e8),{matches:l}=p.useContext(te),{pathname:s}=ta(),u=ts(),c=JSON.stringify(J(t,V(l,o.v7_relativeSplatPath),s,"path"===a));return p.useEffect(()=>u(JSON.parse(c),{replace:r,state:n,relative:a}),[u,c,a,r,n]),null}function tW(e){return td(e.context)}function t$(e){S(!1)}function tV(e){let{basename:t="/",children:r=null,location:n,navigationType:a=c.Pop,navigator:o,static:i=!1,future:l}=e;tn()&&S(!1);let s=t.replace(/^\/*/,"/"),u=p.useMemo(()=>({basename:s,navigator:o,static:i,future:e2({v7_relativeSplatPath:!1},l)}),[s,l,o,i]);"string"==typeof n&&(n=D(n));let{pathname:d="/",search:h="",hash:f="",state:m=null,key:v="default"}=n,y=p.useMemo(()=>{let e=B(d,s);return null==e?null:{location:{pathname:e,search:h,hash:f,state:m,key:v},navigationType:a}},[s,d,h,f,m,v,a]);return null==y?null:p.createElement(e8.Provider,{value:u},p.createElement(e9.Provider,{children:r,value:y}))}function tJ(e){let{children:t,location:r}=e;return tm(tQ(t),r)}function tK(e){let{children:t,errorElement:r,resolve:n}=e;return p.createElement(tX,{resolve:n,errorElement:r},p.createElement(tG,null,t))}var tY=((l=tY||{})[l.pending=0]="pending",l[l.success=1]="success",l[l.error=2]="error",l);let tq=new Promise(()=>{});class tX extends p.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=tY.pending;if(r instanceof Promise)if(this.state.error){a=tY.error;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?tY.error:"_data"in n?tY.success:tY.pending:(a=tY.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>Object.defineProperty(r,"_error",{get:()=>e})));else a=tY.success,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===tY.error&&n._error instanceof Q)throw tq;if(a===tY.error&&!t)throw n._error;if(a===tY.error)return p.createElement(e6.Provider,{value:n,children:t});if(a===tY.success)return p.createElement(e6.Provider,{value:n,children:e});throw n}}function tG(e){let{children:t}=e,r=tU(),n="function"==typeof t?t(r):t;return p.createElement(p.Fragment,null,n)}function tQ(e,t){void 0===t&&(t=[]);let r=[];return p.Children.forEach(e,(e,n)=>{if(!p.isValidElement(e))return;let a=[...t,n];if(e.type===p.Fragment)return void r.push.apply(r,tQ(e.props.children,a));e.type!==t$&&S(!1),e.props.index&&e.props.children&&S(!1);let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=tQ(e.props.children,a)),r.push(o)}),r}function tZ(e){return tb(e)}function t0(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:p.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:p.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:p.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function t1(e,t){return ey({basename:null==t?void 0:t.basename,future:e2({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:b({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}function t7(){return(t7=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function t4(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}let t2="application/x-www-form-urlencoded";function t3(e){return null!=e&&"string"==typeof e.tagName}function t5(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(e=>[r,e]):[[r,n]])},[]))}let t6=null,t8=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function t9(e){return null==e||t8.has(e)?e:null}let re=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],rt=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],rr=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="6"}catch(e){}function rn(e,t){return ey({basename:null==t?void 0:t.basename,future:t7({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:w({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||ro(),routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function ra(e,t){return ey({basename:null==t?void 0:t.basename,future:t7({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:E({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||ro(),routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function ro(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=t7({},t,{errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new ea(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}(t.errors)})),t}let ri=p.createContext({isTransitioning:!1}),rl=p.createContext(new Map),rs=p.startTransition,ru=v.flushSync,rc=p.useId;function rd(e){ru?ru(e):e()}class rh{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}}function rf(e){let{fallbackElement:t,router:r,future:n}=e,[a,o]=p.useState(r.state),[i,l]=p.useState(),[s,u]=p.useState({isTransitioning:!1}),[c,d]=p.useState(),[h,f]=p.useState(),[m,v]=p.useState(),y=p.useRef(new Map),{v7_startTransition:g}=n||{},b=p.useCallback(e=>{if(g)rs?rs(e):e();else e()},[g]),w=p.useCallback((e,t)=>{let{deletedFetchers:n,flushSync:a,viewTransitionOpts:i}=t;e.fetchers.forEach((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}),n.forEach(e=>y.current.delete(e));let s=null==r.window||null==r.window.document||"function"!=typeof r.window.document.startViewTransition;if(!i||s)return void(a?rd(()=>o(e)):b(()=>o(e)));if(a){rd(()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:i.currentLocation,nextLocation:i.nextLocation})});let t=r.window.document.startViewTransition(()=>{rd(()=>o(e))});t.finished.finally(()=>{rd(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})})}),rd(()=>f(t));return}h?(c&&c.resolve(),h.skipTransition(),v({state:e,currentLocation:i.currentLocation,nextLocation:i.nextLocation})):(l(e),u({isTransitioning:!0,flushSync:!1,currentLocation:i.currentLocation,nextLocation:i.nextLocation}))},[r.window,h,c,y,b]);p.useLayoutEffect(()=>r.subscribe(w),[r,w]),p.useEffect(()=>{s.isTransitioning&&!s.flushSync&&d(new rh)},[s]),p.useEffect(()=>{if(c&&i&&r.window){let e=c.promise,t=r.window.document.startViewTransition(async()=>{b(()=>o(i)),await e});t.finished.finally(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})}),f(t)}},[b,i,c,r.window]),p.useEffect(()=>{c&&i&&a.location.key===i.location.key&&c.resolve()},[c,h,a.location,i]),p.useEffect(()=>{!s.isTransitioning&&m&&(l(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))},[s.isTransitioning,m]),p.useEffect(()=>{},[]);let E=p.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})}),[r]),S=r.basename||"/",R=p.useMemo(()=>({router:r,navigator:E,static:!1,basename:S}),[r,E,S]),x=p.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return p.useEffect(()=>tB(n,r.future),[n,r.future]),p.createElement(p.Fragment,null,p.createElement(e3.Provider,{value:R},p.createElement(e5.Provider,{value:a},p.createElement(rl.Provider,{value:y.current},p.createElement(ri.Provider,{value:s},p.createElement(tV,{basename:S,location:a.location,navigationType:a.historyAction,navigator:E,future:x},a.initialized||r.future.v7_partialHydration?p.createElement(rp,{routes:r.routes,future:r.future,state:a}):t))))),null)}let rp=p.memo(function(e){let{routes:t,future:r,state:n}=e;return tm(t,void 0,n,r)});function rm(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=w({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&rs?rs(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function rv(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=E({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&rs?rs(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function ry(e){let{basename:t,children:r,future:n,history:a}=e,[o,i]=p.useState({action:a.action,location:a.location}),{v7_startTransition:l}=n||{},s=p.useCallback(e=>{l&&rs?rs(()=>i(e)):i(e)},[i,l]);return p.useLayoutEffect(()=>a.listen(s),[a,s]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:o.location,navigationType:o.action,navigator:a,future:n})}let rg="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,rb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,rw=p.forwardRef(function(e,t){let r,{onClick:n,relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:c,viewTransition:d}=e,h=t4(e,re),{basename:f}=p.useContext(e8),m=!1;if("string"==typeof u&&rb.test(u)&&(r=u,rg))try{let e=new URL(window.location.href),t=new URL(u.startsWith("//")?e.protocol+u:u),r=B(t.pathname,f);t.origin===e.origin&&null!=r?u=r+t.search+t.hash:m=!0}catch(e){}let v=tr(u,{relative:a}),y=rP(u,{replace:i,state:l,target:s,preventScrollReset:c,relative:a,viewTransition:d});return p.createElement("a",t7({},h,{href:r||v,onClick:m||o?n:function(e){n&&n(e),e.defaultPrevented||y(e)},ref:t,target:s}))}),rE=p.forwardRef(function(e,t){let r,{"aria-current":n="page",caseSensitive:a=!1,className:o="",end:i=!1,style:l,to:s,viewTransition:u,children:c}=e,d=t4(e,rt),h=tf(s,{relative:d.relative}),f=ta(),m=p.useContext(e5),{navigator:v,basename:y}=p.useContext(e8),g=null!=m&&rB(h)&&!0===u,b=v.encodeLocation?v.encodeLocation(h).pathname:h.pathname,w=f.pathname,E=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;a||(w=w.toLowerCase(),E=E?E.toLowerCase():null,b=b.toLowerCase()),E&&y&&(E=B(E,y)||E);let S="/"!==b&&b.endsWith("/")?b.length-1:b.length,R=w===b||!i&&w.startsWith(b)&&"/"===w.charAt(S),x=null!=E&&(E===b||!i&&E.startsWith(b)&&"/"===E.charAt(b.length)),C={isActive:R,isPending:x,isTransitioning:g},P=R?n:void 0;r="function"==typeof o?o(C):[o,R?"active":null,x?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let D="function"==typeof l?l(C):l;return p.createElement(rw,t7({},d,{"aria-current":P,className:r,ref:t,style:D,to:s,viewTransition:u}),"function"==typeof c?c(C):c)}),rS=p.forwardRef((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:a,replace:o,state:i,method:l="get",action:s,onSubmit:u,relative:c,preventScrollReset:d,viewTransition:h}=e,f=t4(e,rr),m=r_(),v=rA(s,{relative:c}),y="get"===l.toLowerCase()?"get":"post";return p.createElement("form",t7({ref:t,method:y,action:v,onSubmit:a?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,a=(null==t?void 0:t.getAttribute("formmethod"))||l;m(t||e.currentTarget,{fetcherKey:r,method:a,navigate:n,replace:o,state:i,relative:c,preventScrollReset:d,viewTransition:h})}},f))});function rR(e){let{getKey:t,storageKey:r}=e;return rO({getKey:t,storageKey:r}),null}function rx(e){let t=p.useContext(e3);return t||S(!1),t}function rC(e){let t=p.useContext(e5);return t||S(!1),t}function rP(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:i,viewTransition:l}=void 0===t?{}:t,s=ts(),u=ta(),c=tf(e,{relative:i});return p.useCallback(t=>{0!==t.button||r&&"_self"!==r||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||(t.preventDefault(),s(e,{replace:void 0!==n?n:P(u)===P(c),state:a,preventScrollReset:o,relative:i,viewTransition:l}))},[u,s,c,n,a,r,e,o,i,l])}function rD(e){let t=p.useRef(t5(e)),r=p.useRef(!1),n=ta(),a=p.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=t5(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),o=ts(),i=p.useCallback((e,t)=>{let n=t5("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)},[o,a]);return[a,i]}(s=h||(h={})).UseScrollRestoration="useScrollRestoration",s.UseSubmit="useSubmit",s.UseSubmitFetcher="useSubmitFetcher",s.UseFetcher="useFetcher",s.useViewTransitionState="useViewTransitionState",(u=f||(f={})).UseFetcher="useFetcher",u.UseFetchers="useFetchers",u.UseScrollRestoration="useScrollRestoration";let rL=0,rk=()=>"__"+String(++rL)+"__";function r_(){let{router:e}=rx(h.UseSubmit),{basename:t}=p.useContext(e8),r=tC();return p.useCallback(function(n,a){if(void 0===a&&(a={}),"undefined"==typeof document)throw Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.");let{action:o,method:i,encType:l,formData:s,body:u}=function(e,t){let r,n,a,o,i;if(t3(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?B(i,t):null,r=e.getAttribute("method")||"get",a=t9(e.getAttribute("enctype"))||t2,o=new FormData(e)}else if(t3(e)&&"button"===e.tagName.toLowerCase()||t3(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||i.getAttribute("action");if(n=l?B(l,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||"get",a=t9(e.getAttribute("formenctype"))||t9(i.getAttribute("enctype"))||t2,o=new FormData(i,e),!function(){if(null===t6)try{new FormData(document.createElement("form"),0),t6=!1}catch(e){t6=!0}return t6}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else if(t3(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else r="get",n=null,a=t2,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(n,t);if(!1===a.navigate){let t=a.fetcherKey||rk();e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,flushSync:a.flushSync})}else e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function rA(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=p.useContext(e8),a=p.useContext(te);a||S(!1);let[o]=a.matches.slice(-1),i=t7({},tf(e||".",{relative:r})),l=ta();if(null==e){i.search=l.search;let e=new URLSearchParams(i.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();i.search=r?"?"+r:""}}return(!e||"."===e)&&o.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(i.pathname="/"===i.pathname?n:K([n,i.pathname])),P(i)}function rT(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=rx(h.UseFetcher),a=rC(f.UseFetcher),o=p.useContext(rl),i=p.useContext(te),l=null==(t=i.matches[i.matches.length-1])?void 0:t.route.id;o||S(!1),i||S(!1),null==l&&S(!1);let s=rc?rc():"",[u,c]=p.useState(r||s);r&&r!==u?c(r):u||c(rk()),p.useEffect(()=>(n.getFetcher(u),()=>{n.deleteFetcher(u)}),[n,u]);let d=p.useCallback((e,t)=>{l||S(!1),n.fetch(u,l,e,t)},[u,l,n]),m=r_(),v=p.useCallback((e,t)=>{m(e,t7({},t,{navigate:!1,fetcherKey:u}))},[u,m]),y=p.useMemo(()=>p.forwardRef((e,t)=>p.createElement(rS,t7({},e,{navigate:!1,fetcherKey:u,ref:t}))),[u]),g=a.fetchers.get(u)||eh,b=o.get(u);return p.useMemo(()=>t7({Form:y,submit:v,load:d},g,{data:b}),[y,v,d,g,b])}function rU(){return Array.from(rC(f.UseFetchers).fetchers.entries()).map(e=>{let[t,r]=e;return t7({},r,{key:t})})}let rj="react-router-scroll-positions",rM={};function rO(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=rx(h.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=rC(f.UseScrollRestoration),{basename:i}=p.useContext(e8),l=ta(),s=tL(),u=tP();p.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),function(e,t){let{capture:r}={};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}},[e,r])}(p.useCallback(()=>{"idle"===u.state&&(rM[(t?t(l,s):null)||l.key]=window.scrollY);try{sessionStorage.setItem(r||rj,JSON.stringify(rM))}catch(e){}window.history.scrollRestoration="auto"},[r,t,u.state,l,s])),"undefined"!=typeof document&&(p.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(r||rj);e&&(rM=JSON.parse(e))}catch(e){}},[r]),p.useLayoutEffect(()=>{let e=t&&"/"!==i?(e,r)=>t(t7({},e,{pathname:B(e.pathname,i)||e.pathname}),r):t,r=null==n?void 0:n.enableScrollRestoration(rM,()=>window.scrollY,e);return()=>r&&r()},[n,i,t]),p.useLayoutEffect(()=>{if(!1!==a){if("number"==typeof a)return void window.scrollTo(0,a);if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==o&&window.scrollTo(0,0)}},[l,a,o]))}function rF(e,t){let{capture:r}=t||{};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}},[e,r])}function rN(e){let{when:t,message:r}=e,n=tO(t);p.useEffect(()=>{"blocked"===n.state&&(window.confirm(r)?setTimeout(n.proceed,0):n.reset())},[n,r]),p.useEffect(()=>{"blocked"!==n.state||t||n.reset()},[n,t])}function rB(e,t){void 0===t&&(t={});let r=p.useContext(ri);null==r&&S(!1);let{basename:n}=rx(h.useViewTransitionState),a=tf(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=B(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=B(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=F(a.pathname,i)||null!=F(a.pathname,o)}}}]);
1
+ "use strict";(globalThis.webpackChunk_palladium_ethiopia_esm_clinical_workflow_app=globalThis.webpackChunk_palladium_ethiopia_esm_clinical_workflow_app||[]).push([["712"],{7059(e,t,r){r.r(t),r.d(t,{useFetchers:()=>rU,unstable_HistoryRouter:()=>ry,useLoaderData:()=>tk,ScrollRestoration:()=>rR,Route:()=>t$,MemoryRouter:()=>tI,useMatches:()=>tL,redirect:()=>et,useOutletContext:()=>tc,createRoutesFromElements:()=>tQ,useLinkClickHandler:()=>rP,useRouteError:()=>tT,generatePath:()=>O,replace:()=>en,useHref:()=>tr,useParams:()=>th,UNSAFE_ViewTransitionContext:()=>ri,useRoutes:()=>tp,useSubmit:()=>r_,UNSAFE_NavigationContext:()=>e8,Navigate:()=>tH,UNSAFE_ErrorResponseImpl:()=>ea,UNSAFE_FetchersContext:()=>rl,useAsyncError:()=>tj,createRoutesFromChildren:()=>tQ,unstable_usePrompt:()=>rN,useFetcher:()=>rT,useBlocker:()=>tO,createHashRouter:()=>ra,UNSAFE_useRouteId:()=>tC,useMatch:()=>ti,useNavigation:()=>tP,HashRouter:()=>rv,useFormAction:()=>rA,useResolvedPath:()=>tf,defer:()=>ee,Router:()=>tV,Routes:()=>tJ,useActionData:()=>tA,useRouteLoaderData:()=>t_,Await:()=>tK,matchPath:()=>F,UNSAFE_DataRouterContext:()=>e3,BrowserRouter:()=>rm,NavigationType:()=>c,Form:()=>rS,UNSAFE_RouteContext:()=>te,createSearchParams:()=>t5,RouterProvider:()=>rf,UNSAFE_LocationContext:()=>e9,parsePath:()=>D,Outlet:()=>tW,createMemoryRouter:()=>t1,UNSAFE_useScrollRestoration:()=>rO,useNavigate:()=>ts,matchRoutes:()=>A,createPath:()=>P,resolvePath:()=>I,useInRouterContext:()=>tn,useOutlet:()=>td,useAsyncValue:()=>tU,useViewTransitionState:()=>rB,Link:()=>rw,AbortedDeferredError:()=>Q,renderMatches:()=>tZ,NavLink:()=>rE,UNSAFE_DataRouterStateContext:()=>e5,json:()=>G,useSearchParams:()=>rD,redirectDocument:()=>er,useBeforeUnload:()=>rF,useLocation:()=>ta,createBrowserRouter:()=>rn,isRouteErrorResponse:()=>eo,useNavigationType:()=>to,useRevalidator:()=>tD});var n,a,o,i,l,s,u,c,d,h,f,p=r(3763),m=r(3144),v=r.t(m,2);function y(){return(y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}(n=c||(c={})).Pop="POP",n.Push="PUSH",n.Replace="REPLACE";let g="popstate";function b(e){let t;void 0===e&&(e={});let{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0));let o=s(null==n?t.length-1:n),i=c.Pop,l=null;function s(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r,n){void 0===r&&(r=null);let a=C(t?t[o].pathname:"/",e,r,n);return R("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function d(e){return"string"==typeof e?e:P(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:d,createURL:e=>new URL(d(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?D(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=c.Push;let n=u(e,r);o+=1,t.splice(o,t.length,n),a&&l&&l({action:i,location:n,delta:1})},replace(e,r){i=c.Replace;let n=u(e,r);t[o]=n,a&&l&&l({action:i,location:n,delta:0})},go(e){i=c.Pop;let r=s(o+e),n=t[r];o=r,l&&l({action:i,location:n,delta:e})},listen:e=>(l=e,()=>{l=null})}}function w(e){return void 0===e&&(e={}),L(function(e,t){let{pathname:r,search:n,hash:a}=e.location;return C("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){return"string"==typeof t?t:P(t)},null,e)}function E(e){return void 0===e&&(e={}),L(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=D(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),C("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:P(t))},function(e,t){R("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")},e)}function S(e,t){if(!1===e||null==e)throw Error(t)}function R(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function x(e,t){return{usr:e.state,key:e.key,idx:t}}function C(e,t,r,n){return void 0===r&&(r=null),y({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?D(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function P(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&"?"!==r&&(t+="?"===r.charAt(0)?r:"?"+r),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function D(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function L(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=c.Pop,s=null,u=d();function d(){return(i.state||{idx:null}).idx}function h(){l=c.Pop;let e=d(),t=null==e?null:e-u;u=e,s&&s({action:l,location:p.location,delta:t})}function f(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:P(e);return S(t,"No window.location.(origin|href) available to create URL for href: "+(r=r.replace(/ $/,"%20"))),new URL(r,t)}null==u&&(u=0,i.replaceState(y({},i.state,{idx:u}),""));let p={get action(){return l},get location(){return e(a,i)},listen(e){if(s)throw Error("A history only accepts one active listener");return a.addEventListener(g,h),s=e,()=>{a.removeEventListener(g,h),s=null}},createHref:e=>t(a,e),createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l=c.Push;let n=C(p.location,e,t);r&&r(n,e);let h=x(n,u=d()+1),f=p.createHref(n);try{i.pushState(h,"",f)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(f)}o&&s&&s({action:l,location:p.location,delta:1})},replace:function(e,t){l=c.Replace;let n=C(p.location,e,t);r&&r(n,e);let a=x(n,u=d()),h=p.createHref(n);i.replaceState(a,"",h),o&&s&&s({action:l,location:p.location,delta:0})},go:e=>i.go(e)};return p}(a=d||(d={})).data="data",a.deferred="deferred",a.redirect="redirect",a.error="error";let k=new Set(["lazy","caseSensitive","path","id","index","children"]);function _(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(S(!0!==e.index||!e.children,"Cannot specify children on an index route"),S(!n[i],'Found a route id collision on id "'+i+"\". Route id's must be globally unique within Data Router usages"),!0===e.index){let r=y({},e,t(e),{id:i});return n[i]=r,r}{let r=y({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=_(e.children,t,o,n)),r}})}function A(e,t,r){return void 0===r&&(r="/"),T(e,t,r,!1)}function T(e,t,r,n){let a=B(("string"==typeof t?D(t):t).pathname||"/",r);if(null==a)return null;let o=function e(t,r,n,a){void 0===r&&(r=[]),void 0===n&&(n=[]),void 0===a&&(a="");let o=(t,o,i)=>{var l,s;let u,c,d={relativePath:void 0===i?t.path||"":i,caseSensitive:!0===t.caseSensitive,childrenIndex:o,route:t};d.relativePath.startsWith("/")&&(S(d.relativePath.startsWith(a),'Absolute route path "'+d.relativePath+'" nested under path "'+a+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),d.relativePath=d.relativePath.slice(a.length));let h=K([a,d.relativePath]),f=n.concat(d);t.children&&t.children.length>0&&(S(!0!==t.index,'Index routes must not have child routes. Please remove all child routes from route path "'+h+'".'),e(t.children,r,f,h)),(null!=t.path||t.index)&&r.push({path:h,score:(l=h,s=t.index,c=(u=l.split("/")).length,u.some(M)&&(c+=-2),s&&(c+=2),u.filter(e=>!M(e)).reduce((e,t)=>e+(j.test(t)?3:""===t?1:10),c)),routesMeta:f})};return t.forEach((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let l=e(a.join("/")),s=[];return s.push(...l.map(e=>""===e?i:[i,e].join("/"))),o&&s.push(...l),s.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))o(e,t,r);else o(e,t)}),r}(e);o.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)});let i=null;for(let e=0;null==i&&e<o.length;++e){let t=N(a);i=function(e,t,r){void 0===r&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let l=n[e],s=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=F({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},u),d=l.route;if(!c&&s&&r&&!n[n.length-1].route.index&&(c=F({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:K([o,c.pathname]),pathnameBase:Y(K([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=K([o,c.pathnameBase]))}return i}(o[e],t,n)}return i}function U(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}let j=/^:[\w-]+$/,M=e=>"*"===e;function O(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(R(!1,'Route path "'+r+'" will be treated as if it were "'+r.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+r.replace(/\*$/,"/*")+'".'),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)$/);if(o){let[,e,r]=o,n=t[e];return S("?"===r||null!=n,'Missing ":'+e+'" param'),a(n)}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function F(e,t){var r,n,a;let o,i;"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[l,s]=(r=e.path,n=e.caseSensitive,a=e.end,void 0===n&&(n=!1),void 0===a&&(a=!0),R("*"===r||!r.endsWith("*")||r.endsWith("/*"),'Route path "'+r+'" will be treated as if it were "'+r.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+r.replace(/\*$/,"/*")+'".'),o=[],i="^"+r.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r)=>(o.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")),r.endsWith("*")?(o.push({paramName:"*"}),i+="*"===r||"/*"===r?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?i+="\\/*$":""!==r&&"/"!==r&&(i+="(?:(?=\\/|$))"),[new RegExp(i,n?void 0:"i"),o]),u=t.match(l);if(!u)return null;let c=u[0],d=c.replace(/(.)\/+$/,"$1"),h=u.slice(1);return{params:s.reduce((e,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=h[r]||"";d=c.slice(0,c.length-e.length).replace(/(.)\/+$/,"$1")}let o=h[r];return a&&!o?e[n]=void 0:e[n]=(o||"").replace(/%2F/g,"/"),e},{}),pathname:c,pathnameBase:d,pattern:e}}function N(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return R(!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 B(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}let z=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function I(e,t){let r;void 0===t&&(t="/");let{pathname:n,search:a="",hash:o=""}="string"==typeof e?D(e):e;if(n){let e;(e=n,z.test(e))?r=n:(n.includes("//")&&R(!1,"Pathnames cannot have embedded double slashes - normalizing "+n+" -> "+(n=n.replace(/\/\/+/g,"/"))),r=n.startsWith("/")?H(n.substring(1),"/"):H(n,t))}else r=t;return{pathname:r,search:q(a),hash:X(o)}}function H(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function W(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field [")+JSON.stringify(n)+"]. Please separate it out to the `to."+r+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function $(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function V(e,t){let r=$(e);return t?r.map((e,t)=>t===r.length-1?e.pathname:e.pathnameBase):r.map(e=>e.pathnameBase)}function J(e,t,r,n){let a,o;void 0===n&&(n=!1),"string"==typeof e?a=D(e):(S(!(a=y({},e)).pathname||!a.pathname.includes("?"),W("?","pathname","search",a)),S(!a.pathname||!a.pathname.includes("#"),W("#","pathname","hash",a)),S(!a.search||!a.search.includes("#"),W("#","search","hash",a)));let i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let s=I(a,o),u=l&&"/"!==l&&l.endsWith("/"),c=(i||"."===l)&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}let K=e=>e.join("/").replace(/\/\/+/g,"/"),Y=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),q=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",X=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",G=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),y({},r,{headers:n}))};class Q extends Error{}class Z{constructor(e,t){let r;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],S(e&&"object"==typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise((e,t)=>r=t),this.controller=new AbortController;let n=()=>r(new Q("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",n),this.controller.signal.addEventListener("abort",n),this.data=Object.entries(e).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:this.trackPromise(r,n)})},{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let r=Promise.race([t,this.abortPromise]).then(t=>this.onSettle(r,e,void 0,t),t=>this.onSettle(r,e,t));return r.catch(()=>{}),Object.defineProperty(r,"_tracked",{get:()=>!0}),r}onSettle(e,t,r,n){if(this.controller.signal.aborted&&r instanceof Q)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>r}),Promise.reject(r);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===r&&void 0===n){let r=Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)}return void 0===n?(Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)):(Object.defineProperty(e,"_data",{get:()=>n}),this.emit(!1,t),n)}emit(e,t){this.subscribers.forEach(r=>r(e,t))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((e,t)=>this.pendingKeysSet.delete(t)),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let r=()=>this.cancel();e.addEventListener("abort",r),t=await new Promise(t=>{this.subscribe(n=>{e.removeEventListener("abort",r),(n||this.done)&&t(n)})})}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return S(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:function(e){if(!(e instanceof Promise&&!0===e._tracked))return e;if(e._error)throw e._error;return e._data}(n)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}let ee=function(e,t){return void 0===t&&(t={}),new Z(e,"number"==typeof t?{status:t}:t)},et=function(e,t){void 0===t&&(t=302);let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,y({},r,{headers:n}))},er=(e,t)=>{let r=et(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},en=(e,t)=>{let r=et(e,t);return r.headers.set("X-Remix-Replace","true"),r};class ea{constructor(e,t,r,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function eo(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}let ei=["post","put","patch","delete"],el=new Set(ei),es=new Set(["get",...ei]),eu=new Set([301,302,303,307,308]),ec=new Set([307,308]),ed={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eh={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ef={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ep=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,em=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),ev="remix-router-transitions";function ey(e){let t,r,n,a,o,i,l=e.window?e.window:"u">typeof window?window:void 0,s=void 0!==l&&void 0!==l.document&&void 0!==l.document.createElement,u=!s;if(S(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let r=e.detectErrorBoundary;t=e=>({hasErrorBoundary:r(e)})}else t=em;let h={},f=_(e.routes,t,void 0,h),p=e.basename||"/",m=e.dataStrategy||eD,v=e.patchRoutesOnNavigation,g=y({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),b=null,w=new Set,E=null,x=null,P=null,D=null!=e.hydrationData,L=A(f,e.history.location,p),k=!1,j=null;if(null==L&&!v){let t=ez(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=eB(f);L=r,j={[n.id]:t}}if(L&&!e.hydrationData&&to(L,f,e.history.location.pathname).active&&(L=null),L)if(L.some(e=>e.route.lazy))n=!1;else if(L.some(e=>e.route.loader))if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null;if(r){let e=L.findIndex(e=>void 0!==r[e.route.id]);n=L.slice(0,e+1).every(e=>!eS(e.route,t,r))}else n=L.every(e=>!eS(e.route,t,r))}else n=null!=e.hydrationData;else n=!0;else if(n=!1,L=[],g.v7_partialHydration){let t=to(null,f,e.history.location.pathname);t.active&&t.matches&&(k=!0,L=t.matches)}let M={historyAction:e.history.action,location:e.history.location,matches:L,initialized:n,navigation:ed,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||j,fetchers:new Map,blockers:new Map},O=c.Pop,F=!1,N=!1,z=new Map,I=null,H=!1,W=!1,$=[],V=new Set,J=new Map,K=0,Y=-1,q=new Map,X=new Set,G=new Map,Q=new Map,Z=new Set,ee=new Map,et=new Map;function er(e,t){void 0===t&&(t={}),M=y({},M,e);let r=[],n=[];g.v7_fetcherPersist&&M.fetchers.forEach((e,t)=>{"idle"===e.state&&(Z.has(t)?n.push(t):r.push(t))}),Z.forEach(e=>{M.fetchers.has(e)||J.has(e)||n.push(e)}),[...w].forEach(e=>e(M,{deletedFetchers:n,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),g.v7_fetcherPersist?(r.forEach(e=>M.fetchers.delete(e)),n.forEach(e=>eQ(e))):n.forEach(e=>Z.delete(e))}function en(t,n,a){var o,i;let l,s,{flushSync:u}=void 0===a?{}:a,d=null!=M.actionData&&null!=M.navigation.formMethod&&eY(M.navigation.formMethod)&&"loading"===M.navigation.state&&(null==(o=t.state)?void 0:o._isRedirect)!==!0;l=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:d?M.actionData:null;let h=n.loaderData?eO(M.loaderData,n.loaderData,n.matches||[],n.errors):M.loaderData,p=M.blockers;p.size>0&&(p=new Map(p)).forEach((e,t)=>p.set(t,ef));let m=!0===F||null!=M.navigation.formMethod&&eY(M.navigation.formMethod)&&(null==(i=t.state)?void 0:i._isRedirect)!==!0;if(r&&(f=r,r=void 0),H||O===c.Pop||(O===c.Push?e.history.push(t,t.state):O===c.Replace&&e.history.replace(t,t.state)),O===c.Pop){let e=z.get(M.location.pathname);e&&e.has(t.pathname)?s={currentLocation:M.location,nextLocation:t}:z.has(t.pathname)&&(s={currentLocation:t,nextLocation:M.location})}else if(N){let e=z.get(M.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),z.set(M.location.pathname,e)),s={currentLocation:M.location,nextLocation:t}}er(y({},n,{actionData:l,loaderData:h,historyAction:O,location:t,initialized:!0,navigation:ed,revalidation:"idle",restoreScrollPosition:ta(t,n.matches||M.matches),preventScrollReset:m,blockers:p}),{viewTransitionOpts:s,flushSync:!0===u}),O=c.Pop,F=!1,N=!1,H=!1,W=!1,$=[]}async function ea(t,r){if("number"==typeof t)return void e.history.go(t);let n=eg(M.location,M.matches,p,g.v7_prependBasename,t,g.v7_relativeSplatPath,null==r?void 0:r.fromRouteId,null==r?void 0:r.relative),{path:a,submission:o,error:i}=eb(g.v7_normalizeFormMethod,!1,n,r),l=M.location,s=C(M.location,a,r&&r.state);s=y({},s,e.history.encodeLocation(s));let u=r&&null!=r.replace?r.replace:void 0,d=c.Push;!0===u?d=c.Replace:!1===u||null!=o&&eY(o.formMethod)&&o.formAction===M.location.pathname+M.location.search&&(d=c.Replace);let h=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,f=!0===(r&&r.flushSync),m=te({currentLocation:l,nextLocation:s,historyAction:d});return m?void e9(m,{state:"blocked",location:s,proceed(){e9(m,{state:"proceeding",proceed:void 0,reset:void 0,location:s}),ea(t,r)},reset(){let e=new Map(M.blockers);e.set(m,ef),er({blockers:e})}}):await ei(d,s,{submission:o,pendingError:i,preventScrollReset:h,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:f})}async function ei(t,n,a){var i,l,s,u;let c;o&&o.abort(),o=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),i=M.location,l=M.matches,E&&P&&(E[tn(i,l)]=P()),F=!0===(a&&a.preventScrollReset),N=!0===(a&&a.enableViewTransition);let h=r||f,m=a&&a.overrideNavigation,v=null!=a&&a.initialHydration&&M.matches&&M.matches.length>0&&!k?M.matches:A(h,n,p),g=!0===(a&&a.flushSync);if(v&&M.initialized&&!W&&(s=M.location,u=n,s.pathname===u.pathname&&s.search===u.search&&(""===s.hash?""!==u.hash:s.hash===u.hash||""!==u.hash||!1))&&!(a&&a.submission&&eY(a.submission.formMethod)))return void en(n,{matches:v},{flushSync:g});let b=to(v,h,n.pathname);if(b.active&&b.matches&&(v=b.matches),!v){let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);en(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:g});return}o=new AbortController;let w=eT(e.history,n,o.signal,a&&a.submission);if(a&&a.pendingError)c=[eN(v).route.id,{type:d.error,error:a.pendingError}];else if(a&&a.submission&&eY(a.submission.formMethod)){let t=await el(w,n,a.submission,v,b.active,{replace:a.replace,flushSync:g});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(e$(r)&&eo(r.error)&&404===r.error.status){o=null,en(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}v=t.matches||v,c=t.pendingActionResult,m=e1(n,a.submission),g=!1,b.active=!1,w=eT(e.history,w.url,w.signal)}let{shortCircuited:S,matches:R,loaderData:x,errors:C}=await es(w,n,v,b.active,m,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,g,c);S||(o=null,en(n,y({matches:R||v},eF(c),{loaderData:x,errors:C})))}async function el(e,t,r,n,a,o){var i;let l;if(void 0===o&&(o={}),eU(),er({navigation:{state:"submitting",location:t,formMethod:(i=r).formMethod,formAction:i.formAction,formEncType:i.formEncType,formData:i.formData,json:i.json,text:i.text}},{flushSync:!0===o.flushSync}),a){let r=await ti(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let e=eN(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:d.error,error:r.error}]}}if(r.matches)n=r.matches;else{let{notFoundMatches:e,error:r,route:n}=tt(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:d.error,error:r}]}}}let s=eZ(n,t);if(s.route.action||s.route.lazy){if(l=(await eP("action",M,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else l={type:d.error,error:ez(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(eV(l)){let t;return t=o&&null!=o.replace?o.replace:eA(l.response.headers.get("Location"),new URL(e.url),p)===M.location.pathname+M.location.search,await ex(e,l,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(eW(l))throw ez(400,{type:"defer-action"});if(e$(l)){let e=eN(n,s.route.id);return!0!==(o&&o.replace)&&(O=c.Push),{matches:n,pendingActionResult:[e.route.id,l]}}return{matches:n,pendingActionResult:[s.route.id,l]}}async function es(t,n,a,i,l,s,u,c,d,h,m){let v=l||e1(n,s),b=s||u||e0(v),w=!H&&(!g.v7_partialHydration||!d);if(i){if(w){let e=ey(m);er(y({navigation:v},void 0!==e?{actionData:e}:{}),{flushSync:h})}let e=await ti(a,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=eN(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)a=e.matches;else{let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let E=r||f,[S,R]=eE(e.history,M,a,b,n,g.v7_partialHydration&&!0===d,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,E,p,m);if(tr(e=>!(a&&a.some(t=>t.route.id===e))||S&&S.some(t=>t.route.id===e)),Y=++K,0===S.length&&0===R.length){let e=e5();return en(n,y({matches:a,loaderData:{},errors:m&&e$(m[1])?{[m[0]]:m[1].error}:null},eF(m),e?{fetchers:new Map(M.fetchers)}:{}),{flushSync:h}),{shortCircuited:!0}}if(w){let e={};if(!i){e.navigation=v;let t=ey(m);void 0!==t&&(e.actionData=t)}R.length>0&&(R.forEach(e=>{let t=M.fetchers.get(e.key),r=e7(void 0,t?t.data:void 0);M.fetchers.set(e.key,r)}),e.fetchers=new Map(M.fetchers)),er(e,{flushSync:h})}R.forEach(e=>{e2(e.key),e.controller&&J.set(e.key,e.controller)});let x=()=>R.forEach(e=>e2(e.key));o&&o.signal.addEventListener("abort",x);let{loaderResults:C,fetcherResults:P}=await ek(M,a,S,R,t);if(t.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",x),R.forEach(e=>J.delete(e.key));let D=eI(C);if(D)return await ex(t,D.result,!0,{replace:c}),{shortCircuited:!0};if(D=eI(P))return X.add(D.key),await ex(t,D.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:L,errors:k}=eM(M,a,C,m,R,P,ee);ee.forEach((e,t)=>{e.subscribe(r=>{(r||e.done)&&ee.delete(t)})}),g.v7_partialHydration&&d&&M.errors&&(k=y({},M.errors,k));let _=e5(),A=e6(Y),T=_||A||R.length>0;return y({matches:a,loaderData:L,errors:k},T?{fetchers:new Map(M.fetchers)}:{})}function ey(e){if(e&&!e$(e[1]))return{[e[0]]:e[1].data};if(M.actionData)if(0===Object.keys(M.actionData).length)return null;else return M.actionData}async function ew(t,n,a,i,l,s,u,c,d){var h,m;function v(e){if(!e.route.action&&!e.route.lazy){let e=ez(405,{method:d.formMethod,pathname:a,routeId:n});return eH(t,n,e,{flushSync:u}),!0}return!1}if(eU(),G.delete(t),!s&&v(i))return;let y=M.fetchers.get(t);ej(t,(h=d,m=y,{state:"submitting",formMethod:h.formMethod,formAction:h.formAction,formEncType:h.formEncType,formData:h.formData,json:h.json,text:h.text,data:m?m.data:void 0}),{flushSync:u});let b=new AbortController,w=eT(e.history,a,b.signal,d);if(s){let e=await ti(l,new URL(w.url).pathname,w.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eH(t,n,e.error,{flushSync:u});if(!e.matches)return void eH(t,n,ez(404,{pathname:a}),{flushSync:u});if(v(i=eZ(l=e.matches,a)))return}J.set(t,b);let E=K,R=(await eP("action",M,w,[i],l,t))[i.route.id];if(w.signal.aborted){J.get(t)===b&&J.delete(t);return}if(g.v7_fetcherPersist&&Z.has(t)){if(eV(R)||e$(R))return void ej(t,e4(void 0))}else{if(eV(R))return(J.delete(t),Y>E)?void ej(t,e4(void 0)):(X.add(t),ej(t,e7(d)),ex(w,R,!1,{fetcherSubmission:d,preventScrollReset:c}));if(e$(R))return void eH(t,n,R.error)}if(eW(R))throw ez(400,{type:"defer-action"});let x=M.navigation.location||M.location,C=eT(e.history,x,b.signal),P=r||f,D="idle"!==M.navigation.state?A(P,M.navigation.location,p):M.matches;S(D,"Didn't find any matches after fetcher action");let L=++K;q.set(t,L);let k=e7(d,R.data);M.fetchers.set(t,k);let[_,T]=eE(e.history,M,D,d,x,!1,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,P,p,[i.route.id,R]);T.filter(e=>e.key!==t).forEach(e=>{let t=e.key,r=M.fetchers.get(t),n=e7(void 0,r?r.data:void 0);M.fetchers.set(t,n),e2(t),e.controller&&J.set(t,e.controller)}),er({fetchers:new Map(M.fetchers)});let U=()=>T.forEach(e=>e2(e.key));b.signal.addEventListener("abort",U);let{loaderResults:j,fetcherResults:F}=await ek(M,D,_,T,C);if(b.signal.aborted)return;b.signal.removeEventListener("abort",U),q.delete(t),J.delete(t),T.forEach(e=>J.delete(e.key));let N=eI(j);if(N)return ex(C,N.result,!1,{preventScrollReset:c});if(N=eI(F))return X.add(N.key),ex(C,N.result,!1,{preventScrollReset:c});let{loaderData:B,errors:z}=eM(M,D,j,void 0,T,F,ee);if(M.fetchers.has(t)){let e=e4(R.data);M.fetchers.set(t,e)}e6(L),"loading"===M.navigation.state&&L>Y?(S(O,"Expected pending action"),o&&o.abort(),en(M.navigation.location,{matches:D,loaderData:B,errors:z,fetchers:new Map(M.fetchers)})):(er({errors:z,loaderData:eO(M.loaderData,B,D,z),fetchers:new Map(M.fetchers)}),W=!1)}async function eR(t,r,n,a,o,i,l,s,u){let c=M.fetchers.get(t);ej(t,e7(u,c?c.data:void 0),{flushSync:l});let d=new AbortController,h=eT(e.history,n,d.signal);if(i){let e=await ti(o,new URL(h.url).pathname,h.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eH(t,r,e.error,{flushSync:l});if(!e.matches)return void eH(t,r,ez(404,{pathname:n}),{flushSync:l});a=eZ(o=e.matches,n)}J.set(t,d);let f=K,p=(await eP("loader",M,h,[a],o,t))[a.route.id];if(eW(p)&&(p=await eG(p,h.signal,!0)||p),J.get(t)===d&&J.delete(t),!h.signal.aborted){if(Z.has(t))return void ej(t,e4(void 0));if(eV(p))if(Y>f)return void ej(t,e4(void 0));else{X.add(t),await ex(h,p,!1,{preventScrollReset:s});return}if(e$(p))return void eH(t,r,p.error);S(!eW(p),"Unhandled fetcher deferred data"),ej(t,e4(p.data))}}async function ex(t,r,n,a){let{submission:i,fetcherSubmission:u,preventScrollReset:d,replace:h}=void 0===a?{}:a;r.response.headers.has("X-Remix-Revalidate")&&(W=!0);let f=r.response.headers.get("Location");S(f,"Expected a Location header on the redirect Response"),f=eA(f,new URL(t.url),p);let m=C(M.location,f,{_isRedirect:!0});if(s){let t=!1;if(r.response.headers.has("X-Remix-Reload-Document"))t=!0;else if(ep.test(f)){let r=e.history.createURL(f);t=r.origin!==l.location.origin||null==B(r.pathname,p)}if(t)return void(h?l.location.replace(f):l.location.assign(f))}o=null;let v=!0===h||r.response.headers.has("X-Remix-Replace")?c.Replace:c.Push,{formMethod:g,formAction:b,formEncType:w}=M.navigation;!i&&!u&&g&&b&&w&&(i=e0(M.navigation));let E=i||u;if(ec.has(r.response.status)&&E&&eY(E.formMethod))await ei(v,m,{submission:y({},E,{formAction:f}),preventScrollReset:d||F,enableViewTransition:n?N:void 0});else{let e=e1(m,i);await ei(v,m,{overrideNavigation:e,fetcherSubmission:u,preventScrollReset:d||F,enableViewTransition:n?N:void 0})}}async function eP(e,r,n,a,o,i){let l,s={};try{l=await eL(m,e,r,n,a,o,i,h,t)}catch(e){return a.forEach(t=>{s[t.route.id]={type:d.error,error:e}}),s}for(let[e,t]of Object.entries(l)){var u;if(eK((u=t).result)&&eu.has(u.result.status)){let r=t.result;s[e]={type:d.redirect,response:function(e,t,r,n,a,o){let i=e.headers.get("Location");if(S(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!ep.test(i)){let l=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=eg(new URL(t.url),l,a,!0,i,o),e.headers.set("Location",i)}return e}(r,n,e,o,p,g.v7_relativeSplatPath)}}else s[e]=await e_(t)}return s}async function ek(t,r,n,a,o){let i=t.matches,l=eP("loader",t,o,n,r,null),s=Promise.all(a.map(async r=>{if(!r.matches||!r.match||!r.controller)return Promise.resolve({[r.key]:{type:d.error,error:ez(404,{pathname:r.path})}});{let n=(await eP("loader",t,eT(e.history,r.path,r.controller.signal),[r.match],r.matches,r.key))[r.match.route.id];return{[r.key]:n}}})),u=await l,c=(await s).reduce((e,t)=>Object.assign(e,t),{});return await Promise.all([eq(r,u,o.signal,i,t.loaderData),eX(r,c,a)]),{loaderResults:u,fetcherResults:c}}function eU(){W=!0,$.push(...tr()),G.forEach((e,t)=>{J.has(t)&&V.add(t),e2(t)})}function ej(e,t,r){void 0===r&&(r={}),M.fetchers.set(e,t),er({fetchers:new Map(M.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function eH(e,t,r,n){void 0===n&&(n={});let a=eN(M.matches,t);eQ(e),er({errors:{[a.route.id]:r},fetchers:new Map(M.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function eJ(e){return Q.set(e,(Q.get(e)||0)+1),Z.has(e)&&Z.delete(e),M.fetchers.get(e)||eh}function eQ(e){let t=M.fetchers.get(e);J.has(e)&&!(t&&"loading"===t.state&&q.has(e))&&e2(e),G.delete(e),q.delete(e),X.delete(e),g.v7_fetcherPersist&&Z.delete(e),V.delete(e),M.fetchers.delete(e)}function e2(e){let t=J.get(e);t&&(t.abort(),J.delete(e))}function e3(e){for(let t of e){let e=e4(eJ(t).data);M.fetchers.set(t,e)}}function e5(){let e=[],t=!1;for(let r of X){let n=M.fetchers.get(r);S(n,"Expected fetcher: "+r),"loading"===n.state&&(X.delete(r),e.push(r),t=!0)}return e3(e),t}function e6(e){let t=[];for(let[r,n]of q)if(n<e){let e=M.fetchers.get(r);S(e,"Expected fetcher: "+r),"loading"===e.state&&(e2(r),q.delete(r),t.push(r))}return e3(t),t.length>0}function e8(e){M.blockers.delete(e),et.delete(e)}function e9(e,t){let r=M.blockers.get(e)||ef;S("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,"Invalid blocker state transition: "+r.state+" -> "+t.state);let n=new Map(M.blockers);n.set(e,t),er({blockers:n})}function te(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===et.size)return;et.size>1&&R(!1,"A router only supports one blocker at a time");let a=Array.from(et.entries()),[o,i]=a[a.length-1],l=M.blockers.get(o);if((!l||"proceeding"!==l.state)&&i({currentLocation:t,nextLocation:r,historyAction:n}))return o}function tt(e){let t=ez(404,{pathname:e}),{matches:n,route:a}=eB(r||f);return tr(),{notFoundMatches:n,route:a,error:t}}function tr(e){let t=[];return ee.forEach((r,n)=>{(!e||e(n))&&(r.cancel(),t.push(n),ee.delete(n))}),t}function tn(e,t){return x&&x(e,t.map(e=>U(e,M.loaderData)))||e.key}function ta(e,t){if(E){let r=E[tn(e,t)];if("number"==typeof r)return r}return null}function to(e,t,r){if(v){if(!e)return{active:!0,matches:T(t,r,p,!0)||[]};else if(Object.keys(e[0].params).length>0)return{active:!0,matches:T(t,r,p,!0)}}return{active:!1,matches:null}}async function ti(e,n,a,o){if(!v)return{type:"success",matches:e};let i=e;for(;;){let e=null==r,l=r||f,s=h;try{await v({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,r)=>{a.aborted||eC(e,r,l,s,t)}})}catch(e){return{type:"error",error:e,partialMatches:i}}finally{e&&!a.aborted&&(f=[...f])}if(a.aborted)return{type:"aborted"};let u=A(l,n,p);if(u)return{type:"success",matches:u};let c=T(l,n,p,!0);if(!c||i.length===c.length&&i.every((e,t)=>e.route.id===c[t].route.id))return{type:"success",matches:null};i=c}}return a={get basename(){return p},get future(){return g},get state(){return M},get routes(){return f},get window(){return l},initialize:function(){if(b=e.history.listen(t=>{let{action:r,location:n,delta:a}=t;if(i){i(),i=void 0;return}R(0===et.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=te({currentLocation:M.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise(e=>{i=e});e.history.go(-1*a),e9(o,{state:"blocked",location:n,proceed(){e9(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(a))},reset(){let e=new Map(M.blockers);e.set(o,ef),er({blockers:e})}});return}return ei(r,n)}),s){var t=l,r=z;try{let e=t.sessionStorage.getItem(ev);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ev,JSON.stringify(r))}catch(e){R(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}})(l,z);l.addEventListener("pagehide",e),I=()=>l.removeEventListener("pagehide",e)}return M.initialized||ei(c.Pop,M.location,{initialHydration:!0}),a},subscribe:function(e){return w.add(e),()=>w.delete(e)},enableScrollRestoration:function(e,t,r){if(E=e,P=t,x=r||null,!D&&M.navigation===ed){D=!0;let e=ta(M.location,M.matches);null!=e&&er({restoreScrollPosition:e})}return()=>{E=null,P=null,x=null}},navigate:ea,fetch:function(e,t,n,a){if(u)throw Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");e2(e);let o=!0===(a&&a.flushSync),i=r||f,l=eg(M.location,M.matches,p,g.v7_prependBasename,n,g.v7_relativeSplatPath,t,null==a?void 0:a.relative),s=A(i,l,p),c=to(s,i,l);if(c.active&&c.matches&&(s=c.matches),!s)return void eH(e,t,ez(404,{pathname:l}),{flushSync:o});let{path:d,submission:h,error:m}=eb(g.v7_normalizeFormMethod,!0,l,a);if(m)return void eH(e,t,m,{flushSync:o});let v=eZ(s,d),y=!0===(a&&a.preventScrollReset);h&&eY(h.formMethod)?ew(e,t,d,v,s,c.active,o,y,h):(G.set(e,{routeId:t,path:d}),eR(e,t,d,v,s,c.active,o,y,h))},revalidate:function(){if(eU(),er({revalidation:"loading"}),"submitting"!==M.navigation.state){if("idle"===M.navigation.state)return void ei(M.historyAction,M.location,{startUninterruptedRevalidation:!0});ei(O||M.historyAction,M.navigation.location,{overrideNavigation:M.navigation,enableViewTransition:!0===N})}},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:eJ,deleteFetcher:function(e){let t=(Q.get(e)||0)-1;t<=0?(Q.delete(e),Z.add(e),g.v7_fetcherPersist||eQ(e)):Q.set(e,t),er({fetchers:new Map(M.fetchers)})},dispose:function(){b&&b(),I&&I(),w.clear(),o&&o.abort(),M.fetchers.forEach((e,t)=>eQ(t)),M.blockers.forEach((e,t)=>e8(t))},getBlocker:function(e,t){let r=M.blockers.get(e)||ef;return et.get(e)!==t&&et.set(e,t),r},deleteBlocker:e8,patchRoutes:function(e,n){let a=null==r;eC(e,n,r||f,h,t),a&&(f=[...f],er({}))},_internalFetchControllers:J,_internalActiveDeferreds:ee,_internalSetRoutes:function(e){r=_(e,t,void 0,h={})}}}function eg(e,t,r,n,a,o,i,l){let s,u;if(i){for(let e of(s=[],t))if(s.push(e),e.route.id===i){u=e;break}}else s=t,u=t[t.length-1];let c=J(a||".",V(s,o),B(e.pathname,r)||e.pathname,"path"===l);if(null==a&&(c.search=e.search,c.hash=e.hash),(null==a||""===a||"."===a)&&u){let e=eQ(c.search);if(u.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();c.search=r?"?"+r:""}}return n&&"/"!==r&&(c.pathname="/"===c.pathname?r:K([r,c.pathname])),P(c)}function eb(e,t,r,n){var a;let o,i;if(!n||!(null!=n&&("formData"in n&&null!=n.formData||"body"in n&&void 0!==n.body)))return{path:r};if(n.formMethod&&(a=n.formMethod,!es.has(a.toLowerCase())))return{path:r,error:ez(405,{method:n.formMethod})};let l=()=>({path:r,error:ez(400,{type:"invalid-body"})}),s=n.formMethod||"get",u=e?s.toUpperCase():s.toLowerCase(),c=eH(r);if(void 0!==n.body){if("text/plain"===n.formEncType){if(!eY(u))return l();let e="string"==typeof n.body?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,t)=>{let[r,n]=t;return""+e+r+"="+n+"\n"},""):String(n.body);return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===n.formEncType){if(!eY(u))return l();try{let e="string"==typeof n.body?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return l()}}}if(S("function"==typeof FormData,"FormData is not available in this environment"),n.formData)o=eU(n.formData),i=n.formData;else if(n.body instanceof FormData)o=eU(n.body),i=n.body;else if(n.body instanceof URLSearchParams)i=ej(o=n.body);else if(null==n.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(n.body),i=ej(o)}catch(e){return l()}let d={formMethod:u,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(eY(d.formMethod))return{path:r,submission:d};let h=D(r);return t&&h.search&&eQ(h.search)&&o.append("index",""),h.search="?"+o,{path:P(h),submission:d}}function ew(e,t,r){void 0===r&&(r=!1);let n=e.findIndex(e=>e.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function eE(e,t,r,n,a,o,i,l,s,u,c,d,h,f,p,m){let v=m?e$(m[1])?m[1].error:m[1].data:void 0,g=e.createURL(t.location),b=e.createURL(a),w=r;o&&t.errors?w=ew(r,Object.keys(t.errors)[0],!0):m&&e$(m[1])&&(w=ew(r,m[0]));let E=m?m[1].statusCode:void 0,S=i&&E&&E>=400,R=w.filter((e,r)=>{var a,i,u;let c,d,{route:h}=e;if(h.lazy)return!0;if(null==h.loader)return!1;if(o)return eS(h,t.loaderData,t.errors);if(a=t.loaderData,i=t.matches[r],u=e,c=!i||u.route.id!==i.route.id,d=void 0===a[u.route.id],c||d||s.some(t=>t===e.route.id))return!0;let f=t.matches[r];return ex(e,y({currentUrl:g,currentParams:f.params,nextUrl:b,nextParams:e.params},n,{actionResult:v,actionStatus:E,defaultShouldRevalidate:!S&&(l||g.pathname+g.search===b.pathname+b.search||g.search!==b.search||eR(f,e))}))}),x=[];return d.forEach((e,a)=>{if(o||!r.some(t=>t.route.id===e.routeId)||c.has(a))return;let i=A(f,e.path,p);if(!i)return void x.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let s=t.fetchers.get(a),d=eZ(i,e.path),m=!1;h.has(a)?m=!1:u.has(a)?(u.delete(a),m=!0):m=s&&"idle"!==s.state&&void 0===s.data?l:ex(d,y({currentUrl:g,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:r[r.length-1].params},n,{actionResult:v,actionStatus:E,defaultShouldRevalidate:!S&&l})),m&&x.push({key:a,routeId:e.routeId,path:e.path,matches:i,match:d,controller:new AbortController})}),[R,x]}function eS(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&void 0!==t[e.id],a=null!=r&&void 0!==r[e.id];return(!!n||!a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function eR(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ex(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function eC(e,t,r,n,a){var o;let i;if(e){let t=n[e];S(t,"No route found to patch children into: routeId = "+e),t.children||(t.children=[]),i=t.children}else i=r;let l=_(t.filter(e=>!i.some(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||t.children.every((t,n)=>{var a;return null==(a=r.children)?void 0:a.some(r=>e(t,r))}))})(e,t))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...l)}async function eP(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];S(a,"No route found in manifest");let o={};for(let e in n){let t=void 0!==a[e]&&"hasErrorBoundary"!==e;R(!t,'Route "'+a.id+'" has a static property "'+e+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+e+'" will be ignored.'),t||k.has(e)||(o[e]=n[e])}Object.assign(a,o),Object.assign(a,y({},t(a),{lazy:void 0}))}async function eD(e){let{matches:t}=e,r=t.filter(e=>e.shouldLoad);return(await Promise.all(r.map(e=>e.resolve()))).reduce((e,t,n)=>Object.assign(e,{[r[n].route.id]:t}),{})}async function eL(e,t,r,n,a,o,i,l,s,u){let c=o.map(e=>e.route.lazy?eP(e.route,s,l):void 0),h=o.map((e,r)=>{let o=c[r],i=a.some(t=>t.route.id===e.route.id),l=async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?ek(t,n,e,o,r,u):Promise.resolve({type:d.data,result:void 0}));return y({},e,{shouldLoad:i,resolve:l})}),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(c)}catch(e){}return f}async function ek(e,t,r,n,a,o){let i,l,s=n=>{let i,s=new Promise((e,t)=>i=t);l=()=>i(),t.signal.addEventListener("abort",l);let u=a=>"function"!=typeof n?Promise.reject(Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: ')+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]);return Promise.race([(async()=>{try{let e=await (a?a(e=>u(e)):u());return{type:"data",result:e}}catch(e){return{type:"error",result:e}}})(),s])};try{let a=r.route[e];if(n)if(a){let e,[t]=await Promise.all([s(a).catch(t=>{e=t}),n]);if(void 0!==e)throw e;i=t}else if(await n,a=r.route[e])i=await s(a);else{if("action"!==e)return{type:d.data,result:void 0};let n=new URL(t.url),a=n.pathname+n.search;throw ez(405,{method:t.method,pathname:a,routeId:r.route.id})}else if(a)i=await s(a);else{let e=new URL(t.url),r=e.pathname+e.search;throw ez(404,{pathname:r})}S(void 0!==i.result,"You defined "+("action"===e?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `")+e+"` function. Please return a value or `null`.")}catch(e){return{type:d.error,result:e}}finally{l&&t.signal.removeEventListener("abort",l)}return i}async function e_(e){var t,r,n,a,o,i,l,s,u;let{result:c,type:h}=e;if(eK(c)){let e;try{let t=c.headers.get("Content-Type");e=t&&/\bapplication\/json\b/.test(t)?null==c.body?null:await c.json():await c.text()}catch(e){return{type:d.error,error:e}}return h===d.error?{type:d.error,error:new ea(c.status,c.statusText,e),statusCode:c.status,headers:c.headers}:{type:d.data,data:e,statusCode:c.status,headers:c.headers}}if(h===d.error)return eJ(c)?c.data instanceof Error?{type:d.error,error:c.data,statusCode:null==(n=c.init)?void 0:n.status,headers:null!=(a=c.init)&&a.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:new ea((null==(t=c.init)?void 0:t.status)||500,void 0,c.data),statusCode:eo(c)?c.status:void 0,headers:null!=(r=c.init)&&r.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:c,statusCode:eo(c)?c.status:void 0};return(u=c)&&"object"==typeof u&&"object"==typeof u.data&&"function"==typeof u.subscribe&&"function"==typeof u.cancel&&"function"==typeof u.resolveData?{type:d.deferred,deferredData:c,statusCode:null==(o=c.init)?void 0:o.status,headers:(null==(i=c.init)?void 0:i.headers)&&new Headers(c.init.headers)}:eJ(c)?{type:d.data,data:c.data,statusCode:null==(l=c.init)?void 0:l.status,headers:null!=(s=c.init)&&s.headers?new Headers(c.init.headers):void 0}:{type:d.data,data:c}}function eA(e,t,r){if(ep.test(e)){let n=new URL(e.startsWith("//")?t.protocol+e:e),a=null!=B(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}return e}function eT(e,t,r,n){let a=e.createURL(eH(t)).toString(),o={signal:r};if(n&&eY(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=eU(n.formData):o.body=n.formData}return new Request(a,o)}function eU(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function ej(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function eM(e,t,r,n,a,o,i){let l,s,u,c,d,h,{loaderData:f,errors:p}=(s={},u=null,c=!1,d={},h=n&&e$(n[1])?n[1].error:void 0,t.forEach(e=>{if(!(e.route.id in r))return;let n=e.route.id,a=r[n];if(S(!eV(a),"Cannot handle redirect results in processLoaderData"),e$(a)){let e=a.error;void 0!==h&&(e=h,h=void 0),u=u||{},1;{let r=eN(t,n);null==u[r.route.id]&&(u[r.route.id]=e)}s[n]=void 0,c||(c=!0,l=eo(a.error)?a.error.status:500),a.headers&&(d[n]=a.headers)}else eW(a)?(i.set(n,a.deferredData),s[n]=a.deferredData.data,null==a.statusCode||200===a.statusCode||c||(l=a.statusCode)):(s[n]=a.data,a.statusCode&&200!==a.statusCode&&!c&&(l=a.statusCode)),a.headers&&(d[n]=a.headers)}),void 0!==h&&n&&(u={[n[0]]:h},s[n[0]]=void 0),{loaderData:s,errors:u,statusCode:l||200,loaderHeaders:d});return a.forEach(t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(S(i,"Did not find corresponding fetcher result"),!a||!a.signal.aborted)if(e$(i)){let t=eN(e.matches,null==n?void 0:n.route.id);p&&p[t.route.id]||(p=y({},p,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if(eV(i))S(!1,"Unhandled fetcher revalidation redirect");else if(eW(i))S(!1,"Unhandled fetcher deferred data");else{let t=e4(i.data);e.fetchers.set(r,t)}}),{loaderData:f,errors:p}}function eO(e,t,r,n){let a=y({},t);for(let o of r){let r=o.route.id;if(t.hasOwnProperty(r)?void 0!==t[r]&&(a[r]=t[r]):void 0!==e[r]&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function eF(e){return e?e$(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function eN(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function eB(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ez(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,l="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(l="Bad Request",a&&r&&n?s="You made a "+a+' request to "'+r+'" but did not provide a `loader` for route "'+n+'", so there is no way to handle the request.':"defer-action"===o?s="defer() is not supported in actions":"invalid-body"===o&&(s="Unable to encode submission body")):403===e?(l="Forbidden",s='Route "'+n+'" does not match URL "'+r+'"'):404===e?(l="Not Found",s='No route matches URL "'+r+'"'):405===e&&(l="Method Not Allowed",a&&r&&n?s="You made a "+a.toUpperCase()+' request to "'+r+'" but did not provide an `action` for route "'+n+'", so there is no way to handle the request.':a&&(s='Invalid request method "'+a.toUpperCase()+'"')),new ea(e||500,l,Error(s),!0)}function eI(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(eV(n))return{key:r,result:n}}}function eH(e){let t="string"==typeof e?D(e):e;return P(y({},t,{hash:""}))}function eW(e){return e.type===d.deferred}function e$(e){return e.type===d.error}function eV(e){return(e&&e.type)===d.redirect}function eJ(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function eK(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function eY(e){return el.has(e.toLowerCase())}async function eq(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[l,s]=o[i],u=e.find(e=>(null==e?void 0:e.route.id)===l);if(!u)continue;let c=n.find(e=>e.route.id===u.route.id),d=null!=c&&!eR(c,u)&&(a&&a[u.route.id])!==void 0;eW(s)&&d&&await eG(s,r,!1).then(e=>{e&&(t[l]=e)})}}async function eX(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],l=t[a];e.find(e=>(null==e?void 0:e.route.id)===o)&&eW(l)&&(S(i,"Expected an AbortController for revalidating fetcher deferred result"),await eG(l,i.signal,!0).then(e=>{e&&(t[a]=e)}))}}async function eG(e,t,r){if(void 0===r&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:d.data,data:e.deferredData.unwrappedData}}catch(e){return{type:d.error,error:e}}return{type:d.data,data:e.deferredData.data}}}function eQ(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function eZ(e,t){let r="string"==typeof t?D(t).search:t.search;if(e[e.length-1].route.index&&eQ(r||""))return e[e.length-1];let n=$(e);return n[n.length-1]}function e0(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function e1(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function e7(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function e4(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function e2(){return(e2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}Symbol("deferred");let e3=p.createContext(null),e5=p.createContext(null),e6=p.createContext(null),e8=p.createContext(null),e9=p.createContext(null),te=p.createContext({outlet:null,matches:[],isDataRoute:!1}),tt=p.createContext(null);function tr(e,t){let{relative:r}=void 0===t?{}:t;tn()||S(!1);let{basename:n,navigator:a}=p.useContext(e8),{hash:o,pathname:i,search:l}=tf(e,{relative:r}),s=i;return"/"!==n&&(s="/"===i?n:K([n,i])),a.createHref({pathname:s,search:l,hash:o})}function tn(){return null!=p.useContext(e9)}function ta(){return tn()||S(!1),p.useContext(e9).location}function to(){return p.useContext(e9).navigationType}function ti(e){tn()||S(!1);let{pathname:t}=ta();return p.useMemo(()=>F(e,N(t)),[t,e])}function tl(e){p.useContext(e8).static||p.useLayoutEffect(e)}function ts(){let{isDataRoute:e}=p.useContext(te);return e?function(){let{router:e}=tS(tw.UseNavigateStable),t=tx(tE.UseNavigateStable),r=p.useRef(!1);return tl(()=>{r.current=!0}),p.useCallback(function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,e2({fromRouteId:t},a)))},[e,t])}():function(){tn()||S(!1);let e=p.useContext(e3),{basename:t,future:r,navigator:n}=p.useContext(e8),{matches:a}=p.useContext(te),{pathname:o}=ta(),i=JSON.stringify(V(a,r.v7_relativeSplatPath)),l=p.useRef(!1);return tl(()=>{l.current=!0}),p.useCallback(function(r,a){if(void 0===a&&(a={}),!l.current)return;if("number"==typeof r)return void n.go(r);let s=J(r,JSON.parse(i),o,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:K([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,i,o,e])}()}let tu=p.createContext(null);function tc(){return p.useContext(tu)}function td(e){let t=p.useContext(te).outlet;return t?p.createElement(tu.Provider,{value:e},t):t}function th(){let{matches:e}=p.useContext(te),t=e[e.length-1];return t?t.params:{}}function tf(e,t){let{relative:r}=void 0===t?{}:t,{future:n}=p.useContext(e8),{matches:a}=p.useContext(te),{pathname:o}=ta(),i=JSON.stringify(V(a,n.v7_relativeSplatPath));return p.useMemo(()=>J(e,JSON.parse(i),o,"path"===r),[e,i,o,r])}function tp(e,t){return tm(e,t)}function tm(e,t,r,n){let a;tn()||S(!1);let{navigator:o}=p.useContext(e8),{matches:i}=p.useContext(te),l=i[i.length-1],s=l?l.params:{};l&&l.pathname;let u=l?l.pathnameBase:"/";l&&l.route;let d=ta();if(t){var h;let e="string"==typeof t?D(t):t;"/"===u||(null==(h=e.pathname)?void 0:h.startsWith(u))||S(!1),a=e}else a=d;let f=a.pathname||"/",m=f;if("/"!==u){let e=u.replace(/^\//,"").split("/");m="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let v=A(e,{pathname:m}),y=tb(v&&v.map(e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:K([u,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:K([u,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),i,r,n);return t&&y?p.createElement(e9.Provider,{value:{location:e2({pathname:"/",search:"",hash:"",state:null,key:"default"},a),navigationType:c.Pop}},y):y}let tv=p.createElement(function(){let e=tT(),t=eo(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null;return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},t),r?p.createElement("pre",{style:{padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"}},r):null,null)},null);class ty extends p.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?p.createElement(te.Provider,{value:this.props.routeContext},p.createElement(tt.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function tg(e){let{routeContext:t,match:r,children:n}=e,a=p.useContext(e3);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),p.createElement(te.Provider,{value:t},n)}function tb(e,t,r,n){var a,o;if(void 0===t&&(t=[]),void 0===r&&(r=null),void 0===n&&(n=null),null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(null==(o=n)||!o.v7_partialHydration||0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let i=e,l=null==(a=r)?void 0:a.errors;if(null!=l){let e=i.findIndex(e=>e.route.id&&(null==l?void 0:l[e.route.id])!==void 0);e>=0||S(!1),i=i.slice(0,Math.min(i.length,e+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&void 0===e[t.route.id]&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){s=!0,i=u>=0?i.slice(0,u+1):[i[0]];break}}}return i.reduceRight((e,n,a)=>{var o;let c,d=!1,h=null,f=null;r&&(c=l&&n.route.id?l[n.route.id]:void 0,h=n.route.errorElement||tv,s&&(u<0&&0===a?(o="route-fallback",tF[o]||(tF[o]=!0),d=!0,f=null):u===a&&(d=!0,f=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,a+1)),v=()=>{let t;return t=c?h:d?f:n.route.Component?p.createElement(n.route.Component,null):n.route.element?n.route.element:e,p.createElement(tg,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?p.createElement(ty,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:v(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):v()},null)}var tw=((o=tw||{}).UseBlocker="useBlocker",o.UseRevalidator="useRevalidator",o.UseNavigateStable="useNavigate",o),tE=((i=tE||{}).UseBlocker="useBlocker",i.UseLoaderData="useLoaderData",i.UseActionData="useActionData",i.UseRouteError="useRouteError",i.UseNavigation="useNavigation",i.UseRouteLoaderData="useRouteLoaderData",i.UseMatches="useMatches",i.UseRevalidator="useRevalidator",i.UseNavigateStable="useNavigate",i.UseRouteId="useRouteId",i);function tS(e){let t=p.useContext(e3);return t||S(!1),t}function tR(e){let t=p.useContext(e5);return t||S(!1),t}function tx(e){let t,r=((t=p.useContext(te))||S(!1),t),n=r.matches[r.matches.length-1];return n.route.id||S(!1),n.route.id}function tC(){return tx(tE.UseRouteId)}function tP(){return tR(tE.UseNavigation).navigation}function tD(){let e=tS(tw.UseRevalidator),t=tR(tE.UseRevalidator);return p.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function tL(){let{matches:e,loaderData:t}=tR(tE.UseMatches);return p.useMemo(()=>e.map(e=>U(e,t)),[e,t])}function tk(){let e=tR(tE.UseLoaderData),t=tx(tE.UseLoaderData);return e.errors&&null!=e.errors[t]?void console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")"):e.loaderData[t]}function t_(e){return tR(tE.UseRouteLoaderData).loaderData[e]}function tA(){let e=tR(tE.UseActionData),t=tx(tE.UseLoaderData);return e.actionData?e.actionData[t]:void 0}function tT(){var e;let t=p.useContext(tt),r=tR(tE.UseRouteError),n=tx(tE.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function tU(){let e=p.useContext(e6);return null==e?void 0:e._data}function tj(){let e=p.useContext(e6);return null==e?void 0:e._error}let tM=0;function tO(e){let{router:t,basename:r}=tS(tw.UseBlocker),n=tR(tE.UseBlocker),[a,o]=p.useState(""),i=p.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:e2({},n,{pathname:B(n.pathname,r)||n.pathname}),nextLocation:e2({},a,{pathname:B(a.pathname,r)||a.pathname}),historyAction:o})},[r,e]);return p.useEffect(()=>{let e=String(++tM);return o(e),()=>t.deleteBlocker(e)},[t]),p.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):ef}let tF={},tN=(e,t,r)=>{};function tB(e,t){(null==e?void 0:e.v7_startTransition)===void 0&&tN("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),(null==e?void 0:e.v7_relativeSplatPath)!==void 0||t&&void 0!==t.v7_relativeSplatPath||tN("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(void 0===t.v7_fetcherPersist&&tN("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),void 0===t.v7_normalizeFormMethod&&tN("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),void 0===t.v7_partialHydration&&tN("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),void 0===t.v7_skipActionErrorRevalidation&&tN("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}let tz=p.startTransition;function tI(e){let{basename:t,children:r,initialEntries:n,initialIndex:a,future:o}=e,i=p.useRef();null==i.current&&(i.current=b({initialEntries:n,initialIndex:a,v5Compat:!0}));let l=i.current,[s,u]=p.useState({action:l.action,location:l.location}),{v7_startTransition:c}=o||{},d=p.useCallback(e=>{c&&tz?tz(()=>u(e)):u(e)},[u,c]);return p.useLayoutEffect(()=>l.listen(d),[l,d]),p.useEffect(()=>tB(o),[o]),p.createElement(tV,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:l,future:o})}function tH(e){let{to:t,replace:r,state:n,relative:a}=e;tn()||S(!1);let{future:o,static:i}=p.useContext(e8),{matches:l}=p.useContext(te),{pathname:s}=ta(),u=ts(),c=JSON.stringify(J(t,V(l,o.v7_relativeSplatPath),s,"path"===a));return p.useEffect(()=>u(JSON.parse(c),{replace:r,state:n,relative:a}),[u,c,a,r,n]),null}function tW(e){return td(e.context)}function t$(e){S(!1)}function tV(e){let{basename:t="/",children:r=null,location:n,navigationType:a=c.Pop,navigator:o,static:i=!1,future:l}=e;tn()&&S(!1);let s=t.replace(/^\/*/,"/"),u=p.useMemo(()=>({basename:s,navigator:o,static:i,future:e2({v7_relativeSplatPath:!1},l)}),[s,l,o,i]);"string"==typeof n&&(n=D(n));let{pathname:d="/",search:h="",hash:f="",state:m=null,key:v="default"}=n,y=p.useMemo(()=>{let e=B(d,s);return null==e?null:{location:{pathname:e,search:h,hash:f,state:m,key:v},navigationType:a}},[s,d,h,f,m,v,a]);return null==y?null:p.createElement(e8.Provider,{value:u},p.createElement(e9.Provider,{children:r,value:y}))}function tJ(e){let{children:t,location:r}=e;return tm(tQ(t),r)}function tK(e){let{children:t,errorElement:r,resolve:n}=e;return p.createElement(tX,{resolve:n,errorElement:r},p.createElement(tG,null,t))}var tY=((l=tY||{})[l.pending=0]="pending",l[l.success=1]="success",l[l.error=2]="error",l);let tq=new Promise(()=>{});class tX extends p.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=tY.pending;if(r instanceof Promise)if(this.state.error){a=tY.error;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?tY.error:"_data"in n?tY.success:tY.pending:(a=tY.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>Object.defineProperty(r,"_error",{get:()=>e})));else a=tY.success,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===tY.error&&n._error instanceof Q)throw tq;if(a===tY.error&&!t)throw n._error;if(a===tY.error)return p.createElement(e6.Provider,{value:n,children:t});if(a===tY.success)return p.createElement(e6.Provider,{value:n,children:e});throw n}}function tG(e){let{children:t}=e,r=tU(),n="function"==typeof t?t(r):t;return p.createElement(p.Fragment,null,n)}function tQ(e,t){void 0===t&&(t=[]);let r=[];return p.Children.forEach(e,(e,n)=>{if(!p.isValidElement(e))return;let a=[...t,n];if(e.type===p.Fragment)return void r.push.apply(r,tQ(e.props.children,a));e.type!==t$&&S(!1),e.props.index&&e.props.children&&S(!1);let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=tQ(e.props.children,a)),r.push(o)}),r}function tZ(e){return tb(e)}function t0(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:p.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:p.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:p.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function t1(e,t){return ey({basename:null==t?void 0:t.basename,future:e2({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:b({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}function t7(){return(t7=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function t4(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}let t2="application/x-www-form-urlencoded";function t3(e){return null!=e&&"string"==typeof e.tagName}function t5(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(e=>[r,e]):[[r,n]])},[]))}let t6=null,t8=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function t9(e){return null==e||t8.has(e)?e:null}let re=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],rt=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],rr=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="6"}catch(e){}function rn(e,t){return ey({basename:null==t?void 0:t.basename,future:t7({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:w({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||ro(),routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function ra(e,t){return ey({basename:null==t?void 0:t.basename,future:t7({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:E({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||ro(),routes:e,mapRouteProperties:t0,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function ro(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=t7({},t,{errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new ea(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}(t.errors)})),t}let ri=p.createContext({isTransitioning:!1}),rl=p.createContext(new Map),rs=p.startTransition,ru=v.flushSync,rc=p.useId;function rd(e){ru?ru(e):e()}class rh{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}}function rf(e){let{fallbackElement:t,router:r,future:n}=e,[a,o]=p.useState(r.state),[i,l]=p.useState(),[s,u]=p.useState({isTransitioning:!1}),[c,d]=p.useState(),[h,f]=p.useState(),[m,v]=p.useState(),y=p.useRef(new Map),{v7_startTransition:g}=n||{},b=p.useCallback(e=>{if(g)rs?rs(e):e();else e()},[g]),w=p.useCallback((e,t)=>{let{deletedFetchers:n,flushSync:a,viewTransitionOpts:i}=t;e.fetchers.forEach((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}),n.forEach(e=>y.current.delete(e));let s=null==r.window||null==r.window.document||"function"!=typeof r.window.document.startViewTransition;if(!i||s)return void(a?rd(()=>o(e)):b(()=>o(e)));if(a){rd(()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:i.currentLocation,nextLocation:i.nextLocation})});let t=r.window.document.startViewTransition(()=>{rd(()=>o(e))});t.finished.finally(()=>{rd(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})})}),rd(()=>f(t));return}h?(c&&c.resolve(),h.skipTransition(),v({state:e,currentLocation:i.currentLocation,nextLocation:i.nextLocation})):(l(e),u({isTransitioning:!0,flushSync:!1,currentLocation:i.currentLocation,nextLocation:i.nextLocation}))},[r.window,h,c,y,b]);p.useLayoutEffect(()=>r.subscribe(w),[r,w]),p.useEffect(()=>{s.isTransitioning&&!s.flushSync&&d(new rh)},[s]),p.useEffect(()=>{if(c&&i&&r.window){let e=c.promise,t=r.window.document.startViewTransition(async()=>{b(()=>o(i)),await e});t.finished.finally(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})}),f(t)}},[b,i,c,r.window]),p.useEffect(()=>{c&&i&&a.location.key===i.location.key&&c.resolve()},[c,h,a.location,i]),p.useEffect(()=>{!s.isTransitioning&&m&&(l(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))},[s.isTransitioning,m]),p.useEffect(()=>{},[]);let E=p.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})}),[r]),S=r.basename||"/",R=p.useMemo(()=>({router:r,navigator:E,static:!1,basename:S}),[r,E,S]),x=p.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return p.useEffect(()=>tB(n,r.future),[n,r.future]),p.createElement(p.Fragment,null,p.createElement(e3.Provider,{value:R},p.createElement(e5.Provider,{value:a},p.createElement(rl.Provider,{value:y.current},p.createElement(ri.Provider,{value:s},p.createElement(tV,{basename:S,location:a.location,navigationType:a.historyAction,navigator:E,future:x},a.initialized||r.future.v7_partialHydration?p.createElement(rp,{routes:r.routes,future:r.future,state:a}):t))))),null)}let rp=p.memo(function(e){let{routes:t,future:r,state:n}=e;return tm(t,void 0,n,r)});function rm(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=w({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&rs?rs(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function rv(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=E({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&rs?rs(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function ry(e){let{basename:t,children:r,future:n,history:a}=e,[o,i]=p.useState({action:a.action,location:a.location}),{v7_startTransition:l}=n||{},s=p.useCallback(e=>{l&&rs?rs(()=>i(e)):i(e)},[i,l]);return p.useLayoutEffect(()=>a.listen(s),[a,s]),p.useEffect(()=>tB(n),[n]),p.createElement(tV,{basename:t,children:r,location:o.location,navigationType:o.action,navigator:a,future:n})}let rg="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement,rb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,rw=p.forwardRef(function(e,t){let r,{onClick:n,relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:c,viewTransition:d}=e,h=t4(e,re),{basename:f}=p.useContext(e8),m=!1;if("string"==typeof u&&rb.test(u)&&(r=u,rg))try{let e=new URL(window.location.href),t=new URL(u.startsWith("//")?e.protocol+u:u),r=B(t.pathname,f);t.origin===e.origin&&null!=r?u=r+t.search+t.hash:m=!0}catch(e){}let v=tr(u,{relative:a}),y=rP(u,{replace:i,state:l,target:s,preventScrollReset:c,relative:a,viewTransition:d});return p.createElement("a",t7({},h,{href:r||v,onClick:m||o?n:function(e){n&&n(e),e.defaultPrevented||y(e)},ref:t,target:s}))}),rE=p.forwardRef(function(e,t){let r,{"aria-current":n="page",caseSensitive:a=!1,className:o="",end:i=!1,style:l,to:s,viewTransition:u,children:c}=e,d=t4(e,rt),h=tf(s,{relative:d.relative}),f=ta(),m=p.useContext(e5),{navigator:v,basename:y}=p.useContext(e8),g=null!=m&&rB(h)&&!0===u,b=v.encodeLocation?v.encodeLocation(h).pathname:h.pathname,w=f.pathname,E=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;a||(w=w.toLowerCase(),E=E?E.toLowerCase():null,b=b.toLowerCase()),E&&y&&(E=B(E,y)||E);let S="/"!==b&&b.endsWith("/")?b.length-1:b.length,R=w===b||!i&&w.startsWith(b)&&"/"===w.charAt(S),x=null!=E&&(E===b||!i&&E.startsWith(b)&&"/"===E.charAt(b.length)),C={isActive:R,isPending:x,isTransitioning:g},P=R?n:void 0;r="function"==typeof o?o(C):[o,R?"active":null,x?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let D="function"==typeof l?l(C):l;return p.createElement(rw,t7({},d,{"aria-current":P,className:r,ref:t,style:D,to:s,viewTransition:u}),"function"==typeof c?c(C):c)}),rS=p.forwardRef((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:a,replace:o,state:i,method:l="get",action:s,onSubmit:u,relative:c,preventScrollReset:d,viewTransition:h}=e,f=t4(e,rr),m=r_(),v=rA(s,{relative:c}),y="get"===l.toLowerCase()?"get":"post";return p.createElement("form",t7({ref:t,method:y,action:v,onSubmit:a?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,a=(null==t?void 0:t.getAttribute("formmethod"))||l;m(t||e.currentTarget,{fetcherKey:r,method:a,navigate:n,replace:o,state:i,relative:c,preventScrollReset:d,viewTransition:h})}},f))});function rR(e){let{getKey:t,storageKey:r}=e;return rO({getKey:t,storageKey:r}),null}function rx(e){let t=p.useContext(e3);return t||S(!1),t}function rC(e){let t=p.useContext(e5);return t||S(!1),t}function rP(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:i,viewTransition:l}=void 0===t?{}:t,s=ts(),u=ta(),c=tf(e,{relative:i});return p.useCallback(t=>{0!==t.button||r&&"_self"!==r||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||(t.preventDefault(),s(e,{replace:void 0!==n?n:P(u)===P(c),state:a,preventScrollReset:o,relative:i,viewTransition:l}))},[u,s,c,n,a,r,e,o,i,l])}function rD(e){let t=p.useRef(t5(e)),r=p.useRef(!1),n=ta(),a=p.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=t5(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),o=ts(),i=p.useCallback((e,t)=>{let n=t5("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)},[o,a]);return[a,i]}(s=h||(h={})).UseScrollRestoration="useScrollRestoration",s.UseSubmit="useSubmit",s.UseSubmitFetcher="useSubmitFetcher",s.UseFetcher="useFetcher",s.useViewTransitionState="useViewTransitionState",(u=f||(f={})).UseFetcher="useFetcher",u.UseFetchers="useFetchers",u.UseScrollRestoration="useScrollRestoration";let rL=0,rk=()=>"__"+String(++rL)+"__";function r_(){let{router:e}=rx(h.UseSubmit),{basename:t}=p.useContext(e8),r=tC();return p.useCallback(function(n,a){if(void 0===a&&(a={}),"u"<typeof document)throw Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.");let{action:o,method:i,encType:l,formData:s,body:u}=function(e,t){let r,n,a,o,i;if(t3(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?B(i,t):null,r=e.getAttribute("method")||"get",a=t9(e.getAttribute("enctype"))||t2,o=new FormData(e)}else if(t3(e)&&"button"===e.tagName.toLowerCase()||t3(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||i.getAttribute("action");if(n=l?B(l,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||"get",a=t9(e.getAttribute("formenctype"))||t9(i.getAttribute("enctype"))||t2,o=new FormData(i,e),!function(){if(null===t6)try{new FormData(document.createElement("form"),0),t6=!1}catch(e){t6=!0}return t6}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else if(t3(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else r="get",n=null,a=t2,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(n,t);if(!1===a.navigate){let t=a.fetcherKey||rk();e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,flushSync:a.flushSync})}else e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function rA(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=p.useContext(e8),a=p.useContext(te);a||S(!1);let[o]=a.matches.slice(-1),i=t7({},tf(e||".",{relative:r})),l=ta();if(null==e){i.search=l.search;let e=new URLSearchParams(i.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();i.search=r?"?"+r:""}}return(!e||"."===e)&&o.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(i.pathname="/"===i.pathname?n:K([n,i.pathname])),P(i)}function rT(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=rx(h.UseFetcher),a=rC(f.UseFetcher),o=p.useContext(rl),i=p.useContext(te),l=null==(t=i.matches[i.matches.length-1])?void 0:t.route.id;o||S(!1),i||S(!1),null==l&&S(!1);let s=rc?rc():"",[u,c]=p.useState(r||s);r&&r!==u?c(r):u||c(rk()),p.useEffect(()=>(n.getFetcher(u),()=>{n.deleteFetcher(u)}),[n,u]);let d=p.useCallback((e,t)=>{l||S(!1),n.fetch(u,l,e,t)},[u,l,n]),m=r_(),v=p.useCallback((e,t)=>{m(e,t7({},t,{navigate:!1,fetcherKey:u}))},[u,m]),y=p.useMemo(()=>p.forwardRef((e,t)=>p.createElement(rS,t7({},e,{navigate:!1,fetcherKey:u,ref:t}))),[u]),g=a.fetchers.get(u)||eh,b=o.get(u);return p.useMemo(()=>t7({Form:y,submit:v,load:d},g,{data:b}),[y,v,d,g,b])}function rU(){return Array.from(rC(f.UseFetchers).fetchers.entries()).map(e=>{let[t,r]=e;return t7({},r,{key:t})})}let rj="react-router-scroll-positions",rM={};function rO(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=rx(h.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=rC(f.UseScrollRestoration),{basename:i}=p.useContext(e8),l=ta(),s=tL(),u=tP();p.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),function(e,t){let{capture:r}={};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}},[e,r])}(p.useCallback(()=>{"idle"===u.state&&(rM[(t?t(l,s):null)||l.key]=window.scrollY);try{sessionStorage.setItem(r||rj,JSON.stringify(rM))}catch(e){}window.history.scrollRestoration="auto"},[r,t,u.state,l,s])),"u">typeof document&&(p.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(r||rj);e&&(rM=JSON.parse(e))}catch(e){}},[r]),p.useLayoutEffect(()=>{let e=t&&"/"!==i?(e,r)=>t(t7({},e,{pathname:B(e.pathname,i)||e.pathname}),r):t,r=null==n?void 0:n.enableScrollRestoration(rM,()=>window.scrollY,e);return()=>r&&r()},[n,i,t]),p.useLayoutEffect(()=>{if(!1!==a){if("number"==typeof a)return void window.scrollTo(0,a);if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==o&&window.scrollTo(0,0)}},[l,a,o]))}function rF(e,t){let{capture:r}=t||{};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}},[e,r])}function rN(e){let{when:t,message:r}=e,n=tO(t);p.useEffect(()=>{"blocked"===n.state&&(window.confirm(r)?setTimeout(n.proceed,0):n.reset())},[n,r]),p.useEffect(()=>{"blocked"!==n.state||t||n.reset()},[n,t])}function rB(e,t){void 0===t&&(t={});let r=p.useContext(ri);null==r&&S(!1);let{basename:n}=rx(h.useViewTransitionState),a=tf(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=B(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=B(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=F(a.pathname,i)||null!=F(a.pathname,o)}}}]);