{"version":3,"file":"static/js/main.fa5805e4.js","mappings":"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","sources":["../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@heroicons/react/24/solid/esm/XMarkIcon.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","components/Booknow.jsx","components/ComingSoon.jsx","assets/svvasthya_logo.svg","components/ContactUs.jsx","assets/svvasthya_letter_logo.svg","assets/watermark.svg","components/Hero.jsx","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","components/Navbar.jsx","components/Services.jsx","Home.jsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/Admin/CareRecipientForms.jsx","components/Admin/SvvasthyaSaathi.jsx","components/Admin/ContactUs.jsx","components/Admin/AdminDash.jsx","components/Admin/Login.jsx","App.js","index.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","import * as React from \"react\";\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(XMarkIcon);\nexport default ForwardRef;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import React, { useState } from \"react\";\r\nimport { XMarkIcon } from \"@heroicons/react/24/solid\";\r\nimport axios from \"axios\";\r\n\r\nfunction BookNowForm() {\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [selectedForm, setSelectedForm] = useState(null);\r\n const [formData, setFormData] = useState({\r\n patient: {\r\n fullName: \"\",\r\n contactNumber: \"\",\r\n email: \"\",\r\n serviceDetails: {\r\n selectedService: \"\",\r\n preferredDateTime: \"\",\r\n duration: \"\",\r\n specificRequirements: \"\"\r\n },\r\n addressInformation: {\r\n houseNumberName: \"\",\r\n street: \"\",\r\n landmark: \"\",\r\n city: \"\",\r\n state: \"\",\r\n zipCode: \"\"\r\n },\r\n confirmationAgreement: {\r\n termsAccepted: false\r\n }\r\n },\r\n svvasthyaSathi: {\r\n personalInformation: {\r\n fullName: \"\",\r\n contactNumber: \"\",\r\n email: \"\"\r\n },\r\n professionalInformation: {\r\n role: \"\",\r\n yearsOfExperience: \"\",\r\n qualifications: \"\",\r\n workExperience: \"\",\r\n preferredWorkingHours: \"\"\r\n },\r\n preferredLocations: \"\",\r\n confirmationAgreement: {\r\n termsAccepted: false\r\n }\r\n }\r\n });\r\n\r\n const handleBookNowClick = (type) => {\r\n setSelectedForm(type);\r\n setIsModalOpen(true);\r\n };\r\n\r\n const handleInputChange = (e, section, subsection = null) => {\r\n const { name, value, type, checked } = e.target;\r\n setFormData(prevData => {\r\n const updatedData = { ...prevData };\r\n if (subsection) {\r\n updatedData[section][subsection][name] = type === 'checkbox' ? checked : value;\r\n } else {\r\n updatedData[section][name] = type === 'checkbox' ? checked : value;\r\n }\r\n return updatedData;\r\n });\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n try {\r\n const endpoint = selectedForm === 'patient'\r\n ? 'http://localhost:5000/api/landing/customerform'\r\n : 'http://localhost:5000/api/landing/sathiform';\r\n\r\n const dataToSubmit = selectedForm === 'patient'\r\n ? formData.patient\r\n : formData.svvasthyaSathi;\r\n\r\n const response = await axios.post(endpoint, dataToSubmit);\r\n alert(response.data.message);\r\n setIsModalOpen(false);\r\n } catch (error) {\r\n console.error('Form submission error:', error);\r\n alert(error.response?.data?.message || 'Form submission failed');\r\n }\r\n };\r\n\r\n const renderPatientForm = () => (\r\n
\r\n handleInputChange(e, 'patient')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors\"\r\n required\r\n />\r\n handleInputChange(e, 'patient')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors\"\r\n required\r\n />\r\n handleInputChange(e, 'patient')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors\"\r\n />\r\n\r\n handleInputChange(e, 'patient', 'serviceDetails')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors text-gray-600\"\r\n required\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n handleInputChange(e, 'patient', 'serviceDetails')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors text-gray-600\"\r\n required\r\n />\r\n\r\n handleInputChange(e, 'patient', 'serviceDetails')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors text-gray-600\"\r\n required\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n handleInputChange(e, 'patient', 'serviceDetails')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#EF5A2A] focus:ring-1 focus:ring-[#EF5A2A] transition-colors\"\r\n rows=\"3\"\r\n />\r\n\r\n
\r\n handleInputChange(e, 'patient', 'confirmationAgreement')}\r\n className=\"mr-2 h-4 w-4 rounded border-gray-300 text-[#EF5A2A] focus:ring-[#EF5A2A]\"\r\n required\r\n />\r\n \r\n
\r\n\r\n \r\n Submit Patient Request\r\n \r\n \r\n );\r\n\r\n const renderSvvasthyaSaathiForm = () => (\r\n
\r\n handleInputChange(e, 'svvasthyaSathi', 'personalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n required\r\n />\r\n handleInputChange(e, 'svvasthyaSathi', 'personalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n required\r\n />\r\n handleInputChange(e, 'svvasthyaSathi', 'personalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n required\r\n />\r\n\r\n handleInputChange(e, 'svvasthyaSathi', 'professionalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors text-gray-600\"\r\n required\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n handleInputChange(e, 'svvasthyaSathi', 'professionalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n />\r\n\r\n handleInputChange(e, 'svvasthyaSathi', 'professionalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n />\r\n\r\n handleInputChange(e, 'svvasthyaSathi', 'professionalInformation')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors text-gray-600\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n handleInputChange(e, 'svvasthyaSathi')}\r\n className=\"w-full rounded-lg border border-gray-300 p-3 text-sm focus:border-[#262163] focus:ring-1 focus:ring-[#262163] transition-colors\"\r\n required\r\n />\r\n\r\n
\r\n handleInputChange(e, 'svvasthyaSathi', 'confirmationAgreement')}\r\n className=\"mr-2 h-4 w-4 rounded border-gray-300 text-[#262163] focus:ring-[#262163]\"\r\n required\r\n />\r\n \r\n
\r\n\r\n \r\n Submit Svvasthya Sathi Application\r\n \r\n \r\n );\r\n\r\n return (\r\n
\r\n

\r\n Book Now\r\n

\r\n\r\n
\r\n {/* Card for Patient */}\r\n
\r\n

\r\n Patient\r\n

\r\n

\r\n Access professional healthcare services at your convenience.\r\n Whether you need nursing, caregiving, or baby care, Svvasthya ensures reliable\r\n and compassionate support tailored to your needs. Simply click \"Book Now,\"\r\n fill out the form, and we'll provide you the best care in real-time.\r\n

\r\n
\r\n handleBookNowClick(\"patient\")}\r\n className=\"text-[#EF5A2A] font-bold text-lg sm:text-xl h-12 w-40 bg-white py-2 px-4 rounded-3xl hover:bg-opacity-90 transition\"\r\n >\r\n Book Now\r\n \r\n
\r\n
\r\n\r\n {/* Card for Swastya Sathi */}\r\n
\r\n

\r\n Svvastya Saathi\r\n

\r\n

\r\n Are you a skilled nurse, caregiver, or baby care specialist? Become a part of the Svvasthya Saathi family\r\n and make a difference in people’s lives while growing your career. Enjoy flexible schedules,\r\n real-time assignments, and the opportunity to earn competitive rewards. Click \"Join Us,\" fill out the form,\r\n and start your journey with Svvasthya today.\r\n

\r\n
\r\n handleBookNowClick(\"svvasthyaSathi\")}\r\n className=\"text-[#262163] font-bold text-lg sm:text-xl h-12 w-40 bg-white py-2 px-4 rounded-3xl hover:bg-opacity-90 transition\"\r\n >\r\n Join Us\r\n \r\n
\r\n
\r\n
\r\n\r\n {/* Contact Form Modal */}\r\n {isModalOpen && (\r\n
\r\n
\r\n setIsModalOpen(false)}\r\n className=\"absolute top-4 right-4 text-gray-500 hover:text-gray-700 focus:outline-none\"\r\n >\r\n \r\n \r\n\r\n

\r\n {selectedForm === \"patient\"\r\n ? \"Patient Request\"\r\n : \"Svvasthya Sathi Application\"}\r\n

\r\n\r\n {/* Scrollable content */}\r\n
\r\n {selectedForm === \"patient\"\r\n ? renderPatientForm()\r\n : renderSvvasthyaSaathiForm()}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default BookNowForm;","import React, { useEffect, useState } from \"react\";\r\nimport comingSoonImage from \"../assets/Devices mockups (Community).png\";\r\n\r\nconst MovingText = ({ text }) => {\r\n const [position, setPosition] = useState({ x: 0, y: 0 });\r\n const [direction, setDirection] = useState({ x: Math.random() * 2 - 1, y: Math.random() * 2 - 1 });\r\n\r\n useEffect(() => {\r\n const moveText = () => {\r\n setPosition(prev => {\r\n let newX = prev.x + direction.x * 2;\r\n let newY = prev.y + direction.y * 2;\r\n\r\n // Bounce off the edges of the container\r\n if (newX < -200 || newX > 200) {\r\n setDirection(prev => ({ ...prev, x: -prev.x }));\r\n newX = prev.x;\r\n }\r\n if (newY < -200 || newY > 200) {\r\n setDirection(prev => ({ ...prev, y: -prev.y }));\r\n newY = prev.y;\r\n }\r\n\r\n return { x: newX, y: newY };\r\n });\r\n };\r\n\r\n const interval = setInterval(moveText, 50);\r\n return () => clearInterval(interval);\r\n }, [direction]);\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nconst ComingSoon = () => {\r\n const features = [\r\n \"Real-time Analytics\",\r\n \"Cloud Integration\",\r\n \"Mobile Responsive\",\r\n \"Smart Dashboard\",\r\n \"Secure Platform\",\r\n \"24/7 Support\",\r\n \"Custom Reports\",\r\n \"API Access\"\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n

\r\n Coming Soon\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n {/*
\r\n

\r\n Stay tuned for updates and more information!\r\n

\r\n
*/}\r\n\r\n {/* Features and functionalities */}\r\n
\r\n {/* Header Section */}\r\n
\r\n

\r\n Upcoming Features\r\n

\r\n

\r\n Discover the features designed to revolutionize home healthcare for both\r\n patients and attendants.\r\n

\r\n
\r\n\r\n {/* Features Section */}\r\n
\r\n {/* Customer Side Features */}\r\n
\r\n

\r\n Patient Side - Web App\r\n

\r\n
    \r\n {[\r\n \"Real-Time Booking System\",\r\n \"Customized Care Services\",\r\n \"Support When You Need It\",\r\n \"Service Selection and Booking\",\r\n \"Comprehensive Profile Management\",\r\n \"Health Record System\",\r\n \"Appointments Management\",\r\n \"Real-Time Updates\",\r\n \"In-App Support\",\r\n \"Subscription Plans\",\r\n \"Secure Payments\",\r\n \"Flexible Scheduling\",\r\n \"Access to Verified Attendants\",\r\n ].map((feature, index) => (\r\n \r\n {feature}\r\n \r\n ))}\r\n
\r\n
\r\n\r\n {/* Attendant Side Features */}\r\n
\r\n

\r\n Attendant Side - Mobile App\r\n

\r\n
    \r\n {[\r\n \"Real-Time Availability Management\",\r\n \"Appointment Management\",\r\n \"Profile Management\",\r\n \"Job Matching and Assignments\",\r\n \"Real-Time Alerts\",\r\n \"Earnings and Payments\",\r\n \"24/7 Support and Resources\",\r\n \"Progressive Career Growth\",\r\n \"Access to Training and Resources\",\r\n \"AI-Driven Job Assignments\",\r\n \"Flexible Scheduling\",\r\n \"Onboarding Verification and Screening\",\r\n ].map((feature, index) => (\r\n \r\n {feature}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n\r\n {/* Coming Soon Section */}\r\n
\r\n

\r\n Stay Tuned for Something Amazing!\r\n

\r\n

\r\n Svvasthya is launching soon to transform home healthcare experiences.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ComingSoon;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSvvasthyaLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 66,\n viewBox: \"0 0 100 66\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.4004 22.4497C63.0432 22.4497 64.6861 22.4497 66.3787 22.4497C66.4026 24.5211 66.4264 26.5926 66.4509 28.7268C66.6176 28.5601 66.7842 28.3934 66.9559 28.2217C68.1121 27.337 69.6314 27.2095 71.0327 27.3776C72.0019 27.5432 72.8994 27.97 73.49 28.7719C74.3156 30.0075 74.3468 31.2516 74.3364 32.6877C74.336 32.8529 74.3357 33.018 74.3355 33.1832C74.3346 33.6147 74.3325 34.0462 74.3301 34.4777C74.3279 34.9193 74.3269 35.3609 74.3258 35.8025C74.3235 36.6667 74.3198 37.5308 74.3153 38.3949C74.72 38.3949 75.1248 38.3949 75.5418 38.3949C75.5418 38.5615 75.5418 38.7282 75.5418 38.8999C73.518 38.8999 71.4942 38.8999 69.409 38.8999C69.409 38.7333 69.409 38.5666 69.409 38.3949C69.8138 38.3949 70.2186 38.3949 70.6356 38.3949C70.6328 37.3894 70.6285 36.384 70.6223 35.3785C70.6195 34.9116 70.6172 34.4446 70.616 33.9776C70.6149 33.5262 70.6125 33.0747 70.609 32.6233C70.608 32.4519 70.6074 32.2804 70.6073 32.109C70.6507 30.4077 70.6507 30.4077 69.9609 28.9057C69.4794 28.4733 68.9947 28.4154 68.3679 28.4238C67.6492 28.4639 67.2239 28.7794 66.7395 29.304C66.392 29.7034 66.4092 30.0657 66.4115 30.5808C66.4104 30.7076 66.4104 30.7076 66.4092 30.8369C66.4071 31.1156 66.407 31.3943 66.4069 31.6731C66.4058 31.8666 66.4047 32.0601 66.4033 32.2536C66.4004 32.7104 66.3989 33.1673 66.398 33.6242C66.3968 34.1445 66.3941 34.6648 66.3912 35.1851C66.3852 36.255 66.3814 37.3249 66.3787 38.3949C66.7835 38.3949 67.1883 38.3949 67.6053 38.3949C67.6053 38.5615 67.6053 38.7282 67.6053 38.8999C65.5815 38.8999 63.5577 38.8999 61.4725 38.8999C61.4725 38.7333 61.4725 38.5666 61.4725 38.3949C61.8535 38.3949 62.2344 38.3949 62.6269 38.3949C62.6269 33.2996 62.6269 28.2044 62.6269 22.9548C62.2222 22.9548 61.8174 22.9548 61.4004 22.9548C61.4004 22.7881 61.4004 22.6214 61.4004 22.4497Z\",\n fill: \"#282262\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9863 25.1914C17.8673 25.1914 22.7482 25.1914 27.7771 25.1914C27.7771 25.3581 27.7771 25.5247 27.7771 25.6965C26.9676 25.6965 26.158 25.6965 25.324 25.6965C25.324 30.0536 25.324 34.4107 25.324 38.8999C24.2049 38.8999 23.0859 38.8999 21.9329 38.8999C21.9091 37.8523 21.8853 36.8047 21.8608 35.7253C21.6703 35.9158 21.4798 36.1063 21.2836 36.3025C20.312 37.0375 19.1011 37.2825 17.9109 37.1348C16.7382 36.9319 15.7824 36.3664 15.0606 35.4147C14.5077 34.5631 14.317 33.5691 14.3301 32.5688C14.3313 32.4458 14.3313 32.4458 14.3325 32.3204C14.3579 30.9739 14.6386 29.8276 15.6071 28.8282C16.6125 27.9241 17.7213 27.6499 19.0361 27.706C19.6632 27.7491 20.236 27.9369 20.7064 28.366C20.7302 28.4374 20.754 28.5089 20.7785 28.5825C20.7309 28.6539 20.6833 28.7253 20.6342 28.7989C20.5941 28.7877 20.5539 28.7764 20.5125 28.7648C20.018 28.6387 19.6392 28.6021 19.1732 28.853C18.5123 29.3938 18.2305 30.2418 18.125 31.0701C18.0907 31.4593 18.0881 31.8491 18.0864 32.2396C18.086 32.3209 18.0856 32.4023 18.0852 32.4862C18.0942 33.5401 18.2351 34.6039 18.9917 35.3967C19.3704 35.7302 19.8177 35.8298 20.3093 35.8217C20.7822 35.7582 21.1688 35.5274 21.4595 35.1526C21.5569 35.0146 21.5569 35.0146 21.6443 34.8595C21.6813 34.8026 21.7182 34.7456 21.7563 34.6869C21.9061 34.3137 21.8925 33.9681 21.892 33.5694C21.8927 33.4821 21.8935 33.3948 21.8942 33.3049C21.8964 33.0229 21.8971 32.7409 21.8977 32.4588C21.8988 32.2845 21.9 32.1101 21.9013 31.9358C21.9055 31.29 21.9078 30.6442 21.9104 29.9984C21.9215 27.8332 21.9215 27.8332 21.9329 25.6243C18.9806 25.6243 16.0282 25.6243 12.9863 25.6243C12.9863 25.4814 12.9863 25.3386 12.9863 25.1914Z\",\n fill: \"#272161\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.25748 25.5021C8.33116 25.5271 8.40483 25.552 8.48073 25.5778C8.57897 25.612 8.57897 25.612 8.6792 25.6469C8.89765 25.7023 9.08283 25.7127 9.30736 25.6964C9.55794 25.4804 9.56549 25.2196 9.59596 24.9028C9.76263 24.9028 9.92929 24.9028 10.101 24.9028C10.101 26.4028 10.101 27.9028 10.101 29.4482C9.93434 29.4482 9.76768 29.4482 9.59596 29.4482C9.58536 29.3645 9.57475 29.2808 9.56383 29.1946C9.3942 27.969 8.97445 27.0591 7.96356 26.2917C6.92074 25.6067 5.70531 25.3751 4.4733 25.48C3.85556 25.637 3.50016 26.0274 3.1746 26.5622C3.02312 27.0167 3.01511 27.5956 3.21519 28.0368C3.75827 28.9307 5.00197 29.3641 5.92081 29.7458C6.11047 29.8263 6.29978 29.9076 6.489 29.9891C6.53688 30.0097 6.58476 30.0303 6.6341 30.0515C9.20095 31.1616 9.20095 31.1616 10.101 31.9735C10.1635 32.0209 10.226 32.0683 10.2904 32.1172C10.8651 32.603 11.2376 33.5498 11.3276 34.2823C11.3678 34.9644 11.3238 35.5776 11.1111 36.2303C11.0755 36.345 11.0755 36.345 11.0392 36.462C10.687 37.4882 10.0598 38.2093 9.10585 38.7189C7.40881 39.528 5.39225 39.4451 3.64358 38.8458C3.13551 38.6638 2.64779 38.4446 2.16281 38.2085C1.77536 38.024 1.4352 37.9751 1.0101 38.0341C0.725394 38.2258 0.662289 38.3341 0.590729 38.6699C0.586264 38.7458 0.5818 38.8217 0.577201 38.8999C0.386724 38.8999 0.196248 38.8999 0 38.8999C0 37.0189 0 35.138 0 33.2C0.166667 33.2 0.333333 33.2 0.50505 33.2C0.511904 33.241 0.518757 33.282 0.525818 33.3242C0.832011 35.122 1.40896 36.5035 2.88572 37.666C3.86904 38.3539 4.90068 38.6324 6.08315 38.6519C6.15545 38.6538 6.22775 38.6558 6.30224 38.6578C6.87224 38.6548 7.35679 38.5153 7.78592 38.125C8.26625 37.6099 8.34709 37.1199 8.33136 36.4276C8.26645 35.9147 8.01954 35.5432 7.62536 35.2157C6.76922 34.6439 5.8147 34.2387 4.87915 33.8178C1.23703 32.1777 1.23703 32.1777 0.50505 30.4583C0.191945 29.4194 0.402705 28.1129 0.87482 27.1665C1.46695 26.1287 2.34513 25.4538 3.4632 25.0471C5.07831 24.6153 6.71956 24.9743 8.25748 25.5021Z\",\n fill: \"#272261\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.9329 28.2532C50.4342 28.6837 50.8153 29.1077 50.8866 29.7852C50.9048 30.3324 50.8135 30.7683 50.4785 31.2068C50.1953 31.4901 49.9408 31.5614 49.5451 31.5631C49.1146 31.5527 48.7508 31.5063 48.4285 31.2023C48.1031 30.8322 48.0195 30.59 48.0221 30.0944C48.0727 29.7397 48.267 29.5062 48.4854 29.2317C48.6583 28.9781 48.7509 28.8208 48.7018 28.5102C48.552 28.3271 48.4158 28.252 48.1923 28.181C48.1174 28.1563 48.1174 28.1563 48.0409 28.1311C47.4664 27.9802 46.92 27.9049 46.3254 27.906C46.2558 27.9061 46.1863 27.9062 46.1146 27.9063C45.4207 27.9183 44.8502 28.0679 44.3007 28.5102C43.9714 28.8761 43.8314 29.1569 43.8458 29.6474C43.896 30.0159 44.1293 30.2332 44.4044 30.4583C44.9501 30.8431 45.5636 31.0817 46.1977 31.2767C46.2719 31.2996 46.2719 31.2996 46.3476 31.323C46.6691 31.4218 46.9914 31.5179 47.3139 31.6132C47.5357 31.6788 47.7575 31.7448 47.9792 31.8109C48.0917 31.8443 48.2044 31.8773 48.3172 31.9101C49.5601 32.2721 50.6555 32.7681 51.412 33.8744C51.7035 34.4122 51.7701 34.8495 51.7637 35.4547C51.7631 35.5283 51.7624 35.602 51.7617 35.6779C51.7405 36.6008 51.4865 37.2682 50.8663 37.9619C49.7244 39.0404 48.3074 39.205 46.7944 39.2065C46.717 39.2066 46.717 39.2066 46.6381 39.2067C45.8612 39.2059 45.1287 39.1655 44.3728 38.972C44.2856 38.9519 44.1984 38.9318 44.1085 38.9111C43.0783 38.6507 42.0899 38.1334 41.4778 37.2359C41.232 36.7389 41.2504 36.06 41.3955 35.5327C41.5561 35.182 41.7954 34.9577 42.1362 34.7873C43.2283 34.6938 43.2283 34.6938 43.6863 35.0443C43.9761 35.3192 44.1656 35.5484 44.1789 35.9507C44.1716 36.4589 43.944 36.7907 43.6288 37.1727C43.4733 37.3678 43.4733 37.3678 43.4233 37.6054C43.4428 37.76 43.4428 37.76 43.507 37.9619C43.5561 37.9812 43.6053 38.0006 43.6559 38.0205C43.8054 38.0809 43.9534 38.1453 44.1 38.2124C44.3643 38.3258 44.6265 38.3863 44.9095 38.4399C44.9987 38.4572 45.0878 38.4745 45.1797 38.4923C46.3743 38.6953 47.9077 38.8795 48.9924 38.2358C49.2275 38.061 49.3589 37.8848 49.4233 37.6011C49.4821 37.1815 49.4402 36.8609 49.1911 36.5121C48.4408 35.7092 47.1961 35.4491 46.1707 35.1728C42.5778 34.2004 42.5778 34.2004 41.7033 32.7671C41.2865 31.9719 41.1864 31.0075 41.4237 30.1336C41.8175 29.0707 42.5875 28.3735 43.5792 27.8609C45.4237 27.0552 48.2507 27.0138 49.9329 28.2532Z\",\n fill: \"#282261\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.3441 27.5723C85.6775 27.5723 87.0108 27.5723 88.3845 27.5723C88.3845 27.7627 88.3845 27.9532 88.3845 28.1495C87.6345 28.1852 87.6345 28.1852 86.8694 28.2216C86.8028 28.3758 86.7362 28.53 86.6676 28.6889C84.7047 33.2328 84.7047 33.2328 83.7516 35.3925C83.5155 35.9279 83.2824 36.4645 83.0499 37.0014C82.9932 37.1322 82.9932 37.1322 82.9353 37.2657C82.7154 37.7729 82.4964 38.2805 82.2785 38.7885C82.1526 39.0819 82.0261 39.3752 81.8996 39.6684C81.8379 39.8119 81.7763 39.9554 81.7149 40.0991C81.4035 40.8278 81.0831 41.5488 80.7177 42.2523C80.6895 42.3073 80.6612 42.3623 80.6321 42.419C80.2292 43.1772 79.6386 43.8622 78.8176 44.1634C77.9216 44.4287 76.8466 44.4466 76.0085 43.9966C75.5431 43.7034 75.1695 43.3479 75.0368 42.7959C74.9638 42.144 75.0068 41.6052 75.3975 41.0643C75.7142 40.7041 76.0972 40.5081 76.5694 40.4666C77.2923 40.4487 77.8552 40.5412 78.4289 40.9956C78.6615 41.2244 78.8404 41.4877 79.0222 41.7576C79.1453 41.9452 79.1453 41.9452 79.3658 42.0744C79.662 42.1223 79.662 42.1223 79.943 42.0744C80.2719 41.7507 80.4396 41.3854 80.6194 40.9651C80.6469 40.9021 80.6744 40.839 80.7028 40.774C80.7591 40.645 80.8151 40.5158 80.8709 40.3866C80.9484 40.2092 81.0284 40.0332 81.1098 39.8575C81.1336 39.8053 81.1575 39.753 81.1821 39.6992C81.2268 39.6015 81.272 39.504 81.3179 39.4067C81.4327 39.1515 81.4772 39.0189 81.386 38.7555C81.3215 38.6187 81.2535 38.4834 81.1833 38.3494C81.1417 38.2695 81.1001 38.1896 81.0572 38.1073C81.012 38.0213 80.9668 37.9352 80.9215 37.8491C80.875 37.7601 80.8285 37.6711 80.782 37.5821C80.6893 37.4046 80.5964 37.2273 80.5033 37.0501C80.3974 36.8485 80.2919 36.6468 80.1865 36.445C79.8133 35.7318 79.4328 35.0226 79.0519 34.3135C78.739 33.731 78.4301 33.1466 78.1257 32.5596C77.8173 31.965 77.5028 31.3741 77.175 30.7898C76.99 30.4572 76.8163 30.1234 76.6592 29.7765C76.5767 29.5948 76.4913 29.4144 76.406 29.2341C76.3459 29.104 76.29 28.9719 76.2343 28.8399C76.1178 28.5953 76.0229 28.4128 75.8304 28.2216C75.4878 28.128 75.1731 28.1232 74.8203 28.1495C74.8203 27.9828 74.8203 27.8161 74.8203 27.6444C76.987 27.6444 79.1536 27.6444 81.386 27.6444C81.386 27.8111 81.386 27.9777 81.386 28.1495C81.0288 28.1733 80.6717 28.1971 80.3037 28.2216C81.1641 29.9663 81.1641 29.9663 82.0579 31.6938C82.3382 32.219 82.6086 32.7491 82.8759 33.281C82.9225 33.3737 82.9691 33.4663 83.0159 33.5589C83.0811 33.688 83.1459 33.8172 83.2106 33.9466C83.2483 34.0217 83.286 34.0969 83.3249 34.1743C83.4062 34.3544 83.4062 34.3544 83.4062 34.4987C83.4538 34.4987 83.5014 34.4987 83.5505 34.4987C83.5589 34.4475 83.5674 34.3963 83.5761 34.3436C83.6256 34.1248 83.6992 33.9386 83.7892 33.7332C83.8246 33.6519 83.8601 33.5705 83.8966 33.4867C83.936 33.3971 83.9755 33.3076 84.0149 33.218C84.056 33.124 84.0971 33.0301 84.1381 32.9361C84.2529 32.6734 84.3682 32.4109 84.4836 32.1485C84.5645 31.9644 84.6454 31.7803 84.7263 31.5961C84.7547 31.5316 84.783 31.4671 84.8122 31.4007C84.8702 31.2687 84.9282 31.1366 84.9862 31.0046C85.1283 30.6808 85.2706 30.3572 85.4132 30.0336C85.4665 29.9127 85.5197 29.7917 85.5729 29.6708C85.6083 29.5908 85.6083 29.5908 85.6444 29.5091C85.8426 29.0582 86.0305 28.6044 86.22 28.1495C85.601 28.1495 84.9819 28.1495 84.3441 28.1495C84.3441 27.959 84.3441 27.7685 84.3441 27.5723Z\",\n fill: \"#282362\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.2145 23.8926C57.3335 23.8926 57.4525 23.8926 57.5752 23.8926C57.5752 25.1307 57.5752 26.3688 57.5752 27.6444C58.5276 27.6444 59.48 27.6444 60.4612 27.6444C60.4612 27.7872 60.4612 27.9301 60.4612 28.0773C59.5088 28.0773 58.5564 28.0773 57.5752 28.0773C57.583 28.9592 57.5911 29.8411 57.5997 30.723C57.6036 31.1326 57.6075 31.5423 57.6111 31.9519C57.6146 32.3481 57.6183 32.7444 57.6223 33.1406C57.6238 33.2908 57.6251 33.441 57.6264 33.5913C57.533 35.8137 57.533 35.8137 58.441 37.7454C58.8088 37.9891 59.1291 37.9927 59.5548 37.9844C59.6436 37.9847 59.6436 37.9847 59.7342 37.9851C60.0991 37.9819 60.4041 37.9343 60.7498 37.8175C60.7949 38.043 60.7949 38.043 60.7498 38.3226C60.0039 38.9956 58.9625 39.1302 58.0081 39.1343C57.9237 39.1358 57.8394 39.1373 57.7525 39.1388C56.6756 39.1436 55.6845 38.8697 54.8741 38.1287C54.3077 37.5061 54.1005 36.7549 53.9677 35.9416C53.9552 35.8683 53.9426 35.795 53.9297 35.7195C53.8889 35.3811 53.886 35.0508 53.8874 34.7103C53.8873 34.6392 53.8873 34.568 53.8873 34.4947C53.8874 34.2609 53.8879 34.027 53.8885 33.7932C53.8886 33.6305 53.8887 33.4679 53.8888 33.3052C53.8891 32.8781 53.8898 32.451 53.8906 32.0239C53.8913 31.5876 53.8917 31.1514 53.892 30.7151C53.8928 29.8599 53.8941 29.0047 53.8955 28.1494C53.3003 28.1494 52.7051 28.1494 52.0918 28.1494C52.0918 27.959 52.0918 27.7685 52.0918 27.5722C52.151 27.5716 52.2103 27.5709 52.2713 27.5702C52.4949 27.567 52.7185 27.5625 52.9421 27.5573C53.085 27.5543 53.2278 27.5527 53.3706 27.5511C54.4291 27.5243 55.199 27.1974 55.9654 26.4719C56.6688 25.7307 56.9183 24.8498 57.2145 23.8926Z\",\n fill: \"#282262\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.6956 27.4099L33.5447 27.4101C31.9613 27.4117 30.2989 27.6291 29.1712 28.8669C28.6865 29.5058 28.4648 30.0858 28.5709 30.8914C28.7162 31.4131 29.0845 31.8716 29.5494 32.154C30.0192 32.3587 30.5841 32.3347 31.0739 32.2146C31.536 32.034 31.8053 31.7354 32.0524 31.3144C32.3301 30.7598 32.2979 30.261 32.1223 29.6758C32.1028 29.6146 32.0816 29.5516 32.0598 29.4873C31.9213 29.0781 31.7649 28.6157 31.9619 28.2218C32.2968 28.0431 32.5586 27.9802 32.9368 27.9828L33.0983 27.9873L33.17 27.9877C33.4853 27.9889 33.7671 27.99 34.0498 28.1632C34.3542 28.4308 34.5134 28.7295 34.587 29.1274L34.6103 29.2767C34.7172 29.9218 34.7418 30.5645 34.7508 31.2173C34.7524 31.3419 34.7544 31.4665 34.7568 31.5911C34.7643 31.9591 34.7707 32.3271 34.7758 32.6951C34.6318 32.6919 34.5339 32.6897 34.4362 32.6929C34.2279 32.6997 34.0204 32.7309 33.3709 32.8286L33.211 32.853C32.1124 33.02 31.0297 33.1951 30.0094 33.6556C29.1174 34.0881 28.4856 34.6856 28.1425 35.6307C27.9517 36.3785 27.9682 37.2117 28.3544 37.8899C28.7486 38.5176 29.4002 38.8688 30.1004 39.0533C31.7822 39.4131 33.361 38.9716 34.7668 38.0624L34.9201 37.9621C35.1645 38.2833 35.4117 38.5507 35.7653 38.7509C36.7076 39.1907 38.0024 39.1974 38.9898 38.8938L39.1769 38.8279C39.2143 38.8161 39.2518 38.8047 39.2892 38.7933C39.5017 38.7286 39.7134 38.6642 39.8984 38.5393C39.9282 38.4376 39.942 38.3903 39.9509 38.3422C39.9587 38.3004 39.9628 38.2579 39.9706 38.1785L39.7863 38.1811L39.5467 38.183L39.4772 38.184C39.2258 38.1881 39.0582 38.1908 38.8507 38.0116C38.661 37.589 38.5645 37.3739 38.5193 37.1485C38.4724 36.9149 38.4807 36.6703 38.4976 36.1721C38.4979 35.9757 38.4982 35.7794 38.4973 35.583C38.4944 35.16 38.4927 34.737 38.4919 34.314C38.4914 34.0469 38.491 33.7797 38.4902 33.5126C38.4895 33.2824 38.4885 33.0523 38.4871 32.8222C38.4857 32.6215 38.4847 32.4209 38.485 32.2203C38.4874 30.9085 38.4476 29.4908 37.4944 28.4758C36.4483 27.5295 35.0432 27.4112 33.6956 27.4099ZM34.8057 34.8109C34.7995 34.2739 34.7892 33.737 34.7758 33.2002C34.0203 33.1927 33.2632 33.3069 32.6113 33.7052C32.0122 34.1144 31.6112 34.6532 31.4569 35.3647C31.392 36.0763 31.4953 36.7081 31.8898 37.3127C32.2682 37.7348 32.6751 38.002 33.2443 38.0517C33.8308 38.0658 34.208 37.9483 34.6502 37.5533C34.7187 37.4614 34.7627 37.4024 34.7909 37.3367C34.8415 37.2189 34.8414 37.0793 34.8412 36.6896L34.8321 36.4201C34.8296 36.133 34.8269 35.846 34.8193 35.5589C34.8128 35.3095 34.8087 35.0603 34.8057 34.8109Z\",\n fill: \"#282261\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M93.9039 27.4043L93.6228 27.4055C92.2577 27.4099 90.7712 27.5048 89.6858 28.4404L89.5373 28.5825C89.3583 28.7524 89.1905 28.9247 89.0288 29.1112C88.6527 29.6257 88.5281 30.1906 88.5993 30.8191C88.7068 31.3564 89.0564 31.7711 89.4967 32.0818C90.0076 32.3646 90.6052 32.3612 91.1626 32.2139C91.6363 32.0057 91.9334 31.6091 92.1617 31.1573C92.395 30.5708 92.2917 30.0909 92.0986 29.5114C92.0643 29.4167 92.0305 29.3218 91.9971 29.2268C91.8943 28.9059 91.835 28.5324 91.9904 28.2217C92.3105 28.0117 92.5703 27.9804 92.9416 27.9827L93.1267 27.9872L93.1348 27.9873C93.6152 27.9902 93.8826 27.9917 94.2662 28.3212C94.5353 28.9983 94.6732 29.3453 94.7387 29.7055C94.8075 30.0841 94.7965 30.4772 94.7738 31.2836C94.776 31.4026 94.7786 31.5217 94.7813 31.6408C94.7897 31.9922 94.7974 32.3436 94.8042 32.695C94.2437 32.7285 93.6887 32.7725 93.1335 32.8578L92.9148 32.8934C91.7565 33.0819 90.6436 33.3139 89.6145 33.8971C88.9213 34.3154 88.3503 34.9399 88.1394 35.7434C87.997 36.5828 88.0545 37.3547 88.5046 38.0882L88.6715 38.2506C89.1351 38.7088 89.6736 38.9505 90.3032 39.0888C91.9172 39.3476 93.5042 38.963 94.8369 38.0415L94.9485 37.962C95.236 38.3398 95.5248 38.626 95.9586 38.8278C97.1518 39.2898 98.659 39.1109 99.8158 38.6299C99.87 38.5857 99.9039 38.558 99.9271 38.5231C99.9659 38.465 99.9749 38.3869 99.999 38.1784L99.9174 38.1833C99.5694 38.2042 99.2396 38.2241 98.9123 38.0837C98.7132 37.6105 98.6125 37.3712 98.5636 37.1218C98.5137 36.8668 98.5178 36.6013 98.526 36.0641C98.5264 35.8624 98.5267 35.6608 98.5257 35.4591C98.5229 35.0251 98.5212 34.5912 98.5203 34.1573C98.5195 33.6461 98.5186 33.1349 98.5155 32.6236C98.5148 32.5103 98.5142 32.397 98.5138 32.2837C98.5135 32.1909 98.5133 32.0981 98.5135 32.0054C98.5157 30.7584 98.4504 29.4504 97.5409 28.494C96.5323 27.5671 95.2177 27.4142 93.9039 27.4043ZM94.8342 34.8108C94.8279 34.2738 94.8177 33.7369 94.8042 33.2001C93.7841 33.1938 92.7399 33.4015 92.0377 34.1989L91.9182 34.3545C91.6105 34.7467 91.5356 35.1212 91.5193 35.6098L91.5169 35.802C91.5057 36.4368 91.6556 36.9264 92.0355 37.4389C92.3616 37.7886 92.7504 38.0042 93.2268 38.0612C93.8292 38.073 94.225 37.9584 94.6786 37.5532C94.7472 37.4613 94.7911 37.4024 94.8193 37.3366C94.8699 37.2188 94.8698 37.0793 94.8696 36.6895L94.8606 36.4201C94.8581 36.1329 94.8553 35.8459 94.8478 35.5588C94.8412 35.3095 94.8371 35.0602 94.8342 34.8108Z\",\n fill: \"#282261\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.5986 5.38174C36.6748 5.40253 36.751 5.42332 36.8295 5.44474C36.8995 5.46552 36.9695 5.48631 37.0417 5.50772C37.1042 5.52599 37.1667 5.54426 37.2311 5.56308C37.3742 5.63877 37.3742 5.63877 37.4362 5.76757C37.4487 5.96426 37.4146 6.11589 37.3638 6.30644C37.3447 6.38005 37.3256 6.45367 37.3059 6.52951C37.2853 6.6061 37.2647 6.68269 37.2435 6.76161C36.9926 7.70877 36.8399 8.63104 36.7564 9.60702C36.7518 9.65998 36.7471 9.71294 36.7424 9.76751C36.6527 10.7954 36.6041 11.8221 36.5806 12.8538C36.3346 12.7763 36.0956 12.6898 35.8582 12.5894C34.0217 11.815 32.0679 11.2833 30.0834 11.076C29.8706 11.05 29.8706 11.05 29.6542 10.9779C29.5146 9.07031 30.2344 7.19472 31.025 5.49447C31.0478 5.44341 31.0706 5.39235 31.094 5.33974C31.1623 5.20136 31.1623 5.20136 31.3136 4.98942C32.9493 4.58138 35.0138 4.94219 36.5986 5.38174Z\",\n fill: \"#EF5A2A\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.7099 0.0109866C56.8554 0.108942 56.8554 0.108942 56.9956 0.245756C57.0735 0.320463 57.0735 0.320463 57.1529 0.396679C57.2061 0.44946 57.2593 0.502241 57.3141 0.556621C57.3668 0.607449 57.4194 0.658277 57.4736 0.710645C57.629 0.861148 57.7828 1.0131 57.9364 1.16539C57.9819 1.20964 58.0273 1.25389 58.0742 1.29949C58.3466 1.56662 58.5953 1.84257 58.8293 2.14392C58.863 2.18732 58.8967 2.23072 58.9315 2.27543C59.5483 3.08011 60.0261 3.93111 60.4617 4.84504C60.4204 4.86854 60.3791 4.89204 60.3366 4.91626C59.0101 5.67536 57.7857 6.5054 56.6377 7.51459C56.5865 7.55868 56.5352 7.60276 56.4824 7.64818C56.1882 7.90205 55.9009 8.16344 55.6141 8.42549C55.578 8.45836 55.542 8.49124 55.5048 8.52512C55.3304 8.68521 55.1617 8.8475 54.9971 9.01791C54.834 9.17404 54.834 9.17404 54.6897 9.17404C54.6701 9.12809 54.6506 9.08214 54.6305 9.0348C53.7748 7.02948 52.8058 5.14169 51.4716 3.41106C51.3612 3.26719 51.2549 3.12003 51.1543 2.96914C52.3671 1.81223 54.9347 -0.164886 56.7099 0.0109866Z\",\n fill: \"#EF5A2A\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.1452 0.164635C44.244 0.198378 44.3426 0.232891 44.4409 0.268069C44.4938 0.286902 44.5467 0.305736 44.6013 0.32514C45.129 0.51902 45.6264 0.762842 46.1224 1.02628C46.235 1.08582 46.3485 1.14352 46.4622 1.20095C47.3322 1.6512 48.1009 2.26709 48.8465 2.89704C48.8046 3.17462 48.6781 3.31607 48.4948 3.52384C47.1076 5.18279 46.1954 7.21986 45.3112 9.17409C45.0034 8.91526 44.7046 8.64892 44.4093 8.37593C42.9464 7.0319 41.4069 5.79187 39.6113 4.91724C39.6536 4.55374 39.8188 4.27081 39.9946 3.95674C40.0265 3.89972 40.0584 3.84269 40.0913 3.78394C40.6309 2.8431 41.3083 2.01248 42.0644 1.23759C42.1068 1.19416 42.1491 1.15074 42.1927 1.106C42.3283 0.967492 42.4645 0.829558 42.601 0.69195C42.6437 0.648923 42.6864 0.605896 42.7304 0.561566C42.8437 0.448672 42.9587 0.337855 43.0745 0.227484C43.1215 0.180702 43.1685 0.13392 43.2169 0.0857205C43.5159 -0.0669721 43.841 0.0704683 44.1452 0.164635Z\",\n fill: \"#EF5A2A\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.7596 4.9893C68.8692 5.12169 68.8692 5.12169 68.947 5.29481C68.991 5.38981 68.991 5.38981 69.0359 5.48672C69.0799 5.58871 69.0799 5.58871 69.1249 5.69276C69.1561 5.76192 69.1873 5.83108 69.2194 5.90233C69.3088 6.1022 69.3955 6.30296 69.4811 6.50445C69.5123 6.57733 69.5123 6.57733 69.5441 6.65168C70.0678 7.89233 70.4267 9.31599 70.4205 10.6711C70.4201 10.7576 70.4201 10.7576 70.4198 10.8459C70.4196 10.8894 70.4193 10.9329 70.419 10.9778C70.36 10.9864 70.3009 10.9951 70.2401 11.004C67.8942 11.3527 65.6948 11.9639 63.4926 12.8537C63.4916 12.7983 63.4905 12.7429 63.4895 12.6859C63.4534 10.9712 63.3526 9.26744 62.9876 7.5867C62.9759 7.53249 62.9643 7.47828 62.9523 7.42243C62.8288 6.84947 62.6986 6.27897 62.5547 5.7108C63.0401 5.50187 63.5178 5.34608 64.0338 5.23281C64.1033 5.21754 64.1728 5.20227 64.2444 5.18653C65.5987 4.89866 67.4088 4.61956 68.7596 4.9893Z\",\n fill: \"#EF5A2A\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.5254 12.6282C27.6125 12.6281 27.6995 12.6279 27.7892 12.6277C27.9944 12.6373 27.9944 12.6373 28.0665 12.7094C28.0898 12.8442 28.109 12.9796 28.1266 13.1153C28.1378 13.1999 28.1491 13.2845 28.1607 13.3717C28.1728 13.4627 28.1849 13.5536 28.1973 13.6474C28.4341 15.3526 28.9035 16.945 29.5254 18.5497C29.6441 18.8623 29.7567 19.1771 29.8703 19.4915C29.8004 19.494 29.7306 19.4965 29.6587 19.499C27.401 19.5829 25.1883 19.7753 23.007 20.3955C22.8717 20.4295 22.8717 20.4295 22.7274 20.4295C22.1042 18.6518 21.8707 16.9768 21.9338 15.0904C21.9343 15.0193 21.9348 14.9483 21.9354 14.8751C21.9552 14.3469 21.9552 14.3469 22.1888 14.1158C22.2728 14.0773 22.3568 14.0388 22.4433 13.9991C22.4905 13.977 22.5376 13.9549 22.5862 13.9321C22.7519 13.8567 22.9194 13.7878 23.0882 13.7195C23.153 13.6925 23.2178 13.6656 23.2846 13.6378C24.6392 13.0802 26.0477 12.625 27.5254 12.6282Z\",\n fill: \"#EF5B2A\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.0069 12.6374C74.0902 12.5171 76.1669 13.2918 77.9953 14.2247C78.1428 14.3722 78.081 14.6791 78.0821 14.8819C78.0826 14.9418 78.0831 15.0017 78.0837 15.0634C78.0849 15.2588 78.0854 15.4542 78.0855 15.6496C78.0856 15.7157 78.0857 15.7818 78.0857 15.8498C78.0845 17.4574 77.8795 18.909 77.346 20.4296C77.0353 20.384 76.7359 20.3149 76.4321 20.2375C74.379 19.7211 72.3088 19.6087 70.2031 19.4916C70.4251 18.818 70.4251 18.818 70.5492 18.495C70.927 17.4951 71.2305 16.4848 71.5018 15.4512C71.5247 15.3666 71.5476 15.2819 71.5712 15.1947C71.7822 14.3574 71.8818 13.4908 72.0069 12.6374Z\",\n fill: \"#F05A29\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.9288 4.26782C51.3324 4.80498 52.3952 7.84749 52.9597 9.10748C53.0329 9.27343 53.1043 9.44011 53.1755 9.60693C53.2035 9.66948 53.2316 9.73204 53.2604 9.7965C53.2876 9.8594 53.3147 9.92231 53.3427 9.98712C53.3676 10.0438 53.3926 10.1006 53.4184 10.159C53.4738 10.3641 53.4529 10.4871 53.392 10.6892C53.2708 10.865 53.2708 10.865 53.1124 11.0499C53.0534 11.12 52.9945 11.19 52.9337 11.2622C52.8092 11.4069 52.6831 11.5497 52.5561 11.6922C51.5336 12.8494 50.753 14.214 50.0731 15.5954C49.9108 15.4458 49.8094 15.3092 49.7132 15.1112C49.6865 15.0578 49.6599 15.0045 49.6325 14.9495C49.6038 14.8918 49.5751 14.8341 49.5455 14.7747C48.9101 13.5353 48.1102 12.2276 47.0983 11.2543C47.0414 11.198 47.0414 11.198 46.9834 11.1407C46.8785 11.0387 46.7705 10.9399 46.6623 10.8414C46.5192 10.5836 46.5292 10.5468 46.6062 10.276C46.6531 10.1483 46.7025 10.0214 46.7542 9.89553C46.7775 9.83568 46.8009 9.77583 46.8249 9.71417C46.8989 9.52961 46.9768 9.34725 47.0563 9.16501C47.0849 9.09918 47.1134 9.03336 47.1429 8.96554C47.8814 7.27984 48.8095 5.72907 49.9288 4.26782Z\",\n fill: \"#FAAE42\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.1113 6.43237C61.4373 7.65192 61.6559 8.85381 61.7607 10.112C61.7676 10.1952 61.7746 10.2785 61.7818 10.3642C61.8343 11.0613 61.8414 11.7537 61.8373 12.4524C61.837 12.5622 61.8367 12.6719 61.8364 12.7817C61.8356 13.0462 61.8343 13.3107 61.8328 13.5752C61.7802 13.6023 61.7802 13.6023 61.7265 13.63C60.0601 14.4908 58.5005 15.425 57.076 16.6534C56.795 16.8941 56.795 16.8941 56.638 16.8941C56.6304 16.8277 56.6228 16.7612 56.615 16.6927C56.5859 16.4406 56.5564 16.1884 56.5266 15.9363C56.5139 15.8283 56.5014 15.7202 56.4891 15.6121C56.3742 14.609 56.208 13.6302 55.921 12.6598C55.9025 12.5955 55.884 12.5312 55.865 12.4649C55.7423 12.0432 55.606 11.6303 55.4453 11.2213C55.3988 10.9855 55.4354 10.8982 55.5558 10.6892C55.7053 10.5134 55.8678 10.3534 56.0338 10.1932C56.1025 10.1257 56.1025 10.1257 56.1727 10.0569C56.4434 9.79272 56.7179 9.53467 57.007 9.29047C57.1633 9.15679 57.3126 9.01652 57.4632 8.87646C58.3003 8.12282 59.2244 7.46952 60.1734 6.86527C60.246 6.81886 60.3187 6.77245 60.3935 6.72464C60.8643 6.43237 60.8643 6.43237 61.1113 6.43237Z\",\n fill: \"#FAAE42\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.3464 12.6372C70.3118 14.6611 69.5671 16.6794 68.8226 18.5387C68.7639 18.6858 68.7069 18.8334 68.6503 18.9814C68.6193 19.0604 68.5882 19.1395 68.5562 19.2209C68.5304 19.2868 68.5047 19.3526 68.4781 19.4205C68.3984 19.5636 68.3984 19.5636 68.1819 19.6358C68.0498 19.6473 67.9173 19.6555 67.7848 19.6617C66.1087 19.7529 64.5284 20.0355 62.9242 20.5271C62.7054 20.5936 62.4856 20.6559 62.2656 20.718C62.3699 20.3682 62.4747 20.0187 62.5852 19.6707C63.0895 18.043 63.3084 16.3537 63.42 14.6574C65.382 13.665 68.1009 12.5217 70.3464 12.6372Z\",\n fill: \"#FAAE42\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.7267 12.7094C30.2007 12.6954 30.6384 12.7238 31.1021 12.8221C31.163 12.8347 31.2239 12.8474 31.2867 12.8604C33.1475 13.2603 34.9169 13.8865 36.6531 14.6574C36.6585 14.7287 36.6585 14.7287 36.6641 14.8015C36.7293 15.6486 36.7947 16.4896 36.9417 17.327C36.9592 17.4376 36.9766 17.5483 36.9938 17.659C37.0125 17.7768 37.0312 17.8946 37.0499 18.0124C37.0627 18.0954 37.0627 18.0954 37.0758 18.1801C37.1228 18.4684 37.1872 18.7165 37.3024 18.9864C37.3391 19.1257 37.3736 19.2655 37.4062 19.4058C37.4701 19.6709 37.5399 19.9235 37.6406 20.1769C37.7353 20.4294 37.7353 20.4294 37.7353 20.718C37.353 20.616 36.9717 20.5109 36.5922 20.3984C35.1771 19.9809 33.7637 19.7252 32.2876 19.6604C32.067 19.6501 31.8857 19.6339 31.6747 19.5636C31.5373 19.3471 31.446 19.1048 31.3456 18.8692C31.3143 18.7966 31.283 18.7239 31.2508 18.6491C30.9901 18.0261 30.7716 17.3924 30.5654 16.7498C30.5507 16.7038 30.5359 16.6579 30.5207 16.6106C30.2374 15.7236 29.9618 14.8258 29.8169 13.9044C29.8079 13.8521 29.7988 13.7999 29.7895 13.7461C29.7325 13.3965 29.7187 13.0635 29.7267 12.7094Z\",\n fill: \"#FAAE42\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.962 6.43237C39.324 6.53595 39.6125 6.69227 39.927 6.89233C39.977 6.92391 40.027 6.95549 40.0785 6.98803C41.2689 7.75224 42.3599 8.66623 43.386 9.63745C43.4739 9.71981 43.5626 9.80132 43.6517 9.88229C43.8052 10.0219 43.9563 10.1637 44.1072 10.3059C44.1561 10.3496 44.205 10.3933 44.2553 10.4383C44.5784 10.7491 44.5784 10.7491 44.6091 10.9778C44.5934 11.13 44.5625 11.2645 44.5176 11.4107C44.4934 11.4907 44.4692 11.5707 44.4443 11.6531C44.4149 11.7338 44.3855 11.8146 44.3552 11.8977C43.8625 13.3112 43.5978 14.7745 43.4883 16.2645C43.4833 16.3257 43.4784 16.3869 43.4734 16.45C43.4695 16.5044 43.4656 16.5589 43.4615 16.615C43.4353 16.7498 43.4353 16.7498 43.291 16.8941C43.2446 16.8556 43.1982 16.8171 43.1504 16.7775C41.6634 15.5514 40.1181 14.5671 38.3848 13.7195C38.3372 13.6957 38.2896 13.6719 38.2405 13.6474C38.2369 13.2151 38.2343 12.7828 38.2326 12.3505C38.2319 12.2039 38.2309 12.0573 38.2296 11.9108C38.2225 11.0543 38.247 10.2373 38.3848 9.39053C38.4018 9.25571 38.4181 9.1208 38.4336 8.98581C38.5402 8.11071 38.7148 7.27845 38.962 6.43237Z\",\n fill: \"#F9AE42\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.7279 45.5376C23.0788 45.5869 23.4167 45.6722 23.7596 45.7591C25.4213 46.1773 27.0709 46.3242 28.7795 46.3718C28.8861 46.375 28.9927 46.3781 29.0994 46.3813C29.3565 46.3889 29.6136 46.3962 29.8708 46.4034C29.821 46.6219 29.7515 46.8245 29.6698 47.033C28.9175 48.9778 28.2214 51.0154 28.0833 53.1127C28.067 53.2577 28.067 53.2577 27.9948 53.3298C25.9211 53.5055 23.8898 52.6715 22.0785 51.7425C21.7776 51.4416 21.9173 50.3978 21.9162 49.9884C21.9176 48.5428 22.0378 46.8409 22.7279 45.5376Z\",\n fill: \"#049347\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.346 45.5376C77.5623 46.1306 77.7402 46.7188 77.8691 47.3368C77.8808 47.3931 77.8926 47.4493 77.9047 47.5073C78.0258 48.1103 78.0781 48.6887 78.0745 49.3029C78.0744 49.371 78.0743 49.439 78.0742 49.5091C78.0738 49.7245 78.0729 49.9398 78.072 50.1552C78.0716 50.302 78.0713 50.4489 78.071 50.5957C78.0702 50.9539 78.069 51.3121 78.0675 51.6704C77.8866 51.762 77.7055 51.8534 77.5244 51.9446C77.4739 51.9702 77.4234 51.9958 77.3714 52.0222C75.7271 52.8488 73.863 53.4331 72.0069 53.402C72.0026 53.3615 71.9983 53.3211 71.9939 53.2794C71.7548 51.099 71.181 49.03 70.3497 47.0015C70.2636 46.7899 70.2031 46.6343 70.2031 46.4034C70.2992 46.4024 70.2992 46.4024 70.3972 46.4014C72.7248 46.3709 75.116 45.5376 77.346 45.5376Z\",\n fill: \"#029346\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.6897 56.793C54.9696 56.9225 55.142 57.0888 55.357 57.3115C55.6754 57.6365 56.0019 57.9422 56.3491 58.236C56.4137 58.2926 56.4784 58.3493 56.545 58.4076C57.6055 59.3314 58.7408 60.1197 59.9579 60.8228C60.127 60.9206 60.2946 61.0208 60.4617 61.122C59.6519 62.8209 58.5694 64.2178 57.2149 65.5231C57.1729 65.5673 57.1308 65.6115 57.0875 65.657C57.0256 65.718 57.0256 65.718 56.9624 65.7802C56.9274 65.816 56.8924 65.8518 56.8564 65.8887C56.5441 66.0322 56.1851 65.8998 55.872 65.805C54.1142 65.1368 52.5436 64.2854 51.1543 62.9979C51.1808 62.9627 51.2073 62.9276 51.2346 62.8914C51.9764 61.9053 52.6527 60.906 53.2466 59.8233C53.28 59.7626 53.3135 59.7019 53.3479 59.6394C53.8539 58.7141 54.2907 57.7691 54.6897 56.793Z\",\n fill: \"#039347\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.239 56.793C45.4022 56.9421 45.4969 57.0708 45.5826 57.2741C45.605 57.326 45.6273 57.378 45.6504 57.4315C45.6738 57.4871 45.6973 57.5428 45.7215 57.6001C45.9742 58.1828 46.2444 58.7526 46.5353 59.3171C46.6119 59.4665 46.6873 59.6166 46.7626 59.7666C47.2811 60.7862 47.9214 61.6987 48.6374 62.5886C48.7593 62.7602 48.8182 62.8648 48.8465 63.07C47.5551 64.2312 46.1116 65.0044 44.5175 65.6674C44.431 65.7053 44.3445 65.7431 44.2554 65.7821C43.6984 66.0154 43.6984 66.0154 43.3631 65.956C43.1269 65.8094 42.9437 65.6214 42.7525 65.4209C42.6289 65.2935 42.501 65.1715 42.3722 65.0494C41.3237 64.0455 39.9166 62.592 39.6113 61.122C39.6673 61.0878 39.7233 61.0537 39.781 61.0185C40.0376 60.8614 40.2936 60.7033 40.5493 60.5448C40.5905 60.5193 40.6318 60.4939 40.6742 60.4677C42.0126 59.6386 43.2133 58.6477 44.3732 57.5866C44.4112 57.5519 44.4491 57.5172 44.4883 57.4815C44.7388 57.2523 44.989 57.0228 45.239 56.793Z\",\n fill: \"#039347\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.5815 53.1855C36.5822 53.2383 36.5829 53.291 36.5836 53.3453C36.6157 55.3762 36.8035 57.37 37.262 59.3524C37.3296 59.6525 37.3886 59.9543 37.4473 60.2563C35.7124 61.0094 33.9058 61.1114 32.0361 61.0499C31.966 61.0497 31.896 61.0496 31.8238 61.0494C31.6423 61.043 31.4881 61.0314 31.3146 60.9778C31.1628 60.8021 31.1031 60.7067 31.0215 60.4998C30.9991 60.4493 30.9767 60.3987 30.9536 60.3467C30.8783 60.1735 30.8078 59.9986 30.7374 59.8234C30.6808 59.6891 30.6241 59.5548 30.5674 59.4206C29.973 57.9843 29.617 56.5545 29.6551 54.9893C29.7122 54.9808 29.7692 54.9723 29.828 54.9636C31.1357 54.7662 32.4395 54.5451 33.6955 54.1235C33.7852 54.0934 33.8749 54.0634 33.9673 54.0324C34.2814 53.9269 34.595 53.8203 34.9086 53.7131C34.9605 53.6954 35.0125 53.6776 35.0661 53.6593C35.2156 53.6081 35.3649 53.5566 35.5142 53.5049C35.6016 53.4747 35.689 53.4445 35.7791 53.4134C35.9967 53.3383 35.9967 53.3383 36.1612 53.2468C36.2929 53.1855 36.2929 53.1855 36.5815 53.1855Z\",\n fill: \"#039347\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.4926 53.1855C63.7704 53.2253 64.0136 53.2812 64.2725 53.389C64.3698 53.4288 64.3698 53.4288 64.4692 53.4693C64.5383 53.4977 64.6074 53.5261 64.6786 53.5553C66.5382 54.2978 68.4389 54.7199 70.419 54.9893C70.4285 55.459 70.3973 55.9047 70.3289 56.3692C70.3191 56.4356 70.3093 56.5021 70.2992 56.5705C70.094 57.9001 69.6277 59.1497 69.0798 60.3735C69.0544 60.433 69.029 60.4924 69.0029 60.5537C68.9776 60.6082 68.9523 60.6628 68.9262 60.719C68.9044 60.7674 68.8827 60.8157 68.8603 60.8655C68.7036 61.0401 68.5563 61.0299 68.3267 61.0499C68.1412 61.0589 67.9576 61.0651 67.772 61.0671C67.7193 61.0678 67.6665 61.0685 67.6121 61.0692C67.4415 61.071 67.2708 61.0719 67.1001 61.0725C67.0419 61.0726 66.9837 61.0728 66.9237 61.073C65.9689 61.0734 65.0708 60.9952 64.142 60.7613C64.0619 60.7422 64.0619 60.7422 63.9801 60.7228C63.4859 60.6051 63.0191 60.4635 62.5547 60.2563C62.5713 60.1886 62.588 60.121 62.6051 60.0514C63.1616 57.759 63.3733 55.5333 63.4926 53.1855Z\",\n fill: \"#029346\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.0011 50.3716C50.2714 50.6789 50.4412 51.0101 50.6234 51.3727C50.9518 52.0096 51.3154 52.6034 51.7327 53.1854C51.7671 53.2335 51.8015 53.2816 51.837 53.3312C52.2546 53.9099 52.6878 54.4608 53.1785 54.9793C53.32 55.1335 53.32 55.1335 53.4643 55.3499C53.4387 55.643 53.36 55.893 53.2475 56.1633C53.2182 56.2341 53.1889 56.3049 53.1586 56.3779C53.1113 56.4896 53.1113 56.4896 53.0629 56.6035C53.0303 56.6809 52.9976 56.7583 52.964 56.8381C52.3916 58.181 51.7055 59.4651 50.8804 60.671C50.8493 60.7165 50.8181 60.7621 50.786 60.809C50.5668 61.1225 50.3267 61.4128 50.0732 61.6991C49.835 61.6197 49.8008 61.5789 49.6584 61.384C49.6208 61.3327 49.5832 61.2814 49.5445 61.2286C49.5047 61.1725 49.4649 61.1165 49.4239 61.0588C49.3824 61.0009 49.341 60.943 49.2983 60.8833C48.8636 60.2656 48.4889 59.6186 48.1252 58.9574C48.0981 58.909 48.0711 58.8605 48.0432 58.8106C47.5434 57.9146 47.1457 56.9808 46.7574 56.032C46.6869 55.8562 46.6869 55.8562 46.5956 55.705C46.5379 55.5664 46.5379 55.5664 46.5432 55.4277C46.6407 55.2089 46.7902 55.0701 46.9572 54.899C47.4429 54.3868 47.8598 53.8314 48.2695 53.2576C48.3006 53.2142 48.3318 53.1708 48.3639 53.1261C48.9017 52.3694 49.3388 51.561 49.7724 50.7411C49.8568 50.588 49.8568 50.588 50.0011 50.3716Z\",\n fill: \"#8BC541\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.6387 49.0007C56.9689 49.2397 57.2825 49.4908 57.5901 49.7583C58.5388 50.5643 59.6247 51.2104 60.7208 51.7937C60.9485 51.915 61.1757 52.0374 61.4028 52.1598C61.4843 52.2037 61.5659 52.2476 61.6498 52.2929C61.7104 52.3255 61.771 52.3582 61.8335 52.3918C61.8631 54.8349 61.713 57.1588 61.112 59.5346C60.8406 59.4938 60.6569 59.4211 60.4282 59.2706C60.3384 59.2119 60.3384 59.2119 60.2467 59.152C60.1841 59.1101 60.1214 59.0682 60.0568 59.0251C59.9596 58.9609 59.9596 58.9609 59.8605 58.8953C58.7815 58.1786 57.8101 57.3771 56.8551 56.5043C56.782 56.438 56.7089 56.3717 56.6358 56.3054C56.4191 56.1084 56.2041 55.9098 55.9893 55.7107C55.935 55.6612 55.8807 55.6117 55.8247 55.5608C55.7793 55.518 55.7339 55.4752 55.6872 55.4311C55.649 55.3956 55.6107 55.36 55.5713 55.3234C55.4541 55.1648 55.4361 55.0403 55.4121 54.8449C55.4512 54.6736 55.4512 54.6736 55.5186 54.4943C55.5431 54.4266 55.5675 54.3589 55.5927 54.2892C55.6194 54.2166 55.6461 54.144 55.6737 54.0693C56.2378 52.4591 56.5382 50.7047 56.6387 49.0007Z\",\n fill: \"#8BC541\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.7356 45.249C37.6766 45.5769 37.5871 45.8938 37.4966 46.214C37.464 46.3313 37.4314 46.4485 37.3988 46.5658C37.3413 46.7721 37.2824 46.9779 37.2224 47.1835C36.8394 48.5323 36.745 49.9158 36.6534 51.3096C34.5558 52.2668 32.0817 53.3298 29.727 53.3298C29.6773 51.3759 30.4239 49.3569 31.1517 47.5728C31.247 47.3391 31.247 47.3391 31.3171 47.0813C31.4086 46.81 31.4884 46.6214 31.675 46.4034C32.0282 46.2725 32.363 46.2477 32.7373 46.2341C33.0392 46.223 33.34 46.1969 33.6411 46.1732C33.7314 46.1667 33.7314 46.1667 33.8235 46.1601C35.0349 46.0692 36.222 45.7397 37.3616 45.3285C37.5913 45.249 37.5913 45.249 37.7356 45.249Z\",\n fill: \"#8BC540\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.3379 45.3213C62.6844 45.362 62.9879 45.4358 63.3164 45.5513C64.8408 46.0487 66.4117 46.2502 68.0064 46.3168C68.182 46.3314 68.182 46.3314 68.3985 46.4035C68.4966 46.5953 68.5801 46.7814 68.66 46.9807C68.6847 47.0408 68.7094 47.1009 68.7348 47.1628C69.316 48.5991 69.8358 50.0564 70.1481 51.5758C70.1772 51.7101 70.1772 51.7101 70.2068 51.8471C70.3108 52.3484 70.3759 52.8177 70.3465 53.3299C69.4618 53.2843 68.6237 53.1173 67.7672 52.9016C67.6912 52.8826 67.6912 52.8826 67.6137 52.8633C67.1124 52.7375 66.6352 52.6011 66.1618 52.392C66.0092 52.3432 65.8559 52.2965 65.7019 52.2522C65.3741 52.1535 65.0671 52.0428 64.7577 51.8974C64.4598 51.7631 64.1548 51.6462 63.8504 51.5275C63.4999 51.3895 63.4999 51.3895 63.4201 51.3097C63.408 51.2121 63.4002 51.114 63.3942 51.0158C63.2775 49.3304 63.0115 47.6802 62.5289 46.0601C62.4582 45.8154 62.3979 45.5687 62.3379 45.3213Z\",\n fill: \"#8BC540\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.2904 49.073C43.4909 49.2735 43.4722 49.4235 43.5017 49.704C43.5129 49.805 43.524 49.9059 43.5352 50.0068C43.5436 50.0862 43.5436 50.0862 43.5523 50.1672C43.7072 51.6032 43.9612 52.9058 44.4576 54.269C44.4859 54.3489 44.5142 54.4288 44.5434 54.511C44.5695 54.5824 44.5956 54.6538 44.6226 54.7273C44.6612 54.9172 44.6612 54.9172 44.6173 55.0648C44.4874 55.2472 44.3417 55.3997 44.1835 55.5583C44.1503 55.5916 44.1172 55.6249 44.0831 55.6592C44.0127 55.7296 43.9422 55.7999 43.8714 55.87C43.7659 55.9748 43.6612 56.0802 43.5565 56.1858C43.1069 56.6361 42.6332 57.0451 42.136 57.4424C42.0065 57.5549 41.8772 57.6676 41.7481 57.7806C41.1253 58.3021 40.4366 58.7342 39.755 59.174C39.6999 59.2104 39.6448 59.2468 39.588 59.2843C39.5371 59.3174 39.4862 59.3505 39.4337 59.3845C39.3893 59.4137 39.3449 59.4428 39.2992 59.4728C39.1778 59.5348 39.1778 59.5348 38.9613 59.5348C38.7354 58.7662 38.5605 58 38.4383 57.2079C38.4206 57.0955 38.4206 57.0955 38.4027 56.9808C38.2412 55.886 38.2301 54.7988 38.2353 53.6951C38.2357 53.561 38.236 53.4269 38.2363 53.2928C38.2371 52.9684 38.2383 52.6441 38.2398 52.3198C38.2851 52.2981 38.3304 52.2764 38.377 52.254C39.9989 51.4723 41.4448 50.5803 42.8304 49.4298C42.9809 49.3065 43.1337 49.1883 43.2904 49.073Z\",\n fill: \"#8BC540\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSvvasthyaLogo);\nexport default __webpack_public_path__ + \"static/media/svvasthya_logo.0792354482e4b5a73bfb9933f49da2ad.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport logo1 from \"../assets/svvasthya_logo.svg\";\r\n\r\nconst ContactUs = () => {\r\n const [formData, setFormData] = useState({\r\n name: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n subject: \"\",\r\n message: \"\",\r\n contactType: \"\"\r\n });\r\n const [submitStatus, setSubmitStatus] = useState({\r\n success: false,\r\n error: false,\r\n message: \"\"\r\n });\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setFormData(prevState => ({\r\n ...prevState,\r\n [name]: value\r\n }));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n \r\n try {\r\n const response = await axios.post('http://localhost:5000/api/landing/contactform', formData);\r\n \r\n setSubmitStatus({\r\n success: true,\r\n error: false,\r\n message: response.data.message\r\n });\r\n \r\n // Reset form after successful submission\r\n setFormData({\r\n name: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n subject: \"\",\r\n message: \"\",\r\n contactType: \"\"\r\n });\r\n } catch (error) {\r\n setSubmitStatus({\r\n success: false,\r\n error: true,\r\n message: error.response?.data?.error || \"An error occurred. Please try again.\"\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n

\r\n Contact Us\r\n

\r\n
\r\n
\r\n {/* Left side: Company Logo and Address */}\r\n
\r\n \"Company\r\n

\r\n \r\n Our Office\r\n \r\n 1234 Business Ave, Suite 500\r\n City, State, Zip Code\r\n Phone: (123) 456-7890\r\n Email: info@company.com\r\n

\r\n
\r\n\r\n {/* Right side: Contact Form */}\r\n
\r\n {submitStatus.success && (\r\n
\r\n {submitStatus.message}\r\n
\r\n )}\r\n {submitStatus.error && (\r\n
\r\n {submitStatus.message}\r\n
\r\n )}\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n {[\"Business Inquiry\", \"Support\", \"General Inquiry\"].map(\r\n (type) => (\r\n
\r\n \r\n \r\n {type}\r\n \r\n
\r\n )\r\n )}\r\n
\r\n\r\n \r\n\r\n \r\n Send Message\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ContactUs;","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSvvasthyaLetterLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 1348,\n height: 296,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C22.44 0 44.88 0 68 0 C68.99 40.59 68.99 40.59 70 82 C72.97 79.36 75.94 76.72 79 74 C94.97048423 63.95182142 115.70371849 63.00674127 133.875 66.125 C147.30374833 69.22063462 158.87863573 76.06822628 166.375 87.875 C172.6757805 99.37303447 175.33125791 111.28467207 175.22705078 124.31494141 C175.22734283 125.29175873 175.22763489 126.26857605 175.22793579 127.2749939 C175.22655507 130.46727741 175.21105366 133.65932033 175.1953125 136.8515625 C175.19157789 139.07929354 175.18873304 141.30702624 175.18673706 143.53475952 C175.17913588 149.37083548 175.15951783 155.20681038 175.1373291 161.04284668 C175.11679465 167.0090193 175.10771915 172.9752084 175.09765625 178.94140625 C175.07626842 190.62764833 175.04217527 202.31381573 175 214 C176.14339844 213.98839844 177.28679687 213.97679687 178.46484375 213.96484375 C179.95572754 213.95546712 181.44661309 213.94636679 182.9375 213.9375 C183.69224609 213.92912109 184.44699219 213.92074219 185.22460938 213.91210938 C187.14994313 213.90347559 189.07535581 213.94775667 191 214 C192 215 192 215 192 222 C164.28 222 136.56 222 108 222 C108 219.36 108 216.72 108 214 C113.61 214 119.22 214 125 214 C124.89606934 211.44004272 124.89606934 211.44004272 124.79003906 208.82836914 C124.25996377 194.93921546 123.92496422 181.06664484 123.8697052 167.16721725 C123.85932125 164.67067026 123.84542883 162.17416618 123.83044434 159.67764282 C123.82053487 157.99407972 123.81064725 156.31051648 123.80078125 154.62695312 C123.79586922 153.79108358 123.79095718 152.95521404 123.7858963 152.09401512 C123.76240108 147.8061864 123.74800621 143.51860997 123.74951172 139.23071289 C123.75030393 134.98126141 123.72678521 130.73252654 123.6876297 126.48326302 C123.67730805 124.89474786 123.67554114 123.30614877 123.68328094 121.71761894 C123.72813832 111.53298785 122.28097639 103.38639815 118 94 C117.75417175 93.27296371 117.50834351 92.54592743 117.25506592 91.79685974 C116.0594604 88.26856103 114.68733231 86.50255317 111.5625 84.625 C104.03471453 81.19127329 95.43519649 80.66334427 87.36328125 82.6484375 C80.95194131 85.26668104 75.15965085 89.59919757 71.43286133 95.46777344 C69.50897357 100.2104567 69.4496354 104.41383307 69.34765625 109.4921875 C69.29920311 111.15167923 69.29920311 111.15167923 69.24977112 112.84469604 C69.14309192 116.89628897 69.06640452 120.94758198 69 125 C68.9865731 125.81171158 68.97314621 126.62342316 68.95931244 127.45973206 C68.74106638 140.98667009 68.59854421 154.51427746 68.46777344 168.04229736 C68.41673802 173.23916369 68.3614888 178.43598526 68.30664062 183.6328125 C68.20040535 193.75516974 68.0986856 203.87756653 68 214 C69.14339844 213.98839844 70.28679687 213.97679687 71.46484375 213.96484375 C72.95572754 213.95546712 74.44661309 213.94636679 75.9375 213.9375 C76.69224609 213.92912109 77.44699219 213.92074219 78.22460938 213.91210938 C80.14994313 213.90347559 82.07535581 213.94775667 84 214 C85 215 85 215 85 222 C57.28 222 29.56 222 1 222 C1 219.36 1 216.72 1 214 C6.28 214 11.56 214 17 214 C17 145.69 17 77.38 17 7 C11.39 7 5.78 7 0 7 C0 4.69 0 2.38 0 0 Z \",\n fill: \"#272161\",\n transform: \"translate(827,0)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C66 0 132 0 200 0 C200 2.31 200 4.62 200 7 C189.11 7 178.22 7 167 7 C167 65.74 167 124.48 167 185 C151.49 185 135.98 185 120 185 C119.5625 170.625 119.5625 170.625 119.43188477 166.15478516 C119.2054659 159.06543331 118.8554821 152.04329437 118 145 C117.48953125 145.50789062 116.9790625 146.01578125 116.453125 146.5390625 C104.17428491 158.1647728 89.53336431 162.55836053 72.82568359 162.34936523 C56.91798002 161.78026839 42.70449938 155.01540767 31.5625 143.81640625 C17.23857646 128.07319151 17.30362159 107.56526738 17.81640625 87.47949219 C18.65115488 71.6592296 25.26429361 57.10562936 36.87109375 46.25 C49.86682112 35.87503262 66.4870912 31.38020513 83 33 C91.42396748 34.29268043 97.98749483 37.20605288 105 42 C104.67 44.31 104.34 46.62 104 49 C103.07058594 48.89300781 102.14117187 48.78601563 101.18359375 48.67578125 C91.59309268 47.53652087 91.59309268 47.53652087 83 51 C74.91984194 57.89426421 71.55982397 68.83390822 70.28125 79.0625 C68.94115458 97.82383585 67.71407935 120.71634167 80.69921875 136 C85.36019329 140.35722563 90.11038227 141.73730748 96.4375 142.3125 C100.72145104 141.93671482 104.09083777 140.71185535 108 139 C108.78375 138.690625 109.5675 138.38125 110.375 138.0625 C112.53759997 136.64849233 112.97343246 135.37393743 114 133 C116.0625 129.625 116.0625 129.625 117.09765625 127.9765625 C119.78193655 122.09671042 119.1704461 115.17860965 119.20532227 108.85400391 C119.21535499 107.72329153 119.22538771 106.59257915 119.23572445 105.42760277 C119.26703927 101.77727667 119.29185173 98.12693968 119.31640625 94.4765625 C119.33481616 92.2189906 119.35365318 89.96142213 119.3729248 87.70385742 C119.44129279 79.34427901 119.50139657 70.98463467 119.5625 62.625 C119.706875 43.93875 119.85125 25.2525 120 6 C80.4 6 40.8 6 0 6 C0 4.02 0 2.04 0 0 Z \",\n fill: \"#262060\",\n transform: \"translate(175,37)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C5.96113808 1.94707921 10.83069879 2.67832078 17.10424805 2.33764648 C18.09424805 -0.63235352 19.08424805 -3.60235352 20.10424805 -6.66235352 C22.74424805 -6.66235352 25.38424805 -6.66235352 28.10424805 -6.66235352 C28.10424805 13.79764648 28.10424805 34.25764648 28.10424805 55.33764648 C25.46424805 55.33764648 22.82424805 55.33764648 20.10424805 55.33764648 C19.8619043 54.21487305 19.61956055 53.09209961 19.36987305 51.93530273 C16.86036062 40.24528457 16.86036062 40.24528457 12.10424805 29.33764648 C11.68530273 28.59385742 11.26635742 27.85006836 10.8347168 27.08374023 C3.00201389 14.3313231 -9.04749333 7.48284935 -23.32543945 3.88061523 C-32.52235263 1.93780227 -45.05394303 -0.2133596 -53.77075195 4.27514648 C-54.80200195 4.95577148 -55.83325195 5.63639648 -56.89575195 6.33764648 C-57.88575195 6.66764648 -58.87575195 6.99764648 -59.89575195 7.33764648 C-60.92226568 9.05284395 -60.92226568 9.05284395 -61.89575195 11.33764648 C-62.94762695 12.79170898 -62.94762695 12.79170898 -64.02075195 14.27514648 C-67.05095712 19.56091791 -66.60181096 25.45624775 -65.89575195 31.33764648 C-63.81637031 38.91693106 -58.62156125 43.00294978 -52.1965332 47.02905273 C-40.2094144 53.82411771 -27.26588779 58.71974626 -14.55809021 63.98313904 C12.22293357 75.0884941 12.22293357 75.0884941 21.10424805 82.33764648 C22.18182419 83.1573789 23.25999364 83.97633173 24.33862305 84.79467773 C34.81182485 92.95073377 41.14981565 102.22735273 44.10424805 115.33764648 C44.50976283 118.74732802 44.58229399 122.09386578 44.54174805 125.52514648 C44.53038818 126.89207642 44.53038818 126.89207642 44.51879883 128.28662109 C44.12307526 144.71781471 38.47848349 159.86748882 26.9987793 171.79467773 C12.50894804 184.52461046 -7.306239 188.9747476 -26.2355957 188.58374023 C-45.46542598 187.29080607 -62.62538133 182.25864637 -79.85668945 173.75561523 C-84.79274714 171.45254461 -89.46616969 170.55560789 -94.89575195 171.33764648 C-99.07070735 174.08432766 -99.80503023 177.61118567 -100.89575195 182.33764648 C-103.53575195 182.33764648 -106.17575195 182.33764648 -108.89575195 182.33764648 C-108.89575195 156.59764648 -108.89575195 130.85764648 -108.89575195 104.33764648 C-106.58575195 104.33764648 -104.27575195 104.33764648 -101.89575195 104.33764648 C-101.66500977 105.31862305 -101.43426758 106.29959961 -101.1965332 107.31030273 C-95.52431266 130.99981671 -87.79696595 153.00279427 -66.4230957 166.88061523 C-51.04389819 175.74682956 -32.67225184 179.870191 -15.0012207 176.84155273 C-9.45952837 175.1705484 -4.80629693 172.41166436 -1.67700195 167.37670898 C2.02342387 160.26660508 3.4457692 153.02924727 1.57299805 145.08374023 C-0.89900598 138.00359827 -4.99625534 133.82826328 -11.45825195 130.08764648 C-12.45042725 129.50587646 -12.45042725 129.50587646 -13.46264648 128.91235352 C-23.54082397 123.12027057 -34.17170441 118.45408484 -44.7663269 113.70169067 C-94.09974641 91.57121619 -94.09974641 91.57121619 -102.89575195 69.33764648 C-103.99966106 65.65340664 -104.6177225 62.16827457 -104.89575195 58.33764648 C-104.96407227 57.64155273 -105.03239258 56.94545898 -105.1027832 56.22827148 C-105.86664747 41.17731621 -100.79991117 25.03183253 -91.05981445 13.65014648 C-65.91260083 -13.22196627 -32.28924161 -10.87015781 0 0 Z \",\n fill: \"#262160\",\n transform: \"translate(108.895751953125,39.662353515625)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C9.38625642 8.57883652 12.5043052 21.1986282 14.00390625 33.41015625 C14.09634 36.19560769 14.14773356 38.956428 14.14575195 41.74121094 C14.14922638 42.54386383 14.15270081 43.34651672 14.15628052 44.17349243 C14.16359574 45.90582345 14.1689635 47.63816358 14.17257118 49.37050629 C14.17979074 52.1213675 14.19549789 54.87205587 14.21391296 57.62286377 C14.26612415 65.44060901 14.31431904 73.25825601 14.32983398 81.07617188 C14.33996676 85.86958293 14.36942021 90.66255198 14.41115379 95.45578766 C14.4233889 97.27203261 14.42859888 99.08834016 14.42635536 100.90462494 C14.40564023 114.00453027 14.40564023 114.00453027 18.14909363 126.48370361 C19.00390625 128.41015625 19.00390625 128.41015625 19.00390625 130.41015625 C23.95390625 131.07015625 28.90390625 131.73015625 34.00390625 132.41015625 C33.67390625 134.39015625 33.34390625 136.37015625 33.00390625 138.41015625 C15.69325777 145.24421988 -1.92927872 148.62295371 -19.99609375 142.41015625 C-25.66260474 139.77760913 -29.77325323 135.9497098 -33.99609375 131.41015625 C-37.62021756 132.75963805 -40.99579397 134.42597792 -44.41455078 136.22827148 C-62.22220821 145.54983727 -82.22966814 149.7367376 -101.99609375 144.44921875 C-110.92546788 141.35649281 -119.82446174 136.59823338 -124.2734375 127.91796875 C-128.51553721 117.74296803 -129.63541495 106.9764946 -125.99609375 96.41015625 C-120.27598292 83.05030418 -110.59929188 74.37757921 -97.30859375 68.88671875 C-83.98319067 63.90623122 -69.98387047 61.70408264 -55.99609375 59.41015625 C-54.23845703 59.09498047 -54.23845703 59.09498047 -52.4453125 58.7734375 C-47.29804498 58.23131306 -42.16666138 58.33374392 -36.99609375 58.41015625 C-37.09146087 54.00310994 -37.19788867 49.59649281 -37.31347656 45.18994141 C-37.3511623 43.69879989 -37.38610527 42.20758588 -37.41796875 40.71630859 C-37.01000092 18.80796188 -37.01000092 18.80796188 -44.99609375 -0.58984375 C-49.57229091 -3.56938234 -53.60014628 -4.02848962 -58.93359375 -3.90234375 C-59.94969727 -3.90717773 -59.94969727 -3.90717773 -60.98632812 -3.91210938 C-65.69607931 -3.86243798 -69.56889862 -3.03863903 -73.99609375 -1.58984375 C-74.47672802 4.32462795 -73.93988029 9.09662619 -71.99609375 14.72265625 C-69.27269847 22.98037981 -68.32543803 31.21144175 -71.74609375 39.41015625 C-72.46164007 40.76229206 -73.20820977 42.09885285 -73.99609375 43.41015625 C-74.53234375 44.31765625 -75.06859375 45.22515625 -75.62109375 46.16015625 C-81.55584765 51.78255468 -87.47883872 53.74535501 -95.62109375 53.97265625 C-104.20303354 53.6359403 -108.92614779 51.84707664 -114.80859375 45.66015625 C-119.24641389 40.18887115 -121.61365113 34.70971365 -121.27734375 27.53515625 C-119.90438389 17.16168174 -115.39927039 7.93835996 -107.37109375 1.16015625 C-80.28309133 -18.94263415 -27.04346149 -21.53950847 0 0 Z M-71.46875 76.609375 C-77.73779783 84.00075876 -81.47005088 91.96125125 -81.25 101.6875 C-80.3953687 110.85177713 -77.5366067 118.27013282 -70.74609375 124.59765625 C-65.47576154 128.87909884 -59.82591245 131.0029716 -53.00390625 130.6953125 C-46.42149555 129.76045651 -41.75370744 126.93569122 -36.99609375 122.41015625 C-35.84093673 120.09984221 -35.86937267 118.78097077 -35.86669922 116.2109375 C-35.86197098 114.90817871 -35.86197098 114.90817871 -35.85714722 113.57910156 C-35.85917145 112.63647461 -35.86119568 111.69384766 -35.86328125 110.72265625 C-35.86232452 109.75038086 -35.8613678 108.77810547 -35.86038208 107.77636719 C-35.85970032 105.71175065 -35.86155431 103.64713198 -35.86572266 101.58251953 C-35.87102494 98.45079595 -35.86580157 95.31921883 -35.859375 92.1875 C-35.86003668 90.1783851 -35.86131971 88.1692703 -35.86328125 86.16015625 C-35.86125702 85.23372314 -35.85923279 84.30729004 -35.85714722 83.3527832 C-35.87843468 77.31721067 -36.2870326 71.40366868 -36.99609375 65.41015625 C-49.05820478 65.32554088 -62.43721157 68.06364059 -71.46875 76.609375 Z \",\n fill: \"#272160\",\n transform: \"translate(504.99609375,79.58984375)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C9.37972304 8.43559337 13.23226616 21.38146074 14.20653152 33.6360817 C14.48954404 39.31734593 14.47623676 45.00061768 14.4765625 50.6875 C14.48836656 52.50682113 14.50173803 54.32613269 14.5165863 56.14543152 C14.55246691 60.89455455 14.57288458 65.64359264 14.58813477 70.39282227 C14.61313905 78.00887088 14.65292072 85.6247321 14.71003532 93.24060631 C14.72622359 95.88219622 14.73012753 98.5236043 14.73304749 101.16523743 C14.74283065 102.79741726 14.75309505 104.4295943 14.76391602 106.06176758 C14.76136307 106.78352676 14.75881012 107.50528595 14.75617981 108.24891663 C14.80135279 112.81725079 15.44892049 116.98503883 16.53394985 121.42316723 C17.03515625 123.48046875 17.03515625 123.48046875 17.33390141 125.52155781 C17.73941118 127.77230357 17.73941118 127.77230357 20.03515625 130.48046875 C24.66667184 131.70533238 29.26261188 132.1715458 34.03515625 132.48046875 C33.7890625 135.34375 33.7890625 135.34375 33.03515625 138.48046875 C23.96566332 145.61678178 5.05488438 146.45318961 -5.96484375 145.48046875 C-18.33922111 143.76586652 -25.88404059 139.73832413 -34.96484375 131.48046875 C-35.80144531 131.99996094 -36.63804688 132.51945313 -37.5 133.0546875 C-56.06305785 144.29341719 -77.21578271 149.46197171 -98.84765625 145.359375 C-108.44007897 142.65474453 -117.54213707 138.11545329 -122.96484375 129.48046875 C-123.39410156 128.81144531 -123.82335938 128.14242187 -124.265625 127.453125 C-127.21999704 121.67636317 -127.37210851 115.77995649 -127.46484375 109.41796875 C-127.49276001 108.15968262 -127.49276001 108.15968262 -127.52124023 106.87597656 C-127.41412562 96.25603043 -122.32984927 88.28420136 -115.29296875 80.671875 C-96.31750016 62.466778 -62.06970657 58.05814395 -36.96484375 58.48046875 C-36.95942557 53.11259606 -36.99416122 47.74683586 -37.0625 42.37939453 C-37.08041078 40.56241009 -37.08827494 38.74529235 -37.08496094 36.92822266 C-37.07067879 24.02429922 -38.31794117 12.25735201 -43.96484375 0.48046875 C-48.61858577 -3.86472887 -53.15726875 -3.67618008 -59.33984375 -3.70703125 C-61.26957031 -3.72830078 -61.26957031 -3.72830078 -63.23828125 -3.75 C-66.87836663 -3.52487942 -69.62412927 -2.95775425 -72.96484375 -1.51953125 C-75.05593289 2.66264702 -74.39167305 7.08442009 -73.0703125 11.40625 C-72.70550781 12.46199219 -72.34070312 13.51773438 -71.96484375 14.60546875 C-69.3180777 22.74427436 -67.9044227 31.94920935 -71.65234375 39.98046875 C-72.38335065 41.17249394 -73.15334644 42.34171186 -73.96484375 43.48046875 C-74.70734375 44.55296875 -75.44984375 45.62546875 -76.21484375 46.73046875 C-81.80952525 52.32515025 -86.39020846 53.74646018 -94.33984375 54.04296875 C-102.18067667 53.80111221 -108.32352744 52.3194348 -113.8359375 46.5078125 C-119.113476 39.73686982 -121.40713965 33.66278258 -120.7890625 25.0234375 C-119.1588632 14.56710867 -113.08084668 6.06360097 -104.96484375 -0.51953125 C-78.08303809 -19.37921987 -26.40173623 -20.41804253 0 0 Z M-73.46484375 78.79296875 C-80.49067325 87.47447528 -80.97514633 96.53935105 -79.96484375 107.48046875 C-78.18781862 115.95307072 -74.19533915 123.04856377 -66.86328125 127.859375 C-60.5937178 131.03846459 -54.27409166 131.76159651 -47.5078125 129.75 C-42.67674076 127.78712674 -39.18840472 125.68470023 -35.96484375 121.48046875 C-35.25106876 117.65664795 -35.35954182 113.89044186 -35.44140625 110.01171875 C-35.44610931 108.89865356 -35.45081238 107.78558838 -35.45565796 106.63879395 C-35.47698787 103.08538719 -35.5335842 99.53347592 -35.58984375 95.98046875 C-35.6063531 93.58855576 -35.62070059 91.1966268 -35.6328125 88.8046875 C-35.6667422 84.41972492 -35.70186248 80.03493584 -35.77197266 75.65039062 C-35.78483307 74.77056519 -35.79769348 73.89073975 -35.8109436 72.98425293 C-35.96942659 70.40591098 -36.40041682 67.99855628 -36.96484375 65.48046875 C-50.50706511 65.00988963 -63.95498299 68.92131981 -73.46484375 78.79296875 Z \",\n fill: \"#272160\",\n transform: \"translate(1313.96484375,79.51953125)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C1.13969238 0.00491455 2.27938477 0.0098291 3.45361328 0.01489258 C21.53153068 0.26644059 38.45892111 5.12272307 51.9375 17.6875 C58.55885485 24.80160684 59.86253595 30.83546458 59.5703125 40.60546875 C58.73281785 47.57724442 56.40835369 52.27205628 51.1875 56.9375 C45.71758223 59.47968645 38.97075055 59.05748084 33.125 58.3125 C29.20384396 56.72220064 26.4816976 55.09323883 23.8125 51.8125 C23.32136719 51.2246875 22.83023438 50.636875 22.32421875 50.03125 C19.28724702 45.67858694 19.43951582 40.38960258 20.125 35.3125 C21.44606467 32.36433251 23.18337312 29.88399988 25.125 27.3125 C27.83020256 23.39462043 28.45847551 21.09231567 28.125 16.3125 C15.2564897 9.36233635 -3.31121284 7.73032077 -17.5 11.4375 C-23.58153199 13.70609249 -29.18421681 16.8291622 -32.875 22.25 C-34.52163708 27.29282606 -35.62938 31.24777396 -33.625 36.3125 C-26.22268919 49.16132712 -5.3791271 52.99885278 7.796875 56.91796875 C8.57321793 57.15015106 9.34956085 57.38233337 10.14942932 57.62155151 C14.05388177 58.78770252 17.96183318 59.93663866 21.88061523 61.05371094 C39.03470862 66.04436742 56.77768522 73.21784559 66.90625 88.78125 C70.3885372 96.01369264 71.65687034 102.55429173 71.5625 110.5625 C71.55347656 111.48272949 71.54445313 112.40295898 71.53515625 113.35107422 C71.21680203 125.94596302 67.79830401 135.96865484 59.125 145.3125 C43.2356424 159.59095499 23.37726235 161.91042373 2.9375 161.75 C2.12717316 161.74729095 1.31684631 161.74458191 0.48196411 161.74179077 C-22.61607991 161.62477594 -45.46666665 158.00940703 -63.33984375 141.953125 C-69.8720696 134.97212028 -71.13661542 128.59969903 -71.0234375 119.28515625 C-70.6723954 112.25507633 -68.59526638 108.26302327 -63.875 103.3125 C-58.11857441 99.47488294 -50.62064249 99.60667792 -43.875 100.3125 C-38.79527295 102.70859767 -35.11320321 106.76635803 -31.875 111.3125 C-29.77548926 117.61103223 -30.90958529 122.37366455 -33.65234375 128.18359375 C-34.81565719 130.20917146 -36.03520711 131.73900332 -37.625 133.4375 C-40.39078788 136.9715623 -40.31282211 138.93427893 -39.875 143.3125 C-19.95053766 152.54489739 7.38077183 156.98683679 28.63671875 149.578125 C32.94329769 147.38765157 36.48826555 144.99663505 38.125 140.3125 C38.91036619 134.70274151 38.38705144 130.04773597 35.125 125.3125 C23.86565905 113.0057785 3.99448543 109.78276575 -11.4375 105.75 C-52.95554581 94.84722729 -52.95554581 94.84722729 -63.25 78.875 C-66.18658744 73.83084184 -68.52172132 68.99393722 -69.875 63.3125 C-70.101875 62.36375 -70.32875 61.415 -70.5625 60.4375 C-71.90820554 46.98044458 -70.0225091 35.55972757 -61.81640625 24.55078125 C-45.96766381 5.89142439 -23.83102953 -0.12218317 0 0 Z \",\n fill: \"#272160\",\n transform: \"translate(626.875,64.6875)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C18.48 0 36.96 0 56 0 C56 2.64 56 5.28 56 8 C51.5621439 9.11165232 47.23043614 9.11527763 42.6875 9.0625 C41.94693359 9.05798828 41.20636719 9.05347656 40.44335938 9.04882812 C38.62887101 9.03712175 36.81442466 9.01918898 35 9 C34.82304596 9.55642181 34.64609192 10.11284363 34.46377563 10.68612671 C32.75916177 15.93681435 30.82045875 20.99357344 28.5859375 26.0390625 C28.09609627 27.15834137 28.09609627 27.15834137 27.59635925 28.30023193 C26.52618624 30.74342421 25.45058438 33.18418581 24.375 35.625 C23.61278863 37.36261263 22.85099644 39.1004092 22.08959961 40.83837891 C20.51004575 44.44307954 18.92870112 48.04698675 17.34619141 51.65039062 C15.1319498 56.69531359 12.92879872 61.74500107 10.73046875 66.796875 C10.38593658 67.58857086 10.04140442 68.38026672 9.68643188 69.19595337 C8.99258515 70.79047377 8.29876794 72.38500703 7.60498047 73.97955322 C2.90765406 84.77322827 -1.80206564 95.56132411 -6.54296875 106.3359375 C-6.92127838 107.19581772 -7.29958801 108.05569794 -7.68936157 108.94163513 C-10.80603104 116.02529534 -10.80603104 116.02529534 -12.26269531 119.33486938 C-17.23863232 130.64490264 -22.14955492 141.98027434 -26.99334717 153.34750366 C-53.54986379 215.64947963 -53.54986379 215.64947963 -72 224 C-84.57575079 228.20672936 -98.20538256 228.35240168 -110.25 222.6875 C-116.25489573 219.44975058 -121.40378953 216.04404078 -124.3046875 209.6328125 C-126.44653876 201.52265661 -126.3871 191.27916224 -122.3203125 183.828125 C-118.54094981 178.59516128 -113.87251315 175.19062664 -107.6484375 173.40625 C-98.63039024 172.02295071 -88.89896012 173.32597503 -81 178 C-75.99214711 181.91874668 -72.37793913 186.99272174 -68.7734375 192.1796875 C-66.51342357 194.49943749 -65.21694645 194.8550925 -62 195 C-59.32955673 194.63028895 -59.32955673 194.63028895 -57 193 C-55.51568118 190.68904834 -54.37733639 188.60119915 -53.25 186.125 C-52.92 185.42971191 -52.59 184.73442383 -52.25 184.01806641 C-51.53553331 182.50215736 -50.82950075 180.98225163 -50.13085938 179.45898438 C-48.93702367 176.86306182 -47.71156931 174.28342789 -46.484375 171.703125 C-45.65442469 169.92793557 -44.82626937 168.15190572 -44 166.375 C-43.60200195 165.53469238 -43.20400391 164.69438477 -42.79394531 163.82861328 C-42.42881836 163.02665527 -42.06369141 162.22469727 -41.6875 161.3984375 C-41.36136719 160.69380371 -41.03523438 159.98916992 -40.69921875 159.26318359 C-39.08487768 154.03799446 -39.97531422 150.36320755 -42.43800354 145.54562378 C-42.79361862 144.88088043 -43.1492337 144.21613708 -43.515625 143.53125 C-43.8824791 142.82275909 -44.24933319 142.11426819 -44.62730408 141.38430786 C-45.82297903 139.08310636 -47.03607127 136.79161686 -48.25 134.5 C-49.0846053 132.90328391 -49.91834033 131.30611263 -50.7512207 129.70849609 C-55.594057 120.44466287 -60.53422725 111.23495765 -65.59082031 102.0859375 C-70.03952993 94.014052 -74.25122987 85.82450749 -78.46203613 77.62716675 C-82.68009658 69.42040525 -86.98549291 61.27050582 -91.4375 53.1875 C-94.8160541 47.05042193 -98.13136169 40.89866589 -101.25 34.625 C-101.56291992 33.99730713 -101.87583984 33.36961426 -102.19824219 32.72290039 C-103.87134258 29.34465965 -105.495669 25.94744376 -107.08984375 22.53125 C-107.44079102 21.79438965 -107.79173828 21.0575293 -108.15332031 20.29833984 C-108.82416612 18.8885501 -109.48193078 17.47243209 -110.12402344 16.04931641 C-111.5363005 13.1039458 -112.54937454 11.26335254 -115.40625 9.59375 C-118.05955628 8.98636664 -120.59922056 8.59206236 -123.3125 8.375 C-124.19550781 8.30023438 -125.07851563 8.22546875 -125.98828125 8.1484375 C-126.65214844 8.09945312 -127.31601562 8.05046875 -128 8 C-128 5.69 -128 3.38 -128 1 C-98.63 1 -69.26 1 -39 1 C-39 3.31 -39 5.62 -39 8 C-43.29 8.66 -47.58 9.32 -52 10 C-49.19512326 15.63491452 -46.38734934 21.26837357 -43.57714844 26.90063477 C-42.62620076 28.80748631 -41.67597765 30.71469941 -40.7265625 32.62231445 C-35.3962294 43.33097625 -29.99620633 53.99280964 -24.39764404 64.56399536 C-21.30808495 70.39865626 -18.30268158 76.26974363 -15.375 82.1875 C-14.94316406 83.05568359 -14.51132813 83.92386719 -14.06640625 84.81835938 C-13.04230487 86.87794104 -12.02011793 88.93844335 -11 91 C-10.28076095 89.34998101 -9.5615223 87.69996184 -8.84228516 86.04994202 C-8.1862854 84.54500568 -7.53027929 83.04007211 -6.87426758 81.53514099 C-5.00644596 77.25021613 -3.13874253 72.96523982 -1.27124023 68.68017578 C2.3670761 60.33222244 6.00611013 51.98458616 9.64927673 43.63874817 C11.20520938 40.0742808 12.76059821 36.50957625 14.31594849 32.94485474 C15.06117974 31.23727729 15.80668169 29.52981796 16.55245972 27.82247925 C17.59685705 25.43143073 18.64032186 23.03997725 19.68359375 20.6484375 C19.99119629 19.94488632 20.29879883 19.24133514 20.61572266 18.51646423 C22.13566026 15.02971389 23.58685357 11.53286608 25 8 C16.75 8 8.5 8 0 8 C0 5.36 0 2.72 0 0 Z \",\n fill: \"#272261\",\n transform: \"translate(1136,69)\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0 C1.65 0 3.3 0 5 0 C5 16.83 5 33.66 5 51 C17.87 51 30.74 51 44 51 C44 52.98 44 54.96 44 57 C31.13 57 18.26 57 5 57 C5.33 57.99 5.66 58.98 6 60 C6.08910338 61.34977079 6.12465133 62.70350477 6.12457275 64.05621338 C6.12713577 64.88007538 6.12969879 65.70393738 6.13233948 66.55276489 C6.13023972 67.45348724 6.12813995 68.35420959 6.12597656 69.28222656 C6.1278447 70.23392731 6.12971283 71.18562805 6.13163757 72.16616821 C6.13564497 74.23687723 6.13771672 76.30759067 6.13809967 78.37830353 C6.14152018 82.79705662 6.16289935 87.21566326 6.18333054 91.63436508 C6.22127649 99.85912636 6.25262757 108.08373494 6.25048828 116.30859375 C6.24969612 122.03110491 6.27328675 127.75308422 6.3123703 133.47545624 C6.32276216 135.64566398 6.32440519 137.81593364 6.31671906 139.98615265 C6.27641546 152.63868884 6.90302825 163.29725427 12 175 C12.52120422 176.19788147 13.04240845 177.39576294 13.57940674 178.62994385 C15.86443044 184.28407279 15.86443044 184.28407279 20.16796875 188.3125 C23.90035284 189.21856841 27.49898637 189.25122626 31.3125 189.1875 C32.03373047 189.18685547 32.75496094 189.18621094 33.49804688 189.18554688 C37.21021069 189.15558322 40.80179756 188.93513572 44.48046875 188.42578125 C46.22263672 188.21501953 46.22263672 188.21501953 48 188 C49 189 49 189 49.125 192.1875 C47.68766864 197.05845628 45.78500535 198.18580762 41.54296875 200.71484375 C31.35720583 205.86248738 21.17247292 206.22725741 9.9375 206.3125 C8.69033203 206.34150391 7.44316406 206.37050781 6.15820312 206.40039062 C-8.20458565 206.49748696 -21.68932973 202.45300752 -32.44140625 192.64453125 C-43.04457943 181.45672196 -45.34334365 164.17374718 -45.22705078 149.38793945 C-45.22734283 148.39146896 -45.22763489 147.39499847 -45.22793579 146.36833191 C-45.22655668 143.11655576 -45.21106308 139.86501673 -45.1953125 136.61328125 C-45.19157732 134.34213893 -45.18873273 132.07099498 -45.18673706 129.79985046 C-45.17914042 123.85364244 -45.15952637 117.9075338 -45.1373291 111.96136475 C-45.11678477 105.88115788 -45.10771705 99.80093478 -45.09765625 93.72070312 C-45.07627643 81.81375164 -45.041127 69.90689967 -45 58 C-52.92 58 -60.84 58 -69 58 C-69 55.36 -69 52.72 -69 50 C-64.35759454 49.24180259 -59.83562394 48.86644639 -55.13623047 48.70996094 C-38.20567133 48.12253974 -25.87305095 43.56429022 -14 31 C-7.4459504 22.9861848 -4.81020847 12.48450172 -1.66088867 2.79077148 C-1 1 -1 1 0 0 Z \",\n fill: \"#272161\",\n transform: \"translate(771,19)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSvvasthyaLetterLogo);\nexport default __webpack_public_path__ + \"static/media/svvasthya_letter_logo.f29101993784ca2e86940f6a90fd145d.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgWatermark(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 1394,\n height: 514,\n viewBox: \"0 0 1394 514\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M364.011 133.42C365.9 133.936 367.79 134.451 369.737 134.982C371.474 135.498 373.211 136.013 375.001 136.544C376.552 136.996 378.103 137.449 379.7 137.916C383.25 139.793 383.25 139.793 384.789 142.986C385.098 147.862 384.252 151.621 382.992 156.345C382.517 158.17 382.043 159.995 381.555 161.875C381.044 163.774 380.533 165.673 380.006 167.629C373.785 191.111 369.996 213.976 367.926 238.172C367.811 239.485 367.695 240.798 367.576 242.15C365.352 267.635 364.147 293.087 363.563 318.664C357.462 316.744 351.533 314.598 345.645 312.11C300.089 292.912 251.625 279.73 202.399 274.589C197.121 273.946 197.121 273.946 191.752 272.157C188.289 224.866 206.145 178.367 225.756 136.215C226.321 134.949 226.886 133.683 227.468 132.379C229.161 128.948 229.161 128.948 232.915 123.694C273.49 113.578 324.698 122.523 364.011 133.42Z\",\n fill: \"#EF5A2A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M862.88 0.272375C866.49 2.70085 866.49 2.70085 869.969 6.09268C871.899 7.94479 871.899 7.94479 873.87 9.83431C875.189 11.1428 876.509 12.4513 877.868 13.7995C879.174 15.0596 880.48 16.3197 881.825 17.618C885.679 21.3492 889.494 25.1164 893.305 28.8918C894.432 29.9889 895.56 31.086 896.722 32.2164C903.48 38.839 909.649 45.6802 915.452 53.1512C916.289 54.2272 917.126 55.3031 917.989 56.4116C933.287 76.3608 945.139 97.4585 955.944 120.116C954.92 120.699 953.896 121.281 952.841 121.882C919.937 140.701 889.566 161.279 861.09 186.299C859.819 187.392 858.548 188.484 857.238 189.611C849.941 195.904 842.814 202.384 835.698 208.881C834.804 209.696 833.91 210.511 832.989 211.351C828.661 215.32 824.476 219.343 820.395 223.568C816.347 227.439 816.347 227.439 812.768 227.439C812.284 226.3 811.8 225.161 811.301 223.987C790.075 174.272 766.038 127.471 732.944 84.5655C730.205 80.9989 727.568 77.3506 725.072 73.6096C755.156 44.928 818.847 -4.08777 862.88 0.272375Z\",\n fill: \"#EF5A2A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M551.208 4.08004C553.659 4.91659 556.103 5.77221 558.542 6.64433C559.855 7.11124 561.168 7.57816 562.52 8.05923C575.611 12.8658 587.949 18.9105 600.254 25.4415C603.046 26.9176 605.862 28.3481 608.681 29.7718C630.261 40.9343 649.331 56.2032 667.825 71.8206C666.786 78.7024 663.648 82.209 659.101 87.36C624.691 128.488 602.064 178.99 580.13 227.439C572.495 221.022 565.085 214.419 557.759 207.651C521.471 174.33 483.284 143.588 438.743 121.905C439.792 112.893 443.89 105.879 448.251 98.0923C449.042 96.6786 449.834 95.2649 450.649 93.8083C464.034 70.4834 480.838 49.8912 499.593 30.6802C500.643 29.6037 501.693 28.5272 502.775 27.418C506.139 23.9841 509.517 20.5645 512.904 17.153C513.963 16.0863 515.021 15.0196 516.112 13.9206C518.924 11.1218 521.777 8.37444 524.649 5.63818C525.814 4.47838 526.979 3.31858 528.179 2.12363C535.597 -1.66186 543.662 1.74551 551.208 4.08004Z\",\n fill: \"#EF5A2A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1161.78 123.694C1164.5 126.976 1164.5 126.976 1166.43 131.268C1167.52 133.623 1167.52 133.623 1168.63 136.026C1169.72 138.555 1169.72 138.555 1170.84 141.134C1171.61 142.849 1172.39 144.563 1173.18 146.329C1175.4 151.285 1177.55 156.262 1179.68 161.257C1180.45 163.064 1180.45 163.064 1181.24 164.907C1194.23 195.665 1203.13 230.96 1202.98 264.555C1202.97 266.7 1202.97 266.7 1202.96 268.887C1202.95 269.966 1202.95 271.046 1202.94 272.157C1201.48 272.372 1200.01 272.587 1198.5 272.808C1140.31 281.453 1085.75 296.606 1031.13 318.664C1031.1 317.291 1031.08 315.919 1031.05 314.504C1030.16 271.996 1027.66 229.756 1018.6 188.088C1018.31 186.744 1018.02 185.4 1017.73 184.015C1014.66 169.811 1011.43 155.667 1007.86 141.581C1019.9 136.401 1031.75 132.539 1044.55 129.731C1046.28 129.352 1048 128.974 1049.78 128.584C1083.37 121.447 1128.27 114.528 1161.78 123.694Z\",\n fill: \"#EF5A2A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.949 313.074C141.108 313.069 143.268 313.064 145.492 313.06C150.582 313.297 150.582 313.297 152.372 315.086C152.949 318.427 153.426 321.785 153.861 325.147C154.14 327.245 154.42 329.343 154.709 331.505C155.008 333.76 155.307 336.015 155.615 338.339C161.489 380.614 173.133 420.092 188.56 459.876C191.504 467.625 194.297 475.43 197.114 483.225C195.382 483.286 193.65 483.348 191.865 483.411C135.862 485.491 80.9774 490.26 26.868 505.635C23.5127 506.478 23.5127 506.478 19.9333 506.478C4.47411 462.406 -1.31687 420.881 0.246557 374.113C0.259967 372.352 0.273376 370.591 0.287192 368.777C0.777491 355.682 0.77749 355.682 6.57345 349.952C8.6567 348.997 10.74 348.043 12.8864 347.059C14.0557 346.511 15.2251 345.962 16.4299 345.397C20.5408 343.53 24.6961 341.821 28.8818 340.128C30.4901 339.459 32.0984 338.79 33.7555 338.101C67.3562 324.279 102.294 312.994 138.949 313.074Z\",\n fill: \"#EF5B2A\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1242.32 313.297C1294 310.315 1345.52 329.523 1390.87 352.649C1394.53 356.306 1393 363.916 1393.02 368.943C1393.04 370.428 1393.05 371.913 1393.06 373.443C1393.09 378.287 1393.1 383.131 1393.11 387.976C1393.11 389.614 1393.11 391.252 1393.11 392.939C1393.08 432.793 1388 468.78 1374.76 506.478C1367.06 505.348 1359.63 503.635 1352.09 501.716C1301.17 488.915 1249.81 486.128 1197.58 483.225C1203.09 466.525 1203.09 466.525 1206.17 458.518C1215.54 433.728 1223.07 408.681 1229.8 383.057C1230.36 380.959 1230.93 378.86 1231.52 376.699C1236.75 355.939 1239.22 334.455 1242.32 313.297Z\",\n fill: \"#F05A29\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M694.672 105.806C729.49 119.123 755.853 194.551 769.855 225.789C771.672 229.903 773.442 234.035 775.209 238.171C775.904 239.722 776.599 241.273 777.314 242.87C777.988 244.43 778.661 245.99 779.355 247.596C779.974 249.003 780.594 250.409 781.232 251.857C782.607 256.941 782.089 259.992 780.578 265.001C777.572 269.361 777.572 269.361 773.643 273.945C772.181 275.681 770.718 277.417 769.211 279.206C766.123 282.795 762.994 286.334 759.843 289.869C734.481 318.557 715.116 352.387 698.252 386.634C694.227 382.927 691.711 379.54 689.324 374.63C688.663 373.307 688.003 371.984 687.322 370.621C686.61 369.191 685.898 367.761 685.165 366.287C669.403 335.562 649.561 303.142 624.461 279.011C623.05 277.617 623.05 277.617 621.61 276.195C619.008 273.667 616.329 271.217 613.646 268.775C610.096 262.384 610.344 261.473 612.255 254.758C613.418 251.591 614.643 248.446 615.925 245.326C616.504 243.842 617.084 242.358 617.68 240.829C619.516 236.254 621.448 231.733 623.42 227.215C624.128 225.583 624.837 223.951 625.566 222.27C643.887 180.479 666.909 142.033 694.672 105.806Z\",\n fill: \"#FAAE42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M972.056 159.468C980.143 189.702 985.565 219.499 988.164 250.692C988.336 252.755 988.509 254.819 988.687 256.944C989.991 274.227 990.167 291.392 990.065 308.714C990.056 311.435 990.048 314.157 990.041 316.878C990.022 323.436 989.991 329.993 989.954 336.55C988.647 337.223 988.647 337.223 987.315 337.909C945.981 359.249 907.295 382.409 871.959 412.864C864.988 418.831 864.988 418.831 861.095 418.831C860.906 417.184 860.717 415.536 860.523 413.839C859.801 407.587 859.069 401.336 858.331 395.086C858.017 392.407 857.706 389.727 857.4 387.047C854.551 362.178 850.428 337.913 843.31 313.856C842.85 312.262 842.391 310.667 841.918 309.025C838.875 298.569 835.494 288.333 831.509 278.194C830.354 272.348 831.262 270.183 834.249 265.002C837.958 260.643 841.99 256.676 846.106 252.704C847.811 251.032 847.811 251.032 849.551 249.325C856.267 242.776 863.076 236.379 870.246 230.325C874.124 227.01 877.827 223.533 881.564 220.06C902.329 201.377 925.251 185.18 948.79 170.2C950.592 169.049 952.394 167.899 954.25 166.713C965.928 159.468 965.928 159.468 972.056 159.468Z\",\n fill: \"#FAAE42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1201.14 313.297C1200.28 363.47 1181.81 413.508 1163.34 459.603C1161.89 463.25 1160.47 466.91 1159.07 470.578C1158.3 472.538 1157.53 474.498 1156.73 476.517C1156.09 478.15 1155.45 479.782 1154.8 481.464C1152.82 485.014 1152.82 485.014 1147.45 486.802C1144.17 487.088 1140.88 487.29 1137.6 487.445C1096.02 489.705 1056.82 496.712 1017.03 508.898C1011.6 510.547 1006.15 512.092 1000.69 513.633C1003.28 504.96 1005.88 496.295 1008.62 487.669C1021.13 447.315 1026.56 405.434 1029.33 363.381C1077.99 338.776 1145.44 310.433 1201.14 313.297Z\",\n fill: \"#FAAE42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.554 315.086C205.311 314.74 216.168 315.444 227.67 317.881C229.181 318.193 230.692 318.506 232.249 318.829C278.407 328.745 322.299 344.268 365.365 363.381C365.5 365.149 365.5 365.149 365.637 366.953C367.255 387.953 368.878 408.802 372.524 429.563C372.959 432.306 373.39 435.05 373.817 437.794C374.281 440.715 374.744 443.636 375.209 446.556C375.527 448.614 375.527 448.614 375.851 450.713C377.016 457.86 378.613 464.012 381.473 470.704C382.383 474.156 383.238 477.623 384.045 481.101C385.631 487.673 387.362 493.936 389.862 500.218C392.211 506.478 392.211 506.478 392.211 513.633C382.726 511.102 373.268 508.499 363.855 505.709C328.754 495.357 293.692 489.018 257.078 487.413C251.605 487.158 247.108 486.756 241.876 485.013C238.466 479.644 236.201 473.639 233.71 467.797C232.935 465.996 232.159 464.195 231.36 462.34C224.894 446.895 219.472 431.185 214.359 415.254C213.993 414.115 213.626 412.976 213.249 411.802C206.221 389.812 199.385 367.555 195.791 344.711C195.567 343.417 195.343 342.122 195.113 340.788C193.697 332.121 193.355 323.865 193.554 315.086Z\",\n fill: \"#FAAE42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M422.638 159.467C431.616 162.035 438.773 165.911 446.576 170.87C447.815 171.653 449.055 172.436 450.332 173.243C479.861 192.189 506.923 214.848 532.377 238.926C534.557 240.968 536.757 242.989 538.968 244.996C542.774 248.457 546.523 251.972 550.267 255.499C551.479 256.582 552.691 257.665 553.94 258.781C561.954 266.485 561.954 266.485 562.715 272.155C562.326 275.93 561.56 279.264 560.446 282.889C559.846 284.871 559.246 286.854 558.628 288.897C557.899 290.899 557.17 292.9 556.419 294.962C544.195 330.004 537.63 366.282 534.913 403.221C534.791 404.738 534.669 406.256 534.544 407.819C534.447 409.169 534.35 410.519 534.25 411.91C533.6 415.253 533.6 415.253 530.021 418.831C528.869 417.876 527.718 416.922 526.532 415.938C489.648 385.543 451.314 361.141 408.321 340.127C407.139 339.537 405.958 338.947 404.741 338.339C404.652 327.621 404.587 316.904 404.545 306.187C404.527 302.553 404.502 298.919 404.471 295.285C404.293 274.051 404.901 253.798 408.321 232.805C408.741 229.462 409.146 226.118 409.53 222.771C412.176 201.076 416.507 180.443 422.638 159.467Z\",\n fill: \"#F9AE42\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWatermark);\nexport default __webpack_public_path__ + \"static/media/watermark.4f12235e4bd7b7b54f501c1b20b5e93b.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect } from \"react\";\r\nimport textlogo from \"../assets/svvasthya_letter_logo.svg\";\r\nimport watermark from \"../assets/watermark.svg\";\r\n\r\nfunction Hero() {\r\n useEffect(() => {\r\n const timer1 = setTimeout(() => {\r\n const svvasthyaElement = document.querySelector(\".hero-svvasthya\");\r\n if (svvasthyaElement) {\r\n svvasthyaElement.style.display = \"flex\";\r\n }\r\n }, 1000);\r\n\r\n const timer2 = setTimeout(() => {\r\n const svvasthyaElement2 = document.querySelector(\".hero-content\");\r\n if (svvasthyaElement2) {\r\n svvasthyaElement2.style.display = \"block\";\r\n }\r\n }, 2500);\r\n\r\n const timer3 = setTimeout(() => {\r\n const svvasthyaElement3 = document.querySelector(\".hero-svvasthya\");\r\n if (svvasthyaElement3) {\r\n svvasthyaElement3.style.display = \"none\";\r\n }\r\n }, 3500);\r\n\r\n const timer4 = setTimeout(() => {\r\n const svvasthyaElement4 = document.querySelector(\".services\");\r\n if (svvasthyaElement4) {\r\n svvasthyaElement4.style.display = \"flex\";\r\n }\r\n }, 3500);\r\n\r\n return () => {\r\n clearTimeout(timer1);\r\n clearTimeout(timer2);\r\n clearTimeout(timer3);\r\n clearTimeout(timer4);\r\n };\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n स्वास्थ्य का सच्चा साथी:\r\n

\r\n

\r\n Empowering Your Well-being at Home\r\n

\r\n
\r\n
\r\n

\r\n Bringing Compassionate\r\n

\r\n

\r\n Home Health care to your Doorstep\r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Hero;\r\n","const noop = () => {};\n\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar a = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n c = [a, t, r, o];\n\nvar et$1 = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\"\n }\n};\nvar bt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n},\n Ct = [\"kit\"];\nvar Dt = /fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\\-\\ ]/,\n Kt = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar ao = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n};\nvar eo = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\"\n }\n},\n lo = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\"\n }\n},\n y = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\"]\n},\n no = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\"\n }\n},\n fo = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n duotone: \"fad\",\n brands: \"fab\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\"\n }\n},\n ho = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fad: \"duotone\",\n \"fa-duotone\": \"duotone\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\"\n }\n},\n x$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n u$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n m$1 = u$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n},\n yo = [...Object.keys(y), ...x$1, \"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"fw\", \"inverse\", \"layers-counter\", \"layers-text\", \"layers\", \"li\", \"pull-left\", \"pull-right\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(u$1.map(o => \"\".concat(o, \"x\"))).concat(m$1.map(o => \"w-\".concat(o)));\nvar mo = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n},\n Io = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n},\n Fo = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n},\n So = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n};\n\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nconst FAMILIES = [a, r, o];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[a];\n }\n\n });\n}\n\nconst _PREFIX_TO_STYLE = { ...ho\n};\n_PREFIX_TO_STYLE[a] = { ...ho[a],\n ...bt['kit'],\n ...bt['kit-duotone']\n};\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = { ...fo\n};\n_STYLE_TO_PREFIX[a] = { ..._STYLE_TO_PREFIX[a],\n ...So['kit'],\n ...So['kit-duotone']\n};\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = { ...no\n};\n_PREFIX_TO_LONG_STYLE[a] = { ..._PREFIX_TO_LONG_STYLE[a],\n ...Fo['kit']\n};\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = { ...lo\n};\n_LONG_STYLE_TO_PREFIX[a] = { ..._LONG_STYLE_TO_PREFIX[a],\n ...Io['kit']\n};\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = Dt; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = Kt;\nconst _FONT_WEIGHT_TO_PREFIX = { ...et$1\n};\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = t$1;\nconst prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[a]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[r]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[o]).map(prefixes.add.bind(prefixes));\nconst RESERVED_CLASSES = [...Ct, ...yo];\n\nconst initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nconst _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nconst _config = { ..._default,\n ...initial\n};\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nconst d$2 = UNITS_IN_GRID;\nconst meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(i => i);\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((acc, styleName) => {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nlet _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n\n beforeI2svg() {\n ensureCss();\n }\n\n };\n }\n\n};\n\nconst w$1 = WINDOW || {};\nif (!w$1[NAMESPACE_IDENTIFIER]) w$1[NAMESPACE_IDENTIFIER] = {};\nif (!w$1[NAMESPACE_IDENTIFIER].styles) w$1[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$1[NAMESPACE_IDENTIFIER].hooks) w$1[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$1[NAMESPACE_IDENTIFIER].shims) w$1[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$1[NAMESPACE_IDENTIFIER];\n\nconst functions = [];\n\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\n\nlet loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = { ...(namespace.styles[prefix] || {}),\n ...normalized\n };\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nconst {\n styles,\n shims\n} = namespace;\nconst LONG_STYLE = {\n [a]: Object.values(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.values(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.values(PREFIX_TO_LONG_STYLE[o])\n};\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nconst PREFIXES = {\n [a]: Object.keys(PREFIX_TO_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_STYLE[o])\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n const oldUnicode = _byOldUnicode[unicode];\n const newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = a\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nconst PREFIXES_FOR_FAMILY = {\n [a]: Object.keys(PREFIX_TO_LONG_STYLE[a]),\n [r]: Object.keys(PREFIX_TO_LONG_STYLE[r]),\n [o]: Object.keys(PREFIX_TO_LONG_STYLE[o])\n};\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n const famProps = {\n [a]: \"\".concat(config.cssPrefix, \"-\").concat(a),\n [r]: \"\".concat(config.cssPrefix, \"-\").concat(r),\n [o]: \"\".concat(config.cssPrefix, \"-\").concat(o)\n };\n let givenPrefix = null;\n let family = a;\n const nonDuotoneFamilyIds = c.filter(familyId => familyId !== t);\n nonDuotoneFamilyIds.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n const canonical = values.reduce((acc, cls) => {\n const iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && !nonDuotoneFamilyIds.some(familyName => cls === famProps[familyName])) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n const shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n const aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === r && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (!canonical.prefix && family === o && (styles['fasds'] || config.autoFetchSvg)) {\n canonical.prefix = 'fasds';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nclass Library {\n constructor() {\n this.definitions = {};\n }\n\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = { ...(this.definitions[key] || {}),\n ...additions[key]\n };\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n const longPrefix = PREFIX_TO_LONG_STYLE[a][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n\n reset() {\n this.definitions = {};\n }\n\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n\n}\n\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n let {\n iconName\n } = iconLookup;\n const prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\n }\n\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return {\n prefix: icon.prefix,\n iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName\n };\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const canonicalIcon = getCanonicalIcon(icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\n\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles({ ...styles,\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n });\n }\n\n return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\n\nfunction asSymbol (_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: { ...attributes,\n id\n },\n children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = prefix === 'fak';\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c => extra.classes.indexOf(c) === -1).filter(c => c !== '' || !!c).concat(extra.classes).join(' ');\n let content = {\n children: [],\n attributes: { ...extra.attributes,\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n }\n };\n const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n const args = { ...content,\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: { ...uploadedIconWidthStyle,\n ...extra.styles\n }\n };\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = { ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n const styles = { ...extra.styles\n };\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n const styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = { ...extra.attributes,\n ...(title ? {\n 'title': title\n } : {}),\n 'class': extra.classes.join(' ')\n };\n const styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve({ ...missingIconResolutionMixin,\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n });\n });\n}\n\nconst noop$1 = () => {};\n\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.6.0\\\"\";\n\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\n\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin,\n end\n};\n\nconst noop$2 = () => {};\n\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo$1 = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo$1 = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo$1.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo$1) return;\n mo$1.disconnect();\n}\n\nfunction styleParser (node) {\n const style = node.getAttribute('style');\n let val = [];\n\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return {\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n },\n ...pluginMeta\n };\n}\n\nconst {\n styles: styles$2\n} = namespace;\n\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nlet knownPrefixes = new Set();\nFAMILIES.map(family => {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[a]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[r]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[o]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = [...knownPrefixes];\n\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n\n const prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(f$$1 => \"fa-\".concat(f$$1)).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n const prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(p$$1 => \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\"))).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n let candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\n\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, { ...params,\n mask\n });\n };\n}\n\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants({\n type: 'icon',\n ...iconDefinition\n }, () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: { ...meaninglessTransform,\n ...transform\n },\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n\n };\n },\n\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((resolve, reject) => {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n let nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n\n};\n\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(a => {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n\n };\n }\n\n};\n\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n\n };\n }\n\n};\n\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: { ...meaninglessTransform,\n ...transform\n },\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n\n };\n },\n\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n\n};\n\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = { ...{\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n },\n ...eo,\n ...ao,\n ...mo\n};\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\n\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c => c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract({ ...meta,\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n });\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n\n};\n\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n\n }\n };\n },\n\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n\n noAuto() {\n disconnect();\n },\n\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n\n };\n }\n\n};\n\nconst parseTransformString = transformString => {\n let transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n path\n };\n return {\n tag: 'g',\n attributes: { ...operations.outer\n },\n children: [{\n tag: 'g',\n attributes: { ...operations.inner\n },\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: { ...main.icon.attributes,\n ...operations.path\n }\n }]\n }]\n };\n };\n }\n\n};\n\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n\n };\n },\n\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: { ...ALL_SPACE,\n fill: 'white'\n }\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const maskInnerGroup = {\n tag: 'g',\n attributes: { ...trans.inner\n },\n children: [fillBlack({\n tag: mainPath.tag,\n attributes: { ...mainPath.attributes,\n ...trans.path\n },\n ...maskInnerGroupChildrenMixin\n })]\n };\n const maskOuterGroup = {\n tag: 'g',\n attributes: { ...trans.outer\n },\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const maskTag = {\n tag: 'mask',\n attributes: { ...ALL_SPACE,\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n },\n children: [maskRect, maskOuterGroup]\n };\n const defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: {\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\"),\n ...ALL_SPACE\n }\n });\n return {\n children,\n attributes\n };\n };\n }\n\n};\n\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n }\n });\n const OPACITY_ANIMATE = { ...ANIMATION_BASE,\n attributeName: 'opacity'\n };\n const dot = {\n tag: 'circle',\n attributes: { ...FILL,\n cx: '256',\n cy: '364',\n r: '28'\n },\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: { ...ANIMATION_BASE,\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n }\n }, {\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '1;0;1;1;0;1;'\n }\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n },\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '1;0;0;0;0;1;'\n }\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: { ...FILL,\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n },\n children: [{\n tag: 'animate',\n attributes: { ...OPACITY_ANIMATE,\n values: '0;0;1;1;0;0;'\n }\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n\n};\n\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n\n };\n }\n\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","import { faUser } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport React, { useState } from \"react\";\r\nimport logo from \"../assets/svvasthya_logo.svg\";\r\n\r\nconst Navbar = () => {\r\n const [isMenuOpen, setIsMenuOpen] = useState(false);\r\n\r\n const toggleMenu = () => {\r\n setIsMenuOpen(!isMenuOpen);\r\n };\r\n\r\n const closeMenu = () => {\r\n setIsMenuOpen(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n Emergency Call\r\n
\r\n +91 99988 77777\r\n \r\n
\r\n\r\n \r\n \r\n ×\r\n \r\n\r\n
\r\n
    \r\n
  • \r\n \r\n Home\r\n \r\n
  • \r\n
  • \r\n \r\n Book now\r\n \r\n
  • \r\n
  • \r\n \r\n Contact us\r\n \r\n
  • \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Navbar;\r\n","import React from \"react\";\r\nimport babyImage from \"../assets/babycare.png\";\r\nimport careImage from \"../assets/caregiver.png\";\r\nimport nurseImage from \"../assets/nursing.png\";\r\n\r\n// ServiceCard Component\r\nconst ServiceCard = ({ title, description, image, gradientFrom }) => {\r\n return (\r\n
\r\n {/* Image */}\r\n
\r\n \r\n
\r\n\r\n {/* Gradient overlay */}\r\n
\r\n\r\n {/* Text content container */}\r\n
\r\n
\r\n

\r\n {title}\r\n

\r\n

\r\n {description}\r\n

\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction Services() {\r\n const servicesData = [\r\n {\r\n title: \"Nursing\",\r\n description:\r\n \"Our nursing services provide expert care for patients at home, including Wound Care, (IV) Therapy, and Medication Administration.\",\r\n image: nurseImage,\r\n gradientFrom: \"#F6A226\",\r\n },\r\n {\r\n title: \"Caregiver\",\r\n description:\r\n \"Our caregivers provide personalized assistance for patients who need help with daily living activities, ensuring comfort and well-being at home.\",\r\n image: careImage,\r\n gradientFrom: \"#F0592A\",\r\n },\r\n {\r\n title: \"Baby Care\",\r\n description:\r\n \"We offer specialized baby care services at home, providing nurturing support for newborns and infants with a focus on safety and development.\",\r\n image: babyImage,\r\n gradientFrom: \"#009247\",\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n {servicesData.map((service, index) => (\r\n \r\n ))}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Services;\r\n","import React from \"react\";\r\n// import \"./App.css\";\r\nimport Booknow from \"./components/Booknow\";\r\nimport ComingSoon from \"./components/ComingSoon\";\r\nimport ContactUs from \"./components/ContactUs\";\r\nimport Hero from \"./components/Hero\";\r\nimport Navbar from \"./components/Navbar\";\r\nimport Services from \"./components/Services\";\r\nfunction Home() {\r\n return (\r\n <>\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Home;\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n viewTransitionOpts?: ViewTransitionOpts;\n flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n abortFetcher(key);\n\n let flushSync = (opts && opts.flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false,\n { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n preventScrollReset: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset,\n });\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string,\n includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n initialHydration ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type { FutureConfig as RouterFutureConfig } from \"@remix-run/router\";\nimport type { FutureConfig as RenderFutureConfig } from \"./components\";\n\nconst alreadyWarned: { [key: string]: boolean } = {};\n\nexport function warnOnce(key: string, message: string): void {\n if (!alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nconst logDeprecation = (flag: string, msg: string, link: string) =>\n warnOnce(\n flag,\n `⚠️ React Router Future Flag Warning: ${msg}. ` +\n `You can use the \\`${flag}\\` future flag to opt-in early. ` +\n `For more information, see ${link}.`\n );\n\nexport function logV6DeprecationWarnings(\n renderFuture: Partial | undefined,\n routerFuture?: Omit\n) {\n if (!renderFuture?.v7_startTransition) {\n logDeprecation(\n \"v7_startTransition\",\n \"React Router will begin wrapping state updates in `React.startTransition` in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\"\n );\n }\n\n if (\n !renderFuture?.v7_relativeSplatPath &&\n (!routerFuture || !routerFuture.v7_relativeSplatPath)\n ) {\n logDeprecation(\n \"v7_relativeSplatPath\",\n \"Relative route resolution within Splat routes is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\"\n );\n }\n\n if (routerFuture) {\n if (!routerFuture.v7_fetcherPersist) {\n logDeprecation(\n \"v7_fetcherPersist\",\n \"The persistence behavior of fetchers is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\"\n );\n }\n\n if (!routerFuture.v7_normalizeFormMethod) {\n logDeprecation(\n \"v7_normalizeFormMethod\",\n \"Casing of `formMethod` fields is being normalized to uppercase in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\"\n );\n }\n\n if (!routerFuture.v7_partialHydration) {\n logDeprecation(\n \"v7_partialHydration\",\n \"`RouterProvider` hydration behavior is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\"\n );\n }\n\n if (!routerFuture.v7_skipActionErrorRevalidation) {\n logDeprecation(\n \"v7_skipActionErrorRevalidation\",\n \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\"\n );\n }\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\nimport { logV6DeprecationWarnings } from \"./deprecations\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n React.useEffect(\n () => logV6DeprecationWarnings(future, router.future),\n [router, future]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a