@openmrs/esm-config 5.0.1-pre.813 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,9 @@
1
- @openmrs/esm-config:build: cache hit, replaying output c216a20d887d904c
2
- @openmrs/esm-config:build: asset openmrs-esm-config.js 42.6 KiB [emitted] [minimized] (name: main) 1 related asset
3
- @openmrs/esm-config:build: orphan modules 387 KiB [orphan] 338 modules
4
- @openmrs/esm-config:build: runtime modules 891 bytes 4 modules
5
- @openmrs/esm-config:build: cacheable modules 91.9 KiB
6
- @openmrs/esm-config:build:  ./src/index.ts + 39 modules 89.3 KiB [built] [code generated]
7
- @openmrs/esm-config:build:  ../esm-state/dist/openmrs-esm-state.js 2.56 KiB [built] [code generated]
8
- @openmrs/esm-config:build: webpack 5.88.0 compiled successfully in 14553 ms
1
+ @openmrs/esm-config:build: cache hit, replaying output 90a34b03c1b878fb
2
+ @openmrs/esm-config:build: asset openmrs-esm-module-config.js 21.5 KiB [emitted] [minimized] (name: main) 1 related asset
3
+ @openmrs/esm-config:build: orphan modules 367 KiB [orphan] 337 modules
4
+ @openmrs/esm-config:build: runtime modules 670 bytes 3 modules
5
+ @openmrs/esm-config:build: built modules 69.4 KiB [built]
6
+ @openmrs/esm-config:build:  ./src/index.ts + 38 modules 69.3 KiB [built] [code generated]
7
+ @openmrs/esm-config:build:  external "@openmrs/esm-state" 42 bytes [built] [code generated]
8
+ @openmrs/esm-config:build:  external "single-spa" 42 bytes [built] [code generated]
9
+ @openmrs/esm-config:build: webpack 5.88.0 compiled successfully in 19735 ms
@@ -0,0 +1,2 @@
1
+ System.register(["@openmrs/esm-state","single-spa"],(function(e,t){var n={},r={};return{setters:[function(e){n.createGlobalStore=e.createGlobalStore,n.getGlobalStore=e.getGlobalStore},function(e){r.navigateToUrl=e.navigateToUrl}],execute:function(){e((()=>{"use strict";var e={685:e=>{e.exports=n},645:e=>{e.exports=r}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{function e(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function t(t){return function n(r){return 0===arguments.length||e(r)?n:t.apply(this,arguments)}}function n(n){return function r(o,i){switch(arguments.length){case 0:return r;case 1:return e(o)?r:t((function(e){return n(o,e)}));default:return e(o)&&e(i)?r:e(o)?t((function(e){return n(e,i)})):e(i)?t((function(e){return n(o,e)})):n(o,i)}}}function r(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function a(e,t,n){for(var r=0,o=n.length;r<o;){if(e(t,n[r]))return!0;r+=1}return!1}function s(e,t){return Object.prototype.hasOwnProperty.call(t,e)}o.r(i),o.d(i,{Type:()=>G,configExtensionStore:()=>Q,configInternalStore:()=>H,defineConfigSchema:()=>ye,defineExtensionConfigSchema:()=>de,getConfig:()=>ge,getConfigInternal:()=>be,getConfigStore:()=>V,getExtensionConfig:()=>ne,getExtensionConfigFromStore:()=>re,getExtensionSlotConfig:()=>Z,getExtensionSlotConfigFromStore:()=>ee,getExtensionSlotsConfigStore:()=>Y,getExtensionsConfigStore:()=>te,implementerToolsConfigStore:()=>oe,inRange:()=>Me,interpolateString:()=>Ge,interpolateUrl:()=>Be,isUrl:()=>We,isUrlWithTemplateParameters:()=>Fe,navigate:()=>Re,oneOf:()=>ze,processConfig:()=>me,provide:()=>pe,temporaryConfigStore:()=>K,validator:()=>R,validators:()=>Je});const c="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};var u=Object.prototype.toString,f=function(){return"[object Arguments]"===u.call(arguments)?function(e){return"[object Arguments]"===u.call(e)}:function(e){return s("callee",e)}}();const l=f;var y=!{toString:null}.propertyIsEnumerable("toString"),d=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],p=function(){return arguments.propertyIsEnumerable("length")}(),g=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1};const b="function"!=typeof Object.keys||p?t((function(e){if(Object(e)!==e)return[];var t,n,r=[],o=p&&l(e);for(t in e)!s(t,e)||o&&"length"===t||(r[r.length]=t);if(y)for(n=d.length-1;n>=0;)s(t=d[n],e)&&!g(r,t)&&(r[r.length]=t),n-=1;return r})):t((function(e){return Object(e)!==e?[]:Object.keys(e)})),m=t((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function v(e,t,n,o){var i=r(e);function s(e,t){return h(e,t,n.slice(),o.slice())}return!a((function(e,t){return!a(s,t,e)}),r(t),i)}function h(e,t,n,r){if(c(e,t))return!0;var o,i,a=m(e);if(a!==m(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(a){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===(o=e.constructor,null==(i=String(o).match(/^function (\w*)/))?"":i[1]))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!c(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!c(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var u=n.length-1;u>=0;){if(n[u]===e)return r[u]===t;u-=1}switch(a){case"Map":return e.size===t.size&&v(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&v(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var f=b(e);if(f.length!==b(t).length)return!1;var l=n.concat([e]),y=r.concat([t]);for(u=f.length-1;u>=0;){var d=f[u];if(!s(d,t)||!h(t[d],e[d],l,y))return!1;u-=1}return!0}const S=n((function(e,t){return h(e,t,[],[])}));function O(r){return function o(i,a,s){switch(arguments.length){case 0:return o;case 1:return e(i)?o:n((function(e,t){return r(i,e,t)}));case 2:return e(i)&&e(a)?o:e(i)?n((function(e,t){return r(e,a,t)})):e(a)?n((function(e,t){return r(i,e,t)})):t((function(e){return r(i,a,e)}));default:return e(i)&&e(a)&&e(s)?o:e(i)&&e(a)?n((function(e,t){return r(e,t,s)})):e(i)&&e(s)?n((function(e,t){return r(e,a,t)})):e(a)&&e(s)?n((function(e,t){return r(i,e,t)})):e(i)?t((function(e){return r(e,a,s)})):e(a)?t((function(e){return r(i,e,s)})):e(s)?t((function(e){return r(i,a,e)})):r(i,a,s)}}}function j(e){return"[object Object]"===Object.prototype.toString.call(e)}const w=O((function(e,t,n){var r,o={};for(r in t)s(r,t)&&(o[r]=s(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)s(r,n)&&!s(r,o)&&(o[r]=n[r]);return o})),$=O((function e(t,n,r){return w((function(n,r,o){return j(r)&&j(o)?e(t,r,o):t(n,r,o)}),n,r)})),_=n((function(e,t){return $((function(e,t,n){return n}),e,t)})),x=n((function(e,t){for(var n={},r={},o=0,i=e.length;o<i;)r[e[o]]=1,o+=1;for(var a in t)r.hasOwnProperty(a)||(n[a]=t[a]);return n}));function A(e,t,n,r){var o,i=function(o){for(var i=t.length,a=0;a<i;){if(e===t[a])return n[a];a+=1}for(var s in t[a+1]=e,n[a+1]=o,e)o[s]=r?A(e[s],t,n,!0):e[s];return o};switch(m(e)){case"Object":return i({});case"Array":return i([]);case"Date":return new Date(e.valueOf());case"RegExp":return o=e,new RegExp(o.source,(o.global?"g":"")+(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.sticky?"y":"")+(o.unicode?"u":""));default:return e}}const P=t((function(e){return null!=e&&"function"==typeof e.clone?e.clone():A(e,[],[],!0)})),k=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)},U=t((function(e){return!!k(e)||!!e&&"object"==typeof e&&!function(e){return"[object String]"===Object.prototype.toString.call(e)}(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1))}));var I=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}(),C=n((function(e,t){return function(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,o){return t.apply(this,arguments)};case 5:return function(e,n,r,o,i){return t.apply(this,arguments)};case 6:return function(e,n,r,o,i,a){return t.apply(this,arguments)};case 7:return function(e,n,r,o,i,a,s){return t.apply(this,arguments)};case 8:return function(e,n,r,o,i,a,s,c){return t.apply(this,arguments)};case 9:return function(e,n,r,o,i,a,s,c,u){return t.apply(this,arguments)};case 10:return function(e,n,r,o,i,a,s,c,u,f){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}(e.length,(function(){return e.apply(t,arguments)}))}));const E=C;function T(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function D(e,t,n,r){return e["@@transducer/result"](n[r](E(e["@@transducer/step"],e),t))}var N="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function q(e,t,n){if("function"==typeof e&&(e=function(e){return new I(e)}(e)),U(n))return function(e,t,n){for(var r=0,o=n.length;r<o;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"==typeof n["fantasy-land/reduce"])return D(e,t,n,"fantasy-land/reduce");if(null!=n[N])return T(e,t,n[N]());if("function"==typeof n.next)return T(e,t,n);if("function"==typeof n.reduce)return D(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}const B=O(q);var G;function R(e,t){return n=>{if(!e(n))return"function"==typeof t?t(n):t}}!function(e){e.Array="Array",e.Boolean="Boolean",e.ConceptUuid="ConceptUuid",e.Number="Number",e.Object="Object",e.String="String",e.UUID="UUID",e.PersonAttributeTypeUuid="PersonAttributeTypeUuid",e.PatientIdentifierTypeUuid="PatientIdentifierTypeUuid"}(G||(G={}));const M=R((e=>Array.isArray(e)),"must be an array"),F=R((e=>"boolean"==typeof e),"must be a boolean"),W=R((e=>"number"==typeof e),"must be a number"),z=R((e=>"string"==typeof e),"must be a string"),J=R((e=>"object"==typeof e&&!Array.isArray(e)&&null!==e),"must be an object (not an array or null)"),L=R((e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)||/^[0-9a-f]{36}$/i.test(e)),"must be a valid UUID or a 36-character hexadecimal string");var X=o(685);const H=(0,X.createGlobalStore)("config-internal",{providedConfigs:[],schemas:{}}),K=(0,X.createGlobalStore)("temporary-config",{config:function(){try{return JSON.parse(localStorage.getItem("openmrs:temporaryConfig")||"{}")}catch(e){return{}}}()});K.subscribe((e=>{var t;t=e.config,localStorage.setItem("openmrs:temporaryConfig",JSON.stringify(t))}));const Q=(0,X.createGlobalStore)("config-store-of-extension-state",{mountedExtensions:[]});function V(e){return(0,X.getGlobalStore)(`config-module-${e}`,{config:null,loaded:!1})}function Y(){return(0,X.getGlobalStore)("config-extension-slots",{slots:{}})}function Z(e){return ee(Y().getState(),e)}function ee(e,t){const n=e.slots[t];return null!=n?n:{loaded:!1,config:{}}}function te(){return(0,X.getGlobalStore)("config-extensions",{configs:{}})}function ne(e,t){const n=Object.assign({},re(te().getState(),e,t));return n.config=x(["Display conditions","Translation overrides"],n.config),n}function re(e,t,n){var r;const o=null===(r=e.configs[t])||void 0===r?void 0:r[n];return null!=o?o:{loaded:!1,config:null}}const oe=(0,X.createGlobalStore)("config-implementer-tools",{config:{}});function ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){ie(e,t,n[t])}))}return e}function se(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function ce(e,t){for(let n of Object.keys(e.schemas)){const r=$e(n,e,t);V(n).setState({loaded:!0,config:r})}}function ue(e,t){const n=function(e,t){const n=xe(je(e,t)),r=Object.keys(n).reduce(((e,t)=>{var r,o;return(null===(r=n[t])||void 0===r?void 0:r.extensionSlots)&&(e[t]=null===(o=n[t])||void 0===o?void 0:o.extensionSlots),e}),{});!function(e){for(let[t,n]of Object.entries(e))for(let[e,r]of Object.entries(n))Oe(r,t,e)}(r);return Object.keys(r).reduce(((e,t)=>ae({},e,r[t])),{})}(e,t),r=Object.fromEntries(Object.entries(n).map((([e,t])=>[e,{loaded:!0,config:t}]))),o=Y(),i=o.getState(),a={slots:ae({},i.slots,r)};S(i,a)||o.setState(a)}function fe(e,t){const n=function(e,t){let n=he(P(e.schemas));const r=[...e.providedConfigs.map((e=>[e.config,e.source])),[t.config,"temporary config"]];for(let[e,t]of r)n=xe([n,Se(e,t)]);return n}(e,t);oe.setState({config:n})}function le(e,t,n){const r={};for(let o of t.mountedExtensions){const t=ve(o.slotModuleName,o.extensionModuleName,o.slotName,o.extensionId,e,n);r[o.slotName]=se(ae({},r[o.slotName]),{[o.extensionId]:{config:t,loaded:!0}})}te().setState({configs:r})}function ye(e,t){we(e,t);const n=_(t,De),r=H.getState();H.setState({schemas:se(ae({},r.schemas),{[e]:n})})}function de(e,t){we(e,t);const n=_(t,De),r=H.getState();r.schemas[e]&&console.warn(`Config schema for extension ${e} already exists. If there are multiple extensions with this same name, one will probably crash.`),H.setState({schemas:se(ae({},r.schemas),{[e]:n})})}function pe(e,t="provided"){const n=H.getState();H.setState({providedConfigs:[...n.providedConfigs,{source:t,config:e}]})}function ge(e){return new Promise((t=>{const n=V(e);function r(e){if(e.loaded&&e.config){const n=x(["Display conditions","Translation overrides"],e.config);t(n),o&&o()}}r(n.getState());const o=n.subscribe(r)}))}function be(e){return new Promise((t=>{const n=V(e);function r(e){if(e.loaded&&e.config){const n=e.config;t(n),o&&o()}}r(n.getState());const o=n.subscribe(r)}))}function me(e,t,n){Ae(e,t,n);const r=Ce(e,t);return ke(e,r,n),r}function ve(e,t,n,r,o,i){var a,s,c;const u=function(e){const[t]=e.split("#");return t}(r),f=o.schemas[u],l=f?u:t,y=je(o,i),d=_e(e,y);var p;const g=null!==(p=null==d||null===(a=d.extensionSlots)||void 0===a||null===(s=a[n])||void 0===s||null===(c=s.configure)||void 0===c?void 0:c[r])&&void 0!==p?p:{},b=xe([_e(l,y),g]),m=null!=f?f:o.schemas[t];Ae(m,b,l);const v=Ce(m,b);return ke(m,v,l),delete v.extensionSlots,v}function he(e){return e.hasOwnProperty("_default")?se(ae({},e),{_value:e._default,_source:"default"}):Te(e)?Object.keys(e).reduce(((t,n)=>(t[n]=he(e[n]),t)),{}):{}}function Se(e,t){return Te(e)?Object.keys(e).reduce(((n,r)=>(n[r]=Se(e[r],t),n)),{}):{_value:e,_source:t}}function Oe(e,t,n){const r=`Extension slot config '${t}.extensionSlots.${n}`,o=Object.keys(e).filter((e=>!["add","remove","order","configure"].includes(e)));o.length&&console.error(r+`' contains invalid keys '${o.join("', '")}'`),e.add&&(Array.isArray(e.add)&&e.add.every((e=>"string"==typeof e))||console.error(r+".add' is invalid. Must be an array of strings (extension IDs)")),e.remove&&(Array.isArray(e.remove)&&e.remove.every((e=>"string"==typeof e))||console.error(r+".remove' is invalid. Must be an array of strings (extension IDs)")),e.order&&(Array.isArray(e.order)&&e.order.every((e=>"string"==typeof e))||console.error(r+".order' is invalid. Must be an array of strings (extension IDs)")),e.configure&&(Te(e.configure)||console.error(r+".configure' is invalid. Must be an object with extension IDs for keys"))}function je(e,t){return[...e.providedConfigs.map((e=>e.config)),t.config]}function we(e,t,n=""){const r="Please verify that you are running the latest version and, if so, alert the maintainer.";for(const o of Object.keys(t).filter((e=>!e.startsWith("_")))){const i=n+(n&&".")+o,a=t[o];if("Display conditions"===i&&console.error(`${e} declares a configuration option called "Display conditions"; the "Display conditions" option is a reserved name. ${r}`),"Translation overrides"===i&&console.error(`${e} declares a configuration option called "Translation overrides"; the "Translation overrides" option is a reserved name. ${r}`),!Te(a)){console.error(`${e} has bad config schema definition for key '${i}'. ${r}`);continue}a.hasOwnProperty("_default")||we(e,a,i);const s=a._elements;if(Ee(s)&&we(e,s,i+"._elements"),a._validators)for(let t of a._validators)"function"!=typeof t&&console.error(`${e} has invalid validator for key '${i}' ${r}.\n\nIf you're the maintainer: validators must be functions that return either undefined or an error string. Received ${t}.`);const c=a._type;c&&!Object.values(G).includes(c)&&console.error(`${e} has invalid type for key '${i}' ${r}.\n\nIf you're the maintainer: the allowed types are ${Object.values(G).join(", ")}. Received '${c}'`),Object.keys(a).every((e=>["_description","_validators","_elements","_type"].includes(e)))&&!n.includes("._elements")&&console.error(`${e} has bad config schema definition for key '${i}'. ${r}.\n\nIf you're the maintainer: all config elements must have a default. Received ${JSON.stringify(a)}`),s&&c&&![G.Array,G.Object].includes(c)&&console.error(`${e} has bad config schema definition for key '${i}'. ${r}.\n\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. Received ${JSON.stringify(c)}`)}}function $e(e,t,n){if(!t.schemas.hasOwnProperty(e))throw Error("No config schema has been defined for "+e);const r=t.schemas[e],o=_e(e,je(t,n));Ae(r,o,e);const i=Ce(r,o);return ke(r,i,e),delete i.extensionSlots,i}function _e(e,t){return xe(t.map((({[e]:t})=>t)).filter((e=>!!e)))}function xe(e){return B(_)({},e)}function Ae(e,t,n=""){for(const r of Object.keys(t)){const o=t[r],i=n+"."+r,a=e[r];e.hasOwnProperty(r)?Pe(a,o,i):"extensionSlots"===r&&""!==n||console.error(`Unknown config key '${i}' provided. Ignoring.`)}}function Pe(e,t,n){Ue(n,e._type,t),Te(t)?e._type===G.Object?function(e,t,n){if(e._elements)for(const r of Object.keys(t)){const o=t[r];Ae(e._elements,o,`${n}.${r}`)}}(e,t,n):e.hasOwnProperty("_default")||Ae(e,t,n):e._type===G.Array&&function(e,t,n){if(Ee(e._elements))for(let r=0;r<t.length;r++)Pe(e._elements,t[r],`${n}[${r}]`);for(let o=0;o<t.length;o++){var r;Ue(`${n}[${o}]`,null===(r=e._elements)||void 0===r?void 0:r._type,t[o])}}(e,t,n)}function ke(e,t,n=""){if(e)if(t!==e._default&&Ie(n,e._validators,t),Te(t))for(const r of Object.keys(t)){const o=t[r],i=n+"."+r,a=e[r];e._type===G.Object&&e._elements?ke(e._elements,o,i):ke(a,o,i)}else if(Array.isArray(t)&&e._elements)for(let r=0;r<t.length;r++)ke(e._elements,t[r],`${n}[${r}]`)}function Ue(e,t,n){t&&Ie(e,[{Array:M,Boolean:F,ConceptUuid:L,Number:W,Object:J,String:z,UUID:L,PersonAttributeTypeUuid:L,PatientIdentifierTypeUuid:L}[t]],n)}function Ie(e,t,n){if(t)try{for(let r of t){const t=r(n);"string"==typeof t&&("object"==typeof n?console.error(`Invalid configuration for ${e}: ${t}`):console.error(`Invalid configuration value ${n} for ${e}: ${t}`))}}catch(t){console.error(`Skipping invalid validator at "${e}". Encountered error\n\t${t}`)}}ce(H.getState(),K.getState()),H.subscribe((e=>ce(e,K.getState()))),K.subscribe((e=>ce(H.getState(),e))),fe(H.getState(),K.getState()),H.subscribe((e=>fe(e,K.getState()))),K.subscribe((e=>fe(H.getState(),e))),ue(H.getState(),K.getState()),H.subscribe((e=>ue(e,K.getState()))),K.subscribe((e=>ue(H.getState(),e))),le(H.getState(),Q.getState(),K.getState()),H.subscribe((e=>{le(e,Q.getState(),K.getState())})),Q.subscribe((e=>{le(H.getState(),e,K.getState())})),K.subscribe((e=>{le(H.getState(),Q.getState(),e)}));const Ce=(e,t)=>{const n=P(t);if(!e)return n;for(const t of Object.keys(e)){const r=n[t],o=e[t];if(o&&o.hasOwnProperty("_default")){n.hasOwnProperty(t)||(n[t]=o._default);const e=o._elements;if(r&&Ee(e))if(o._type===G.Array&&Array.isArray(r)){const o=r.map((t=>Ce(e,t)));n[t]=o}else if(o._type===G.Object)for(let t of Object.keys(r))r[t]=Ce(e,r[t])}else if(Te(o)){const e=n.hasOwnProperty(t)?r:{};Te(e)&&(n[t]=Ce(o,e))}}return n};function Ee(e){return!!e&&Object.keys(e).filter((e=>!["_default","_validators"].includes(e))).length>0}function Te(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}const De={"Display conditions":{privileges:{_description:"The privilege(s) the user must have to use this extension",_type:G.Array,_default:[]}},"Translation overrides":{_description:"Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value",_type:G.Object,_default:{}}};var Ne=o(645);function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Be(e,t){const n=window.getOpenmrsSpaBase().replace(/\/$/,"");return Ge(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){qe(e,t,n[t])}))}return e}({openmrsBase:window.openmrsBase,openmrsSpaBase:n},t)).replace(/^\/\//,"/")}function Ge(e,t){return Object.keys(t).reduce(((e,n)=>e.split("${"+n+"}").join(t[n])),e)}function Re({to:e,templateParams:t}){const n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=Be(e,t);r.startsWith(n)?(0,Ne.navigateToUrl)(r):window.location.assign(r)}const Me=(e,t)=>R((n=>e<=n&&n<=t),`must be between ${e} and ${t}`),Fe=e=>{const t=e.concat(["openmrsBase","openmrsSpaBase"]);return R((e=>{if(!e||"string"!=typeof e)return!1;const n=/\${(.*?)}/g;let r=n.exec(e);for(;r;){if(!t.includes(r[1]))return!1;r=n.exec(e)}return!0}),"Should be a URL or path. The allowed template parameters are "+t.map((e=>"${"+e+"}")).join(", "))},We=Fe([]),ze=e=>R((t=>e.includes(t)),`Must be one of the following: '${e.join("', '")}'.`),Je={inRange:Me,isUrl:We,isUrlWithTemplateParameters:Fe,oneOf:ze}})(),i})())}}}));
2
+ //# sourceMappingURL=openmrs-esm-module-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openmrs-esm-module-config.js","mappings":"6RAAAA,EAAOC,QAAUC,C,UCAjBF,EAAOC,QAAUE,C,GCCbC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaN,QAGrB,IAAID,EAASI,EAAyBE,GAAY,CAGjDL,QAAS,CAAC,GAOX,OAHAQ,EAAoBH,GAAUN,EAAQA,EAAOC,QAASI,GAG/CL,EAAOC,OACf,CCrBAI,EAAoBK,EAAI,CAACT,EAASU,KACjC,IAAI,IAAIC,KAAOD,EACXN,EAAoBQ,EAAEF,EAAYC,KAASP,EAAoBQ,EAAEZ,EAASW,IAC5EE,OAAOC,eAAed,EAASW,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDP,EAAoBQ,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFd,EAAoBkB,EAAKtB,IACH,oBAAXuB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAed,EAASuB,OAAOC,YAAa,CAAEC,MAAO,WAE7DZ,OAAOC,eAAed,EAAS,aAAc,CAAEyB,OAAO,GAAO,E,qBCL/C,SAASC,EAAeC,GAChC,OAAY,MAALA,GAA0B,iBAANA,IAAoD,IAAlCA,EAAE,2BACtD,CCQe,SAASC,EAAQC,GAC9B,OAAO,SAASC,EAAGH,GACjB,OAAyB,IAArBI,UAAUC,QAAgBN,EAAeC,GACpCG,EAEAD,EAAGI,MAAMC,KAAMH,UAE1B,CACF,CCPe,SAASI,EAAQN,GAC9B,OAAO,SAASO,EAAGT,EAAGU,GACpB,OAAQN,UAAUC,QAChB,KAAK,EACH,OAAOI,EACT,KAAK,EACH,OAAOV,EAAeC,GAAKS,EAAKR,GAAQ,SAAUU,GAChD,OAAOT,EAAGF,EAAGW,EACf,IACF,QACE,OAAOZ,EAAeC,IAAMD,EAAeW,GAAKD,EAAKV,EAAeC,GAAKC,GAAQ,SAAUW,GACzF,OAAOV,EAAGU,EAAIF,EAChB,IAAKX,EAAeW,GAAKT,GAAQ,SAAUU,GACzC,OAAOT,EAAGF,EAAGW,EACf,IAAKT,EAAGF,EAAGU,GAEjB,CACF,CC5Be,SAASG,EAAmBC,GAGzC,IAFA,IACIC,EADAC,EAAO,KAEFD,EAAOD,EAAKC,QAAQE,MAC3BD,EAAKE,KAAKH,EAAKjB,OAEjB,OAAOkB,CACT,CCPe,SAASG,EAAcC,EAAMC,EAAGL,GAI7C,IAHA,IAAIM,EAAM,EACNC,EAAMP,EAAKX,OAERiB,EAAMC,GAAK,CAChB,GAAIH,EAAKC,EAAGL,EAAKM,IACf,OAAO,EAETA,GAAO,CACT,CACA,OAAO,CACT,CCXe,SAASE,EAAKjC,EAAMD,GACjC,OAAOJ,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EACnD,C,+pBCWA,QAAoC,mBAAdL,OAAOuC,GAAoBvC,OAAOuC,GAZxD,SAAmBzB,EAAGU,GAEpB,OAAIV,IAAMU,EAGK,IAANV,GAAW,EAAIA,GAAM,EAAIU,EAGzBV,GAAMA,GAAKU,GAAMA,CAE5B,ECTA,IAAI,EAAWxB,OAAOM,UAAUkC,SAC5BC,EAA4B,WAC9B,MAAoC,uBAA7B,EAASjC,KAAKU,WAAsC,SAAsBiB,GAC/E,MAA4B,uBAArB,EAAS3B,KAAK2B,EACvB,EAAI,SAAsBA,GACxB,OAAOG,EAAK,SAAUH,EACxB,CACF,CANgC,GAQhC,UCNA,IAAIO,GAA4B,CAAEF,SAAU,MAAOG,qBAAqB,YACpEC,EAAqB,CAAC,cAAe,UAAW,gBAAiB,WAAY,uBAAwB,iBAAkB,kBAEvHC,EAA8B,WAGhC,OAAO3B,UAAUyB,qBAAqB,SACxC,CAJkC,GAM9BG,EAAW,SAAkBhB,EAAMiB,GAErC,IADA,IAAIX,EAAM,EACHA,EAAMN,EAAKX,QAAQ,CACxB,GAAIW,EAAKM,KAASW,EAChB,OAAO,EAETX,GAAO,CACT,CACA,OAAO,CACT,EA8CA,QA1BkC,mBAAhBpC,OAAOgD,MAAwBH,EAE/B9B,GAAQ,SAAcX,GACtC,GAAIJ,OAAOI,KAASA,EAClB,MAAO,GAET,IAAIC,EAAM4C,EACNC,EAAK,GACLC,EAAkBN,GAAkB,EAAazC,GACrD,IAAKC,KAAQD,GACPkC,EAAKjC,EAAMD,IAAU+C,GAA4B,WAAT9C,IAC1C6C,EAAGA,EAAG/B,QAAUd,GAGpB,GAAIqC,EAEF,IADAO,EAAOL,EAAmBzB,OAAS,EAC5B8B,GAAQ,GAETX,EADJjC,EAAOuC,EAAmBK,GACX7C,KAAS0C,EAASI,EAAI7C,KACnC6C,EAAGA,EAAG/B,QAAUd,GAElB4C,GAAQ,EAGZ,OAAOC,CACT,IAzB+EnC,GAAQ,SAAcX,GACnG,OAAOJ,OAAOI,KAASA,EAAM,GAAKJ,OAAOgD,KAAK5C,EAChD,ICfA,EAHwBW,GAAQ,SAAcqC,GAC5C,OAAe,OAARA,EAAe,YAAiB1D,IAAR0D,EAAoB,YAAcpD,OAAOM,UAAUkC,SAAShC,KAAK4C,GAAKC,MAAM,GAAI,EACjH,ICVA,SAASC,EAAmBC,EAAWC,EAAWC,EAAQC,GACxD,IAAI5C,EAAIa,EAAmB4B,GAG3B,SAASI,EAAGjC,EAAID,GACd,OAAOmC,EAAQlC,EAAID,EAAIgC,EAAOJ,QAASK,EAAOL,QAChD,CAGA,OAAQpB,GAAc,SAAUT,EAAGqC,GACjC,OAAQ5B,EAAc0B,EAAIE,EAAOrC,EACnC,GATQG,EAAmB6B,GASrB1C,EACR,CAEe,SAAS8C,EAAQ9C,EAAGU,EAAGiC,EAAQC,GAC5C,GAAI,EAAU5C,EAAGU,GACf,OAAO,EAGT,ICtCoCsC,EAEhCC,EDoCAC,EAAQ,EAAKlD,GAEjB,GAAIkD,IAAU,EAAKxC,GACjB,OAAO,EAGT,GAAS,MAALV,GAAkB,MAALU,EACf,OAAO,EAGT,GAAwC,mBAA7BV,EAAE,wBAA6E,mBAA7BU,EAAE,uBAC7D,MAA2C,mBAA7BV,EAAE,wBAAyCA,EAAE,uBAAuBU,IAA0C,mBAA7BA,EAAE,wBAAyCA,EAAE,uBAAuBV,GAGrK,GAAwB,mBAAbA,EAAEmD,QAA6C,mBAAbzC,EAAEyC,OAC7C,MAA2B,mBAAbnD,EAAEmD,QAAyBnD,EAAEmD,OAAOzC,IAA0B,mBAAbA,EAAEyC,QAAyBzC,EAAEyC,OAAOnD,GAGrG,OAAQkD,GACN,IAAK,YACL,IAAK,QACL,IAAK,SACH,GAA6B,mBAAlBlD,EAAEoD,aAA+D,aC5D5CJ,ED4DyBhD,EAAEoD,YCzD/C,OADZH,EAAQI,OAAOL,GAAGC,MAAM,oBACL,GAAKA,EAAM,ID0D5B,OAAOjD,IAAMU,EAEf,MACF,IAAK,UACL,IAAK,SACL,IAAK,SACH,UAAaV,UAAaU,IAAK,EAAUV,EAAEsD,UAAW5C,EAAE4C,WACtD,OAAO,EAET,MACF,IAAK,OACH,IAAK,EAAUtD,EAAEsD,UAAW5C,EAAE4C,WAC5B,OAAO,EAET,MACF,IAAK,QACH,OAAOtD,EAAEuD,OAAS7C,EAAE6C,MAAQvD,EAAEwD,UAAY9C,EAAE8C,QAC9C,IAAK,SACH,GAAMxD,EAAEyD,SAAW/C,EAAE+C,QAAUzD,EAAE0D,SAAWhD,EAAEgD,QAAU1D,EAAE2D,aAAejD,EAAEiD,YAAc3D,EAAE4D,YAAclD,EAAEkD,WAAa5D,EAAE6D,SAAWnD,EAAEmD,QAAU7D,EAAE8D,UAAYpD,EAAEoD,QAC/J,OAAO,EAMb,IADA,IAAIxC,EAAMqB,EAAOtC,OAAS,EACnBiB,GAAO,GAAG,CACf,GAAIqB,EAAOrB,KAAStB,EAClB,OAAO4C,EAAOtB,KAASZ,EAEzBY,GAAO,CACT,CAEA,OAAQ4B,GACN,IAAK,MACH,OAAIlD,EAAE+D,OAASrD,EAAEqD,MAIVvB,EAAmBxC,EAAEgE,UAAWtD,EAAEsD,UAAWrB,EAAOsB,OAAO,CAACjE,IAAK4C,EAAOqB,OAAO,CAACvD,KACzF,IAAK,MACH,OAAIV,EAAE+D,OAASrD,EAAEqD,MAIVvB,EAAmBxC,EAAEkE,SAAUxD,EAAEwD,SAAUvB,EAAOsB,OAAO,CAACjE,IAAK4C,EAAOqB,OAAO,CAACvD,KACvF,IAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,cACH,MACF,QAEE,OAAO,EAGX,IAAIyD,EAAQ,EAAKnE,GACjB,GAAImE,EAAM9D,SAAW,EAAKK,GAAGL,OAC3B,OAAO,EAGT,IAAI+D,EAAiBzB,EAAOsB,OAAO,CAACjE,IAChCqE,EAAiBzB,EAAOqB,OAAO,CAACvD,IAGpC,IADAY,EAAM6C,EAAM9D,OAAS,EACdiB,GAAO,GAAG,CACf,IAAItC,EAAMmF,EAAM7C,GAChB,IAAME,EAAKxC,EAAK0B,KAAMoC,EAAQpC,EAAE1B,GAAMgB,EAAEhB,GAAMoF,EAAgBC,GAC5D,OAAO,EAET/C,GAAO,CACT,CACA,OAAO,CACT,CErHA,QAH0Bd,GAAQ,SAAgBR,EAAGU,GACnD,OAAOoC,EAAQ9C,EAAGU,EAAG,GAAI,GAC3B,IClBe,SAAS4D,EAAQpE,GAC9B,OAAO,SAASqE,EAAGvE,EAAGU,EAAG8D,GACvB,OAAQpE,UAAUC,QAChB,KAAK,EACH,OAAOkE,EACT,KAAK,EACH,OAAOxE,EAAeC,GAAKuE,EAAK/D,GAAQ,SAAUG,EAAI8D,GACpD,OAAOvE,EAAGF,EAAGW,EAAI8D,EACnB,IACF,KAAK,EACH,OAAO1E,EAAeC,IAAMD,EAAeW,GAAK6D,EAAKxE,EAAeC,GAAKQ,GAAQ,SAAUI,EAAI6D,GAC7F,OAAOvE,EAAGU,EAAIF,EAAG+D,EACnB,IAAK1E,EAAeW,GAAKF,GAAQ,SAAUG,EAAI8D,GAC7C,OAAOvE,EAAGF,EAAGW,EAAI8D,EACnB,IAAKxE,GAAQ,SAAUwE,GACrB,OAAOvE,EAAGF,EAAGU,EAAG+D,EAClB,IACF,QACE,OAAO1E,EAAeC,IAAMD,EAAeW,IAAMX,EAAeyE,GAAKD,EAAKxE,EAAeC,IAAMD,EAAeW,GAAKF,GAAQ,SAAUI,EAAID,GACvI,OAAOT,EAAGU,EAAID,EAAI6D,EACpB,IAAKzE,EAAeC,IAAMD,EAAeyE,GAAKhE,GAAQ,SAAUI,EAAI6D,GAClE,OAAOvE,EAAGU,EAAIF,EAAG+D,EACnB,IAAK1E,EAAeW,IAAMX,EAAeyE,GAAKhE,GAAQ,SAAUG,EAAI8D,GAClE,OAAOvE,EAAGF,EAAGW,EAAI8D,EACnB,IAAK1E,EAAeC,GAAKC,GAAQ,SAAUW,GACzC,OAAOV,EAAGU,EAAIF,EAAG8D,EACnB,IAAKzE,EAAeW,GAAKT,GAAQ,SAAUU,GACzC,OAAOT,EAAGF,EAAGW,EAAI6D,EACnB,IAAKzE,EAAeyE,GAAKvE,GAAQ,SAAUwE,GACzC,OAAOvE,EAAGF,EAAGU,EAAG+D,EAClB,IAAKvE,EAAGF,EAAGU,EAAG8D,GAEpB,CACF,CC7Ce,SAASE,EAAUrD,GAChC,MAA6C,oBAAtCnC,OAAOM,UAAUkC,SAAShC,KAAK2B,EACxC,CC4CA,QAlBgCiD,GAAQ,SAAsBpE,EAAIyE,EAAGhF,GACnE,IACIiF,EADAC,EAAS,CAAC,EAGd,IAAKD,KAAKD,EACJnD,EAAKoD,EAAGD,KACVE,EAAOD,GAAKpD,EAAKoD,EAAGjF,GAAKO,EAAG0E,EAAGD,EAAEC,GAAIjF,EAAEiF,IAAMD,EAAEC,IAInD,IAAKA,KAAKjF,EACJ6B,EAAKoD,EAAGjF,KAAO6B,EAAKoD,EAAGC,KACzBA,EAAOD,GAAKjF,EAAEiF,IAIlB,OAAOC,CACT,ICJA,EAToCP,GAAQ,SAASQ,EAAiB5E,EAAI6E,EAAMC,GAC9E,OAAO,GAAa,SAAUJ,EAAGK,EAAMC,GACrC,OAAIR,EAAUO,IAASP,EAAUQ,GACxBJ,EAAiB5E,EAAI+E,EAAMC,GAE3BhF,EAAG0E,EAAGK,EAAMC,EAEvB,GAAGH,EAAMC,EACX,ICXA,EALkCxE,GAAQ,SAAwBuE,EAAMC,GACtE,OAAO,GAAiB,SAAUJ,EAAGK,EAAMC,GACzC,OAAOA,CACT,GAAGH,EAAMC,EACX,ICQA,EAlBwBxE,GAAQ,SAAc2E,EAAO7F,GAMnD,IALA,IAAIuF,EAAS,CAAC,EACVO,EAAQ,CAAC,EACT9D,EAAM,EACNC,EAAM4D,EAAM9E,OAETiB,EAAMC,GACX6D,EAAMD,EAAM7D,IAAQ,EACpBA,GAAO,EAGT,IAAK,IAAI/B,KAAQD,EACV8F,EAAM3F,eAAeF,KACxBsF,EAAOtF,GAAQD,EAAIC,IAGvB,OAAOsF,CACT,ICtBe,SAASQ,EAAOvF,EAAOwF,EAASC,EAAOC,GACpD,ICdmCC,EDc/BC,EAAO,SAAcC,GAGvB,IAFA,IAAIpE,EAAM+D,EAAQjF,OACdiB,EAAM,EACHA,EAAMC,GAAK,CAChB,GAAIzB,IAAUwF,EAAQhE,GACpB,OAAOiE,EAAMjE,GAEfA,GAAO,CACT,CAGA,IAAK,IAAItC,KAFTsG,EAAQhE,EAAM,GAAKxB,EACnByF,EAAMjE,EAAM,GAAKqE,EACD7F,EACd6F,EAAY3G,GAAOwG,EAAOH,EAAOvF,EAAMd,GAAMsG,EAASC,GAAO,GAAQzF,EAAMd,GAE7E,OAAO2G,CACT,EACA,OAAQ,EAAK7F,IACX,IAAK,SACH,OAAO4F,EAAK,CAAC,GACf,IAAK,QACH,OAAOA,EAAK,IACd,IAAK,OACH,OAAO,IAAIE,KAAK9F,EAAMwD,WACxB,IAAK,SACH,OCtC+BmC,EDsCX3F,ECrCe,IAAI+F,OAAOJ,EAAQhC,QAASgC,EAAQ/B,OAAS,IAAM,KAAO+B,EAAQ9B,WAAa,IAAM,KAAO8B,EAAQ7B,UAAY,IAAM,KAAO6B,EAAQ5B,OAAS,IAAM,KAAO4B,EAAQ3B,QAAU,IAAM,KDsCxN,QACE,OAAOhE,EAEb,CEfA,QAHyBG,GAAQ,SAAeH,GAC9C,OAAgB,MAATA,GAAwC,mBAAhBA,EAAMgG,MAAuBhG,EAAMgG,QAAUT,EAAOvF,EAAO,GAAI,IAAI,EACpG,ICdA,EAAeiG,MAAMC,SAAW,SAAkB1D,GAChD,OAAc,MAAPA,GAAeA,EAAIjC,QAAU,GAA6C,mBAAxCnB,OAAOM,UAAUkC,SAAShC,KAAK4C,EAC1E,EC+BA,EAxBgCrC,GAAQ,SAAqBoB,GAC3D,QAAI4E,EAAS5E,MAGRA,GAGY,iBAANA,IC5BE,SAAmBA,GAChC,MAA6C,oBAAtCnC,OAAOM,UAAUkC,SAAShC,KAAK2B,EACxC,CD6BM6E,CAAU7E,KAGK,IAAfA,EAAE8E,WACK9E,EAAEhB,OAEI,IAAbgB,EAAEhB,QAGFgB,EAAEhB,OAAS,GACNgB,EAAE5B,eAAe,IAAM4B,EAAE5B,eAAe4B,EAAEhB,OAAS,GAG9D,IE5CA,IAAI+F,EAAqB,WACvB,SAASA,EAAMlG,GACbK,KAAKyC,EAAI9C,CACX,CAWA,OAVAkG,EAAM5G,UAAU,qBAAuB,WACrC,MAAM,IAAI6G,MAAM,gCAClB,EACAD,EAAM5G,UAAU,uBAAyB,SAAU8G,GACjD,OAAOA,CACT,EACAF,EAAM5G,UAAU,qBAAuB,SAAU8G,EAAKjF,GACpD,OAAOd,KAAKyC,EAAEsD,EAAKjF,EACrB,EAEO+E,CACT,CAfyB,GCyBrBG,EAAoB/F,GAAQ,SAAcN,EAAIsG,GAChD,OC1Ba,SAAgBC,EAAGvG,GAEhC,OAAQuG,GACN,KAAK,EACH,OAAO,WACL,OAAOvG,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,GACf,OAAOxG,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,GACnB,OAAOzG,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,GACvB,OAAO1G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,GAC3B,OAAO3G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,GAC/B,OAAO5G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACnC,OAAO7G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACvC,OAAO9G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC3C,OAAO/G,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,EACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/C,OAAOhH,EAAGI,MAAMC,KAAMH,UACxB,EACF,KAAK,GACH,OAAO,SAAUsG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACnD,OAAOjH,EAAGI,MAAMC,KAAMH,UACxB,EACF,QACE,MAAM,IAAIiG,MAAM,+EAEtB,CDxBSe,CAAOlH,EAAGG,QAAQ,WACvB,OAAOH,EAAGI,MAAMkG,EAASpG,UAC3B,GACF,IACA,UEZA,SAASiH,EAAgBC,EAAIhB,EAAKxF,GAEhC,IADA,IAAIyG,EAAOzG,EAAKC,QACRwG,EAAKtG,MAAM,CAEjB,IADAqF,EAAMgB,EAAG,qBAAqBhB,EAAKiB,EAAKzH,SAC7BwG,EAAI,wBAAyB,CACtCA,EAAMA,EAAI,sBACV,KACF,CACAiB,EAAOzG,EAAKC,MACd,CACA,OAAOuG,EAAG,uBAAuBhB,EACnC,CAEA,SAASkB,EAAcF,EAAIhB,EAAKhH,EAAKmI,GACnC,OAAOH,EAAG,uBAAuBhI,EAAImI,GAAY,EAAKH,EAAG,qBAAsBA,GAAKhB,GACtF,CAEA,IAAIoB,EAAgC,oBAAX9H,OAAyBA,OAAO+H,SAAW,aAErD,SAASC,EAAQ1H,EAAIoG,EAAKtF,GAIvC,GAHkB,mBAAPd,IACTA,EHtBW,SAAgBA,GAC7B,OAAO,IAAIkG,EAAMlG,EACnB,CGoBS2H,CAAO3H,IAEV,EAAac,GACf,OAtCJ,SAAsBsG,EAAIhB,EAAKtF,GAG7B,IAFA,IAAIM,EAAM,EACNC,EAAMP,EAAKX,OACRiB,EAAMC,GAAK,CAEhB,IADA+E,EAAMgB,EAAG,qBAAqBhB,EAAKtF,EAAKM,MAC7BgF,EAAI,wBAAyB,CACtCA,EAAMA,EAAI,sBACV,KACF,CACAhF,GAAO,CACT,CACA,OAAOgG,EAAG,uBAAuBhB,EACnC,CA0BWwB,CAAa5H,EAAIoG,EAAKtF,GAE/B,GAA2C,mBAAhCA,EAAK,uBACd,OAAOwG,EAActH,EAAIoG,EAAKtF,EAAM,uBAEtC,GAAyB,MAArBA,EAAK0G,GACP,OAAOL,EAAgBnH,EAAIoG,EAAKtF,EAAK0G,MAEvC,GAAyB,mBAAd1G,EAAKD,KACd,OAAOsG,EAAgBnH,EAAIoG,EAAKtF,GAElC,GAA2B,mBAAhBA,EAAK+G,OACd,OAAOP,EAActH,EAAIoG,EAAKtF,EAAM,UAGtC,MAAM,IAAIgH,UAAU,yCACtB,CCRA,QAD0B1D,EAAQsD,GCjD3B,IAAIK,ECoBA,SAASC,EAAUC,EAAoB3E,GAC9C,OAAQ1D,IACJ,IAAKqI,EAAmBrI,GACpB,MAAuB,mBAAZ0D,EACAA,EAAQ1D,GAER0D,CAEf,CAER,ED7BA,SAAUyE,GACNA,EAAY,MAAI,QAChBA,EAAc,QAAI,UAClBA,EAAkB,YAAI,cACtBA,EAAa,OAAI,SACjBA,EAAa,OAAI,SACjBA,EAAa,OAAI,SACjBA,EAAW,KAAI,OACfA,EAA8B,wBAAI,0BAClCA,EAAgC,0BAAI,2BACvC,CAVD,CAUGA,IAASA,EAAO,CAAC,IEVb,MAAMjC,EAAUkC,GAAW5F,GAAMyD,MAAMC,QAAQ1D,IAAM,oBAC/C8F,EAAYF,GAAW5F,GAAqB,kBAARA,GAAmB,qBACvD+F,EAAWH,GAAW5F,GAAqB,iBAARA,GAAkB,oBACrDgG,EAAWJ,GAAW5F,GAAqB,iBAARA,GAAkB,oBACrDiG,EAAWL,GAAW5F,GAAqB,iBAARA,IAAqByD,MAAMC,QAAQ1D,IAAgB,OAARA,GAAc,4CAC5FkG,EAASN,GAAW5F,GAAM,kEAAkEmG,KAAKnG,IAAQ,kBAAkBmG,KAAKnG,IAAM,6D,aCJnJ,MAMiBoG,GAAsB,IAAAC,mBAAkB,kBANjB,CACpCC,gBAAiB,GACjBC,QAAS,CAAC,IAKgBC,GAAuB,IAAAH,mBAAkB,mBAAoB,CACvFI,OAQJ,WACI,IACI,OAAOC,KAAKC,MAAMC,aAAaC,QAAQ,4BAA8B,KACzE,CAAE,MAAOC,GACL,MAAO,CAAC,CACZ,CACJ,CAdYC,KAEZP,EAAqBQ,WAAWC,IAGhC,IAA4BzJ,IAFLyJ,EAAMR,OAGzBG,aAAaM,QAAQ,0BAA2BR,KAAKS,UAAU3J,GAH/B,IAYZ,MAAM4J,GAAuB,IAAAf,mBAAkB,kCAAmC,CACtGgB,kBAAmB,KAQC,SAASC,EAAeC,GAE5C,OAAO,IAAAC,gBAAe,iBAAiBD,IAPhC,CACHd,OAAQ,KACRgB,QAAQ,GAMhB,CACwB,SAASC,IAC7B,OAAO,IAAAF,gBAAe,yBAA0B,CAC5CG,MAAO,CAAC,GAEhB,CACwB,SAASC,EAAuBC,GACpD,OAAOC,GAAgCJ,IAA+BK,WAAYF,EACtF,CACwB,SAASC,GAAgCb,EAAOY,GACpE,MAAMG,EAAaf,EAAMU,MAAME,GAC/B,OAAOG,QAA+CA,EAAa,CAC/DP,QAAQ,EACRhB,OAAQ,CAAC,EAEjB,CAIW,SAASwB,KAChB,OAAO,IAAAT,gBAAe,oBAAqB,CACvCU,QAAS,CAAC,GAElB,CACwB,SAASC,GAAmBN,EAAUO,GAC1D,MAAMC,EAAkBzL,OAAO0L,OAAO,CAAC,EAAGC,GAA4BN,KAA2BF,WAAYF,EAAUO,IAKvH,OAJAC,EAAgB5B,OAAS,EAAK,CAC1B,qBACA,yBACD4B,EAAgB5B,QACZ4B,CACX,CACwB,SAASE,GAA4BtB,EAAOY,EAAUO,GAC1E,IAAII,EACJ,MAAMH,EAA0E,QAAvDG,EAA0BvB,EAAMiB,QAAQL,UAAmD,IAA5BW,OAAqC,EAASA,EAAwBJ,GAC9J,OAAOC,QAAyDA,EAAkB,CAC9EZ,QAAQ,EACRhB,OAAQ,KAEhB,CACwB,MAAMgC,IAA8B,IAAApC,mBAAkB,2BAA4B,CACtGI,OAAQ,CAAC,IC9EmB,SAASiC,GAAiB1L,EAAKN,EAAKc,GAWhE,OAVId,KAAOM,EACPJ,OAAOC,eAAeG,EAAKN,EAAK,CAC5Bc,MAAOA,EACPV,YAAY,EACZ6L,cAAc,EACdC,UAAU,IAGd5L,EAAIN,GAAOc,EAERR,CACX,CACA,SAAS6L,GAAeC,GACpB,IAAI,IAAIC,EAAI,EAAGA,EAAIjL,UAAUC,OAAQgL,IAAI,CACrC,IAAI5H,EAAyB,MAAhBrD,UAAUiL,GAAajL,UAAUiL,GAAK,CAAC,EAChDC,EAAUpM,OAAOgD,KAAKuB,GACkB,mBAAjCvE,OAAOqM,wBACdD,EAAUA,EAAQrH,OAAO/E,OAAOqM,sBAAsB9H,GAAQ+H,QAAO,SAASC,GAC1E,OAAOvM,OAAOwM,yBAAyBjI,EAAQgI,GAAKrM,UACxD,MAEJkM,EAAQK,SAAQ,SAAS3M,GACrBgM,GAAiBI,EAAQpM,EAAKyE,EAAOzE,GACzC,GACJ,CACA,OAAOoM,CACX,CAcA,SAASQ,GAAqBR,EAAQ3H,GASlC,OARAA,EAAmB,MAAVA,EAAiBA,EAAS,CAAC,EAChCvE,OAAO2M,0BACP3M,OAAO4M,iBAAiBV,EAAQlM,OAAO2M,0BAA0BpI,IAhBzE,SAAiBsI,EAAQC,GACrB,IAAI9J,EAAOhD,OAAOgD,KAAK6J,GACvB,GAAI7M,OAAOqM,sBAAuB,CAC9B,IAAIU,EAAU/M,OAAOqM,sBAAsBQ,GAM3C7J,EAAKhB,KAAKZ,MAAM4B,EAAM+J,EAC1B,CACA,OAAO/J,CACX,CAMQoJ,CAAQpM,OAAOuE,IAASkI,SAAQ,SAAS3M,GACrCE,OAAOC,eAAeiM,EAAQpM,EAAKE,OAAOwM,yBAAyBjI,EAAQzE,GAC/E,IAEGoM,CACX,CA2CA,SAASc,GAAoB3C,EAAO4C,GAChC,IAAK,IAAItC,KAAc3K,OAAOgD,KAAKqH,EAAMV,SAAS,CAC9C,MAAME,EAASqD,GAAmBvC,EAAYN,EAAO4C,GACjCvC,EAAeC,GACvBwC,SAAS,CACjBtC,QAAQ,EACRhB,UAER,CACJ,CACA,SAASuD,GAA4B/C,EAAO4C,GACxC,MAAMI,EAkPV,SAAiCC,EAAaC,GAC1C,MAAMC,EAAaC,GAAaC,GAAmBJ,EAAaC,IAC1DI,EAAsB3N,OAAOgD,KAAKwK,GAAY3E,QAAO,CAACzI,EAAKN,KAC7D,IAAI8N,EAEIC,EAGR,OAJ4C,QAAvCD,EAAkBJ,EAAW1N,UAAsC,IAApB8N,OAA6B,EAASA,EAAgBE,kBAEtG1N,EAAIN,GAAgD,QAAxC+N,EAAmBL,EAAW1N,UAAuC,IAArB+N,OAA8B,EAASA,EAAiBC,gBAEjH1N,CAAG,GACX,CAAC,IAQR,SAAyCuN,GACrC,IAAK,IAAKhD,EAAYoD,KAAqB/N,OAAO8E,QAAQ6I,GACtD,IAAK,IAAK1C,EAAUpB,KAAW7J,OAAO8E,QAAQiJ,GAC1CC,GAA4BnE,EAAQc,EAAYM,EAG5D,CAbIgD,CAAgCN,GAKhC,OAJoB3N,OAAOgD,KAAK2K,GAAqB9E,QAAO,CAACzI,EAAKN,IACxDmM,GAAe,CAAC,EAAG7L,EAAKuN,EAAoB7N,KAEnD,CAAC,EAER,CAlQwBoO,CAAwB7D,EAAO4C,GAC7CkB,EAAsBnO,OAAOoO,YAAYpO,OAAO8E,QAAQuI,GAAagB,KAAI,EAAEpD,EAAUpB,KAAU,CAC7FoB,EACA,CACIJ,QAAQ,EACRhB,cAGNyE,EAAYxD,IACZyD,EAAWD,EAAUnD,WACrBqD,EAAW,CACbzD,MAAOkB,GAAe,CAAC,EAAGsC,EAASxD,MAAOoD,IAEzC,EAAOI,EAAUC,IAClBF,EAAUnB,SAASqB,EAE3B,CACA,SAASC,GAA8BpE,EAAOkD,GAC1C,MAAM1D,EA+KV,SAAmCyD,EAAaC,GAC5C,IAAI5H,EAAS+I,GAA8B,EAAMpB,EAAY3D,UAC7D,MAAMgF,EAAoB,IACnBrB,EAAY5D,gBAAgB2E,KAAK/I,GAAI,CAChCA,EAAEuE,OACFvE,EAAEf,UAEV,CACIgJ,EAAgB1D,OAChB,qBAGR,IAAK,IAAKA,EAAQtF,KAAWoK,EACzBhJ,EAAS8H,GAAa,CAClB9H,EACAiJ,GAA2B/E,EAAQtF,KAG3C,OAAOoB,CACX,CAlMmBkJ,CAA0BxE,EAAOkD,GAChD1B,GAA4BsB,SAAS,CACjCtD,UAER,CACA,SAASiF,GAAwBxB,EAAayB,EAAgBxB,GAC1D,MAAMjC,EAAU,CAAC,EACjB,IAAK,IAAI0D,KAAaD,EAAetE,kBAAkB,CACnD,MAAMZ,EAASoF,GAAuBD,EAAUE,eAAgBF,EAAUG,oBAAqBH,EAAU/D,SAAU+D,EAAUxD,YAAa8B,EAAaC,GACvJjC,EAAQ0D,EAAU/D,UAAYyB,GAAqBT,GAAe,CAAC,EAAGX,EAAQ0D,EAAU/D,WAAY,CAChG,CAAC+D,EAAUxD,aAAc,CACrB3B,SACAgB,QAAQ,IAGpB,CACAQ,KAA2B8B,SAAS,CAChC7B,WAER,CAeW,SAAS8D,GAAmBzE,EAAY0E,GAC/CC,GAAqB3E,EAAY0E,GACjC,MAAME,EAAiB,EAAeF,EAAQG,IACxCnF,EAAQb,EAAoB2B,WAClC3B,EAAoB2D,SAAS,CACzBxD,QAAS+C,GAAqBT,GAAe,CAAC,EAAG5B,EAAMV,SAAU,CAC7D,CAACgB,GAAa4E,KAG1B,CAiBW,SAASE,GAA4BC,EAAeL,GAC3DC,GAAqBI,EAAeL,GACpC,MAAME,EAAiB,EAAeF,EAAQG,IACxCnF,EAAQb,EAAoB2B,WAC9Bd,EAAMV,QAAQ+F,IACdC,QAAQC,KAAK,+BAA+BF,oGAEhDlG,EAAoB2D,SAAS,CACzBxD,QAAS+C,GAAqBT,GAAe,CAAC,EAAG5B,EAAMV,SAAU,CAC7D,CAAC+F,GAAgBH,KAG7B,CACO,SAASM,GAAQhG,EAAQiG,EAAa,YACzC,MAAMzF,EAAQb,EAAoB2B,WAClC3B,EAAoB2D,SAAS,CACzBzD,gBAAiB,IACVW,EAAMX,gBACT,CACInF,OAAQuL,EACRjG,YAIhB,CASW,SAASkG,GAAUpF,GAC1B,OAAO,IAAIqF,SAASC,IAChB,MAAMC,EAAQxF,EAAeC,GAC7B,SAASwF,EAAO9F,GACZ,GAAIA,EAAMQ,QAAUR,EAAMR,OAAQ,CAC9B,MAAMA,EAAS,EAAK,CAChB,qBACA,yBACDQ,EAAMR,QACToG,EAAQpG,GACRuG,GAAeA,GACnB,CACJ,CACAD,EAAOD,EAAM/E,YACb,MAAMiF,EAAcF,EAAM9F,UAAU+F,EAAO,GAEnD,CACwB,SAASE,GAAkB1F,GAC/C,OAAO,IAAIqF,SAASC,IAChB,MAAMC,EAAQxF,EAAeC,GAC7B,SAASwF,EAAO9F,GACZ,GAAIA,EAAMQ,QAAUR,EAAMR,OAAQ,CAC9B,MAAMA,EAASQ,EAAMR,OACrBoG,EAAQpG,GACRuG,GAAeA,GACnB,CACJ,CACAD,EAAOD,EAAM/E,YACb,MAAMiF,EAAcF,EAAM9F,UAAU+F,EAAO,GAEnD,CASW,SAASG,GAAcjB,EAAQkB,EAAgBC,GACtDC,GAAkBpB,EAAQkB,EAAgBC,GAC1C,MAAM3G,EAAS6G,GAAYrB,EAAQkB,GAEnC,OADAI,GAA6BtB,EAAQxF,EAAQ2G,GACtC3G,CACX,CAgBI,SAASoF,GAAuBC,EAAgBC,EAAqBlE,EAAUO,EAAa8B,EAAaC,GACzG,IAAIqD,EAAkCC,EAA2CC,EACjF,MAAMpB,EA0XN,SAAgClE,GAChC,MAAOkE,GAAiBlE,EAAYuF,MAAM,KAC1C,OAAOrB,CACX,CA7X0BsB,CAAuBxF,GACvCyF,EAAwB3D,EAAY3D,QAAQ+F,GAC5CwB,EAAqBD,EAAwBvB,EAAgBP,EAC7DzF,EAAkBgE,GAAmBJ,EAAaC,GAClD4D,EAAmBC,GAAgBlC,EAAgBxF,GACzD,IAAI2H,EACJ,MAAMC,EAA6sB,QAA3rBD,EAAkEF,SAA6I,QAAxEP,EAAmCO,EAAiBrD,sBAAiE,IAArC8C,GAAoJ,QAA5FC,EAA4CD,EAAiC3F,UAAqE,IAA9C4F,GAAgL,QAA/GC,EAAsDD,EAA0CU,iBAA+E,IAAxDT,OAA9a,EAAwfA,EAAoDtF,UAA8F,IAApE6F,EAA6EA,EAAkE,CAAC,EAEr2BG,EAAiB/D,GAAa,CADZ2D,GAAgBF,EAAoBxH,GAGxD4H,IAGEjC,EAAS4B,QAAqEA,EAAwB3D,EAAY3D,QAAQwF,GAChIsB,GAAkBpB,EAAQmC,EAAgBN,GAC1C,MAAMrH,EAAS6G,GAAYrB,EAAQmC,GAGnC,OAFAb,GAA6BtB,EAAQxF,EAAQqH,UACtCrH,EAAOiE,eACPjE,CACX,CAqBA,SAAS6E,GAA8BW,GACnC,OAAIA,EAAO9O,eAAe,YACfmM,GAAqBT,GAAe,CAAC,EAAGoD,GAAS,CACpDoC,OAAQpC,EAAOqC,SACfC,QAAS,YAENC,GAAiBvC,GACjBrP,OAAOgD,KAAKqM,GAAQxG,QAAO,CAACzI,EAAKN,KACpCM,EAAIN,GAAO4O,GAA8BW,EAAOvP,IACzCM,IACR,CAAC,GAGG,CAAC,CAEhB,CACA,SAASwO,GAA2B/E,EAAQtF,GACxC,OAAIqN,GAAiB/H,GACV7J,OAAOgD,KAAK6G,GAAQhB,QAAO,CAACzI,EAAKN,KACpCM,EAAIN,GAAO8O,GAA2B/E,EAAO/J,GAAMyE,GAC5CnE,IACR,CAAC,GAEG,CACHqR,OAAQ5H,EACR8H,QAASpN,EAGrB,CAyBA,SAASyJ,GAA4BnE,EAAQc,EAAYM,GACrD,MAAM4G,EAAc,0BAA0BlH,oBAA6BM,IACrE6G,EAAc9R,OAAOgD,KAAK6G,GAAQyC,QAAQ5G,IAAK,CAC7C,MACA,SACA,QACA,aACFqM,SAASrM,KACXoM,EAAY3Q,QACZwO,QAAQqC,MAAMH,EAAc,4BAA4BC,EAAYG,KAAK,YAEzEpI,EAAOqI,MACFrL,MAAMC,QAAQ+C,EAAOqI,MAASrI,EAAOqI,IAAIC,OAAO5K,GAAiB,iBAANA,KAC5DoI,QAAQqC,MAAMH,EAAc,kEAGhChI,EAAOuI,SACFvL,MAAMC,QAAQ+C,EAAOuI,SAAYvI,EAAOuI,OAAOD,OAAO5K,GAAiB,iBAANA,KAClEoI,QAAQqC,MAAMH,EAAc,qEAGhChI,EAAOwI,QACFxL,MAAMC,QAAQ+C,EAAOwI,QAAWxI,EAAOwI,MAAMF,OAAO5K,GAAiB,iBAANA,KAChEoI,QAAQqC,MAAMH,EAAc,oEAGhChI,EAAO0H,YACFK,GAAiB/H,EAAO0H,YACzB5B,QAAQqC,MAAMH,EAAc,yEAGxC,CACA,SAASnE,GAAmBJ,EAAaC,GACrC,MAAO,IACAD,EAAY5D,gBAAgB2E,KAAK/I,GAAIA,EAAEuE,SAC1C0D,EAAgB1D,OAExB,CACA,SAASyF,GAAqB3E,EAAY0E,EAAQiD,EAAU,IACxD,MAAMC,EAAgB,0FACtB,IAAK,MAAMzS,KAAOE,OAAOgD,KAAKqM,GAAQ/C,QAAQ5G,IAAKA,EAAE8M,WAAW,OAAM,CAClE,MAAMC,EAAcH,GAAWA,GAAW,KAAOxS,EAC3C4S,EAAarD,EAAOvP,GAO1B,GANoB,uBAAhB2S,GACA9C,QAAQqC,MAAM,GAAGrH,sHAA+H4H,KAEhI,0BAAhBE,GACA9C,QAAQqC,MAAM,GAAGrH,4HAAqI4H,MAErJX,GAAiBc,GAAa,CAC/B/C,QAAQqC,MAAM,GAAGrH,+CAAwD8H,OAAiBF,KAC1F,QACJ,CACKG,EAAWnS,eAAe,aAE3B+O,GAAqB3E,EAAY+H,EAAYD,GAEjD,MAAME,EAAWD,EAAWE,UAI5B,GAHIC,GAAgBF,IAChBrD,GAAqB3E,EAAYgI,EAAUF,EAAc,cAEzDC,EAAWI,YACX,IAAK,IAAI9J,KAAa0J,EAAWI,YACJ,mBAAd9J,GACP2G,QAAQqC,MAAM,GAAGrH,oCAA6C8H,MAAgBF,0HAAgJvJ,MAI1O,MAAM+J,EAAYL,EAAWM,MACzBD,IAAc/S,OAAOgF,OAAO+D,GAAMgJ,SAASgB,IAC3CpD,QAAQqC,MAAM,GAAGrH,+BAAwC8H,MAAgBF,yDAA0EvS,OAAOgF,OAAO+D,GAAMkJ,KAAK,oBAAyBc,MAErM/S,OAAOgD,KAAK0P,GAAYP,OAAOzM,GAAI,CAC/B,eACA,cACA,YACA,SACFqM,SAASrM,OAAQ4M,EAAQP,SAAS,eACpCpC,QAAQqC,MAAM,GAAGrH,+CAAwD8H,OAAiBF,qFAA2GzI,KAAKS,UAAUmI,MAEpNC,GAAYI,IAAc,CAC1BhK,EAAKlC,MACLkC,EAAK/I,QACP+R,SAASgB,IACPpD,QAAQqC,MAAM,GAAGrH,+CAAwD8H,OAAiBF,qHAA2IzI,KAAKS,UAAUwI,KAE5P,CACJ,CACA,SAAS7F,GAAmBvC,EAAY2C,EAAaC,GACjD,IAAKD,EAAY3D,QAAQpJ,eAAeoK,GACpC,MAAMxD,MAAM,yCAA2CwD,GAE3D,MAAM0E,EAAS/B,EAAY3D,QAAQgB,GAC7BsI,EAAc7B,GAAgBzG,EAAY+C,GAAmBJ,EAAaC,IAChFkD,GAAkBpB,EAAQ4D,EAAatI,GACvC,MAAMd,EAAS6G,GAAYrB,EAAQ4D,GAGnC,OAFAtC,GAA6BtB,EAAQxF,EAAQc,UACtCd,EAAOiE,eACPjE,CACX,CACA,SAASuH,GAAgBzG,EAAY6C,GAEjC,OAAOC,GADqBD,EAAWa,KAAI,EAAG,CAAC1D,GAAarF,KAAOA,IAAGgH,QAAQhH,KAAMA,IAExF,CACA,SAASmI,GAAanC,GAElB,OADqB,EAAO,EACrB4H,CAAa,CAAC,EAAG5H,EAC5B,CAMI,SAASmF,GAAkBpB,EAAQxF,EAAQyI,EAAU,IAErD,IAAK,MAAMxS,KAAOE,OAAOgD,KAAK6G,GAAQ,CAClC,MAAMjJ,EAAQiJ,EAAO/J,GACf2S,EAAcH,EAAU,IAAMxS,EAC9B4S,EAAarD,EAAOvP,GACrBuP,EAAO9O,eAAeT,GAM3BqT,GAAwBT,EAAY9R,EAAO6R,GALzB,mBAAR3S,GAAwC,KAAZwS,GAC9B3C,QAAQqC,MAAM,uBAAuBS,yBAKjD,CACJ,CACA,SAASU,GAAwBT,EAAY9R,EAAO0R,GAChDc,GAAUd,EAASI,EAAWM,MAAOpS,GACjCgR,GAAiBhR,GAGb8R,EAAWM,QAAUjK,EAAK/I,OAYtC,SAAqCqT,EAAkBxJ,EAAQyI,GAC3D,GAAIe,EAAiBT,UACjB,IAAK,MAAM9S,KAAOE,OAAOgD,KAAK6G,GAAQ,CAClC,MAAMjJ,EAAQiJ,EAAO/J,GACrB2Q,GAAkB4C,EAAiBT,UAAWhS,EAAO,GAAG0R,KAAWxS,IACvE,CAER,CAlBYwT,CAA4BZ,EAAY9R,EAAO0R,GACvCI,EAAWnS,eAAe,aAElCkQ,GAAkBiC,EAAY9R,EAAO0R,GAGrCI,EAAWM,QAAUjK,EAAKlC,OAatC,SAAgC0M,EAAa3S,EAAO0R,GAEhD,GAAIO,GAAgBU,EAAYX,WAC5B,IAAI,IAAIzG,EAAI,EAAGA,EAAIvL,EAAMO,OAAQgL,IAC7BgH,GAAwBI,EAAYX,UAAWhS,EAAMuL,GAAI,GAAGmG,KAAWnG,MAG/E,IAAI,IAAIA,EAAI,EAAGA,EAAIvL,EAAMO,OAAQgL,IAAI,CACjC,IAAIqH,EACJJ,GAAU,GAAGd,KAAWnG,KAA2D,QAApDqH,EAAyBD,EAAYX,iBAAkD,IAA3BY,OAAoC,EAASA,EAAuBR,MAAOpS,EAAMuL,GAChL,CACJ,CAvBYsH,CAAuBf,EAAY9R,EAAO0R,EAGtD,CAyBI,SAAS3B,GAA6BtB,EAAQxF,EAAQyI,EAAU,IAEhE,GAAIjD,EAIA,GAHIxF,IAAWwF,EAAOqC,UAClBgC,GAAcpB,EAASjD,EAAOyD,YAAajJ,GAE3C+H,GAAiB/H,GACjB,IAAK,MAAM/J,KAAOE,OAAOgD,KAAK6G,GAAQ,CAClC,MAAMjJ,EAAQiJ,EAAO/J,GACf2S,EAAcH,EAAU,IAAMxS,EAC9B4S,EAAarD,EAAOvP,GACtBuP,EAAO2D,QAAUjK,EAAK/I,QAAUqP,EAAOuD,UACvCjC,GAA6BtB,EAAOuD,UAAWhS,EAAO6R,GAEtD9B,GAA6B+B,EAAY9R,EAAO6R,EAExD,MACG,GAAI5L,MAAMC,QAAQ+C,IAAWwF,EAAOuD,UACvC,IAAI,IAAIzG,EAAI,EAAGA,EAAItC,EAAO1I,OAAQgL,IAC9BwE,GAA6BtB,EAAOuD,UAAW/I,EAAOsC,GAAI,GAAGmG,KAAWnG,KAIxF,CACA,SAASiH,GAAUd,EAASU,EAAOpS,GAC3BoS,GAYAU,GAAcpB,EAAS,CAXL,CACdzL,MAAOC,EACP6M,QAASzK,EACT0K,YAAatK,EACbuK,OAAQ1K,EACRnJ,OAAQqJ,EACRlF,OAAQiF,EACR0K,KAAMxK,EACNyK,wBAAyBzK,EACzB0K,0BAA2B1K,GAGjB0J,IACXpS,EAEX,CACA,SAAS8S,GAAcpB,EAAS2B,EAAYrT,GACxC,GAAIqT,EACA,IACI,IAAK,IAAIjL,KAAaiL,EAAW,CAC7B,MAAMC,EAAkBlL,EAAUpI,GACH,iBAApBsT,IACc,iBAAVtT,EACP+O,QAAQqC,MAAM,6BAA6BM,MAAY4B,KAEvDvE,QAAQqC,MAAM,+BAA+BpR,SAAa0R,MAAY4B,KAGlF,CACJ,CAAE,MAAOhK,GACLyF,QAAQqC,MAAM,kCAAkCM,4BAAkCpI,IACtF,CAER,CA5gBI8C,GAAoBxD,EAAoB2B,WAAYvB,EAAqBuB,YAC7E3B,EAAoBY,WAAWkD,GAAcN,GAAoBM,EAAa1D,EAAqBuB,cACnGvB,EAAqBQ,WAAWmD,GAAkBP,GAAoBxD,EAAoB2B,WAAYoC,KACtGkB,GAA8BjF,EAAoB2B,WAAYvB,EAAqBuB,YACnF3B,EAAoBY,WAAWkD,GAAcmB,GAA8BnB,EAAa1D,EAAqBuB,cAC7GvB,EAAqBQ,WAAWmD,GAAkBkB,GAA8BjF,EAAoB2B,WAAYoC,KAChHH,GAA4B5D,EAAoB2B,WAAYvB,EAAqBuB,YACjF3B,EAAoBY,WAAWkD,GAAcF,GAA4BE,EAAa1D,EAAqBuB,cAC3GvB,EAAqBQ,WAAWmD,GAAkBH,GAA4B5D,EAAoB2B,WAAYoC,KAC9GuB,GAAwBtF,EAAoB2B,WAAYX,EAAqBW,WAAYvB,EAAqBuB,YAC9G3B,EAAoBY,WAAWkD,IAC3BwB,GAAwBxB,EAAa9C,EAAqBW,WAAYvB,EAAqBuB,WAAW,IAE1GX,EAAqBJ,WAAW2E,IAC5BD,GAAwBtF,EAAoB2B,WAAY4D,EAAgBnF,EAAqBuB,WAAW,IAE5GvB,EAAqBQ,WAAWmD,IAC5BuB,GAAwBtF,EAAoB2B,WAAYX,EAAqBW,WAAYoC,EAAgB,IA6f7G,MAAMmD,GAAc,CAACrB,EAAQ4D,KACzB,MAAMpJ,EAAS,EAAMoJ,GACrB,IAAK5D,EACD,OAAOxF,EAEX,IAAK,MAAM/J,KAAOE,OAAOgD,KAAKqM,GAAQ,CAClC,MAAM8E,EAAatK,EAAO/J,GACpB4S,EAAarD,EAAOvP,GAM1B,GAAI4S,GAAcA,EAAWnS,eAAe,YAAa,CAGhDsJ,EAAOtJ,eAAeT,KACvB+J,EAAO/J,GAAO4S,EAAqB,UAGvC,MAAMC,EAAWD,EAAWE,UAC5B,GAAIuB,GAActB,GAAgBF,GAC9B,GAAID,EAAWM,QAAUjK,EAAKlC,OAASA,MAAMC,QAAQqN,GAAa,CAC9D,MAAMC,EAAqBD,EAAW9F,KAAKgG,GAAO3D,GAAYiC,EAAU0B,KACxExK,EAAO/J,GAAOsU,CAClB,MAAO,GAAI1B,EAAWM,QAAUjK,EAAK/I,OACjC,IAAK,IAAIsU,KAAatU,OAAOgD,KAAKmR,GAC9BA,EAAWG,GAAa5D,GAAYiC,EAAUwB,EAAWG,GAIzE,MAAO,GAAI1C,GAAiBc,GAAa,CAIrC,MAAM6B,EAAqB1K,EAAOtJ,eAAeT,GAAOqU,EAAa,CAAC,EAClEvC,GAAiB2C,KACjB1K,EAAO/J,GAAO4Q,GAAYgC,EAAY6B,GAE9C,CACJ,CACA,OAAO1K,CAAM,EAEjB,SAASgJ,GAAgB2B,GACrB,QAASA,GAAkBxU,OAAOgD,KAAKwR,GAAgBlI,QAAQpC,IAAK,CAC5D,WACA,eACF6H,SAAS7H,KAAI/I,OAAS,CAChC,CACA,SAASyQ,GAAiBhR,GACtB,MAAwB,iBAAVA,IAAuBiG,MAAMC,QAAQlG,IAAoB,OAAVA,CACjE,CAUI,MAAM4O,GAAuB,CAC7B,qBAAsB,CAClBiF,WAAY,CACRC,aAAc,4DACd1B,MAAOjK,EAAKlC,MACZ6K,SAAU,KAGlB,wBAAyB,CACrBgD,aAAc,oKACd1B,MAAOjK,EAAK/I,OACZ0R,SAAU,CAAC,I,cCjqBiB,SAAS,GAAiBtR,EAAKN,EAAKc,GAWpE,OAVId,KAAOM,EACPJ,OAAOC,eAAeG,EAAKN,EAAK,CAC5Bc,MAAOA,EACPV,YAAY,EACZ6L,cAAc,EACdC,UAAU,IAGd5L,EAAIN,GAAOc,EAERR,CACX,CA+CW,SAASuU,GAAeC,EAAUC,GACzC,MAAMC,EAAmCC,OAAOC,oBA/BrCC,QAAQ,MAAO,IAgC1B,OAAOC,GAAkBN,EAhD7B,SAAwB1I,GACpB,IAAI,IAAIC,EAAI,EAAGA,EAAIjL,UAAUC,OAAQgL,IAAI,CACrC,IAAI5H,EAAyB,MAAhBrD,UAAUiL,GAAajL,UAAUiL,GAAK,CAAC,EAChDC,EAAUpM,OAAOgD,KAAKuB,GACkB,mBAAjCvE,OAAOqM,wBACdD,EAAUA,EAAQrH,OAAO/E,OAAOqM,sBAAsB9H,GAAQ+H,QAAO,SAASC,GAC1E,OAAOvM,OAAOwM,yBAAyBjI,EAAQgI,GAAKrM,UACxD,MAEJkM,EAAQK,SAAQ,SAAS3M,GACrB,GAAiBoM,EAAQpM,EAAKyE,EAAOzE,GACzC,GACJ,CACA,OAAOoM,CACX,CAkCuC,CAAe,CAC9CiJ,YAAaJ,OAAOI,YACpBL,eAAgBA,GACjBD,IAAmBI,QAAQ,QAAS,IAC3C,CAeW,SAASC,GAAkBN,EAAUQ,GAE5C,OADcpV,OAAOgD,KAAKoS,GACbvM,QAAO,CAACwM,EAAMC,IAAOD,EAAKtE,MAAM,KAAOuE,EAAO,KAAKrD,KAAKmD,EAAOE,KAAQV,EACxF,CClDW,SAAS,IAAS,GAAEW,EAAG,eAAEC,IAChC,MAAMV,EAAmCC,OAAOC,oBA/BrCC,QAAQ,MAAO,IAgCpB/I,EAASyI,GAAeY,EAAIC,GAChBtJ,EAAOsG,WAAWsC,IAEhC,KAAAW,eAAcvJ,GAEd6I,OAAOW,SAAShK,OAAOQ,EAE/B,CCpCW,MAAMyJ,GAAU,CAACC,EAAKC,IACtB7M,GAAW5F,GAAMwS,GAAOxS,GAAOA,GAAOyS,GAAK,mBAAmBD,SAAWC,KAQnEC,GAA+BC,IAC5C,MAAMC,EAAgBD,EAA0BhR,OAAO,CACnD,cACA,mBAEJ,OAAOiE,GAAW5F,IACd,IAAKA,GAAqB,iBAAPA,EACf,OAAO,EAEX,MAAM6S,EAAK,aACX,IAAIlS,EAAQkS,EAAGC,KAAK9S,GACpB,KAAMW,GAAM,CACR,IAAKiS,EAAcjE,SAAShO,EAAM,IAC9B,OAAO,EAEXA,EAAQkS,EAAGC,KAAK9S,EACpB,CACA,OAAO,CAAI,GACZ,gEAAkE4S,EAAc3H,KAAK8H,GAAI,KAAOA,EAAI,MAAKlE,KAAK,MAAM,EAM1GmE,GAAQN,GAA4B,IAIpCO,GAASC,GACftN,GAAW5F,GAAMkT,EAAcvE,SAAS3O,IAAM,kCAAkCkT,EAAcrE,KAAK,aAEjGgC,GAAa,CACtB0B,WACAS,SACAN,+BACAO,S","sources":["webpack://@openmrs/esm-config/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-config/external system \"single-spa\"","webpack://@openmrs/esm-config/webpack/bootstrap","webpack://@openmrs/esm-config/webpack/runtime/define property getters","webpack://@openmrs/esm-config/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-config/webpack/runtime/make namespace object","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isPlaceholder.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_curry1.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_curry2.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_includesWith.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_has.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_objectIs.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isArguments.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/keys.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/type.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_equals.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_functionName.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/equals.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_curry3.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isObject.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/mergeWithKey.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/mergeDeepWithKey.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/mergeDeepRight.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/omit.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_clone.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_cloneRegExp.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/clone.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isArray.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isArrayLike.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_isString.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_xwrap.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/bind.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_arity.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/internal/_reduce.js","webpack://@openmrs/esm-config/../../../node_modules/ramda/es/reduce.js","webpack://@openmrs/esm-config/./src/types.ts","webpack://@openmrs/esm-config/./src/validators/validator.ts","webpack://@openmrs/esm-config/./src/validators/type-validators.ts","webpack://@openmrs/esm-config/./src/module-config/state.ts","webpack://@openmrs/esm-config/./src/module-config/module-config.ts","webpack://@openmrs/esm-config/./src/navigation/interpolate-string.ts","webpack://@openmrs/esm-config/./src/navigation/navigate.ts","webpack://@openmrs/esm-config/./src/validators/validators.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","module.exports = __WEBPACK_EXTERNAL_MODULE__645__;","// 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","// 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};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import _curry1 from './_curry1.js';\nimport _curry2 from './_curry2.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry3 from './internal/_curry3.js';\nimport _has from './internal/_has.js';\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nexport default mergeWithKey;","import _curry3 from './internal/_curry3.js';\nimport _isObject from './internal/_isObject.js';\nimport mergeWithKey from './mergeWithKey.js';\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nexport default mergeDeepWithKey;","import _curry2 from './internal/_curry2.js';\nimport mergeDeepWithKey from './mergeDeepWithKey.js';\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './_cloneRegExp.js';\nimport type from '../type.js';\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _clone from './internal/_clone.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nexport default clone;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _curry1 from './_curry1.js';\nimport _isArray from './_isArray.js';\nimport _isString from './_isString.js';\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _isArrayLike from './_isArrayLike.js';\nimport _xwrap from './_xwrap.js';\nimport bind from '../bind.js';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry3 from './internal/_curry3.js';\nimport _reduce from './internal/_reduce.js';\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nexport default reduce;","export var Type;\n(function(Type) {\n Type[\"Array\"] = \"Array\";\n Type[\"Boolean\"] = \"Boolean\";\n Type[\"ConceptUuid\"] = \"ConceptUuid\";\n Type[\"Number\"] = \"Number\";\n Type[\"Object\"] = \"Object\";\n Type[\"String\"] = \"String\";\n Type[\"UUID\"] = \"UUID\";\n Type[\"PersonAttributeTypeUuid\"] = \"PersonAttributeTypeUuid\";\n Type[\"PatientIdentifierTypeUuid\"] = \"PatientIdentifierTypeUuid\";\n})(Type || (Type = {}));\n","/** @module @category Config Validation */ /**\n * Constructs a custom validator.\n *\n * ### Example\n *\n * ```typescript\n * {\n * foo: {\n * _default: 0,\n * _validators: [\n * validator(val => val >= 0, \"Must not be negative.\")\n * ]\n * }\n * }\n * ```\n * @param validationFunction Takes the configured value as input. Returns true\n * if it is valid, false otherwise.\n * @param message A string message that explains why the value is invalid. Can\n * also be a function that takes the value as input and returns a string.\n * @returns A validator ready for use in a config schema\n */ export function validator(validationFunction, message) {\n return (value)=>{\n if (!validationFunction(value)) {\n if (typeof message === \"function\") {\n return message(value);\n } else {\n return message;\n }\n }\n };\n}\n","import { validator } from \"./validator\";\nexport const isArray = validator((val)=>Array.isArray(val), \"must be an array\");\nexport const isBoolean = validator((val)=>typeof val === \"boolean\", \"must be a boolean\");\nexport const isNumber = validator((val)=>typeof val === \"number\", \"must be a number\");\nexport const isString = validator((val)=>typeof val === \"string\", \"must be a string\");\nexport const isObject = validator((val)=>typeof val === \"object\" && !Array.isArray(val) && val !== null, \"must be an object (not an array or null)\");\nexport const isUuid = validator((val)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val) || /^[0-9a-f]{36}$/i.test(val), \"must be a valid UUID or a 36-character hexadecimal string\");\n","/** @module @category Config */ import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport { omit } from \"ramda\";\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n schemas: {}\n};\n/**\n * @internal\n */ export const configInternalStore = createGlobalStore(\"config-internal\", configInternalStoreInitialValue);\n/** @internal */ export const temporaryConfigStore = createGlobalStore(\"temporary-config\", {\n config: getTemporaryConfig()\n});\ntemporaryConfigStore.subscribe((state)=>{\n setTemporaryConfig(state.config);\n});\nfunction setTemporaryConfig(value) {\n localStorage.setItem(\"openmrs:temporaryConfig\", JSON.stringify(value));\n}\nfunction getTemporaryConfig() {\n try {\n return JSON.parse(localStorage.getItem(\"openmrs:temporaryConfig\") || \"{}\");\n } catch (e) {\n return {};\n }\n}\n/** @internal */ export const configExtensionStore = createGlobalStore(\"config-store-of-extension-state\", {\n mountedExtensions: []\n});\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false\n };\n}\n/** @internal */ export function getConfigStore(moduleName) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore(`config-module-${moduleName}`, initializeConfigStore());\n}\n/** @internal */ export function getExtensionSlotsConfigStore() {\n return getGlobalStore(`config-extension-slots`, {\n slots: {}\n });\n}\n/** @internal */ export function getExtensionSlotConfig(slotName) {\n return getExtensionSlotConfigFromStore(getExtensionSlotsConfigStore().getState(), slotName);\n}\n/** @internal */ export function getExtensionSlotConfigFromStore(state, slotName) {\n const slotConfig = state.slots[slotName];\n return slotConfig !== null && slotConfig !== void 0 ? slotConfig : {\n loaded: false,\n config: {}\n };\n}\n/**\n * One store for all the extensions\n * @internal\n */ export function getExtensionsConfigStore() {\n return getGlobalStore(`config-extensions`, {\n configs: {}\n });\n}\n/** @internal */ export function getExtensionConfig(slotName, extensionId) {\n const extensionConfig = Object.assign({}, getExtensionConfigFromStore(getExtensionsConfigStore().getState(), slotName, extensionId));\n extensionConfig.config = omit([\n \"Display conditions\",\n \"Translation overrides\"\n ], extensionConfig.config);\n return extensionConfig;\n}\n/** @internal */ export function getExtensionConfigFromStore(state, slotName, extensionId) {\n var _state_configs_slotName;\n const extensionConfig = (_state_configs_slotName = state.configs[slotName]) === null || _state_configs_slotName === void 0 ? void 0 : _state_configs_slotName[extensionId];\n return extensionConfig !== null && extensionConfig !== void 0 ? extensionConfig : {\n loaded: false,\n config: null\n };\n}\n/** @internal */ export const implementerToolsConfigStore = createGlobalStore(\"config-implementer-tools\", {\n config: {}\n});\n","/** @module @category Config */ function _define_property(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 return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { clone, reduce, mergeDeepRight, equals, omit } from \"ramda\";\nimport { Type } from \"../types\";\nimport { isArray, isBoolean, isUuid, isNumber, isObject, isString } from \"../validators/type-validators\";\nimport { configInternalStore, configExtensionStore, getConfigStore, getExtensionsConfigStore, implementerToolsConfigStore, temporaryConfigStore, getExtensionSlotsConfigStore } from \"./state\";\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * All `compute...` functions except `computeExtensionConfigs` are pure\n * (or are supposed to be), other than the fact that they all `setState`\n * store values at the end. `computeExtensionConfigs` calls `getGlobalStore`,\n * which creates stores.\n */ computeModuleConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeModuleConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeModuleConfig(configInternalStore.getState(), tempConfigState));\ncomputeImplementerToolsConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeImplementerToolsConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeImplementerToolsConfig(configInternalStore.getState(), tempConfigState));\ncomputeExtensionSlotConfigs(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeExtensionSlotConfigs(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeExtensionSlotConfigs(configInternalStore.getState(), tempConfigState));\ncomputeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>{\n computeExtensionConfigs(configState, configExtensionStore.getState(), temporaryConfigStore.getState());\n});\nconfigExtensionStore.subscribe((extensionState)=>{\n computeExtensionConfigs(configInternalStore.getState(), extensionState, temporaryConfigStore.getState());\n});\ntemporaryConfigStore.subscribe((tempConfigState)=>{\n computeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), tempConfigState);\n});\nfunction computeModuleConfig(state, tempState) {\n for (let moduleName of Object.keys(state.schemas)){\n const config = getConfigForModule(moduleName, state, tempState);\n const moduleStore = getConfigStore(moduleName);\n moduleStore.setState({\n loaded: true,\n config\n });\n }\n}\nfunction computeExtensionSlotConfigs(state, tempState) {\n const slotConfigs = getExtensionSlotConfigs(state, tempState);\n const newSlotStoreEntries = Object.fromEntries(Object.entries(slotConfigs).map(([slotName, config])=>[\n slotName,\n {\n loaded: true,\n config\n }\n ]));\n const slotStore = getExtensionSlotsConfigStore();\n const oldState = slotStore.getState();\n const newState = {\n slots: _object_spread({}, oldState.slots, newSlotStoreEntries)\n };\n if (!equals(oldState, newState)) {\n slotStore.setState(newState);\n }\n}\nfunction computeImplementerToolsConfig(state, tempConfigState) {\n const config = getImplementerToolsConfig(state, tempConfigState);\n implementerToolsConfigStore.setState({\n config\n });\n}\nfunction computeExtensionConfigs(configState, extensionState, tempConfigState) {\n const configs = {};\n for (let extension of extensionState.mountedExtensions){\n const config = computeExtensionConfig(extension.slotModuleName, extension.extensionModuleName, extension.slotName, extension.extensionId, configState, tempConfigState);\n configs[extension.slotName] = _object_spread_props(_object_spread({}, configs[extension.slotName]), {\n [extension.extensionId]: {\n config,\n loaded: true\n }\n });\n }\n getExtensionsConfigStore().setState({\n configs\n });\n}\n/*\n * API\n *\n */ /**\n * This defines a configuration schema for a module. The schema tells the\n * configuration system how the module can be configured. It specifies\n * what makes configuration valid or invalid.\n *\n * See [Configuration System](http://o3-dev.docs.openmrs.org/#/main/config)\n * for more information about defining a config schema.\n *\n * @param moduleName Name of the module the schema is being defined for. Generally\n * should be the one in which the `defineConfigSchema` call takes place.\n * @param schema The config schema for the module\n */ export function defineConfigSchema(moduleName, schema) {\n validateConfigSchema(moduleName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n configInternalStore.setState({\n schemas: _object_spread_props(_object_spread({}, state.schemas), {\n [moduleName]: enhancedSchema\n })\n });\n}\n/**\n * This defines a configuration schema for an extension. When a schema is defined\n * for an extension, that extension will receive the configuration corresponding\n * to that schema, rather than the configuration corresponding to the module\n * in which it is defined.\n *\n * The schema tells the configuration system how the module can be configured.\n * It specifies what makes configuration valid or invalid.\n *\n * See [Configuration System](http://o3-dev.docs.openmrs.org/#/main/config)\n * for more information about defining a config schema.\n *\n * @param extensionName Name of the extension the schema is being defined for.\n * Should match the `name` of one of the `extensions` entries being returned\n * by `setupOpenMRS`.\n * @param schema The config schema for the extension\n */ export function defineExtensionConfigSchema(extensionName, schema) {\n validateConfigSchema(extensionName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n if (state.schemas[extensionName]) {\n console.warn(`Config schema for extension ${extensionName} already exists. If there are multiple extensions with this same name, one will probably crash.`);\n }\n configInternalStore.setState({\n schemas: _object_spread_props(_object_spread({}, state.schemas), {\n [extensionName]: enhancedSchema\n })\n });\n}\nexport function provide(config, sourceName = \"provided\") {\n const state = configInternalStore.getState();\n configInternalStore.setState({\n providedConfigs: [\n ...state.providedConfigs,\n {\n source: sourceName,\n config\n }\n ]\n });\n}\n/**\n * A promise-based way to access the config as soon as it is fully loaded.\n * If it is already loaded, resolves the config in its present state.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */ export function getConfig(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = omit([\n \"Display conditions\",\n \"Translation overrides\"\n ], state.config);\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/** @internal */ export function getConfigInternal(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = state.config;\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n * @internal\n */ export function processConfig(schema, providedConfig, keyPathContext) {\n validateStructure(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n runAllValidatorsInConfigTree(schema, config, keyPathContext);\n return config;\n}\n/*\n * Helper functions\n *\n */ /**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the extension schema. If no extension\n * schema has been provided, the schema used is the schema of the module in\n * which the extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */ function computeExtensionConfig(slotModuleName, extensionModuleName, slotName, extensionId, configState, tempConfigState) {\n var _slotModuleConfig_extensionSlots, _slotModuleConfig_extensionSlots_slotName, _slotModuleConfig_extensionSlots_slotName_configure;\n const extensionName = getExtensionNameFromId(extensionId);\n const extensionConfigSchema = configState.schemas[extensionName];\n const nameOfSchemaSource = extensionConfigSchema ? extensionName : extensionModuleName;\n const providedConfigs = getProvidedConfigs(configState, tempConfigState);\n const slotModuleConfig = mergeConfigsFor(slotModuleName, providedConfigs);\n var _slotModuleConfig_extensionSlots_slotName_configure_extensionId;\n const configOverride = (_slotModuleConfig_extensionSlots_slotName_configure_extensionId = slotModuleConfig === null || slotModuleConfig === void 0 ? void 0 : (_slotModuleConfig_extensionSlots = slotModuleConfig.extensionSlots) === null || _slotModuleConfig_extensionSlots === void 0 ? void 0 : (_slotModuleConfig_extensionSlots_slotName = _slotModuleConfig_extensionSlots[slotName]) === null || _slotModuleConfig_extensionSlots_slotName === void 0 ? void 0 : (_slotModuleConfig_extensionSlots_slotName_configure = _slotModuleConfig_extensionSlots_slotName.configure) === null || _slotModuleConfig_extensionSlots_slotName_configure === void 0 ? void 0 : _slotModuleConfig_extensionSlots_slotName_configure[extensionId]) !== null && _slotModuleConfig_extensionSlots_slotName_configure_extensionId !== void 0 ? _slotModuleConfig_extensionSlots_slotName_configure_extensionId : {};\n const extensionConfig = mergeConfigsFor(nameOfSchemaSource, providedConfigs);\n const combinedConfig = mergeConfigs([\n extensionConfig,\n configOverride\n ]);\n // TODO: validate that a schema exists for the module\n const schema = extensionConfigSchema !== null && extensionConfigSchema !== void 0 ? extensionConfigSchema : configState.schemas[extensionModuleName];\n validateStructure(schema, combinedConfig, nameOfSchemaSource);\n const config = setDefaults(schema, combinedConfig);\n runAllValidatorsInConfigTree(schema, config, nameOfSchemaSource);\n delete config.extensionSlots;\n return config;\n}\nfunction getImplementerToolsConfig(configState, tempConfigState) {\n let result = getSchemaWithValuesAndSources(clone(configState.schemas));\n const configsAndSources = [\n ...configState.providedConfigs.map((c)=>[\n c.config,\n c.source\n ]),\n [\n tempConfigState.config,\n \"temporary config\"\n ]\n ];\n for (let [config, source] of configsAndSources){\n result = mergeConfigs([\n result,\n createValuesAndSourcesTree(config, source)\n ]);\n }\n return result;\n}\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty(\"_default\")) {\n return _object_spread_props(_object_spread({}, schema), {\n _value: schema._default,\n _source: \"default\"\n });\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key)=>{\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // at this point, the schema is bad and an error will have been logged during schema validation\n return {};\n }\n}\nfunction createValuesAndSourcesTree(config, source) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key)=>{\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return {\n _value: config,\n _source: source\n };\n }\n}\nfunction getExtensionSlotConfigs(configState, tempConfigState) {\n const allConfigs = mergeConfigs(getProvidedConfigs(configState, tempConfigState));\n const slotConfigPerModule = Object.keys(allConfigs).reduce((obj, key)=>{\n var _allConfigs_key;\n if ((_allConfigs_key = allConfigs[key]) === null || _allConfigs_key === void 0 ? void 0 : _allConfigs_key.extensionSlots) {\n var _allConfigs_key1;\n obj[key] = (_allConfigs_key1 = allConfigs[key]) === null || _allConfigs_key1 === void 0 ? void 0 : _allConfigs_key1.extensionSlots;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n const slotConfigs = Object.keys(slotConfigPerModule).reduce((obj, key)=>{\n obj = _object_spread({}, obj, slotConfigPerModule[key]);\n return obj;\n }, {});\n return slotConfigs;\n}\nfunction validateAllExtensionSlotConfigs(slotConfigPerModule) {\n for (let [moduleName, configBySlotName] of Object.entries(slotConfigPerModule)){\n for (let [slotName, config] of Object.entries(configBySlotName)){\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\nfunction validateExtensionSlotConfig(config, moduleName, slotName) {\n const errorPrefix = `Extension slot config '${moduleName}.extensionSlots.${slotName}`;\n const invalidKeys = Object.keys(config).filter((k)=>![\n \"add\",\n \"remove\",\n \"order\",\n \"configure\"\n ].includes(k));\n if (invalidKeys.length) {\n console.error(errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`);\n }\n if (config.add) {\n if (!Array.isArray(config.add) || !config.add.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.add' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.remove) {\n if (!Array.isArray(config.remove) || !config.remove.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.remove' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.order) {\n if (!Array.isArray(config.order) || !config.order.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.order' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n console.error(errorPrefix + `.configure' is invalid. Must be an object with extension IDs for keys`);\n }\n }\n}\nfunction getProvidedConfigs(configState, tempConfigState) {\n return [\n ...configState.providedConfigs.map((c)=>c.config),\n tempConfigState.config\n ];\n}\nfunction validateConfigSchema(moduleName, schema, keyPath = \"\") {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n for (const key of Object.keys(schema).filter((k)=>!k.startsWith(\"_\"))){\n const thisKeyPath = keyPath + (keyPath && \".\") + key;\n const schemaPart = schema[key];\n if (thisKeyPath === \"Display conditions\") {\n console.error(`${moduleName} declares a configuration option called \"Display conditions\"; the \"Display conditions\" option is a reserved name. ${updateMessage}`);\n }\n if (thisKeyPath === \"Translation overrides\") {\n console.error(`${moduleName} declares a configuration option called \"Translation overrides\"; the \"Translation overrides\" option is a reserved name. ${updateMessage}`);\n }\n if (!isOrdinaryObject(schemaPart)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`);\n continue;\n }\n if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + \"._elements\");\n }\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators){\n if (typeof validator !== \"function\") {\n console.error(`${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: validators must be functions that return either ` + `undefined or an error string. Received ${validator}.`);\n }\n }\n }\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(`${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(Type).join(\", \")}. ` + `Received '${valueType}'`);\n }\n if (Object.keys(schemaPart).every((k)=>[\n \"_description\",\n \"_validators\",\n \"_elements\",\n \"_type\"\n ].includes(k)) && !keyPath.includes(\"._elements\")) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: all config elements must have a default. ` + `Received ${JSON.stringify(schemaPart)}`);\n }\n if (elements && valueType && ![\n Type.Array,\n Type.Object\n ].includes(valueType)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` + `Received ${JSON.stringify(valueType)}`);\n }\n }\n}\nfunction getConfigForModule(moduleName, configState, tempConfigState) {\n if (!configState.schemas.hasOwnProperty(moduleName)) {\n throw Error(\"No config schema has been defined for \" + moduleName);\n }\n const schema = configState.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n validateStructure(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n runAllValidatorsInConfigTree(schema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction mergeConfigsFor(moduleName, allConfigs) {\n const allConfigsForModule = allConfigs.map(({ [moduleName]: c })=>c).filter((c)=>!!c);\n return mergeConfigs(allConfigsForModule);\n}\nfunction mergeConfigs(configs) {\n const mergeDeepAll = reduce(mergeDeepRight);\n return mergeDeepAll({}, configs);\n}\n/**\n * Recursively check the provided config tree to make sure that all\n * of the provided properties exist in the schema, and that types are\n * correct. Does not run validators yet, since those will be run on\n * the config with the defaults filled in.\n */ function validateStructure(schema, config, keyPath = \"\") {\n // validate each constituent element\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key];\n if (!schema.hasOwnProperty(key)) {\n if (!(key === \"extensionSlots\" && keyPath !== \"\")) {\n console.error(`Unknown config key '${thisKeyPath}' provided. Ignoring.`);\n }\n continue;\n }\n validateBranchStructure(schemaPart, value, thisKeyPath);\n }\n}\nfunction validateBranchStructure(schemaPart, value, keyPath) {\n checkType(keyPath, schemaPart._type, value);\n if (isOrdinaryObject(value)) {\n // structurally validate only if there's elements specified\n // or there's no `_default` value (which would indicate a freeform object)\n if (schemaPart._type === Type.Object) {\n validateDictionaryStructure(schemaPart, value, keyPath);\n } else if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse to validate nested object structure\n validateStructure(schemaPart, value, keyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArrayStructure(schemaPart, value, keyPath);\n }\n }\n}\nfunction validateDictionaryStructure(dictionarySchema, config, keyPath) {\n if (dictionarySchema._elements) {\n for (const key of Object.keys(config)){\n const value = config[key];\n validateStructure(dictionarySchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\nfunction validateArrayStructure(arraySchema, value, keyPath) {\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for(let i = 0; i < value.length; i++){\n validateBranchStructure(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n for(let i = 0; i < value.length; i++){\n var _arraySchema__elements;\n checkType(`${keyPath}[${i}]`, (_arraySchema__elements = arraySchema._elements) === null || _arraySchema__elements === void 0 ? void 0 : _arraySchema__elements._type, value[i]);\n }\n}\n/**\n * Run all the validators in the config tree. This should be run\n * on the config object after it has been filled in with all the defaults, since\n * higher-level validators may refer to default values.\n */ function runAllValidatorsInConfigTree(schema, config, keyPath = \"\") {\n // If `!schema`, there should have been a structural validation error printed already.\n if (schema) {\n if (config !== schema._default) {\n runValidators(keyPath, schema._validators, config);\n }\n if (isOrdinaryObject(config)) {\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key];\n if (schema._type === Type.Object && schema._elements) {\n runAllValidatorsInConfigTree(schema._elements, value, thisKeyPath);\n } else {\n runAllValidatorsInConfigTree(schemaPart, value, thisKeyPath);\n }\n }\n } else if (Array.isArray(config) && schema._elements) {\n for(let i = 0; i < config.length; i++){\n runAllValidatorsInConfigTree(schema._elements, config[i], `${keyPath}[${i}]`);\n }\n }\n }\n}\nfunction checkType(keyPath, _type, value) {\n if (_type) {\n const validator = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n PersonAttributeTypeUuid: isUuid,\n PatientIdentifierTypeUuid: isUuid\n };\n runValidators(keyPath, [\n validator[_type]\n ], value);\n }\n}\nfunction runValidators(keyPath, validators, value) {\n if (validators) {\n try {\n for (let validator of validators){\n const validatorResult = validator(value);\n if (typeof validatorResult === \"string\") {\n if (typeof value === \"object\") {\n console.error(`Invalid configuration for ${keyPath}: ${validatorResult}`);\n } else {\n console.error(`Invalid configuration value ${value} for ${keyPath}: ${validatorResult}`);\n }\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\". Encountered error\\n\\t${e}`);\n }\n }\n}\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema, inputConfig)=>{\n const config = clone(inputConfig);\n if (!schema) {\n return config;\n }\n for (const key of Object.keys(schema)){\n const configPart = config[key];\n const schemaPart = schema[key];\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && schemaPart.hasOwnProperty(\"_default\")) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_default`.\n if (!config.hasOwnProperty(key)) {\n config[key] = schemaPart[\"_default\"];\n }\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array && Array.isArray(configPart)) {\n const configWithDefaults = configPart.map((conf)=>setDefaults(elements, conf));\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)){\n configPart[objectKey] = setDefaults(elements, configPart[objectKey]);\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_default\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = config.hasOwnProperty(key) ? configPart : {};\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n return config;\n};\nfunction hasObjectSchema(elementsSchema) {\n return !!elementsSchema && Object.keys(elementsSchema).filter((e)=>![\n \"_default\",\n \"_validators\"\n ].includes(e)).length > 0;\n}\nfunction isOrdinaryObject(value) {\n return typeof value === \"object\" && !Array.isArray(value) && value !== null;\n}\n/**\n * Copied over from esm-extensions. It rightly belongs to that module, but esm-config\n * cannot depend on esm-extensions.\n */ function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split(\"#\");\n return extensionName;\n}\n/**\n * The implicitConfigSchema is implicitly included in every configuration schema\n */ const implicitConfigSchema = {\n \"Display conditions\": {\n privileges: {\n _description: \"The privilege(s) the user must have to use this extension\",\n _type: Type.Array,\n _default: []\n }\n },\n \"Translation overrides\": {\n _description: \"Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value\",\n _type: Type.Object,\n _default: {}\n }\n};\n","/** @module @category Navigation */ function _define_property(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 return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction trimTrailingSlash(str) {\n return str.replace(/\\/$/, \"\");\n}\n/**\n * Interpolates a string with openmrsBase and openmrsSpaBase.\n *\n * Useful for accepting `${openmrsBase}` or `${openmrsSpaBase}`plus additional template\n * parameters in configurable URLs.\n *\n * Example usage:\n * ```js\n * interpolateUrl(\"test ${openmrsBase} ${openmrsSpaBase} ok\");\n * // will return \"test /openmrs /openmrs/spa ok\"\n *\n * interpolateUrl(\"${openmrsSpaBase}/patient/${patientUuid}\", {\n * patientUuid: \"4fcb7185-c6c9-450f-8828-ccae9436bd82\",\n * }); // will return \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * This can be used in conjunction with the `navigate` function like so\n * ```js\n * navigate({\n * to: interpolateUrl(\n * \"${openmrsSpaBase}/patient/${patientUuid}\",\n * { patientUuid: patient.uuid }\n * )\n * }); // will navigate to \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * @param template A string to interpolate\n * @param additionalParams Additional values to interpolate into the string template\n */ export function interpolateUrl(template, additionalParams) {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n return interpolateString(template, _object_spread({\n openmrsBase: window.openmrsBase,\n openmrsSpaBase: openmrsSpaBase\n }, additionalParams)).replace(/^\\/\\//, \"/\"); // remove extra initial slash if present\n}\n/**\n * Interpolates values of `params` into the `template` string.\n *\n * Example usage:\n * ```js\n * interpolateString(\"test ${one} ${two} 3\", {\n * one: \"1\",\n * two: \"2\",\n * }); // will return \"test 1 2 3\"\n * interpolateString(\"test ok\", { one: \"1\", two: \"2\" }) // will return \"test ok\"\n * ```\n *\n * @param template With optional params wrapped in `${ }`\n * @param params Values to interpolate into the string template\n */ export function interpolateString(template, params) {\n const names = Object.keys(params);\n return names.reduce((prev, curr)=>prev.split(\"${\" + curr + \"}\").join(params[curr]), template);\n}\n","/** @module @category Navigation */ import { navigateToUrl } from \"single-spa\";\nimport { interpolateUrl } from \"./interpolate-string\";\nfunction trimTrailingSlash(str) {\n return str.replace(/\\/$/, \"\");\n}\n/**\n * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths\n *\n * #### Example usage:\n * ```js\n * @example\n * const config = useConfig();\n * const submitHandler = () => {\n * navigate({ to: config.links.submitSuccess });\n * };\n * ```\n * #### Example return values:\n * ```js\n * @example\n * navigate({ to: \"/some/path\" }); // => window.location.assign(\"/some/path\")\n * navigate({ to: \"https://single-spa.js.org/\" }); // => window.location.assign(\"https://single-spa.js.org/\")\n * navigate({ to: \"${openmrsBase}/some/path\" }); // => window.location.assign(\"/openmrs/some/path\")\n * navigate({ to: \"/openmrs/spa/foo/page\" }); // => navigateToUrl(\"/openmrs/spa/foo/page\")\n * navigate({ to: \"${openmrsSpaBase}/bar/page\" }); // => navigateToUrl(\"/openmrs/spa/bar/page\")\n * navigate({ to: \"/${openmrsSpaBase}/baz/page\" }) // => navigateToUrl(\"/openmrs/spa/baz/page\")\n * ```\n *\n * @param to The target path or URL. Supports templating with 'openmrsBase', 'openmrsSpaBase',\n * and any additional template parameters defined in `templateParams`.\n * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`\n * for implementations using the standard OpenMRS and SPA base paths.\n * If `templateParams` contains `{ foo: \"bar\" }`, then the URL `${openmrsBase}/${foo}`\n * will become `/openmrs/bar`.\n */ export function navigate({ to , templateParams }) {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n const target = interpolateUrl(to, templateParams);\n const isSpaPath = target.startsWith(openmrsSpaBase);\n if (isSpaPath) {\n navigateToUrl(target);\n } else {\n window.location.assign(target);\n }\n}\n","/** @module @category Config Validation */ import { validator } from \"./validator\";\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */ export const inRange = (min, max)=>{\n return validator((val)=>min <= val && val <= max, `must be between ${min} and ${max}`);\n};\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */ export const isUrlWithTemplateParameters = (allowedTemplateParameters)=>{\n const allowedParams = allowedTemplateParameters.concat([\n \"openmrsBase\",\n \"openmrsSpaBase\"\n ]);\n return validator((val)=>{\n if (!val || typeof val != \"string\") {\n return false;\n }\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n while(match){\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n match = rx.exec(val);\n }\n return true;\n }, \"Should be a URL or path. The allowed template parameters are \" + allowedParams.map((p)=>\"${\" + p + \"}\").join(\", \"));\n};\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */ export const isUrl = isUrlWithTemplateParameters([]);\n/**\n * Verifies that the value is one of the allowed options.\n * @param allowedValues The list of allowable values\n */ export const oneOf = (allowedValues)=>{\n return validator((val)=>allowedValues.includes(val), `Must be one of the following: '${allowedValues.join(\"', '\")}'.`);\n};\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n oneOf\n};\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__685__","__WEBPACK_EXTERNAL_MODULE__645__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","_isPlaceholder","a","_curry1","fn","f1","arguments","length","apply","this","_curry2","f2","b","_b","_a","_arrayFromIterator","iter","next","list","done","push","_includesWith","pred","x","idx","len","_has","is","toString","_isArguments","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","val","slice","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","f","match","typeA","equals","constructor","String","valueOf","name","message","source","global","ignoreCase","multiline","sticky","unicode","size","entries","concat","values","keysA","extendedStackA","extendedStackB","_curry3","f3","c","_c","_isObject","l","k","result","mergeDeepWithKey","lObj","rObj","lVal","rVal","names","index","_clone","refFrom","refTo","deep","pattern","copy","copiedValue","Date","RegExp","clone","Array","isArray","_isArray","_isString","nodeType","XWrap","Error","acc","bind","thisObj","n","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_arity","_iterableReduce","xf","step","_methodReduce","methodName","symIterator","iterator","_reduce","_xwrap","_arrayReduce","reduce","TypeError","Type","validator","validationFunction","isBoolean","isNumber","isString","isObject","isUuid","test","configInternalStore","createGlobalStore","providedConfigs","schemas","temporaryConfigStore","config","JSON","parse","localStorage","getItem","e","getTemporaryConfig","subscribe","state","setItem","stringify","configExtensionStore","mountedExtensions","getConfigStore","moduleName","getGlobalStore","loaded","getExtensionSlotsConfigStore","slots","getExtensionSlotConfig","slotName","getExtensionSlotConfigFromStore","getState","slotConfig","getExtensionsConfigStore","configs","getExtensionConfig","extensionId","extensionConfig","assign","getExtensionConfigFromStore","_state_configs_slotName","implementerToolsConfigStore","_define_property","configurable","writable","_object_spread","target","i","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","forEach","_object_spread_props","getOwnPropertyDescriptors","defineProperties","object","enumerableOnly","symbols","computeModuleConfig","tempState","getConfigForModule","setState","computeExtensionSlotConfigs","slotConfigs","configState","tempConfigState","allConfigs","mergeConfigs","getProvidedConfigs","slotConfigPerModule","_allConfigs_key","_allConfigs_key1","extensionSlots","configBySlotName","validateExtensionSlotConfig","validateAllExtensionSlotConfigs","getExtensionSlotConfigs","newSlotStoreEntries","fromEntries","map","slotStore","oldState","newState","computeImplementerToolsConfig","getSchemaWithValuesAndSources","configsAndSources","createValuesAndSourcesTree","getImplementerToolsConfig","computeExtensionConfigs","extensionState","extension","computeExtensionConfig","slotModuleName","extensionModuleName","defineConfigSchema","schema","validateConfigSchema","enhancedSchema","implicitConfigSchema","defineExtensionConfigSchema","extensionName","console","warn","provide","sourceName","getConfig","Promise","resolve","store","update","unsubscribe","getConfigInternal","processConfig","providedConfig","keyPathContext","validateStructure","setDefaults","runAllValidatorsInConfigTree","_slotModuleConfig_extensionSlots","_slotModuleConfig_extensionSlots_slotName","_slotModuleConfig_extensionSlots_slotName_configure","split","getExtensionNameFromId","extensionConfigSchema","nameOfSchemaSource","slotModuleConfig","mergeConfigsFor","_slotModuleConfig_extensionSlots_slotName_configure_extensionId","configOverride","configure","combinedConfig","_value","_default","_source","isOrdinaryObject","errorPrefix","invalidKeys","includes","error","join","add","every","remove","order","keyPath","updateMessage","startsWith","thisKeyPath","schemaPart","elements","_elements","hasObjectSchema","_validators","valueType","_type","inputConfig","mergeDeepAll","validateBranchStructure","checkType","dictionarySchema","validateDictionaryStructure","arraySchema","_arraySchema__elements","validateArrayStructure","runValidators","Boolean","ConceptUuid","Number","UUID","PersonAttributeTypeUuid","PatientIdentifierTypeUuid","validators","validatorResult","configPart","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","privileges","_description","interpolateUrl","template","additionalParams","openmrsSpaBase","window","getOpenmrsSpaBase","replace","interpolateString","openmrsBase","params","prev","curr","to","templateParams","navigateToUrl","location","inRange","min","max","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","exec","p","isUrl","oneOf","allowedValues"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-config",
3
- "version": "5.0.1-pre.813",
3
+ "version": "5.0.1",
4
4
  "license": "MPL-2.0",
5
5
  "description": "A configuration library for the OpenMRS Single-Spa framework.",
6
6
  "browser": "dist/openmrs-esm-module-config.js",
@@ -45,11 +45,11 @@
45
45
  "single-spa": "5.x"
46
46
  },
47
47
  "devDependencies": {
48
- "@openmrs/esm-globals": "^5.0.1-pre.813",
49
- "@openmrs/esm-state": "^5.0.1-pre.813",
48
+ "@openmrs/esm-globals": "^5.0.1",
49
+ "@openmrs/esm-state": "^5.0.1",
50
50
  "@types/ramda": "^0.26.44",
51
51
  "babel-plugin-ramda": "^2.0.0",
52
52
  "single-spa": "^5.9.2"
53
53
  },
54
- "gitHead": "0987145a28a9cddc5dca2eb63fc0728c0bc0e2fe"
54
+ "gitHead": "c29b88275be224849a36fcad074af34e3f30f495"
55
55
  }
package/webpack.config.js CHANGED
@@ -9,15 +9,15 @@ module.exports = (env) => ({
9
9
  entry: [resolve(__dirname, "src/index.ts")],
10
10
  devtool: "source-map",
11
11
  output: {
12
- filename: "openmrs-esm-config.js",
12
+ filename: "openmrs-esm-module-config.js",
13
13
  path: resolve(__dirname, "dist"),
14
- library: { type: "var", name: "_openmrs_esm_config" },
14
+ libraryTarget: "system",
15
15
  },
16
16
  module: {
17
17
  rules: [
18
18
  {
19
19
  test: /\.m?(js|ts|tsx)$/,
20
- exclude: /(node_modules|bower_components)/,
20
+ exclude: /node_modules/,
21
21
  use: "@swc-node/loader",
22
22
  },
23
23
  ],
@@ -25,6 +25,7 @@ module.exports = (env) => ({
25
25
  resolve: {
26
26
  extensions: [".ts", ".js", ".tsx", ".jsx"],
27
27
  },
28
+ externals: Object.keys(peerDependencies || {}),
28
29
  plugins: [
29
30
  new CleanWebpackPlugin(),
30
31
  new ForkTsCheckerWebpackPlugin(),
@@ -1,2 +0,0 @@
1
- var _openmrs_esm_config;(()=>{var t={403:()=>{(()=>{"use strict";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{createAppState:()=>u,createGlobalStore:()=>i,getAppState:()=>c,getGlobalStore:()=>a,subscribeTo:()=>s});const n=t=>{let e;const n=new Set,r=(t,r)=>{const o="function"==typeof t?t(e):t;if(!Object.is(o,e)){const t=e;e=(null!=r?r:"object"!=typeof o)?o:Object.assign({},e,o),n.forEach((n=>n(e,t)))}},o=()=>e,i={setState:r,getState:o,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return e=t(r,o,i),i},r=t=>t?n(t):n,o={};function i(t,e){const n=o[t];if(n)return n.active?console.error("Cannot override an existing store. Make sure that stores are only created once."):n.value.setState(e,!0),n.active=!0,n.value;{const n=r()((()=>e));return o[t]={value:n,active:!0},n}}function a(t,e){const n=o[t];if(!n){const n=r()((()=>null!=e?e:{}));return o[t]={value:n,active:!1},n}return n.value}function u(t){return i("app",t)}function c(){return a("app",{})}function s(t,e,n){let r=e(t.getState());return t.subscribe((t=>{const o=e(t);o!==r&&(r=o,n(o))}))}})()}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"use strict";function t(t){return null!=t&&"object"==typeof t&&!0===t["@@functional/placeholder"]}function e(e){return function n(r){return 0===arguments.length||t(r)?n:e.apply(this,arguments)}}function o(n){return function r(o,i){switch(arguments.length){case 0:return r;case 1:return t(o)?r:e((function(t){return n(o,t)}));default:return t(o)&&t(i)?r:t(o)?e((function(t){return n(t,i)})):t(i)?e((function(t){return n(o,t)})):n(o,i)}}}function i(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function a(t,e,n){for(var r=0,o=n.length;r<o;){if(t(e,n[r]))return!0;r+=1}return!1}function u(t,e){return Object.prototype.hasOwnProperty.call(e,t)}n.r(r),n.d(r,{Type:()=>q,configExtensionStore:()=>tt,configInternalStore:()=>Y,defineConfigSchema:()=>mt,defineExtensionConfigSchema:()=>yt,getConfig:()=>bt,getConfigInternal:()=>wt,getConfigStore:()=>et,getExtensionConfig:()=>at,getExtensionConfigFromStore:()=>ut,getExtensionSlotConfig:()=>rt,getExtensionSlotConfigFromStore:()=>ot,getExtensionSlotsConfigStore:()=>nt,getExtensionsConfigStore:()=>it,implementerToolsConfigStore:()=>ct,inRange:()=>$n,interpolateString:()=>Tn,interpolateUrl:()=>An,isUrl:()=>Nn,isUrlWithTemplateParameters:()=>xn,navigate:()=>_n,oneOf:()=>Un,processConfig:()=>Ot,provide:()=>vt,temporaryConfigStore:()=>Z,validator:()=>F,validators:()=>Dn});const c="function"==typeof Object.is?Object.is:function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};var s=Object.prototype.toString,f=function(){return"[object Arguments]"===s.call(arguments)?function(t){return"[object Arguments]"===s.call(t)}:function(t){return u("callee",t)}}();const l=f;var p=!{toString:null}.propertyIsEnumerable("toString"),d=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],h=function(){return arguments.propertyIsEnumerable("length")}(),g=function(t,e){for(var n=0;n<t.length;){if(t[n]===e)return!0;n+=1}return!1};const m="function"!=typeof Object.keys||h?e((function(t){if(Object(t)!==t)return[];var e,n,r=[],o=h&&l(t);for(e in t)!u(e,t)||o&&"length"===e||(r[r.length]=e);if(p)for(n=d.length-1;n>=0;)u(e=d[n],t)&&!g(r,e)&&(r[r.length]=e),n-=1;return r})):e((function(t){return Object(t)!==t?[]:Object.keys(t)})),y=e((function(t){return null===t?"Null":void 0===t?"Undefined":Object.prototype.toString.call(t).slice(8,-1)}));function v(t,e,n,r){var o=i(t);function u(t,e){return b(t,e,n.slice(),r.slice())}return!a((function(t,e){return!a(u,e,t)}),i(e),o)}function b(t,e,n,r){if(c(t,e))return!0;var o=y(t);if(o!==y(e))return!1;if(null==t||null==e)return!1;if("function"==typeof t["fantasy-land/equals"]||"function"==typeof e["fantasy-land/equals"])return"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e)&&"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t);if("function"==typeof t.equals||"function"==typeof e.equals)return"function"==typeof t.equals&&t.equals(e)&&"function"==typeof e.equals&&e.equals(t);switch(o){case"Arguments":case"Array":case"Object":if("function"==typeof t.constructor&&"Promise"===function(t){var e=String(t).match(/^function (\w*)/);return null==e?"":e[1]}(t.constructor))return t===e;break;case"Boolean":case"Number":case"String":if(typeof t!=typeof e||!c(t.valueOf(),e.valueOf()))return!1;break;case"Date":if(!c(t.valueOf(),e.valueOf()))return!1;break;case"Error":return t.name===e.name&&t.message===e.message;case"RegExp":if(t.source!==e.source||t.global!==e.global||t.ignoreCase!==e.ignoreCase||t.multiline!==e.multiline||t.sticky!==e.sticky||t.unicode!==e.unicode)return!1}for(var i=n.length-1;i>=0;){if(n[i]===t)return r[i]===e;i-=1}switch(o){case"Map":return t.size===e.size&&v(t.entries(),e.entries(),n.concat([t]),r.concat([e]));case"Set":return t.size===e.size&&v(t.values(),e.values(),n.concat([t]),r.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var a=m(t);if(a.length!==m(e).length)return!1;var s=n.concat([t]),f=r.concat([e]);for(i=a.length-1;i>=0;){var l=a[i];if(!u(l,e)||!b(e[l],t[l],s,f))return!1;i-=1}return!0}var w=o((function(t,e){return b(t,e,[],[])}));const O=w;function S(n){return function r(i,a,u){switch(arguments.length){case 0:return r;case 1:return t(i)?r:o((function(t,e){return n(i,t,e)}));case 2:return t(i)&&t(a)?r:t(i)?o((function(t,e){return n(t,a,e)})):t(a)?o((function(t,e){return n(i,t,e)})):e((function(t){return n(i,a,t)}));default:return t(i)&&t(a)&&t(u)?r:t(i)&&t(a)?o((function(t,e){return n(t,e,u)})):t(i)&&t(u)?o((function(t,e){return n(t,a,e)})):t(a)&&t(u)?o((function(t,e){return n(i,t,e)})):t(i)?e((function(t){return n(t,a,u)})):t(a)?e((function(t){return n(i,t,u)})):t(u)?e((function(t){return n(i,a,t)})):n(i,a,u)}}}function E(t){return"[object Object]"===Object.prototype.toString.call(t)}var P=S((function(t,e,n){var r,o={};for(r in e)u(r,e)&&(o[r]=u(r,n)?t(r,e[r],n[r]):e[r]);for(r in n)u(r,n)&&!u(r,o)&&(o[r]=n[r]);return o}));const j=P;var A=S((function t(e,n,r){return j((function(n,r,o){return E(r)&&E(o)?t(e,r,o):e(n,r,o)}),n,r)}));const T=A,_=o((function(t,e){return T((function(t,e,n){return n}),t,e)})),$=o((function(t,e){for(var n={},r={},o=0,i=t.length;o<i;)r[t[o]]=1,o+=1;for(var a in e)r.hasOwnProperty(a)||(n[a]=e[a]);return n}));function x(t,e,n,r){var o,i=function(o){for(var i=e.length,a=0;a<i;){if(t===e[a])return n[a];a+=1}for(var u in e[a+1]=t,n[a+1]=o,t)o[u]=r?x(t[u],e,n,!0):t[u];return o};switch(y(t)){case"Object":return i({});case"Array":return i([]);case"Date":return new Date(t.valueOf());case"RegExp":return o=t,new RegExp(o.source,(o.global?"g":"")+(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.sticky?"y":"")+(o.unicode?"u":""));default:return t}}const N=e((function(t){return null!=t&&"function"==typeof t.clone?t.clone():x(t,[],[],!0)})),U=Array.isArray||function(t){return null!=t&&t.length>=0&&"[object Array]"===Object.prototype.toString.call(t)};var D=e((function(t){return!!U(t)||!!t&&"object"==typeof t&&!function(t){return"[object String]"===Object.prototype.toString.call(t)}(t)&&(1===t.nodeType?!!t.length:0===t.length||t.length>0&&t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1))}));const k=D;var I=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,e){return this.f(t,e)},t}(),C=o((function(t,e){return function(t,e){switch(t){case 0:return function(){return e.apply(this,arguments)};case 1:return function(t){return e.apply(this,arguments)};case 2:return function(t,n){return e.apply(this,arguments)};case 3:return function(t,n,r){return e.apply(this,arguments)};case 4:return function(t,n,r,o){return e.apply(this,arguments)};case 5:return function(t,n,r,o,i){return e.apply(this,arguments)};case 6:return function(t,n,r,o,i,a){return e.apply(this,arguments)};case 7:return function(t,n,r,o,i,a,u){return e.apply(this,arguments)};case 8:return function(t,n,r,o,i,a,u,c){return e.apply(this,arguments)};case 9:return function(t,n,r,o,i,a,u,c,s){return e.apply(this,arguments)};case 10:return function(t,n,r,o,i,a,u,c,s,f){return e.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}(t.length,(function(){return t.apply(e,arguments)}))}));const M=C;function R(t,e,n){for(var r=n.next();!r.done;){if((e=t["@@transducer/step"](e,r.value))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r=n.next()}return t["@@transducer/result"](e)}function B(t,e,n,r){return t["@@transducer/result"](n[r](M(t["@@transducer/step"],t),e))}var L="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function G(t,e,n){if("function"==typeof t&&(t=function(t){return new I(t)}(t)),k(n))return function(t,e,n){for(var r=0,o=n.length;r<o;){if((e=t["@@transducer/step"](e,n[r]))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r+=1}return t["@@transducer/result"](e)}(t,e,n);if("function"==typeof n["fantasy-land/reduce"])return B(t,e,n,"fantasy-land/reduce");if(null!=n[L])return R(t,e,n[L]());if("function"==typeof n.next)return R(t,e,n);if("function"==typeof n.reduce)return B(t,e,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}const W=S(G);var q;function F(t,e){return n=>{if(!t(n))return"function"==typeof e?e(n):e}}!function(t){t.Array="Array",t.Boolean="Boolean",t.ConceptUuid="ConceptUuid",t.Number="Number",t.Object="Object",t.String="String",t.UUID="UUID",t.PersonAttributeTypeUuid="PersonAttributeTypeUuid",t.PatientIdentifierTypeUuid="PatientIdentifierTypeUuid"}(q||(q={}));const J=F((t=>Array.isArray(t)),"must be an array"),z=F((t=>"boolean"==typeof t),"must be a boolean"),K=F((t=>"number"==typeof t),"must be a number"),H=F((t=>"string"==typeof t),"must be a string"),Q=F((t=>"object"==typeof t&&!Array.isArray(t)&&null!==t),"must be an object (not an array or null)"),V=F((t=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)||/^[0-9a-f]{36}$/i.test(t)),"must be a valid UUID or a 36-character hexadecimal string");var X=n(403);const Y=(0,X.createGlobalStore)("config-internal",{providedConfigs:[],schemas:{}}),Z=(0,X.createGlobalStore)("temporary-config",{config:function(){try{return JSON.parse(localStorage.getItem("openmrs:temporaryConfig")||"{}")}catch(t){return{}}}()});Z.subscribe((t=>{var e;e=t.config,localStorage.setItem("openmrs:temporaryConfig",JSON.stringify(e))}));const tt=(0,X.createGlobalStore)("config-store-of-extension-state",{mountedExtensions:[]});function et(t){return(0,X.getGlobalStore)(`config-module-${t}`,{config:null,loaded:!1})}function nt(){return(0,X.getGlobalStore)("config-extension-slots",{slots:{}})}function rt(t){return ot(nt().getState(),t)}function ot(t,e){const n=t.slots[e];return null!=n?n:{loaded:!1,config:{}}}function it(){return(0,X.getGlobalStore)("config-extensions",{configs:{}})}function at(t,e){const n=Object.assign({},ut(it().getState(),t,e));return n.config=$(["Display conditions","Translation overrides"],n.config),n}function ut(t,e,n){var r;const o=null===(r=t.configs[e])||void 0===r?void 0:r[n];return null!=o?o:{loaded:!1,config:null}}const ct=(0,X.createGlobalStore)("config-implementer-tools",{config:{}});function st(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ft(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),r.forEach((function(e){st(t,e,n[e])}))}return t}function lt(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n.push.apply(n,r)}return n}(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})),t}function pt(t,e){for(let n of Object.keys(t.schemas)){const r=_t(n,t,e);et(n).setState({loaded:!0,config:r})}}function dt(t,e){const n=function(t,e){const n=xt(At(t,e)),r=Object.keys(n).reduce(((t,e)=>{var r,o;return(null===(r=n[e])||void 0===r?void 0:r.extensionSlots)&&(t[e]=null===(o=n[e])||void 0===o?void 0:o.extensionSlots),t}),{});!function(t){for(let[e,n]of Object.entries(t))for(let[t,r]of Object.entries(n))jt(r,e,t)}(r);return Object.keys(r).reduce(((t,e)=>ft({},t,r[e])),{})}(t,e),r=Object.fromEntries(Object.entries(n).map((([t,e])=>[t,{loaded:!0,config:e}]))),o=nt(),i=o.getState(),a={slots:ft({},i.slots,r)};O(i,a)||o.setState(a)}function ht(t,e){const n=function(t,e){let n=Et(N(t.schemas));const r=[...t.providedConfigs.map((t=>[t.config,t.source])),[e.config,"temporary config"]];for(let[t,e]of r)n=xt([n,Pt(t,e)]);return n}(t,e);ct.setState({config:n})}function gt(t,e,n){const r={};for(let o of e.mountedExtensions){const e=St(o.slotModuleName,o.extensionModuleName,o.slotName,o.extensionId,t,n);r[o.slotName]=lt(ft({},r[o.slotName]),{[o.extensionId]:{config:e,loaded:!0}})}it().setState({configs:r})}function mt(t,e){Tt(t,e);const n=_(e,Bt),r=Y.getState();Y.setState({schemas:lt(ft({},r.schemas),{[t]:n})})}function yt(t,e){Tt(t,e);const n=_(e,Bt),r=Y.getState();r.schemas[t]&&console.warn(`Config schema for extension ${t} already exists. If there are multiple extensions with this same name, one will probably crash.`),Y.setState({schemas:lt(ft({},r.schemas),{[t]:n})})}function vt(t,e="provided"){const n=Y.getState();Y.setState({providedConfigs:[...n.providedConfigs,{source:e,config:t}]})}function bt(t){return new Promise((e=>{const n=et(t);function r(t){if(t.loaded&&t.config){const n=$(["Display conditions","Translation overrides"],t.config);e(n),o&&o()}}r(n.getState());const o=n.subscribe(r)}))}function wt(t){return new Promise((e=>{const n=et(t);function r(t){if(t.loaded&&t.config){const n=t.config;e(n),o&&o()}}r(n.getState());const o=n.subscribe(r)}))}function Ot(t,e,n){Nt(t,e,n);const r=Ct(t,e);return Dt(t,r,n),r}function St(t,e,n,r,o,i){var a,u,c;const s=function(t){const[e]=t.split("#");return e}(r),f=o.schemas[s],l=f?s:e,p=At(o,i),d=$t(t,p);var h;const g=null!==(h=null==d||null===(a=d.extensionSlots)||void 0===a||null===(u=a[n])||void 0===u||null===(c=u.configure)||void 0===c?void 0:c[r])&&void 0!==h?h:{},m=xt([$t(l,p),g]),y=null!=f?f:o.schemas[e];Nt(y,m,l);const v=Ct(y,m);return Dt(y,v,l),delete v.extensionSlots,v}function Et(t){return t.hasOwnProperty("_default")?lt(ft({},t),{_value:t._default,_source:"default"}):Rt(t)?Object.keys(t).reduce(((e,n)=>(e[n]=Et(t[n]),e)),{}):{}}function Pt(t,e){return Rt(t)?Object.keys(t).reduce(((n,r)=>(n[r]=Pt(t[r],e),n)),{}):{_value:t,_source:e}}function jt(t,e,n){const r=`Extension slot config '${e}.extensionSlots.${n}`,o=Object.keys(t).filter((t=>!["add","remove","order","configure"].includes(t)));o.length&&console.error(r+`' contains invalid keys '${o.join("', '")}'`),t.add&&(Array.isArray(t.add)&&t.add.every((t=>"string"==typeof t))||console.error(r+".add' is invalid. Must be an array of strings (extension IDs)")),t.remove&&(Array.isArray(t.remove)&&t.remove.every((t=>"string"==typeof t))||console.error(r+".remove' is invalid. Must be an array of strings (extension IDs)")),t.order&&(Array.isArray(t.order)&&t.order.every((t=>"string"==typeof t))||console.error(r+".order' is invalid. Must be an array of strings (extension IDs)")),t.configure&&(Rt(t.configure)||console.error(r+".configure' is invalid. Must be an object with extension IDs for keys"))}function At(t,e){return[...t.providedConfigs.map((t=>t.config)),e.config]}function Tt(t,e,n=""){const r="Please verify that you are running the latest version and, if so, alert the maintainer.";for(const o of Object.keys(e).filter((t=>!t.startsWith("_")))){const i=n+(n&&".")+o,a=e[o];if("Display conditions"===i&&console.error(`${t} declares a configuration option called "Display conditions"; the "Display conditions" option is a reserved name. ${r}`),"Translation overrides"===i&&console.error(`${t} declares a configuration option called "Translation overrides"; the "Translation overrides" option is a reserved name. ${r}`),!Rt(a)){console.error(`${t} has bad config schema definition for key '${i}'. ${r}`);continue}a.hasOwnProperty("_default")||Tt(t,a,i);const u=a._elements;if(Mt(u)&&Tt(t,u,i+"._elements"),a._validators)for(let e of a._validators)"function"!=typeof e&&console.error(`${t} has invalid validator for key '${i}' ${r}.\n\nIf you're the maintainer: validators must be functions that return either undefined or an error string. Received ${e}.`);const c=a._type;c&&!Object.values(q).includes(c)&&console.error(`${t} has invalid type for key '${i}' ${r}.\n\nIf you're the maintainer: the allowed types are ${Object.values(q).join(", ")}. Received '${c}'`),Object.keys(a).every((t=>["_description","_validators","_elements","_type"].includes(t)))&&!n.includes("._elements")&&console.error(`${t} has bad config schema definition for key '${i}'. ${r}.\n\nIf you're the maintainer: all config elements must have a default. Received ${JSON.stringify(a)}`),u&&c&&![q.Array,q.Object].includes(c)&&console.error(`${t} has bad config schema definition for key '${i}'. ${r}.\n\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. Received ${JSON.stringify(c)}`)}}function _t(t,e,n){if(!e.schemas.hasOwnProperty(t))throw Error("No config schema has been defined for "+t);const r=e.schemas[t],o=$t(t,At(e,n));Nt(r,o,t);const i=Ct(r,o);return Dt(r,i,t),delete i.extensionSlots,i}function $t(t,e){const n=e.map((({[t]:e})=>e)).filter((t=>!!t));return xt(n)}function xt(t){return W(_)({},t)}function Nt(t,e,n=""){for(const r of Object.keys(e)){const o=e[r],i=n+"."+r,a=t[r];t.hasOwnProperty(r)?Ut(a,o,i):"extensionSlots"===r&&""!==n||console.error(`Unknown config key '${i}' provided. Ignoring.`)}}function Ut(t,e,n){kt(n,t._type,e),Rt(e)?t._type===q.Object?function(t,e,n){if(t._elements)for(const r of Object.keys(e)){const o=e[r];Nt(t._elements,o,`${n}.${r}`)}}(t,e,n):t.hasOwnProperty("_default")||Nt(t,e,n):t._type===q.Array&&function(t,e,n){if(Mt(t._elements))for(let r=0;r<e.length;r++)Ut(t._elements,e[r],`${n}[${r}]`);for(let o=0;o<e.length;o++){var r;kt(`${n}[${o}]`,null===(r=t._elements)||void 0===r?void 0:r._type,e[o])}}(t,e,n)}function Dt(t,e,n=""){if(t)if(e!==t._default&&It(n,t._validators,e),Rt(e))for(const r of Object.keys(e)){const o=e[r],i=n+"."+r,a=t[r];t._type===q.Object&&t._elements?Dt(t._elements,o,i):Dt(a,o,i)}else if(Array.isArray(e)&&t._elements)for(let r=0;r<e.length;r++)Dt(t._elements,e[r],`${n}[${r}]`)}function kt(t,e,n){e&&It(t,[{Array:J,Boolean:z,ConceptUuid:V,Number:K,Object:Q,String:H,UUID:V,PersonAttributeTypeUuid:V,PatientIdentifierTypeUuid:V}[e]],n)}function It(t,e,n){if(e)try{for(let r of e){const e=r(n);"string"==typeof e&&("object"==typeof n?console.error(`Invalid configuration for ${t}: ${e}`):console.error(`Invalid configuration value ${n} for ${t}: ${e}`))}}catch(e){console.error(`Skipping invalid validator at "${t}". Encountered error\n\t${e}`)}}pt(Y.getState(),Z.getState()),Y.subscribe((t=>pt(t,Z.getState()))),Z.subscribe((t=>pt(Y.getState(),t))),ht(Y.getState(),Z.getState()),Y.subscribe((t=>ht(t,Z.getState()))),Z.subscribe((t=>ht(Y.getState(),t))),dt(Y.getState(),Z.getState()),Y.subscribe((t=>dt(t,Z.getState()))),Z.subscribe((t=>dt(Y.getState(),t))),gt(Y.getState(),tt.getState(),Z.getState()),Y.subscribe((t=>{gt(t,tt.getState(),Z.getState())})),tt.subscribe((t=>{gt(Y.getState(),t,Z.getState())})),Z.subscribe((t=>{gt(Y.getState(),tt.getState(),t)}));const Ct=(t,e)=>{const n=N(e);if(!t)return n;for(const e of Object.keys(t)){const r=n[e],o=t[e];if(o&&o.hasOwnProperty("_default")){n.hasOwnProperty(e)||(n[e]=o._default);const t=o._elements;if(r&&Mt(t))if(o._type===q.Array&&Array.isArray(r)){const o=r.map((e=>Ct(t,e)));n[e]=o}else if(o._type===q.Object)for(let e of Object.keys(r))r[e]=Ct(t,r[e])}else if(Rt(o)){const t=n.hasOwnProperty(e)?r:{};Rt(t)&&(n[e]=Ct(o,t))}}return n};function Mt(t){return!!t&&Object.keys(t).filter((t=>!["_default","_validators"].includes(t))).length>0}function Rt(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}const Bt={"Display conditions":{privileges:{_description:"The privilege(s) the user must have to use this extension",_type:q.Array,_default:[]}},"Translation overrides":{_description:"Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value",_type:q.Object,_default:{}}};var Lt=Object.freeze({__proto__:null,get start(){return Sn},get ensureJQuerySupport(){return Qe},get setBootstrapMaxTime(){return xe},get setMountMaxTime(){return Ne},get setUnmountMaxTime(){return Ue},get setUnloadMaxTime(){return De},get registerApplication(){return cn},get unregisterApplication(){return fn},get getMountedApps(){return on},get getAppStatus(){return un},get unloadApplication(){return ln},get checkActivityFunctions(){return sn},get getAppNames(){return an},get pathToActiveWhen(){return hn},get navigateToUrl(){return Ge},get triggerAppChange(){return vn},get addErrorHandler(){return Kt},get removeErrorHandler(){return Ht},get mountRootParcel(){return je},get NOT_LOADED(){return Xt},get LOADING_SOURCE_CODE(){return Yt},get NOT_BOOTSTRAPPED(){return Zt},get BOOTSTRAPPING(){return te},get NOT_MOUNTED(){return ee},get MOUNTING(){return ne},get UPDATING(){return oe},get LOAD_ERROR(){return ae},get MOUNTED(){return re},get UNMOUNTING(){return ie},get SKIP_BECAUSE_BROKEN(){return ue}});function Gt(t){return(Gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Wt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var qt=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{}).CustomEvent,Ft=function(){try{var t=new qt("cat",{detail:{foo:"bar"}});return"cat"===t.type&&"bar"===t.detail.foo}catch(t){}return!1}()?qt:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(t,e){var n=document.createEvent("CustomEvent");return e?n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail):n.initCustomEvent(t,!1,!1,void 0),n}:function(t,e){var n=document.createEventObject();return n.type=t,e?(n.bubbles=Boolean(e.bubbles),n.cancelable=Boolean(e.cancelable),n.detail=e.detail):(n.bubbles=!1,n.cancelable=!1,n.detail=void 0),n},Jt=[];function zt(t,e,n){var r=Vt(t,e,n);Jt.length?Jt.forEach((function(t){return t(r)})):setTimeout((function(){throw r}))}function Kt(t){if("function"!=typeof t)throw Error(Qt(28,!1));Jt.push(t)}function Ht(t){if("function"!=typeof t)throw Error(Qt(29,!1));var e=!1;return Jt=Jt.filter((function(n){var r=n===t;return e=e||r,!r})),e}function Qt(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return"single-spa minified message #".concat(t,": ").concat(e?e+" ":"","See https://single-spa.js.org/error/?code=").concat(t).concat(r.length?"&arg=".concat(r.join("&arg=")):"")}function Vt(t,e,n){var r,o="".concat(pe(e)," '").concat(fe(e),"' died in status ").concat(e.status,": ");if(t instanceof Error){try{t.message=o+t.message}catch(t){}r=t}else{console.warn(Qt(30,!1,e.status,fe(e)));try{r=Error(o+JSON.stringify(t))}catch(e){r=t}}return r.appOrParcelName=fe(e),e.status=n,r}var Xt="NOT_LOADED",Yt="LOADING_SOURCE_CODE",Zt="NOT_BOOTSTRAPPED",te="BOOTSTRAPPING",ee="NOT_MOUNTED",ne="MOUNTING",re="MOUNTED",oe="UPDATING",ie="UNMOUNTING",ae="LOAD_ERROR",ue="SKIP_BECAUSE_BROKEN";function ce(t){return t.status===re}function se(t){try{return t.activeWhen(window.location)}catch(e){return zt(e,t,ue),!1}}function fe(t){return t.name}function le(t){return Boolean(t.unmountThisParcel)}function pe(t){return le(t)?"parcel":"application"}function de(){for(var t=arguments.length-1;t>0;t--)for(var e in arguments[t])"__proto__"!==e&&(arguments[t-1][e]=arguments[t][e]);return arguments[0]}function he(t,e){for(var n=0;n<t.length;n++)if(e(t[n]))return t[n];return null}function ge(t){return t&&("function"==typeof t||(e=t,Array.isArray(e)&&!he(e,(function(t){return"function"!=typeof t}))));var e}function me(t,e){var n=t[e]||[];0===(n=Array.isArray(n)?n:[n]).length&&(n=[function(){return Promise.resolve()}]);var r=pe(t),o=fe(t);return function(t){return n.reduce((function(n,i,a){return n.then((function(){var n=i(t);return ye(n)?n:Promise.reject(Qt(15,!1,r,o,e,a))}))}),Promise.resolve())}}function ye(t){return t&&"function"==typeof t.then&&"function"==typeof t.catch}function ve(t,e){return Promise.resolve().then((function(){return t.status!==Zt?t:(t.status=te,t.bootstrap?ke(t,"bootstrap").then(n).catch((function(n){if(e)throw Vt(n,t,ue);return zt(n,t,ue),t})):Promise.resolve().then(n))}));function n(){return t.status=ee,t}}function be(t,e){return Promise.resolve().then((function(){if(t.status!==re)return t;t.status=ie;var n=Object.keys(t.parcels).map((function(e){return t.parcels[e].unmountThisParcel()}));return Promise.all(n).then(r,(function(n){return r().then((function(){var r=Error(n.message);if(e)throw Vt(r,t,ue);zt(r,t,ue)}))})).then((function(){return t}));function r(){return ke(t,"unmount").then((function(){t.status=ee})).catch((function(n){if(e)throw Vt(n,t,ue);zt(n,t,ue)}))}}))}var we=!1,Oe=!1;function Se(t,e){return Promise.resolve().then((function(){return t.status!==ee?t:(we||(window.dispatchEvent(new Ft("single-spa:before-first-mount")),we=!0),ke(t,"mount").then((function(){return t.status=re,Oe||(window.dispatchEvent(new Ft("single-spa:first-mount")),Oe=!0),t})).catch((function(n){return t.status=re,be(t,!0).then(r,r);function r(){if(e)throw Vt(n,t,ue);return zt(n,t,ue),t}})))}))}var Ee=0,Pe={parcels:{}};function je(){return Ae.apply(Pe,arguments)}function Ae(t,e){var n=this;if(!t||"object"!==Gt(t)&&"function"!=typeof t)throw Error(Qt(2,!1));if(t.name&&"string"!=typeof t.name)throw Error(Qt(3,!1,Gt(t.name)));if("object"!==Gt(e))throw Error(Qt(4,!1,name,Gt(e)));if(!e.domElement)throw Error(Qt(5,!1,name));var r,o=Ee++,i="function"==typeof t,a=i?t:function(){return Promise.resolve(t)},u={id:o,parcels:{},status:i?Yt:Zt,customProps:e,parentName:fe(n),unmountThisParcel:function(){return p.then((function(){if(u.status!==re)throw Error(Qt(6,!1,name,u.status));return be(u,!0)})).then((function(t){return u.parentName&&delete n.parcels[u.id],t})).then((function(t){return s(t),t})).catch((function(t){throw u.status=ue,f(t),t}))}};n.parcels[o]=u;var c=a();if(!c||"function"!=typeof c.then)throw Error(Qt(7,!1));var s,f,l=(c=c.then((function(t){if(!t)throw Error(Qt(8,!1));var e=t.name||"parcel-".concat(o);if(Object.prototype.hasOwnProperty.call(t,"bootstrap")&&!ge(t.bootstrap))throw Error(Qt(9,!1,e));if(!ge(t.mount))throw Error(Qt(10,!1,e));if(!ge(t.unmount))throw Error(Qt(11,!1,e));if(t.update&&!ge(t.update))throw Error(Qt(12,!1,e));var n=me(t,"bootstrap"),i=me(t,"mount"),a=me(t,"unmount");u.status=Zt,u.name=e,u.bootstrap=n,u.mount=i,u.unmount=a,u.timeouts=Ie(t.timeouts),t.update&&(u.update=me(t,"update"),r.update=function(t){return u.customProps=t,Te(function(t){return Promise.resolve().then((function(){if(t.status!==re)throw Error(Qt(32,!1,fe(t)));return t.status=oe,ke(t,"update").then((function(){return t.status=re,t})).catch((function(e){throw Vt(e,t,ue)}))}))}(u))})}))).then((function(){return ve(u,!0)})),p=l.then((function(){return Se(u,!0)})),d=new Promise((function(t,e){s=t,f=e}));return r={mount:function(){return Te(Promise.resolve().then((function(){if(u.status!==ee)throw Error(Qt(13,!1,name,u.status));return n.parcels[o]=u,Se(u)})))},unmount:function(){return Te(u.unmountThisParcel())},getStatus:function(){return u.status},loadPromise:Te(c),bootstrapPromise:Te(l),mountPromise:Te(p),unmountPromise:Te(d)}}function Te(t){return t.then((function(){return null}))}function _e(t){var e=fe(t),n="function"==typeof t.customProps?t.customProps(e,window.location):t.customProps;("object"!==Gt(n)||null===n||Array.isArray(n))&&(n={},console.warn(Qt(40,!1),e,n));var r=de({},n,{name:e,mountParcel:Ae.bind(t),singleSpa:Lt});return le(t)&&(r.unmountSelf=t.unmountThisParcel),r}var $e={bootstrap:{millis:4e3,dieOnTimeout:!1,warningMillis:1e3},mount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unmount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unload:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},update:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3}};function xe(t,e,n){if("number"!=typeof t||t<=0)throw Error(Qt(16,!1));$e.bootstrap={millis:t,dieOnTimeout:e,warningMillis:n||1e3}}function Ne(t,e,n){if("number"!=typeof t||t<=0)throw Error(Qt(17,!1));$e.mount={millis:t,dieOnTimeout:e,warningMillis:n||1e3}}function Ue(t,e,n){if("number"!=typeof t||t<=0)throw Error(Qt(18,!1));$e.unmount={millis:t,dieOnTimeout:e,warningMillis:n||1e3}}function De(t,e,n){if("number"!=typeof t||t<=0)throw Error(Qt(19,!1));$e.unload={millis:t,dieOnTimeout:e,warningMillis:n||1e3}}function ke(t,e){var n=t.timeouts[e],r=n.warningMillis,o=pe(t);return new Promise((function(i,a){var u=!1,c=!1;t[e](_e(t)).then((function(t){u=!0,i(t)})).catch((function(t){u=!0,a(t)})),setTimeout((function(){return f(1)}),r),setTimeout((function(){return f(!0)}),n.millis);var s=Qt(31,!1,e,o,fe(t),n.millis);function f(t){if(!u)if(!0===t)c=!0,n.dieOnTimeout?a(Error(s)):console.error(s);else if(!c){var e=t,o=e*r;console.warn(s),o+r<n.millis&&setTimeout((function(){return f(e+1)}),r)}}}))}function Ie(t){var e={};for(var n in $e)e[n]=de({},$e[n],t&&t[n]||{});return e}function Ce(t){return Promise.resolve().then((function(){return t.loadPromise?t.loadPromise:t.status!==Xt&&t.status!==ae?t:(t.status=Yt,t.loadPromise=Promise.resolve().then((function(){var r=t.loadApp(_e(t));if(!ye(r))throw n=!0,Error(Qt(33,!1,fe(t)));return r.then((function(n){var r;t.loadErrorTime=null,"object"!==Gt(e=n)&&(r=34),Object.prototype.hasOwnProperty.call(e,"bootstrap")&&!ge(e.bootstrap)&&(r=35),ge(e.mount)||(r=36),ge(e.unmount)||(r=37);var o=pe(e);if(r){var i;try{i=JSON.stringify(e)}catch(t){}return console.error(Qt(r,!1,o,fe(t),i),e),zt(void 0,t,ue),t}return e.devtools&&e.devtools.overlays&&(t.devtools.overlays=de({},t.devtools.overlays,e.devtools.overlays)),t.status=Zt,t.bootstrap=me(e,"bootstrap"),t.mount=me(e,"mount"),t.unmount=me(e,"unmount"),t.unload=me(e,"unload"),t.timeouts=Ie(e.timeouts),delete t.loadPromise,t}))})).catch((function(e){var r;return delete t.loadPromise,n?r=ue:(r=ae,t.loadErrorTime=(new Date).getTime()),zt(e,t,r),t})));var e,n}))}var Me,Re="undefined"!=typeof window,Be={hashchange:[],popstate:[]},Le=["hashchange","popstate"];function Ge(t){var e;if("string"==typeof t)e=t;else if(this&&this.href)e=this.href;else{if(!(t&&t.currentTarget&&t.currentTarget.href&&t.preventDefault))throw Error(Qt(14,!1));e=t.currentTarget.href,t.preventDefault()}var n=Ke(window.location.href),r=Ke(e);0===e.indexOf("#")?window.location.hash=r.hash:n.host!==r.host&&r.host?window.location.href=e:r.pathname===n.pathname&&r.search===n.search?window.location.hash=r.hash:window.history.pushState(null,null,e)}function We(t){var e=this;if(t){var n=t[0].type;Le.indexOf(n)>=0&&Be[n].forEach((function(n){try{n.apply(e,t)}catch(t){setTimeout((function(){throw t}))}}))}}function qe(){bn([],arguments)}function Fe(t,e){return function(){var n=window.location.href,r=t.apply(this,arguments),o=window.location.href;return Me&&n===o||(En()?window.dispatchEvent(function(t,e){var n;try{n=new PopStateEvent("popstate",{state:t})}catch(e){(n=document.createEvent("PopStateEvent")).initPopStateEvent("popstate",!1,!1,t)}return n.singleSpa=!0,n.singleSpaTrigger=e,n}(window.history.state,e)):bn([])),r}}if(Re){window.addEventListener("hashchange",qe),window.addEventListener("popstate",qe);var Je=window.addEventListener,ze=window.removeEventListener;window.addEventListener=function(t,e){if(!("function"==typeof e&&Le.indexOf(t)>=0)||he(Be[t],(function(t){return t===e})))return Je.apply(this,arguments);Be[t].push(e)},window.removeEventListener=function(t,e){if(!("function"==typeof e&&Le.indexOf(t)>=0))return ze.apply(this,arguments);Be[t]=Be[t].filter((function(t){return t!==e}))},window.history.pushState=Fe(window.history.pushState,"pushState"),window.history.replaceState=Fe(window.history.replaceState,"replaceState"),window.singleSpaNavigate?console.warn(Qt(41,!1)):window.singleSpaNavigate=Ge}function Ke(t){var e=document.createElement("a");return e.href=t,e}var He=!1;function Qe(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(t||window.$&&window.$.fn&&window.$.fn.jquery&&(t=window.$),t&&!He){var e=t.fn.on,n=t.fn.off;t.fn.on=function(t,n){return Ve.call(this,e,window.addEventListener,t,n,arguments)},t.fn.off=function(t,e){return Ve.call(this,n,window.removeEventListener,t,e,arguments)},He=!0}}function Ve(t,e,n,r,o){return"string"!=typeof n?t.apply(this,o):(n.split(/\s+/).forEach((function(t){Le.indexOf(t)>=0&&(e(t,r),n=n.replace(t,""))})),""===n.trim()?this:t.apply(this,o))}var Xe={};function Ye(t){return Promise.resolve().then((function(){var e=Xe[fe(t)];if(!e)return t;if(t.status===Xt)return Ze(t,e),t;if("UNLOADING"===t.status)return e.promise.then((function(){return t}));if(t.status!==ee&&t.status!==ae)return t;var n=t.status===ae?Promise.resolve():ke(t,"unload");return t.status="UNLOADING",n.then((function(){return Ze(t,e),t})).catch((function(n){return function(t,e,n){delete Xe[fe(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,zt(n,t,ue),e.reject(n)}(t,e,n),t}))}))}function Ze(t,e){delete Xe[fe(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,t.status=Xt,e.resolve()}function tn(t,e,n,r){Xe[fe(t)]={app:t,resolve:n,reject:r},Object.defineProperty(Xe[fe(t)],"promise",{get:e})}function en(t){return Xe[t]}var nn=[];function rn(){var t=[],e=[],n=[],r=[],o=(new Date).getTime();return nn.forEach((function(i){var a=i.status!==ue&&se(i);switch(i.status){case ae:a&&o-i.loadErrorTime>=200&&n.push(i);break;case Xt:case Yt:a&&n.push(i);break;case Zt:case ee:!a&&en(fe(i))?t.push(i):a&&r.push(i);break;case re:a||e.push(i)}})),{appsToUnload:t,appsToUnmount:e,appsToLoad:n,appsToMount:r}}function on(){return nn.filter(ce).map(fe)}function an(){return nn.map(fe)}function un(t){var e=he(nn,(function(e){return fe(e)===t}));return e?e.status:null}function cn(t,e,n,r){var o=function(t,e,n,r){var o,i={name:null,loadApp:null,activeWhen:null,customProps:null};return"object"===Gt(t)?(function(t){if(Array.isArray(t)||null===t)throw Error(Qt(39,!1));var e=["name","app","activeWhen","customProps"],n=Object.keys(t).reduce((function(t,n){return e.indexOf(n)>=0?t:t.concat(n)}),[]);if(0!==n.length)throw Error(Qt(38,!1,e.join(", "),n.join(", ")));if("string"!=typeof t.name||0===t.name.length)throw Error(Qt(20,!1));if("object"!==Gt(t.app)&&"function"!=typeof t.app)throw Error(Qt(20,!1));var r=function(t){return"string"==typeof t||"function"==typeof t};if(!(r(t.activeWhen)||Array.isArray(t.activeWhen)&&t.activeWhen.every(r)))throw Error(Qt(24,!1));if(!dn(t.customProps))throw Error(Qt(22,!1))}(t),i.name=t.name,i.loadApp=t.app,i.activeWhen=t.activeWhen,i.customProps=t.customProps):(function(t,e,n,r){if("string"!=typeof t||0===t.length)throw Error(Qt(20,!1));if(!e)throw Error(Qt(23,!1));if("function"!=typeof n)throw Error(Qt(24,!1));if(!dn(r))throw Error(Qt(22,!1))}(t,e,n,r),i.name=t,i.loadApp=e,i.activeWhen=n,i.customProps=r),i.loadApp="function"!=typeof(o=i.loadApp)?function(){return Promise.resolve(o)}:o,i.customProps=function(t){return t||{}}(i.customProps),i.activeWhen=function(t){var e=Array.isArray(t)?t:[t];return e=e.map((function(t){return"function"==typeof t?t:hn(t)})),function(t){return e.some((function(e){return e(t)}))}}(i.activeWhen),i}(t,e,n,r);if(-1!==an().indexOf(o.name))throw Error(Qt(21,!1,o.name));nn.push(de({loadErrorTime:null,status:Xt,parcels:{},devtools:{overlays:{options:{},selectors:[]}}},o)),Re&&(Qe(),bn())}function sn(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return nn.filter((function(e){return e.activeWhen(t)})).map(fe)}function fn(t){if(0===nn.filter((function(e){return fe(e)===t})).length)throw Error(Qt(25,!1,t));return ln(t).then((function(){var e=nn.map(fe).indexOf(t);nn.splice(e,1)}))}function ln(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if("string"!=typeof t)throw Error(Qt(26,!1));var n=he(nn,(function(e){return fe(e)===t}));if(!n)throw Error(Qt(27,!1,t));var r,o=en(fe(n));if(e&&e.waitForUnmount){if(o)return o.promise;var i=new Promise((function(t,e){tn(n,(function(){return i}),t,e)}));return i}return o?(r=o.promise,pn(n,o.resolve,o.reject)):r=new Promise((function(t,e){tn(n,(function(){return r}),t,e),pn(n,t,e)})),r}function pn(t,e,n){be(t).then(Ye).then((function(){e(),setTimeout((function(){bn()}))})).catch(n)}function dn(t){return!t||"function"==typeof t||"object"===Gt(t)&&null!==t&&!Array.isArray(t)}function hn(t,e){var n=function(t,e){var n=0,r=!1,o="^";"/"!==t[0]&&(t="/"+t);for(var i=0;i<t.length;i++){var a=t[i];(!r&&":"===a||r&&"/"===a)&&u(i)}return u(t.length),new RegExp(o,"i");function u(i){var a=t.slice(n,i).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&");if(o+=r?"[^/]+/?":a,i===t.length)if(r)e&&(o+="$");else{var u=e?"":".*";o="/"===o.charAt(o.length-1)?"".concat(o).concat(u,"$"):"".concat(o,"(/").concat(u,")?(#.*)?$")}r=!r,n=i}}(t,e);return function(t){var e=t.origin;e||(e="".concat(t.protocol,"//").concat(t.host));var r=t.href.replace(e,"").replace(t.search,"").split("?")[0];return n.test(r)}}var gn=!1,mn=[],yn=Re&&window.location.href;function vn(){return bn()}function bn(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1?arguments[1]:void 0;if(gn)return new Promise((function(t,n){mn.push({resolve:t,reject:n,eventArguments:e})}));var n,r=rn(),o=r.appsToUnload,i=r.appsToUnmount,a=r.appsToLoad,u=r.appsToMount,c=!1,s=yn,f=yn=window.location.href;return En()?(gn=!0,n=o.concat(a,i,u),Promise.resolve().then((function(){if(window.dispatchEvent(new Ft(0===n.length?"single-spa:before-no-app-change":"single-spa:before-app-change",h(!0))),window.dispatchEvent(new Ft("single-spa:before-routing-event",h(!0,{cancelNavigation:l}))),c)return window.dispatchEvent(new Ft("single-spa:before-mount-routing-event",h(!0))),p(),void Ge(s);var e=o.map(Ye),r=i.map(be).map((function(t){return t.then(Ye)})).concat(e),f=Promise.all(r);f.then((function(){window.dispatchEvent(new Ft("single-spa:before-mount-routing-event",h(!0)))}));var g=a.map((function(t){return Ce(t).then((function(t){return wn(t,f)}))})),m=u.filter((function(t){return a.indexOf(t)<0})).map((function(t){return wn(t,f)}));return f.catch((function(t){throw d(),t})).then((function(){return d(),Promise.all(g.concat(m)).catch((function(e){throw t.forEach((function(t){return t.reject(e)})),e})).then(p)}))}))):(n=a,Promise.resolve().then((function(){var t=a.map(Ce);return Promise.all(t).then(d).then((function(){return[]})).catch((function(t){throw d(),t}))})));function l(){c=!0}function p(){var e=on();t.forEach((function(t){return t.resolve(e)}));try{var r=0===n.length?"single-spa:no-app-change":"single-spa:app-change";window.dispatchEvent(new Ft(r,h())),window.dispatchEvent(new Ft("single-spa:routing-event",h()))}catch(t){setTimeout((function(){throw t}))}if(gn=!1,mn.length>0){var o=mn;mn=[],bn(o)}return e}function d(){t.forEach((function(t){We(t.eventArguments)})),We(e)}function h(){var t,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],l=arguments.length>1?arguments[1]:void 0,p={},d=(Wt(t={},re,[]),Wt(t,ee,[]),Wt(t,Xt,[]),Wt(t,ue,[]),t);r?(a.concat(u).forEach((function(t,e){g(t,re)})),o.forEach((function(t){g(t,Xt)})),i.forEach((function(t){g(t,ee)}))):n.forEach((function(t){g(t)}));var h={detail:{newAppStatuses:p,appsByNewStatus:d,totalAppChanges:n.length,originalEvent:null==e?void 0:e[0],oldUrl:s,newUrl:f,navigationIsCanceled:c}};return l&&de(h.detail,l),h;function g(t,e){var n=fe(t);e=e||un(n),p[n]=e,(d[e]=d[e]||[]).push(n)}}}function wn(t,e){return se(t)?ve(t).then((function(t){return e.then((function(){return se(t)?Se(t):t}))})):e.then((function(){return t}))}var On=!1;function Sn(t){var e;On=!0,t&&t.urlRerouteOnly&&(e=t.urlRerouteOnly,Me=e),Re&&bn()}function En(){return On}Re&&setTimeout((function(){On||console.warn(Qt(1,!1))}),5e3);var Pn={getRawAppData:function(){return[].concat(nn)},reroute:bn,NOT_LOADED:Xt,toLoadPromise:Ce,toBootstrapPromise:ve,unregisterApplication:fn};function jn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function An(t,e){const n=window.getOpenmrsSpaBase().replace(/\/$/,"");return Tn(t,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),r.forEach((function(e){jn(t,e,n[e])}))}return t}({openmrsBase:window.openmrsBase,openmrsSpaBase:n},e)).replace(/^\/\//,"/")}function Tn(t,e){return Object.keys(e).reduce(((t,n)=>t.split("${"+n+"}").join(e[n])),t)}function _n({to:t,templateParams:e}){const n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=An(t,e);r.startsWith(n)?Ge(r):window.location.assign(r)}Re&&window.__SINGLE_SPA_DEVTOOLS__&&(window.__SINGLE_SPA_DEVTOOLS__.exposedMethods=Pn);const $n=(t,e)=>F((n=>t<=n&&n<=e),`must be between ${t} and ${e}`),xn=t=>{const e=t.concat(["openmrsBase","openmrsSpaBase"]);return F((t=>{if(!t||"string"!=typeof t)return!1;const n=/\${(.*?)}/g;let r=n.exec(t);for(;r;){if(!e.includes(r[1]))return!1;r=n.exec(t)}return!0}),"Should be a URL or path. The allowed template parameters are "+e.map((t=>"${"+t+"}")).join(", "))},Nn=xn([]),Un=t=>F((e=>t.includes(e)),`Must be one of the following: '${t.join("', '")}'.`),Dn={inRange:$n,isUrl:Nn,isUrlWithTemplateParameters:xn,oneOf:Un}})(),_openmrs_esm_config=r})();
2
- //# sourceMappingURL=openmrs-esm-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openmrs-esm-config.js","mappings":"8CACA,MACI,aACA,IAAIA,EAAI,CACJC,EAAG,CAACC,EAAGC,KACH,IAAI,IAAIC,KAAKD,EAAEH,EAAEI,EAAED,EAAGC,KAAOJ,EAAEI,EAAEF,EAAGE,IAAMC,OAAOC,eAAeJ,EAAGE,EAAG,CAClEG,YAAY,EACZC,IAAKL,EAAEC,IACT,EAENA,EAAG,CAACJ,EAAGE,IAAIG,OAAOI,UAAUC,eAAeC,KAAKX,EAAGE,GACnDC,EAAIH,IACA,oBAAsBY,QAAUA,OAAOC,aAAeR,OAAOC,eAAeN,EAAGY,OAAOC,YAAa,CAC/FC,MAAO,WACPT,OAAOC,eAAeN,EAAG,aAAc,CACvCc,OAAO,GACT,GAEPZ,EAAI,CAAC,EACRF,EAAEG,EAAED,GAAIF,EAAEC,EAAEC,EAAG,CACXa,eAAgB,IAAIC,EACpBC,kBAAmB,IAAIC,EACvBC,YAAa,IAAIC,EACjBC,eAAgB,IAAIC,EACpBC,YAAa,IAAIC,IAErB,MAAMrB,EAAKH,IACP,IAAIE,EACJ,MAAMC,EAAI,IAAIsB,IAAKrB,EAAI,CAACJ,EAAGI,KACvB,MAAMsB,EAAI,mBAAqB1B,EAAIA,EAAEE,GAAKF,EAC1C,IAAKK,OAAOsB,GAAGD,EAAGxB,GAAI,CAClB,MAAMF,EAAIE,EACVA,GAAK,MAAQE,EAAIA,EAAI,iBAAmBsB,GAAKA,EAAIrB,OAAOuB,OAAO,CAAC,EAAG1B,EAAGwB,GAAIvB,EAAE0B,SAAS1B,GAAIA,EAAED,EAAGF,IAClG,GACD0B,EAAI,IAAIxB,EAAGgB,EAAI,CACdY,SAAU1B,EACV2B,SAAUL,EACVM,UAAYhC,IAAKG,EAAE8B,IAAIjC,GAAI,IAAIG,EAAE+B,OAAOlC,IACxCmC,QAAS,KACLC,QAAQC,KAAK,0MAA2MlC,EAAEmC,OAAO,GAGzO,OAAOpC,EAAIF,EAAEI,EAAGsB,EAAGR,GAAIA,CAAC,EACzBd,EAAKJ,GAAIA,EAAIG,EAAEH,GAAKG,EAAGuB,EAAI,CAAC,EAC/B,SAASR,EAAElB,EAAGE,GACV,MAAMC,EAAIuB,EAAE1B,GACZ,GAAIG,EAAG,OAAOA,EAAEoC,OAASH,QAAQI,MAAM,mFAAqFrC,EAAEW,MAAMgB,SAAS5B,GAAG,GAAKC,EAAEoC,QAAS,EAAIpC,EAAEW,MACtK,CACI,MAAMX,EAAIC,KAAI,IAAIF,IAClB,OAAOwB,EAAE1B,GAAK,CACVc,MAAOX,EACPoC,QAAQ,GACTpC,CACP,CACJ,CACA,SAASmB,EAAEtB,EAAGE,GACV,MAAMC,EAAIuB,EAAE1B,GACZ,IAAKG,EAAG,CACJ,MAAMA,EAAIC,KAAI,IAAI,MAAQF,EAAIA,EAAI,CAAC,IACnC,OAAOwB,EAAE1B,GAAK,CACVc,MAAOX,EACPoC,QAAQ,GACTpC,CACP,CACA,OAAOA,EAAEW,KACb,CACA,SAASE,EAAEhB,GACP,OAAOkB,EAAE,MAAOlB,EACpB,CACA,SAASoB,IACL,OAAOE,EAAE,MAAO,CAAC,EACrB,CACA,SAASE,EAAExB,EAAGE,EAAGC,GACb,IAAIC,EAAIF,EAAEF,EAAE+B,YACZ,OAAO/B,EAAEgC,WAAWhC,IAChB,MAAM0B,EAAIxB,EAAEF,GACZ0B,IAAMtB,IAAMA,EAAIsB,EAAGvB,EAAEuB,GAAG,GAEhC,CAEH,EA/ED,E,GCAIe,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAUI,EAAQA,EAAOD,QAASJ,GAG/CK,EAAOD,OACf,CCrBAJ,EAAoBzC,EAAI,CAAC6C,EAASG,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBtC,EAAE6C,EAAYC,KAASR,EAAoBtC,EAAE0C,EAASI,IAC5E7C,OAAOC,eAAewC,EAASI,EAAK,CAAE3C,YAAY,EAAMC,IAAKyC,EAAWC,IAE1E,ECNDR,EAAoBS,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOtD,GACR,GAAsB,iBAAXuD,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBb,EAAoBtC,EAAI,CAACoD,EAAKC,IAAUpD,OAAOI,UAAUC,eAAeC,KAAK6C,EAAKC,GCClFf,EAAoBvC,EAAK2C,IACH,oBAAXlC,QAA0BA,OAAOC,aAC1CR,OAAOC,eAAewC,EAASlC,OAAOC,YAAa,CAAEC,MAAO,WAE7DT,OAAOC,eAAewC,EAAS,aAAc,CAAEhC,OAAO,GAAO,E,4BCL/C,SAAS4C,EAAexC,GAChC,OAAY,MAALA,GAA0B,iBAANA,IAAoD,IAAlCA,EAAE,2BACtD,CCQe,SAASyC,EAAQC,GAC9B,OAAO,SAASC,EAAG3C,GACjB,OAAyB,IAArB4C,UAAUC,QAAgBL,EAAexC,GACpC2C,EAEAD,EAAGI,MAAMX,KAAMS,UAE1B,CACF,CCPe,SAASG,EAAQL,GAC9B,OAAO,SAASM,EAAGhD,EAAGiD,GACpB,OAAQL,UAAUC,QAChB,KAAK,EACH,OAAOG,EACT,KAAK,EACH,OAAOR,EAAexC,GAAKgD,EAAKP,GAAQ,SAAUS,GAChD,OAAOR,EAAG1C,EAAGkD,EACf,IACF,QACE,OAAOV,EAAexC,IAAMwC,EAAeS,GAAKD,EAAKR,EAAexC,GAAKyC,GAAQ,SAAUU,GACzF,OAAOT,EAAGS,EAAIF,EAChB,IAAKT,EAAeS,GAAKR,GAAQ,SAAUS,GACzC,OAAOR,EAAG1C,EAAGkD,EACf,IAAKR,EAAG1C,EAAGiD,GAEjB,CACF,CC5Be,SAASG,EAAmBC,GAGzC,IAFA,IACIC,EADAC,EAAO,KAEFD,EAAOD,EAAKC,QAAQE,MAC3BD,EAAKE,KAAKH,EAAK1D,OAEjB,OAAO2D,CACT,CCPe,SAASG,EAAcC,EAAMC,EAAGL,GAI7C,IAHA,IAAIM,EAAM,EACNC,EAAMP,EAAKV,OAERgB,EAAMC,GAAK,CAChB,GAAIH,EAAKC,EAAGL,EAAKM,IACf,OAAO,EAETA,GAAO,CACT,CACA,OAAO,CACT,CCXe,SAASE,EAAKxB,EAAMD,GACjC,OAAOnD,OAAOI,UAAUC,eAAeC,KAAK6C,EAAKC,EACnD,C,mqBCWA,QAAoC,mBAAdpD,OAAOsB,GAAoBtB,OAAOsB,GAZxD,SAAmBT,EAAGiD,GAEpB,OAAIjD,IAAMiD,EAGK,IAANjD,GAAW,EAAIA,GAAM,EAAIiD,EAGzBjD,GAAMA,GAAKiD,GAAMA,CAE5B,ECTA,IAAI,EAAW9D,OAAOI,UAAUyE,SAC5BC,EAA4B,WAC9B,MAAoC,uBAA7B,EAASxE,KAAKmD,WAAsC,SAAsBgB,GAC/E,MAA4B,uBAArB,EAASnE,KAAKmE,EACvB,EAAI,SAAsBA,GACxB,OAAOG,EAAK,SAAUH,EACxB,CACF,CANgC,GAQhC,UCNA,IAAIM,GAA4B,CAAEF,SAAU,MAAOG,qBAAqB,YACpEC,EAAqB,CAAC,cAAe,UAAW,gBAAiB,WAAY,uBAAwB,iBAAkB,kBAEvHC,EAA8B,WAGhC,OAAOzB,UAAUuB,qBAAqB,SACxC,CAJkC,GAM9BG,EAAW,SAAkBf,EAAMgB,GAErC,IADA,IAAIV,EAAM,EACHA,EAAMN,EAAKV,QAAQ,CACxB,GAAIU,EAAKM,KAASU,EAChB,OAAO,EAETV,GAAO,CACT,CACA,OAAO,CACT,EA8CA,QA1BkC,mBAAhB1E,OAAOqF,MAAwBH,EAE/B5B,GAAQ,SAAcH,GACtC,GAAInD,OAAOmD,KAASA,EAClB,MAAO,GAET,IAAIC,EAAMkC,EACNC,EAAK,GACLC,EAAkBN,GAAkB,EAAa/B,GACrD,IAAKC,KAAQD,GACPyB,EAAKxB,EAAMD,IAAUqC,GAA4B,WAATpC,IAC1CmC,EAAGA,EAAG7B,QAAUN,GAGpB,GAAI2B,EAEF,IADAO,EAAOL,EAAmBvB,OAAS,EAC5B4B,GAAQ,GAETV,EADJxB,EAAO6B,EAAmBK,GACXnC,KAASgC,EAASI,EAAInC,KACnCmC,EAAGA,EAAG7B,QAAUN,GAElBkC,GAAQ,EAGZ,OAAOC,CACT,IAzB+EjC,GAAQ,SAAcH,GACnG,OAAOnD,OAAOmD,KAASA,EAAM,GAAKnD,OAAOqF,KAAKlC,EAChD,ICfA,EAHwBG,GAAQ,SAAcmC,GAC5C,OAAe,OAARA,EAAe,YAAiBjD,IAARiD,EAAoB,YAAczF,OAAOI,UAAUyE,SAASvE,KAAKmF,GAAKC,MAAM,GAAI,EACjH,ICVA,SAASC,EAAmBC,EAAWC,EAAWC,EAAQC,GACxD,IAAIlF,EAAIoD,EAAmB2B,GAG3B,SAASI,EAAGhC,EAAID,GACd,OAAOkC,EAAQjC,EAAID,EAAI+B,EAAOJ,QAASK,EAAOL,QAChD,CAGA,OAAQnB,GAAc,SAAUT,EAAGoC,GACjC,OAAQ3B,EAAcyB,EAAIE,EAAOpC,EACnC,GATQG,EAAmB4B,GASrBhF,EACR,CAEe,SAASoF,EAAQpF,EAAGiD,EAAGgC,EAAQC,GAC5C,GAAI,EAAUlF,EAAGiD,GACf,OAAO,EAGT,IAAIqC,EAAQ,EAAKtF,GAEjB,GAAIsF,IAAU,EAAKrC,GACjB,OAAO,EAGT,GAAS,MAALjD,GAAkB,MAALiD,EACf,OAAO,EAGT,GAAwC,mBAA7BjD,EAAE,wBAA6E,mBAA7BiD,EAAE,uBAC7D,MAA2C,mBAA7BjD,EAAE,wBAAyCA,EAAE,uBAAuBiD,IAA0C,mBAA7BA,EAAE,wBAAyCA,EAAE,uBAAuBjD,GAGrK,GAAwB,mBAAbA,EAAEuF,QAA6C,mBAAbtC,EAAEsC,OAC7C,MAA2B,mBAAbvF,EAAEuF,QAAyBvF,EAAEuF,OAAOtC,IAA0B,mBAAbA,EAAEsC,QAAyBtC,EAAEsC,OAAOvF,GAGrG,OAAQsF,GACN,IAAK,YACL,IAAK,QACL,IAAK,SACH,GAA6B,mBAAlBtF,EAAEwF,aAA+D,YC5DnE,SAAuBC,GAEpC,IAAIC,EAAQC,OAAOF,GAAGC,MAAM,mBAC5B,OAAgB,MAATA,EAAgB,GAAKA,EAAM,EACpC,CDwDiDE,CAAc5F,EAAEwF,aACzD,OAAOxF,IAAMiD,EAEf,MACF,IAAK,UACL,IAAK,SACL,IAAK,SACH,UAAajD,UAAaiD,IAAK,EAAUjD,EAAE6F,UAAW5C,EAAE4C,WACtD,OAAO,EAET,MACF,IAAK,OACH,IAAK,EAAU7F,EAAE6F,UAAW5C,EAAE4C,WAC5B,OAAO,EAET,MACF,IAAK,QACH,OAAO7F,EAAE8F,OAAS7C,EAAE6C,MAAQ9F,EAAE+F,UAAY9C,EAAE8C,QAC9C,IAAK,SACH,GAAM/F,EAAEgG,SAAW/C,EAAE+C,QAAUhG,EAAEiG,SAAWhD,EAAEgD,QAAUjG,EAAEkG,aAAejD,EAAEiD,YAAclG,EAAEmG,YAAclD,EAAEkD,WAAanG,EAAEoG,SAAWnD,EAAEmD,QAAUpG,EAAEqG,UAAYpD,EAAEoD,QAC/J,OAAO,EAMb,IADA,IAAIxC,EAAMoB,EAAOpC,OAAS,EACnBgB,GAAO,GAAG,CACf,GAAIoB,EAAOpB,KAAS7D,EAClB,OAAOkF,EAAOrB,KAASZ,EAEzBY,GAAO,CACT,CAEA,OAAQyB,GACN,IAAK,MACH,OAAItF,EAAEsG,OAASrD,EAAEqD,MAIVxB,EAAmB9E,EAAEuG,UAAWtD,EAAEsD,UAAWtB,EAAOuB,OAAO,CAACxG,IAAKkF,EAAOsB,OAAO,CAACvD,KACzF,IAAK,MACH,OAAIjD,EAAEsG,OAASrD,EAAEqD,MAIVxB,EAAmB9E,EAAEyG,SAAUxD,EAAEwD,SAAUxB,EAAOuB,OAAO,CAACxG,IAAKkF,EAAOsB,OAAO,CAACvD,KACvF,IAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,cACH,MACF,QAEE,OAAO,EAGX,IAAIyD,EAAQ,EAAK1G,GACjB,GAAI0G,EAAM7D,SAAW,EAAKI,GAAGJ,OAC3B,OAAO,EAGT,IAAI8D,EAAiB1B,EAAOuB,OAAO,CAACxG,IAChC4G,EAAiB1B,EAAOsB,OAAO,CAACvD,IAGpC,IADAY,EAAM6C,EAAM7D,OAAS,EACdgB,GAAO,GAAG,CACf,IAAI7B,EAAM0E,EAAM7C,GAChB,IAAME,EAAK/B,EAAKiB,KAAMmC,EAAQnC,EAAEjB,GAAMhC,EAAEgC,GAAM2E,EAAgBC,GAC5D,OAAO,EAET/C,GAAO,CACT,CACA,OAAO,CACT,CExHA,IAAI0B,EAAsBxC,GAAQ,SAAgB/C,EAAGiD,GACnD,OAAOmC,EAAQpF,EAAGiD,EAAG,GAAI,GAC3B,IACA,UCnBe,SAAS4D,EAAQnE,GAC9B,OAAO,SAASoE,EAAG9G,EAAGiD,EAAGnD,GACvB,OAAQ8C,UAAUC,QAChB,KAAK,EACH,OAAOiE,EACT,KAAK,EACH,OAAOtE,EAAexC,GAAK8G,EAAK/D,GAAQ,SAAUG,EAAI6D,GACpD,OAAOrE,EAAG1C,EAAGkD,EAAI6D,EACnB,IACF,KAAK,EACH,OAAOvE,EAAexC,IAAMwC,EAAeS,GAAK6D,EAAKtE,EAAexC,GAAK+C,GAAQ,SAAUI,EAAI4D,GAC7F,OAAOrE,EAAGS,EAAIF,EAAG8D,EACnB,IAAKvE,EAAeS,GAAKF,GAAQ,SAAUG,EAAI6D,GAC7C,OAAOrE,EAAG1C,EAAGkD,EAAI6D,EACnB,IAAKtE,GAAQ,SAAUsE,GACrB,OAAOrE,EAAG1C,EAAGiD,EAAG8D,EAClB,IACF,QACE,OAAOvE,EAAexC,IAAMwC,EAAeS,IAAMT,EAAe1C,GAAKgH,EAAKtE,EAAexC,IAAMwC,EAAeS,GAAKF,GAAQ,SAAUI,EAAID,GACvI,OAAOR,EAAGS,EAAID,EAAIpD,EACpB,IAAK0C,EAAexC,IAAMwC,EAAe1C,GAAKiD,GAAQ,SAAUI,EAAI4D,GAClE,OAAOrE,EAAGS,EAAIF,EAAG8D,EACnB,IAAKvE,EAAeS,IAAMT,EAAe1C,GAAKiD,GAAQ,SAAUG,EAAI6D,GAClE,OAAOrE,EAAG1C,EAAGkD,EAAI6D,EACnB,IAAKvE,EAAexC,GAAKyC,GAAQ,SAAUU,GACzC,OAAOT,EAAGS,EAAIF,EAAGnD,EACnB,IAAK0C,EAAeS,GAAKR,GAAQ,SAAUS,GACzC,OAAOR,EAAG1C,EAAGkD,EAAIpD,EACnB,IAAK0C,EAAe1C,GAAK2C,GAAQ,SAAUsE,GACzC,OAAOrE,EAAG1C,EAAGiD,EAAG8D,EAClB,IAAKrE,EAAG1C,EAAGiD,EAAGnD,GAEpB,CACF,CC7Ce,SAASkH,EAAUpD,GAChC,MAA6C,oBAAtCzE,OAAOI,UAAUyE,SAASvE,KAAKmE,EACxC,CC0BA,IAAIqD,EAA4BJ,GAAQ,SAAsBnE,EAAIwE,EAAGjI,GACnE,IACIkI,EADAC,EAAS,CAAC,EAGd,IAAKD,KAAKD,EACJnD,EAAKoD,EAAGD,KACVE,EAAOD,GAAKpD,EAAKoD,EAAGlI,GAAKyD,EAAGyE,EAAGD,EAAEC,GAAIlI,EAAEkI,IAAMD,EAAEC,IAInD,IAAKA,KAAKlI,EACJ8E,EAAKoD,EAAGlI,KAAO8E,EAAKoD,EAAGC,KACzBA,EAAOD,GAAKlI,EAAEkI,IAIlB,OAAOC,CACT,IACA,UCdA,IAAIC,EAAgCR,GAAQ,SAASQ,EAAiB3E,EAAI4E,EAAMC,GAC9E,OAAO,GAAa,SAAUJ,EAAGK,EAAMC,GACrC,OAAIT,EAAUQ,IAASR,EAAUS,GACxBJ,EAAiB3E,EAAI8E,EAAMC,GAE3B/E,EAAGyE,EAAGK,EAAMC,EAEvB,GAAGH,EAAMC,EACX,IACA,UCZA,EALkCxE,GAAQ,SAAwBuE,EAAMC,GACtE,OAAO,GAAiB,SAAUJ,EAAGK,EAAMC,GACzC,OAAOA,CACT,GAAGH,EAAMC,EACX,ICQA,EAlBwBxE,GAAQ,SAAc2E,EAAOpF,GAMnD,IALA,IAAI8E,EAAS,CAAC,EACVO,EAAQ,CAAC,EACT9D,EAAM,EACNC,EAAM4D,EAAM7E,OAETgB,EAAMC,GACX6D,EAAMD,EAAM7D,IAAQ,EACpBA,GAAO,EAGT,IAAK,IAAItB,KAAQD,EACVqF,EAAMnI,eAAe+C,KACxB6E,EAAO7E,GAAQD,EAAIC,IAGvB,OAAO6E,CACT,ICtBe,SAASQ,EAAOhI,EAAOiI,EAASC,EAAOC,GACpD,ICdmCC,EDc/BC,EAAO,SAAcC,GAGvB,IAFA,IAAIpE,EAAM+D,EAAQhF,OACdgB,EAAM,EACHA,EAAMC,GAAK,CAChB,GAAIlE,IAAUiI,EAAQhE,GACpB,OAAOiE,EAAMjE,GAEfA,GAAO,CACT,CAGA,IAAK,IAAI7B,KAFT6F,EAAQhE,EAAM,GAAKjE,EACnBkI,EAAMjE,EAAM,GAAKqE,EACDtI,EACdsI,EAAYlG,GAAO+F,EAAOH,EAAOhI,EAAMoC,GAAM6F,EAASC,GAAO,GAAQlI,EAAMoC,GAE7E,OAAOkG,CACT,EACA,OAAQ,EAAKtI,IACX,IAAK,SACH,OAAOqI,EAAK,CAAC,GACf,IAAK,QACH,OAAOA,EAAK,IACd,IAAK,OACH,OAAO,IAAIE,KAAKvI,EAAMiG,WACxB,IAAK,SACH,OCtC+BmC,EDsCXpI,ECrCe,IAAIwI,OAAOJ,EAAQhC,QAASgC,EAAQ/B,OAAS,IAAM,KAAO+B,EAAQ9B,WAAa,IAAM,KAAO8B,EAAQ7B,UAAY,IAAM,KAAO6B,EAAQ5B,OAAS,IAAM,KAAO4B,EAAQ3B,QAAU,IAAM,KDsCxN,QACE,OAAOzG,EAEb,CEfA,QAHyB6C,GAAQ,SAAe7C,GAC9C,OAAgB,MAATA,GAAwC,mBAAhBA,EAAMyI,MAAuBzI,EAAMyI,QAAUT,EAAOhI,EAAO,GAAI,IAAI,EACpG,ICdA,EAAe0I,MAAMC,SAAW,SAAkB3D,GAChD,OAAc,MAAPA,GAAeA,EAAI/B,QAAU,GAA6C,mBAAxC1D,OAAOI,UAAUyE,SAASvE,KAAKmF,EAC1E,ECOA,IAAI4D,EAA4B/F,GAAQ,SAAqBmB,GAC3D,QAAI6E,EAAS7E,MAGRA,GAGY,iBAANA,IC5BE,SAAmBA,GAChC,MAA6C,oBAAtCzE,OAAOI,UAAUyE,SAASvE,KAAKmE,EACxC,CD6BM8E,CAAU9E,KAGK,IAAfA,EAAE+E,WACK/E,EAAEf,OAEI,IAAbe,EAAEf,QAGFe,EAAEf,OAAS,GACNe,EAAEpE,eAAe,IAAMoE,EAAEpE,eAAeoE,EAAEf,OAAS,GAG9D,IACA,UE7CA,IAAI+F,EAAqB,WACvB,SAASA,EAAMlG,GACbP,KAAKsD,EAAI/C,CACX,CAWA,OAVAkG,EAAMrJ,UAAU,qBAAuB,WACrC,MAAM,IAAIsJ,MAAM,gCAClB,EACAD,EAAMrJ,UAAU,uBAAyB,SAAUuJ,GACjD,OAAOA,CACT,EACAF,EAAMrJ,UAAU,qBAAuB,SAAUuJ,EAAKlF,GACpD,OAAOzB,KAAKsD,EAAEqD,EAAKlF,EACrB,EAEOgF,CACT,CAfyB,GCyBrBG,EAAoBhG,GAAQ,SAAcL,EAAIsG,GAChD,OC1Ba,SAAgBxI,EAAGkC,GAEhC,OAAQlC,GACN,KAAK,EACH,OAAO,WACL,OAAOkC,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,GACf,OAAOvG,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,GACnB,OAAOxG,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,GACvB,OAAOzG,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,GAC3B,OAAO1G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,GAC/B,OAAO3G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACnC,OAAO5G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACvC,OAAO7G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC3C,OAAO9G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,EACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/C,OAAO/G,EAAGI,MAAMX,KAAMS,UACxB,EACF,KAAK,GACH,OAAO,SAAUqG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACnD,OAAOhH,EAAGI,MAAMX,KAAMS,UACxB,EACF,QACE,MAAM,IAAIiG,MAAM,+EAEtB,CDxBSc,CAAOjH,EAAGG,QAAQ,WACvB,OAAOH,EAAGI,MAAMkG,EAASpG,UAC3B,GACF,IACA,UEZA,SAASgH,EAAgBC,EAAIf,EAAKzF,GAEhC,IADA,IAAIyG,EAAOzG,EAAKC,QACRwG,EAAKtG,MAAM,CAEjB,IADAsF,EAAMe,EAAG,qBAAqBf,EAAKgB,EAAKlK,SAC7BkJ,EAAI,wBAAyB,CACtCA,EAAMA,EAAI,sBACV,KACF,CACAgB,EAAOzG,EAAKC,MACd,CACA,OAAOuG,EAAG,uBAAuBf,EACnC,CAEA,SAASiB,EAAcF,EAAIf,EAAKxG,EAAK0H,GACnC,OAAOH,EAAG,uBAAuBvH,EAAI0H,GAAY,EAAKH,EAAG,qBAAsBA,GAAKf,GACtF,CAEA,IAAImB,EAAgC,oBAAXvK,OAAyBA,OAAOwK,SAAW,aAErD,SAASC,EAAQzH,EAAIoG,EAAKvF,GAIvC,GAHkB,mBAAPb,IACTA,EHtBW,SAAgBA,GAC7B,OAAO,IAAIkG,EAAMlG,EACnB,CGoBS0H,CAAO1H,IAEV,EAAaa,GACf,OAtCJ,SAAsBsG,EAAIf,EAAKvF,GAG7B,IAFA,IAAIM,EAAM,EACNC,EAAMP,EAAKV,OACRgB,EAAMC,GAAK,CAEhB,IADAgF,EAAMe,EAAG,qBAAqBf,EAAKvF,EAAKM,MAC7BiF,EAAI,wBAAyB,CACtCA,EAAMA,EAAI,sBACV,KACF,CACAjF,GAAO,CACT,CACA,OAAOgG,EAAG,uBAAuBf,EACnC,CA0BWuB,CAAa3H,EAAIoG,EAAKvF,GAE/B,GAA2C,mBAAhCA,EAAK,uBACd,OAAOwG,EAAcrH,EAAIoG,EAAKvF,EAAM,uBAEtC,GAAyB,MAArBA,EAAK0G,GACP,OAAOL,EAAgBlH,EAAIoG,EAAKvF,EAAK0G,MAEvC,GAAyB,mBAAd1G,EAAKD,KACd,OAAOsG,EAAgBlH,EAAIoG,EAAKvF,GAElC,GAA2B,mBAAhBA,EAAK+G,OACd,OAAOP,EAAcrH,EAAIoG,EAAKvF,EAAM,UAGtC,MAAM,IAAIgH,UAAU,yCACtB,CCRA,QAD0B1D,EAAQsD,GCjD3B,IAAIK,ECoBA,SAASC,EAAUC,EAAoB3E,GAC9C,OAAQnG,IACJ,IAAK8K,EAAmB9K,GACpB,MAAuB,mBAAZmG,EACAA,EAAQnG,GAERmG,CAEf,CAER,ED7BA,SAAUyE,GACNA,EAAY,MAAI,QAChBA,EAAc,QAAI,UAClBA,EAAkB,YAAI,cACtBA,EAAa,OAAI,SACjBA,EAAa,OAAI,SACjBA,EAAa,OAAI,SACjBA,EAAW,KAAI,OACfA,EAA8B,wBAAI,0BAClCA,EAAgC,0BAAI,2BACvC,CAVD,CAUGA,IAASA,EAAO,CAAC,IEVb,MAAMjC,EAAUkC,GAAW7F,GAAM0D,MAAMC,QAAQ3D,IAAM,oBAC/C+F,EAAYF,GAAW7F,GAAqB,kBAARA,GAAmB,qBACvDgG,EAAWH,GAAW7F,GAAqB,iBAARA,GAAkB,oBACrDiG,EAAWJ,GAAW7F,GAAqB,iBAARA,GAAkB,oBACrDkG,EAAWL,GAAW7F,GAAqB,iBAARA,IAAqB0D,MAAMC,QAAQ3D,IAAgB,OAARA,GAAc,4CAC5FmG,EAASN,GAAW7F,GAAM,kEAAkEoG,KAAKpG,IAAQ,kBAAkBoG,KAAKpG,IAAM,6D,aCJnJ,MAMiBqG,GAAsB,IAAAlL,mBAAkB,kBANjB,CACpCmL,gBAAiB,GACjBC,QAAS,CAAC,IAKgBC,GAAuB,IAAArL,mBAAkB,mBAAoB,CACvFsL,OAQJ,WACI,IACI,OAAOC,KAAKC,MAAMC,aAAaC,QAAQ,4BAA8B,KACzE,CAAE,MAAO3M,GACL,MAAO,CAAC,CACZ,CACJ,CAdY4M,KAEZN,EAAqBtK,WAAW6K,IAGhC,IAA4B/L,IAFL+L,EAAMN,OAGzBG,aAAaI,QAAQ,0BAA2BN,KAAKO,UAAUjM,GAH/B,IAYZ,MAAMkM,IAAuB,IAAA/L,mBAAkB,kCAAmC,CACtGgM,kBAAmB,KAQC,SAASC,GAAeC,GAE5C,OAAO,IAAA9L,gBAAe,iBAAiB8L,IAPhC,CACHZ,OAAQ,KACRa,QAAQ,GAMhB,CACwB,SAASC,KAC7B,OAAO,IAAAhM,gBAAe,yBAA0B,CAC5CiM,MAAO,CAAC,GAEhB,CACwB,SAASC,GAAuBC,GACpD,OAAOC,GAAgCJ,KAA+BtL,WAAYyL,EACtF,CACwB,SAASC,GAAgCZ,EAAOW,GACpE,MAAME,EAAab,EAAMS,MAAME,GAC/B,OAAOE,QAA+CA,EAAa,CAC/DN,QAAQ,EACRb,OAAQ,CAAC,EAEjB,CAIW,SAASoB,KAChB,OAAO,IAAAtM,gBAAe,oBAAqB,CACvCuM,QAAS,CAAC,GAElB,CACwB,SAASC,GAAmBL,EAAUM,GAC1D,MAAMC,EAAkB1N,OAAOuB,OAAO,CAAC,EAAGoM,GAA4BL,KAA2B5L,WAAYyL,EAAUM,IAKvH,OAJAC,EAAgBxB,OAAS,EAAK,CAC1B,qBACA,yBACDwB,EAAgBxB,QACZwB,CACX,CACwB,SAASC,GAA4BnB,EAAOW,EAAUM,GAC1E,IAAIG,EACJ,MAAMF,EAA0E,QAAvDE,EAA0BpB,EAAMe,QAAQJ,UAAmD,IAA5BS,OAAqC,EAASA,EAAwBH,GAC9J,OAAOC,QAAyDA,EAAkB,CAC9EX,QAAQ,EACRb,OAAQ,KAEhB,CACwB,MAAM2B,IAA8B,IAAAjN,mBAAkB,2BAA4B,CACtGsL,OAAQ,CAAC,IC9EmB,SAAS4B,GAAiB3K,EAAKN,EAAKpC,GAWhE,OAVIoC,KAAOM,EACPnD,OAAOC,eAAekD,EAAKN,EAAK,CAC5BpC,MAAOA,EACPP,YAAY,EACZ6N,cAAc,EACdC,UAAU,IAGd7K,EAAIN,GAAOpC,EAER0C,CACX,CACA,SAAS8K,GAAeC,GACpB,IAAI,IAAI/M,EAAI,EAAGA,EAAIsC,UAAUC,OAAQvC,IAAI,CACrC,IAAI0F,EAAyB,MAAhBpD,UAAUtC,GAAasC,UAAUtC,GAAK,CAAC,EAChDgN,EAAUnO,OAAOqF,KAAKwB,GACkB,mBAAjC7G,OAAOoO,wBACdD,EAAUA,EAAQ9G,OAAOrH,OAAOoO,sBAAsBvH,GAAQwH,QAAO,SAASC,GAC1E,OAAOtO,OAAOuO,yBAAyB1H,EAAQyH,GAAKpO,UACxD,MAEJiO,EAAQ3M,SAAQ,SAASqB,GACrBiL,GAAiBI,EAAQrL,EAAKgE,EAAOhE,GACzC,GACJ,CACA,OAAOqL,CACX,CAcA,SAASM,GAAqBN,EAAQrH,GASlC,OARAA,EAAmB,MAAVA,EAAiBA,EAAS,CAAC,EAChC7G,OAAOyO,0BACPzO,OAAO0O,iBAAiBR,EAAQlO,OAAOyO,0BAA0B5H,IAhBzE,SAAiB8H,EAAQC,GACrB,IAAIvJ,EAAOrF,OAAOqF,KAAKsJ,GACvB,GAAI3O,OAAOoO,sBAAuB,CAC9B,IAAIS,EAAU7O,OAAOoO,sBAAsBO,GAM3CtJ,EAAKf,KAAKX,MAAM0B,EAAMwJ,EAC1B,CACA,OAAOxJ,CACX,CAMQ8I,CAAQnO,OAAO6G,IAASrF,SAAQ,SAASqB,GACrC7C,OAAOC,eAAeiO,EAAQrL,EAAK7C,OAAOuO,yBAAyB1H,EAAQhE,GAC/E,IAEGqL,CACX,CA2CA,SAASY,GAAoBtC,EAAOuC,GAChC,IAAK,IAAIjC,KAAc9M,OAAOqF,KAAKmH,EAAMR,SAAS,CAC9C,MAAME,EAAS8C,GAAmBlC,EAAYN,EAAOuC,GACjClC,GAAeC,GACvBrL,SAAS,CACjBsL,QAAQ,EACRb,UAER,CACJ,CACA,SAAS+C,GAA4BzC,EAAOuC,GACxC,MAAMG,EAkPV,SAAiCC,EAAaC,GAC1C,MAAMC,EAAaC,GAAaC,GAAmBJ,EAAaC,IAC1DI,EAAsBxP,OAAOqF,KAAKgK,GAAYlE,QAAO,CAAChI,EAAKN,KAC7D,IAAI4M,EAEIC,EAGR,OAJ4C,QAAvCD,EAAkBJ,EAAWxM,UAAsC,IAApB4M,OAA6B,EAASA,EAAgBE,kBAEtGxM,EAAIN,GAAgD,QAAxC6M,EAAmBL,EAAWxM,UAAuC,IAArB6M,OAA8B,EAASA,EAAiBC,gBAEjHxM,CAAG,GACX,CAAC,IAQR,SAAyCqM,GACrC,IAAK,IAAK1C,EAAY8C,KAAqB5P,OAAOoH,QAAQoI,GACtD,IAAK,IAAKrC,EAAUjB,KAAWlM,OAAOoH,QAAQwI,GAC1CC,GAA4B3D,EAAQY,EAAYK,EAG5D,CAbI2C,CAAgCN,GAKhC,OAJoBxP,OAAOqF,KAAKmK,GAAqBrE,QAAO,CAAChI,EAAKN,IACxDoL,GAAe,CAAC,EAAG9K,EAAKqM,EAAoB3M,KAEnD,CAAC,EAER,CAlQwBkN,CAAwBvD,EAAOuC,GAC7CiB,EAAsBhQ,OAAOiQ,YAAYjQ,OAAOoH,QAAQ8H,GAAagB,KAAI,EAAE/C,EAAUjB,KAAU,CAC7FiB,EACA,CACIJ,QAAQ,EACRb,cAGNiE,EAAYnD,KACZoD,EAAWD,EAAUzO,WACrB2O,EAAW,CACbpD,MAAOgB,GAAe,CAAC,EAAGmC,EAASnD,MAAO+C,IAEzC,EAAOI,EAAUC,IAClBF,EAAU1O,SAAS4O,EAE3B,CACA,SAASC,GAA8B9D,EAAO4C,GAC1C,MAAMlD,EA+KV,SAAmCiD,EAAaC,GAC5C,IAAInH,EAASsI,GAA8B,EAAMpB,EAAYnD,UAC7D,MAAMwE,EAAoB,IACnBrB,EAAYpD,gBAAgBmE,KAAKvP,GAAI,CAChCA,EAAEuL,OACFvL,EAAEkG,UAEV,CACIuI,EAAgBlD,OAChB,qBAGR,IAAK,IAAKA,EAAQrF,KAAW2J,EACzBvI,EAASqH,GAAa,CAClBrH,EACAwI,GAA2BvE,EAAQrF,KAG3C,OAAOoB,CACX,CAlMmByI,CAA0BlE,EAAO4C,GAChDvB,GAA4BpM,SAAS,CACjCyK,UAER,CACA,SAASyE,GAAwBxB,EAAayB,EAAgBxB,GAC1D,MAAM7B,EAAU,CAAC,EACjB,IAAK,IAAIsD,KAAaD,EAAehE,kBAAkB,CACnD,MAAMV,EAAS4E,GAAuBD,EAAUE,eAAgBF,EAAUG,oBAAqBH,EAAU1D,SAAU0D,EAAUpD,YAAa0B,EAAaC,GACvJ7B,EAAQsD,EAAU1D,UAAYqB,GAAqBP,GAAe,CAAC,EAAGV,EAAQsD,EAAU1D,WAAY,CAChG,CAAC0D,EAAUpD,aAAc,CACrBvB,SACAa,QAAQ,IAGpB,CACAO,KAA2B7L,SAAS,CAChC8L,WAER,CAeW,SAAS0D,GAAmBnE,EAAYoE,GAC/CC,GAAqBrE,EAAYoE,GACjC,MAAME,EAAiB,EAAeF,EAAQG,IACxC7E,EAAQV,EAAoBpK,WAClCoK,EAAoBrK,SAAS,CACzBuK,QAASwC,GAAqBP,GAAe,CAAC,EAAGzB,EAAMR,SAAU,CAC7D,CAACc,GAAasE,KAG1B,CAiBW,SAASE,GAA4BC,EAAeL,GAC3DC,GAAqBI,EAAeL,GACpC,MAAME,EAAiB,EAAeF,EAAQG,IACxC7E,EAAQV,EAAoBpK,WAC9B8K,EAAMR,QAAQuF,IACdxP,QAAQC,KAAK,+BAA+BuP,oGAEhDzF,EAAoBrK,SAAS,CACzBuK,QAASwC,GAAqBP,GAAe,CAAC,EAAGzB,EAAMR,SAAU,CAC7D,CAACuF,GAAgBH,KAG7B,CACO,SAASI,GAAQtF,EAAQuF,EAAa,YACzC,MAAMjF,EAAQV,EAAoBpK,WAClCoK,EAAoBrK,SAAS,CACzBsK,gBAAiB,IACVS,EAAMT,gBACT,CACIlF,OAAQ4K,EACRvF,YAIhB,CASW,SAASwF,GAAU5E,GAC1B,OAAO,IAAI6E,SAASC,IAChB,MAAMC,EAAQhF,GAAeC,GAC7B,SAASgF,EAAOtF,GACZ,GAAIA,EAAMO,QAAUP,EAAMN,OAAQ,CAC9B,MAAMA,EAAS,EAAK,CAChB,qBACA,yBACDM,EAAMN,QACT0F,EAAQ1F,GACR6F,GAAeA,GACnB,CACJ,CACAD,EAAOD,EAAMnQ,YACb,MAAMqQ,EAAcF,EAAMlQ,UAAUmQ,EAAO,GAEnD,CACwB,SAASE,GAAkBlF,GAC/C,OAAO,IAAI6E,SAASC,IAChB,MAAMC,EAAQhF,GAAeC,GAC7B,SAASgF,EAAOtF,GACZ,GAAIA,EAAMO,QAAUP,EAAMN,OAAQ,CAC9B,MAAMA,EAASM,EAAMN,OACrB0F,EAAQ1F,GACR6F,GAAeA,GACnB,CACJ,CACAD,EAAOD,EAAMnQ,YACb,MAAMqQ,EAAcF,EAAMlQ,UAAUmQ,EAAO,GAEnD,CASW,SAASG,GAAcf,EAAQgB,EAAgBC,GACtDC,GAAkBlB,EAAQgB,EAAgBC,GAC1C,MAAMjG,EAASmG,GAAYnB,EAAQgB,GAEnC,OADAI,GAA6BpB,EAAQhF,EAAQiG,GACtCjG,CACX,CAgBI,SAAS4E,GAAuBC,EAAgBC,EAAqB7D,EAAUM,EAAa0B,EAAaC,GACzG,IAAImD,EAAkCC,EAA2CC,EACjF,MAAMlB,EA0XN,SAAgC9D,GAChC,MAAO8D,GAAiB9D,EAAYiF,MAAM,KAC1C,OAAOnB,CACX,CA7X0BoB,CAAuBlF,GACvCmF,EAAwBzD,EAAYnD,QAAQuF,GAC5CsB,EAAqBD,EAAwBrB,EAAgBP,EAC7DjF,EAAkBwD,GAAmBJ,EAAaC,GAClD0D,EAAmBC,GAAgBhC,EAAgBhF,GACzD,IAAIiH,EACJ,MAAMC,EAA6sB,QAA3rBD,EAAkEF,SAA6I,QAAxEP,EAAmCO,EAAiBnD,sBAAiE,IAArC4C,GAAoJ,QAA5FC,EAA4CD,EAAiCpF,UAAqE,IAA9CqF,GAAgL,QAA/GC,EAAsDD,EAA0CU,iBAA+E,IAAxDT,OAA9a,EAAwfA,EAAoDhF,UAA8F,IAApEuF,EAA6EA,EAAkE,CAAC,EAEr2BG,EAAiB7D,GAAa,CADZyD,GAAgBF,EAAoB9G,GAGxDkH,IAGE/B,EAAS0B,QAAqEA,EAAwBzD,EAAYnD,QAAQgF,GAChIoB,GAAkBlB,EAAQiC,EAAgBN,GAC1C,MAAM3G,EAASmG,GAAYnB,EAAQiC,GAGnC,OAFAb,GAA6BpB,EAAQhF,EAAQ2G,UACtC3G,EAAOyD,eACPzD,CACX,CAqBA,SAASqE,GAA8BW,GACnC,OAAIA,EAAO7Q,eAAe,YACfmO,GAAqBP,GAAe,CAAC,EAAGiD,GAAS,CACpDkC,OAAQlC,EAAOmC,SACfC,QAAS,YAENC,GAAiBrC,GACjBlR,OAAOqF,KAAK6L,GAAQ/F,QAAO,CAAChI,EAAKN,KACpCM,EAAIN,GAAO0N,GAA8BW,EAAOrO,IACzCM,IACR,CAAC,GAGG,CAAC,CAEhB,CACA,SAASsN,GAA2BvE,EAAQrF,GACxC,OAAI0M,GAAiBrH,GACVlM,OAAOqF,KAAK6G,GAAQf,QAAO,CAAChI,EAAKN,KACpCM,EAAIN,GAAO4N,GAA2BvE,EAAOrJ,GAAMgE,GAC5C1D,IACR,CAAC,GAEG,CACHiQ,OAAQlH,EACRoH,QAASzM,EAGrB,CAyBA,SAASgJ,GAA4B3D,EAAQY,EAAYK,GACrD,MAAMqG,EAAc,0BAA0B1G,oBAA6BK,IACrEsG,EAAczT,OAAOqF,KAAK6G,GAAQmC,QAAQrG,IAAK,CAC7C,MACA,SACA,QACA,aACF0L,SAAS1L,KACXyL,EAAY/P,QACZ3B,QAAQI,MAAMqR,EAAc,4BAA4BC,EAAYE,KAAK,YAEzEzH,EAAOtK,MACFuH,MAAMC,QAAQ8C,EAAOtK,MAASsK,EAAOtK,IAAIgS,OAAOvS,GAAiB,iBAANA,KAC5DU,QAAQI,MAAMqR,EAAc,kEAGhCtH,EAAO2H,SACF1K,MAAMC,QAAQ8C,EAAO2H,SAAY3H,EAAO2H,OAAOD,OAAOvS,GAAiB,iBAANA,KAClEU,QAAQI,MAAMqR,EAAc,qEAGhCtH,EAAO4H,QACF3K,MAAMC,QAAQ8C,EAAO4H,QAAW5H,EAAO4H,MAAMF,OAAOvS,GAAiB,iBAANA,KAChEU,QAAQI,MAAMqR,EAAc,oEAGhCtH,EAAOgH,YACFK,GAAiBrH,EAAOgH,YACzBnR,QAAQI,MAAMqR,EAAc,yEAGxC,CACA,SAASjE,GAAmBJ,EAAaC,GACrC,MAAO,IACAD,EAAYpD,gBAAgBmE,KAAKvP,GAAIA,EAAEuL,SAC1CkD,EAAgBlD,OAExB,CACA,SAASiF,GAAqBrE,EAAYoE,EAAQ6C,EAAU,IACxD,MAAMC,EAAgB,0FACtB,IAAK,MAAMnR,KAAO7C,OAAOqF,KAAK6L,GAAQ7C,QAAQrG,IAAKA,EAAEiM,WAAW,OAAM,CAClE,MAAMC,EAAcH,GAAWA,GAAW,KAAOlR,EAC3CsR,EAAajD,EAAOrO,GAO1B,GANoB,uBAAhBqR,GACAnS,QAAQI,MAAM,GAAG2K,sHAA+HkH,KAEhI,0BAAhBE,GACAnS,QAAQI,MAAM,GAAG2K,4HAAqIkH,MAErJT,GAAiBY,GAAa,CAC/BpS,QAAQI,MAAM,GAAG2K,+CAAwDoH,OAAiBF,KAC1F,QACJ,CACKG,EAAW9T,eAAe,aAE3B8Q,GAAqBrE,EAAYqH,EAAYD,GAEjD,MAAME,EAAWD,EAAWE,UAI5B,GAHIC,GAAgBF,IAChBjD,GAAqBrE,EAAYsH,EAAUF,EAAc,cAEzDC,EAAWI,YACX,IAAK,IAAIjJ,KAAa6I,EAAWI,YACJ,mBAAdjJ,GACPvJ,QAAQI,MAAM,GAAG2K,oCAA6CoH,MAAgBF,0HAAgJ1I,MAI1O,MAAMkJ,EAAYL,EAAWM,MACzBD,IAAcxU,OAAOsH,OAAO+D,GAAMqI,SAASc,IAC3CzS,QAAQI,MAAM,GAAG2K,+BAAwCoH,MAAgBF,yDAA0EhU,OAAOsH,OAAO+D,GAAMsI,KAAK,oBAAyBa,MAErMxU,OAAOqF,KAAK8O,GAAYP,OAAO5L,GAAI,CAC/B,eACA,cACA,YACA,SACF0L,SAAS1L,OAAQ+L,EAAQL,SAAS,eACpC3R,QAAQI,MAAM,GAAG2K,+CAAwDoH,OAAiBF,qFAA2G7H,KAAKO,UAAUyH,MAEpNC,GAAYI,IAAc,CAC1BnJ,EAAKlC,MACLkC,EAAKrL,QACP0T,SAASc,IACPzS,QAAQI,MAAM,GAAG2K,+CAAwDoH,OAAiBF,qHAA2I7H,KAAKO,UAAU8H,KAE5P,CACJ,CACA,SAASxF,GAAmBlC,EAAYqC,EAAaC,GACjD,IAAKD,EAAYnD,QAAQ3L,eAAeyM,GACpC,MAAMpD,MAAM,yCAA2CoD,GAE3D,MAAMoE,EAAS/B,EAAYnD,QAAQc,GAC7B4H,EAAc3B,GAAgBjG,EAAYyC,GAAmBJ,EAAaC,IAChFgD,GAAkBlB,EAAQwD,EAAa5H,GACvC,MAAMZ,EAASmG,GAAYnB,EAAQwD,GAGnC,OAFApC,GAA6BpB,EAAQhF,EAAQY,UACtCZ,EAAOyD,eACPzD,CACX,CACA,SAAS6G,GAAgBjG,EAAYuC,GACjC,MAAMsF,EAAsBtF,EAAWa,KAAI,EAAG,CAACpD,GAAanM,KAAOA,IAAG0N,QAAQ1N,KAAMA,IACpF,OAAO2O,GAAaqF,EACxB,CACA,SAASrF,GAAa/B,GAElB,OADqB,EAAO,EACrBqH,CAAa,CAAC,EAAGrH,EAC5B,CAMI,SAAS6E,GAAkBlB,EAAQhF,EAAQ6H,EAAU,IAErD,IAAK,MAAMlR,KAAO7C,OAAOqF,KAAK6G,GAAQ,CAClC,MAAMzL,EAAQyL,EAAOrJ,GACfqR,EAAcH,EAAU,IAAMlR,EAC9BsR,EAAajD,EAAOrO,GACrBqO,EAAO7Q,eAAewC,GAM3BgS,GAAwBV,EAAY1T,EAAOyT,GALzB,mBAARrR,GAAwC,KAAZkR,GAC9BhS,QAAQI,MAAM,uBAAuB+R,yBAKjD,CACJ,CACA,SAASW,GAAwBV,EAAY1T,EAAOsT,GAChDe,GAAUf,EAASI,EAAWM,MAAOhU,GACjC8S,GAAiB9S,GAGb0T,EAAWM,QAAUpJ,EAAKrL,OAYtC,SAAqC+U,EAAkB7I,EAAQ6H,GAC3D,GAAIgB,EAAiBV,UACjB,IAAK,MAAMxR,KAAO7C,OAAOqF,KAAK6G,GAAQ,CAClC,MAAMzL,EAAQyL,EAAOrJ,GACrBuP,GAAkB2C,EAAiBV,UAAW5T,EAAO,GAAGsT,KAAWlR,IACvE,CAER,CAlBYmS,CAA4Bb,EAAY1T,EAAOsT,GACvCI,EAAW9T,eAAe,aAElC+R,GAAkB+B,EAAY1T,EAAOsT,GAGrCI,EAAWM,QAAUpJ,EAAKlC,OAatC,SAAgC8L,EAAaxU,EAAOsT,GAEhD,GAAIO,GAAgBW,EAAYZ,WAC5B,IAAI,IAAIlT,EAAI,EAAGA,EAAIV,EAAMiD,OAAQvC,IAC7B0T,GAAwBI,EAAYZ,UAAW5T,EAAMU,GAAI,GAAG4S,KAAW5S,MAG/E,IAAI,IAAIA,EAAI,EAAGA,EAAIV,EAAMiD,OAAQvC,IAAI,CACjC,IAAI+T,EACJJ,GAAU,GAAGf,KAAW5S,KAA2D,QAApD+T,EAAyBD,EAAYZ,iBAAkD,IAA3Ba,OAAoC,EAASA,EAAuBT,MAAOhU,EAAMU,GAChL,CACJ,CAvBYgU,CAAuBhB,EAAY1T,EAAOsT,EAGtD,CAyBI,SAASzB,GAA6BpB,EAAQhF,EAAQ6H,EAAU,IAEhE,GAAI7C,EAIA,GAHIhF,IAAWgF,EAAOmC,UAClB+B,GAAcrB,EAAS7C,EAAOqD,YAAarI,GAE3CqH,GAAiBrH,GACjB,IAAK,MAAMrJ,KAAO7C,OAAOqF,KAAK6G,GAAQ,CAClC,MAAMzL,EAAQyL,EAAOrJ,GACfqR,EAAcH,EAAU,IAAMlR,EAC9BsR,EAAajD,EAAOrO,GACtBqO,EAAOuD,QAAUpJ,EAAKrL,QAAUkR,EAAOmD,UACvC/B,GAA6BpB,EAAOmD,UAAW5T,EAAOyT,GAEtD5B,GAA6B6B,EAAY1T,EAAOyT,EAExD,MACG,GAAI/K,MAAMC,QAAQ8C,IAAWgF,EAAOmD,UACvC,IAAI,IAAIlT,EAAI,EAAGA,EAAI+K,EAAOxI,OAAQvC,IAC9BmR,GAA6BpB,EAAOmD,UAAWnI,EAAO/K,GAAI,GAAG4S,KAAW5S,KAIxF,CACA,SAAS2T,GAAUf,EAASU,EAAOhU,GAC3BgU,GAYAW,GAAcrB,EAAS,CAXL,CACd5K,MAAOC,EACPiM,QAAS7J,EACT8J,YAAa1J,EACb2J,OAAQ9J,EACRzL,OAAQ2L,EACRnF,OAAQkF,EACR8J,KAAM5J,EACN6J,wBAAyB7J,EACzB8J,0BAA2B9J,GAGjB6I,IACXhU,EAEX,CACA,SAAS2U,GAAcrB,EAAS4B,EAAYlV,GACxC,GAAIkV,EACA,IACI,IAAK,IAAIrK,KAAaqK,EAAW,CAC7B,MAAMC,EAAkBtK,EAAU7K,GACH,iBAApBmV,IACc,iBAAVnV,EACPsB,QAAQI,MAAM,6BAA6B4R,MAAY6B,KAEvD7T,QAAQI,MAAM,+BAA+B1B,SAAasT,MAAY6B,KAGlF,CACJ,CAAE,MAAOjW,GACLoC,QAAQI,MAAM,kCAAkC4R,4BAAkCpU,IACtF,CAER,CA5gBImP,GAAoBhD,EAAoBpK,WAAYuK,EAAqBvK,YAC7EoK,EAAoBnK,WAAWwN,GAAcL,GAAoBK,EAAalD,EAAqBvK,cACnGuK,EAAqBtK,WAAWyN,GAAkBN,GAAoBhD,EAAoBpK,WAAY0N,KACtGkB,GAA8BxE,EAAoBpK,WAAYuK,EAAqBvK,YACnFoK,EAAoBnK,WAAWwN,GAAcmB,GAA8BnB,EAAalD,EAAqBvK,cAC7GuK,EAAqBtK,WAAWyN,GAAkBkB,GAA8BxE,EAAoBpK,WAAY0N,KAChHH,GAA4BnD,EAAoBpK,WAAYuK,EAAqBvK,YACjFoK,EAAoBnK,WAAWwN,GAAcF,GAA4BE,EAAalD,EAAqBvK,cAC3GuK,EAAqBtK,WAAWyN,GAAkBH,GAA4BnD,EAAoBpK,WAAY0N,KAC9GuB,GAAwB7E,EAAoBpK,WAAYiL,GAAqBjL,WAAYuK,EAAqBvK,YAC9GoK,EAAoBnK,WAAWwN,IAC3BwB,GAAwBxB,EAAaxC,GAAqBjL,WAAYuK,EAAqBvK,WAAW,IAE1GiL,GAAqBhL,WAAWiP,IAC5BD,GAAwB7E,EAAoBpK,WAAYkP,EAAgB3E,EAAqBvK,WAAW,IAE5GuK,EAAqBtK,WAAWyN,IAC5BuB,GAAwB7E,EAAoBpK,WAAYiL,GAAqBjL,WAAY0N,EAAgB,IA6f7G,MAAMiD,GAAc,CAACnB,EAAQwD,KACzB,MAAMxI,EAAS,EAAMwI,GACrB,IAAKxD,EACD,OAAOhF,EAEX,IAAK,MAAMrJ,KAAO7C,OAAOqF,KAAK6L,GAAQ,CAClC,MAAM2E,EAAa3J,EAAOrJ,GACpBsR,EAAajD,EAAOrO,GAM1B,GAAIsR,GAAcA,EAAW9T,eAAe,YAAa,CAGhD6L,EAAO7L,eAAewC,KACvBqJ,EAAOrJ,GAAOsR,EAAqB,UAGvC,MAAMC,EAAWD,EAAWE,UAC5B,GAAIwB,GAAcvB,GAAgBF,GAC9B,GAAID,EAAWM,QAAUpJ,EAAKlC,OAASA,MAAMC,QAAQyM,GAAa,CAC9D,MAAMC,EAAqBD,EAAW3F,KAAK6F,GAAO1D,GAAY+B,EAAU2B,KACxE7J,EAAOrJ,GAAOiT,CAClB,MAAO,GAAI3B,EAAWM,QAAUpJ,EAAKrL,OACjC,IAAK,IAAIgW,KAAahW,OAAOqF,KAAKwQ,GAC9BA,EAAWG,GAAa3D,GAAY+B,EAAUyB,EAAWG,GAIzE,MAAO,GAAIzC,GAAiBY,GAAa,CAIrC,MAAM8B,EAAqB/J,EAAO7L,eAAewC,GAAOgT,EAAa,CAAC,EAClEtC,GAAiB0C,KACjB/J,EAAOrJ,GAAOwP,GAAY8B,EAAY8B,GAE9C,CACJ,CACA,OAAO/J,CAAM,EAEjB,SAASoI,GAAgB4B,GACrB,QAASA,GAAkBlW,OAAOqF,KAAK6Q,GAAgB7H,QAAQ1O,IAAK,CAC5D,WACA,eACF+T,SAAS/T,KAAI+D,OAAS,CAChC,CACA,SAAS6P,GAAiB9S,GACtB,MAAwB,iBAAVA,IAAuB0I,MAAMC,QAAQ3I,IAAoB,OAAVA,CACjE,CAUI,MAAM4Q,GAAuB,CAC7B,qBAAsB,CAClB8E,WAAY,CACRC,aAAc,4DACd3B,MAAOpJ,EAAKlC,MACZkK,SAAU,KAGlB,wBAAyB,CACrB+C,aAAc,oKACd3B,MAAOpJ,EAAKrL,OACZqT,SAAU,CAAC,IChqBnB,IAAIxT,GAAEG,OAAOqW,OAAO,CAACC,UAAU,KAASC,YAAQ,OAAOC,EAAE,EAAMC,0BAAsB,OAAOC,EAAE,EAAMC,0BAAsB,OAAOC,EAAC,EAAMC,sBAAkB,OAAOC,EAAC,EAAMC,wBAAoB,OAAOC,EAAC,EAAMC,uBAAmB,OAAOC,EAAC,EAAMC,0BAAsB,OAAOC,EAAE,EAAMC,4BAAwB,OAAOC,EAAE,EAAMC,qBAAiB,OAAOC,EAAE,EAAMC,mBAAe,OAAOC,EAAE,EAAMC,wBAAoB,OAAOC,EAAE,EAAMC,6BAAyB,OAAOC,EAAE,EAAMC,kBAAc,OAAOC,EAAE,EAAMC,uBAAmB,OAAOC,EAAE,EAAMC,oBAAgB,OAAOC,EAAE,EAAMC,uBAAmB,OAAOC,EAAE,EAAMC,sBAAkB,OAAO1X,EAAC,EAAM2X,yBAAqB,OAAO7X,EAAC,EAAM8X,sBAAkB,OAAOC,EAAC,EAAMC,iBAAa,OAAO5Q,EAAC,EAAM6Q,0BAAsB,OAAOC,EAAC,EAAMC,uBAAmB,OAAOC,EAAC,EAAMC,oBAAgB,OAAOC,EAAC,EAAMC,kBAAc,OAAOC,EAAC,EAAMC,eAAW,OAAOxZ,EAAC,EAAMyZ,eAAW,OAAOvW,EAAC,EAAMwW,iBAAa,OAAOC,EAAC,EAAMC,cAAU,OAAOC,EAAC,EAAMC,iBAAa,OAAOC,EAAC,EAAMC,0BAAsB,OAAOC,EAAC,IAAI,SAASxY,GAAExB,GAAG,OAAOwB,GAAE,mBAAmBd,QAAQ,iBAAiBA,OAAOwK,SAAS,SAASlL,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBU,QAAQV,EAAEwG,cAAc9F,QAAQV,IAAIU,OAAOH,UAAU,gBAAgBP,CAAC,GAAGA,EAAE,CAAC,SAASF,GAAEE,EAAEwB,EAAE1B,GAAG,OAAO0B,KAAKxB,EAAEG,OAAOC,eAAeJ,EAAEwB,EAAE,CAACZ,MAAMd,EAAEO,YAAW,EAAG6N,cAAa,EAAGC,UAAS,IAAKnO,EAAEwB,GAAG1B,EAAEE,CAAC,CAAC,IAAIC,IAAG,oBAAoBiD,WAAWA,WAAW,oBAAoBG,OAAOA,YAAO,IAAoB,EAAAJ,EAAO,EAAAA,EAAO,oBAAoBgX,KAAKA,KAAK,CAAC,GAAGC,YAAYha,GAAE,WAAW,IAAI,IAAIF,EAAE,IAAIC,GAAE,MAAM,CAACka,OAAO,CAACC,IAAI,SAAS,MAAM,QAAQpa,EAAEqa,MAAM,QAAQra,EAAEma,OAAOC,GAAG,CAAC,MAAMpa,GAAG,CAAC,OAAM,CAAE,CAApH,GAAwHC,GAAE,oBAAoBqa,UAAU,mBAAmBA,SAASC,YAAY,SAASva,EAAEwB,GAAG,IAAI1B,EAAEwa,SAASC,YAAY,eAAe,OAAO/Y,EAAE1B,EAAE0a,gBAAgBxa,EAAEwB,EAAEiZ,QAAQjZ,EAAEkZ,WAAWlZ,EAAE2Y,QAAQra,EAAE0a,gBAAgBxa,GAAE,GAAG,OAAG,GAAQF,CAAC,EAAE,SAASE,EAAEwB,GAAG,IAAI1B,EAAEwa,SAASK,oBAAoB,OAAO7a,EAAEua,KAAKra,EAAEwB,GAAG1B,EAAE2a,QAAQjF,QAAQhU,EAAEiZ,SAAS3a,EAAE4a,WAAWlF,QAAQhU,EAAEkZ,YAAY5a,EAAEqa,OAAO3Y,EAAE2Y,SAASra,EAAE2a,SAAQ,EAAG3a,EAAE4a,YAAW,EAAG5a,EAAEqa,YAAO,GAAQra,CAAC,EAAEwB,GAAE,GAAG,SAASJ,GAAElB,EAAEwB,EAAE1B,GAAG,IAAIG,EAAEwG,GAAEzG,EAAEwB,EAAE1B,GAAGwB,GAAEuC,OAAOvC,GAAEK,SAAQ,SAAU3B,GAAG,OAAOA,EAAEC,EAAG,IAAG2a,YAAW,WAAY,MAAM3a,CAAE,GAAE,CAAC,SAASe,GAAEhB,GAAG,GAAG,mBAAmBA,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAKE,GAAEmD,KAAKzE,EAAE,CAAC,SAASc,GAAEd,GAAG,GAAG,mBAAmBA,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAK,IAAII,GAAE,EAAG,OAAOF,GAAEA,GAAEkN,QAAO,SAAU1O,GAAG,IAAIG,EAAEH,IAAIE,EAAE,OAAOwB,EAAEA,GAAGvB,GAAGA,CAAE,IAAGuB,CAAC,CAAC,SAASJ,GAAEpB,EAAEwB,GAAG,IAAI,IAAI1B,EAAE8D,UAAUC,OAAO5D,EAAE,IAAIqJ,MAAMxJ,EAAE,EAAEA,EAAE,EAAE,GAAGI,EAAE,EAAEA,EAAEJ,EAAEI,IAAID,EAAEC,EAAE,GAAG0D,UAAU1D,GAAG,MAAM,gCAAgCsH,OAAOxH,EAAE,MAAMwH,OAAOhG,EAAEA,EAAE,IAAI,GAAG,8CAA8CgG,OAAOxH,GAAGwH,OAAOvH,EAAE4D,OAAO,QAAQ2D,OAAOvH,EAAE6T,KAAK,UAAU,GAAG,CAAC,SAASrN,GAAEzG,EAAEwB,EAAE1B,GAAG,IAAIG,EAAEC,EAAE,GAAGsH,OAAOqT,GAAErZ,GAAG,MAAMgG,OAAOsT,GAAEtZ,GAAG,qBAAqBgG,OAAOhG,EAAEuZ,OAAO,MAAM,GAAG/a,aAAa6J,MAAM,CAAC,IAAI7J,EAAE+G,QAAQ7G,EAAEF,EAAE+G,OAAO,CAAC,MAAM/G,GAAG,CAACC,EAAED,CAAC,KAAK,CAACkC,QAAQC,KAAKf,GAAE,IAAG,EAAGI,EAAEuZ,OAAOD,GAAEtZ,KAAK,IAAIvB,EAAE4J,MAAM3J,EAAEoM,KAAKO,UAAU7M,GAAG,CAAC,MAAMwB,GAAGvB,EAAED,CAAC,CAAC,CAAC,OAAOC,EAAE+a,gBAAgBF,GAAEtZ,GAAGA,EAAEuZ,OAAOjb,EAAEG,CAAC,CAAC,IAAIiI,GAAE,aAAa8Q,GAAE,sBAAsBE,GAAE,mBAAmBE,GAAE,gBAAgBE,GAAE,cAAcvZ,GAAE,WAAW6Z,GAAE,UAAU3W,GAAE,WAAW6W,GAAE,aAAaJ,GAAE,aAAaM,GAAE,sBAAsB,SAASiB,GAAEjb,GAAG,OAAOA,EAAE+a,SAASnB,EAAC,CAAC,SAAS3V,GAAEjE,GAAG,IAAI,OAAOA,EAAEkb,WAAW7X,OAAO8X,SAAS,CAAC,MAAM3Z,GAAG,OAAON,GAAEM,EAAExB,EAAEga,KAAG,CAAE,CAAC,CAAC,SAASc,GAAE9a,GAAG,OAAOA,EAAE8G,IAAI,CAAC,SAASsU,GAAEpb,GAAG,OAAOwV,QAAQxV,EAAEqb,kBAAkB,CAAC,SAASR,GAAE7a,GAAG,OAAOob,GAAEpb,GAAG,SAAS,aAAa,CAAC,SAASsb,KAAI,IAAI,IAAItb,EAAE4D,UAAUC,OAAO,EAAE7D,EAAE,EAAEA,IAAI,IAAI,IAAIwB,KAAKoC,UAAU5D,GAAG,cAAcwB,IAAIoC,UAAU5D,EAAE,GAAGwB,GAAGoC,UAAU5D,GAAGwB,IAAI,OAAOoC,UAAU,EAAE,CAAC,SAAS2X,GAAEvb,EAAEwB,GAAG,IAAI,IAAI1B,EAAE,EAAEA,EAAEE,EAAE6D,OAAO/D,IAAI,GAAG0B,EAAExB,EAAEF,IAAI,OAAOE,EAAEF,GAAG,OAAO,IAAI,CAAC,SAAS0b,GAAExb,GAAG,OAAOA,IAAI,mBAAmBA,IAAIwB,EAAExB,EAAEsJ,MAAMC,QAAQ/H,KAAK+Z,GAAE/Z,GAAE,SAAUxB,GAAG,MAAM,mBAAmBA,CAAE,MAAK,IAAIwB,CAAC,CAAC,SAASia,GAAEzb,EAAEwB,GAAG,IAAI1B,EAAEE,EAAEwB,IAAI,GAAG,KAAK1B,EAAEwJ,MAAMC,QAAQzJ,GAAGA,EAAE,CAACA,IAAI+D,SAAS/D,EAAE,CAAC,WAAW,OAAOgS,QAAQC,SAAS,IAAI,IAAI9R,EAAE4a,GAAE7a,GAAGE,EAAE4a,GAAE9a,GAAG,OAAO,SAASA,GAAG,OAAOF,EAAEwL,QAAO,SAAUxL,EAAEwB,EAAEJ,GAAG,OAAOpB,EAAE4b,MAAK,WAAY,IAAI5b,EAAEwB,EAAEtB,GAAG,OAAO2b,GAAE7b,GAAGA,EAAEgS,QAAQ8J,OAAOxa,GAAE,IAAG,EAAGnB,EAAEC,EAAEsB,EAAEN,GAAI,GAAG,GAAE4Q,QAAQC,UAAU,CAAC,CAAC,SAAS4J,GAAE3b,GAAG,OAAOA,GAAG,mBAAmBA,EAAE0b,MAAM,mBAAmB1b,EAAE6b,KAAK,CAAC,SAASC,GAAE9b,EAAEwB,GAAG,OAAOsQ,QAAQC,UAAU2J,MAAK,WAAY,OAAO1b,EAAE+a,SAAS7B,GAAElZ,GAAGA,EAAE+a,OAAO3B,GAAEpZ,EAAE+b,UAAUC,GAAEhc,EAAE,aAAa0b,KAAK5b,GAAG+b,OAAM,SAAU/b,GAAG,GAAG0B,EAAE,MAAMiF,GAAE3G,EAAEE,EAAEga,IAAG,OAAO9Y,GAAEpB,EAAEE,EAAEga,IAAGha,CAAE,IAAG8R,QAAQC,UAAU2J,KAAK5b,GAAI,IAAG,SAASA,IAAI,OAAOE,EAAE+a,OAAOzB,GAAEtZ,CAAC,CAAC,CAAC,SAASic,GAAEjc,EAAEwB,GAAG,OAAOsQ,QAAQC,UAAU2J,MAAK,WAAY,GAAG1b,EAAE+a,SAASnB,GAAE,OAAO5Z,EAAEA,EAAE+a,OAAOjB,GAAE,IAAIha,EAAEK,OAAOqF,KAAKxF,EAAEkc,SAAS7L,KAAI,SAAU7O,GAAG,OAAOxB,EAAEkc,QAAQ1a,GAAG6Z,mBAAoB,IAAG,OAAOvJ,QAAQqK,IAAIrc,GAAG4b,KAAKzb,GAAE,SAAUH,GAAG,OAAOG,IAAIyb,MAAK,WAAY,IAAIzb,EAAE4J,MAAM/J,EAAEiH,SAAS,GAAGvF,EAAE,MAAMiF,GAAExG,EAAED,EAAEga,IAAG9Y,GAAEjB,EAAED,EAAEga,GAAG,GAAG,IAAG0B,MAAK,WAAY,OAAO1b,CAAE,IAAG,SAASC,IAAI,OAAO+b,GAAEhc,EAAE,WAAW0b,MAAK,WAAY1b,EAAE+a,OAAOzB,EAAE,IAAGuC,OAAM,SAAU/b,GAAG,GAAG0B,EAAE,MAAMiF,GAAE3G,EAAEE,EAAEga,IAAG9Y,GAAEpB,EAAEE,EAAEga,GAAG,GAAE,CAAE,GAAE,CAAC,IAAIoC,IAAE,EAAGC,IAAE,EAAG,SAASzX,GAAE5E,EAAEwB,GAAG,OAAOsQ,QAAQC,UAAU2J,MAAK,WAAY,OAAO1b,EAAE+a,SAASzB,GAAEtZ,GAAGoc,KAAI/Y,OAAOiZ,cAAc,IAAIpc,GAAE,kCAAkCkc,IAAE,GAAIJ,GAAEhc,EAAE,SAAS0b,MAAK,WAAY,OAAO1b,EAAE+a,OAAOnB,GAAEyC,KAAIhZ,OAAOiZ,cAAc,IAAIpc,GAAE,2BAA2Bmc,IAAE,GAAIrc,CAAE,IAAG6b,OAAM,SAAU/b,GAAG,OAAOE,EAAE+a,OAAOnB,GAAEqC,GAAEjc,GAAE,GAAI0b,KAAKzb,EAAEA,GAAG,SAASA,IAAI,GAAGuB,EAAE,MAAMiF,GAAE3G,EAAEE,EAAEga,IAAG,OAAO9Y,GAAEpB,EAAEE,EAAEga,IAAGha,CAAC,CAAE,IAAI,GAAE,CAAC,IAAIuc,GAAE,EAAEC,GAAE,CAACN,QAAQ,CAAC,GAAG,SAASrD,KAAI,OAAO4D,GAAE3Y,MAAM0Y,GAAE5Y,UAAU,CAAC,SAAS6Y,GAAEzc,EAAEF,GAAG,IAAIG,EAAEkD,KAAK,IAAInD,GAAG,WAAWwB,GAAExB,IAAI,mBAAmBA,EAAE,MAAM6J,MAAMzI,GAAE,GAAE,IAAK,GAAGpB,EAAE8G,MAAM,iBAAiB9G,EAAE8G,KAAK,MAAM+C,MAAMzI,GAAE,GAAE,EAAGI,GAAExB,EAAE8G,QAAQ,GAAG,WAAWtF,GAAE1B,GAAG,MAAM+J,MAAMzI,GAAE,GAAE,EAAG0F,KAAKtF,GAAE1B,KAAK,IAAIA,EAAE4c,WAAW,MAAM7S,MAAMzI,GAAE,GAAE,EAAG0F,OAAO,IAAI5G,EAAEoB,EAAEib,KAAIrb,EAAE,mBAAmBlB,EAAEgB,EAAEE,EAAElB,EAAE,WAAW,OAAO8R,QAAQC,QAAQ/R,EAAE,EAAEc,EAAE,CAAC6b,GAAGrb,EAAE4a,QAAQ,CAAC,EAAEnB,OAAO7Z,EAAE8X,GAAEE,GAAE0D,YAAY9c,EAAE+c,WAAW/B,GAAE7a,GAAGob,kBAAkB,WAAW,OAAO3B,EAAEgC,MAAK,WAAY,GAAG5a,EAAEia,SAASnB,GAAE,MAAM/P,MAAMzI,GAAE,GAAE,EAAG0F,KAAKhG,EAAEia,SAAS,OAAOkB,GAAEnb,GAAE,EAAI,IAAG4a,MAAK,SAAU1b,GAAG,OAAOc,EAAE+b,mBAAmB5c,EAAEic,QAAQpb,EAAE6b,IAAI3c,CAAE,IAAG0b,MAAK,SAAU1b,GAAG,OAAOoZ,EAAEpZ,GAAGA,CAAE,IAAG6b,OAAM,SAAU7b,GAAG,MAAMc,EAAEia,OAAOf,GAAEja,EAAEC,GAAGA,CAAE,GAAE,GAAGC,EAAEic,QAAQ5a,GAAGR,EAAE,IAAIoH,EAAElH,IAAI,IAAIkH,GAAG,mBAAmBA,EAAEwT,KAAK,MAAM7R,MAAMzI,GAAE,GAAE,IAAK,IAAIgY,EAAErZ,EAAE+Z,GAAG5R,EAAEA,EAAEwT,MAAK,SAAU1b,GAAG,IAAIA,EAAE,MAAM6J,MAAMzI,GAAE,GAAE,IAAK,IAAII,EAAExB,EAAE8G,MAAM,UAAUU,OAAOlG,GAAG,GAAGnB,OAAOI,UAAUC,eAAeC,KAAKT,EAAE,eAAewb,GAAExb,EAAE+b,WAAW,MAAMlS,MAAMzI,GAAE,GAAE,EAAGI,IAAI,IAAIga,GAAExb,EAAE8c,OAAO,MAAMjT,MAAMzI,GAAE,IAAG,EAAGI,IAAI,IAAIga,GAAExb,EAAE+c,SAAS,MAAMlT,MAAMzI,GAAE,IAAG,EAAGI,IAAI,GAAGxB,EAAEiS,SAASuJ,GAAExb,EAAEiS,QAAQ,MAAMpI,MAAMzI,GAAE,IAAG,EAAGI,IAAI,IAAI1B,EAAE2b,GAAEzb,EAAE,aAAaC,EAAEwb,GAAEzb,EAAE,SAASkB,EAAEua,GAAEzb,EAAE,WAAWc,EAAEia,OAAO7B,GAAEpY,EAAEgG,KAAKtF,EAAEV,EAAEib,UAAUjc,EAAEgB,EAAEgc,MAAM7c,EAAEa,EAAEic,QAAQ7b,EAAEJ,EAAEkc,SAASC,GAAEjd,EAAEgd,UAAUhd,EAAEiS,SAASnR,EAAEmR,OAAOwJ,GAAEzb,EAAE,UAAUE,EAAE+R,OAAO,SAASjS,GAAG,OAAOc,EAAE8b,YAAY5c,EAAEkd,GAAE,SAASld,GAAG,OAAO8R,QAAQC,UAAU2J,MAAK,WAAY,GAAG1b,EAAE+a,SAASnB,GAAE,MAAM/P,MAAMzI,GAAE,IAAG,EAAG0Z,GAAE9a,KAAK,OAAOA,EAAE+a,OAAO9X,GAAE+Y,GAAEhc,EAAE,UAAU0b,MAAK,WAAY,OAAO1b,EAAE+a,OAAOnB,GAAE5Z,CAAE,IAAG6b,OAAM,SAAUra,GAAG,MAAMiF,GAAEjF,EAAExB,EAAEga,GAAG,GAAG,GAAE,CAAhN,CAAkNlZ,GAAG,EAAG,KAAI4a,MAAK,WAAY,OAAOI,GAAEhb,GAAE,EAAI,IAAG4Y,EAAEI,EAAE4B,MAAK,WAAY,OAAO9W,GAAE9D,GAAE,EAAI,IAAGma,EAAE,IAAInJ,SAAQ,SAAU9R,EAAEwB,GAAG4X,EAAEpZ,EAAED,EAAEyB,CAAE,IAAG,OAAOtB,EAAE,CAAC4c,MAAM,WAAW,OAAOI,GAAEpL,QAAQC,UAAU2J,MAAK,WAAY,GAAG5a,EAAEia,SAASzB,GAAE,MAAMzP,MAAMzI,GAAE,IAAG,EAAG0F,KAAKhG,EAAEia,SAAS,OAAO9a,EAAEic,QAAQ5a,GAAGR,EAAE8D,GAAE9D,EAAG,IAAG,EAAEic,QAAQ,WAAW,OAAOG,GAAEpc,EAAEua,oBAAoB,EAAE8B,UAAU,WAAW,OAAOrc,EAAEia,MAAM,EAAEqC,YAAYF,GAAEhV,GAAGmV,iBAAiBH,GAAEpD,GAAGwD,aAAaJ,GAAExD,GAAG6D,eAAeL,GAAEjC,GAAG,CAAC,SAASiC,GAAEld,GAAG,OAAOA,EAAE0b,MAAK,WAAY,OAAO,IAAK,GAAE,CAAC,SAASvT,GAAErI,GAAG,IAAIG,EAAE6a,GAAEhb,GAAGI,EAAE,mBAAmBJ,EAAE8c,YAAY9c,EAAE8c,YAAY3c,EAAEoD,OAAO8X,UAAUrb,EAAE8c,aAAa,WAAWpb,GAAEtB,IAAI,OAAOA,GAAGoJ,MAAMC,QAAQrJ,MAAMA,EAAE,CAAC,EAAEgC,QAAQC,KAAKf,GAAE,IAAG,GAAInB,EAAEC,IAAI,IAAIoB,EAAEga,GAAE,CAAC,EAAEpb,EAAE,CAAC4G,KAAK7G,EAAEud,YAAYf,GAAE1S,KAAKjK,GAAG2d,UAAUzd,KAAI,OAAOob,GAAEtb,KAAKwB,EAAEoc,YAAY5d,EAAEub,mBAAmB/Z,CAAC,CAAC,IAAIqc,GAAE,CAAC5B,UAAU,CAAC6B,OAAO,IAAIC,cAAa,EAAGC,cAAc,KAAKhB,MAAM,CAACc,OAAO,IAAIC,cAAa,EAAGC,cAAc,KAAKf,QAAQ,CAACa,OAAO,IAAIC,cAAa,EAAGC,cAAc,KAAKC,OAAO,CAACH,OAAO,IAAIC,cAAa,EAAGC,cAAc,KAAK7L,OAAO,CAAC2L,OAAO,IAAIC,cAAa,EAAGC,cAAc,MAAM,SAAS/G,GAAE/W,EAAEwB,EAAE1B,GAAG,GAAG,iBAAiBE,GAAGA,GAAG,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAKuc,GAAE5B,UAAU,CAAC6B,OAAO5d,EAAE6d,aAAarc,EAAEsc,cAAche,GAAG,IAAI,CAAC,SAASmX,GAAEjX,EAAEwB,EAAE1B,GAAG,GAAG,iBAAiBE,GAAGA,GAAG,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAKuc,GAAEb,MAAM,CAACc,OAAO5d,EAAE6d,aAAarc,EAAEsc,cAAche,GAAG,IAAI,CAAC,SAASqX,GAAEnX,EAAEwB,EAAE1B,GAAG,GAAG,iBAAiBE,GAAGA,GAAG,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAKuc,GAAEZ,QAAQ,CAACa,OAAO5d,EAAE6d,aAAarc,EAAEsc,cAAche,GAAG,IAAI,CAAC,SAASuX,GAAErX,EAAEwB,EAAE1B,GAAG,GAAG,iBAAiBE,GAAGA,GAAG,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAKuc,GAAEI,OAAO,CAACH,OAAO5d,EAAE6d,aAAarc,EAAEsc,cAAche,GAAG,IAAI,CAAC,SAASkc,GAAEhc,EAAEwB,GAAG,IAAI1B,EAAEE,EAAEgd,SAASxb,GAAGvB,EAAEH,EAAEge,cAAc5d,EAAE2a,GAAE7a,GAAG,OAAO,IAAI8R,SAAQ,SAAUxQ,EAAEJ,GAAG,IAAIF,GAAE,EAAGF,GAAE,EAAGd,EAAEwB,GAAG2G,GAAEnI,IAAI0b,MAAK,SAAU1b,GAAGgB,GAAE,EAAGM,EAAEtB,EAAG,IAAG6b,OAAM,SAAU7b,GAAGgB,GAAE,EAAGE,EAAElB,EAAG,IAAG4a,YAAW,WAAY,OAAO1S,EAAE,EAAG,GAAEjI,GAAG2a,YAAW,WAAY,OAAO1S,GAAE,EAAI,GAAEpI,EAAE8d,QAAQ,IAAInX,EAAErF,GAAE,IAAG,EAAGI,EAAEtB,EAAE4a,GAAE9a,GAAGF,EAAE8d,QAAQ,SAAS1V,EAAElI,GAAG,IAAIgB,EAAE,IAAG,IAAKhB,EAAEc,GAAE,EAAGhB,EAAE+d,aAAa3c,EAAE2I,MAAMpD,IAAIvE,QAAQI,MAAMmE,QAAQ,IAAI3F,EAAE,CAAC,IAAIU,EAAExB,EAAEE,EAAEsB,EAAEvB,EAAEiC,QAAQC,KAAKsE,GAAGvG,EAAED,EAAEH,EAAE8d,QAAQhD,YAAW,WAAY,OAAO1S,EAAE1G,EAAE,EAAG,GAAEvB,EAAE,CAAC,CAAE,GAAE,CAAC,SAASgd,GAAEjd,GAAG,IAAIwB,EAAE,CAAC,EAAE,IAAI,IAAI1B,KAAK6d,GAAEnc,EAAE1B,GAAGwb,GAAE,CAAC,EAAEqC,GAAE7d,GAAGE,GAAGA,EAAEF,IAAI,CAAC,GAAG,OAAO0B,CAAC,CAAC,SAASwc,GAAEhe,GAAG,OAAO8R,QAAQC,UAAU2J,MAAK,WAAY,OAAO1b,EAAEod,YAAYpd,EAAEod,YAAYpd,EAAE+a,SAAS7S,IAAGlI,EAAE+a,SAASrB,GAAE1Z,GAAGA,EAAE+a,OAAO/B,GAAEhZ,EAAEod,YAAYtL,QAAQC,UAAU2J,MAAK,WAAY,IAAIxb,EAAEF,EAAEie,QAAQ9V,GAAEnI,IAAI,IAAI2b,GAAEzb,GAAG,MAAMD,GAAE,EAAG4J,MAAMzI,GAAE,IAAG,EAAG0Z,GAAE9a,KAAK,OAAOE,EAAEwb,MAAK,SAAUzb,GAAG,IAAIC,EAAEF,EAAEke,cAAc,KAAK,WAAW1c,GAAE1B,EAAEG,KAAKC,EAAE,IAAIC,OAAOI,UAAUC,eAAeC,KAAKX,EAAE,eAAe0b,GAAE1b,EAAEic,aAAa7b,EAAE,IAAIsb,GAAE1b,EAAEgd,SAAS5c,EAAE,IAAIsb,GAAE1b,EAAEid,WAAW7c,EAAE,IAAI,IAAIoB,EAAEuZ,GAAE/a,GAAG,GAAGI,EAAE,CAAC,IAAIc,EAAE,IAAIA,EAAEsL,KAAKO,UAAU/M,EAAE,CAAC,MAAME,GAAG,CAAC,OAAOkC,QAAQI,MAAMlB,GAAElB,GAAE,EAAGoB,EAAEwZ,GAAE9a,GAAGgB,GAAGlB,GAAGoB,QAAE,EAAOlB,EAAEga,IAAGha,CAAC,CAAC,OAAOF,EAAEqe,UAAUre,EAAEqe,SAASC,WAAWpe,EAAEme,SAASC,SAAS9C,GAAE,CAAC,EAAEtb,EAAEme,SAASC,SAASte,EAAEqe,SAASC,WAAWpe,EAAE+a,OAAO7B,GAAElZ,EAAE+b,UAAUN,GAAE3b,EAAE,aAAaE,EAAE8c,MAAMrB,GAAE3b,EAAE,SAASE,EAAE+c,QAAQtB,GAAE3b,EAAE,WAAWE,EAAE+d,OAAOtC,GAAE3b,EAAE,UAAUE,EAAEgd,SAASC,GAAEnd,EAAEkd,iBAAiBhd,EAAEod,YAAYpd,CAAE,GAAG,IAAG6b,OAAM,SAAUra,GAAG,IAAI1B,EAAE,cAAcE,EAAEod,YAAYnd,EAAEH,EAAEka,IAAGla,EAAE4Z,GAAE1Z,EAAEke,eAAc,IAAK/U,MAAMkV,WAAWnd,GAAEM,EAAExB,EAAEF,GAAGE,CAAE,KAAI,IAAIF,EAAEG,CAAE,GAAE,CAAC,IAAIqe,GAAEC,GAAE,oBAAoBlb,OAAOmb,GAAE,CAACC,WAAW,GAAGC,SAAS,IAAIC,GAAG,CAAC,aAAa,YAAY,SAASpG,GAAGvY,GAAG,IAAIwB,EAAE,GAAG,iBAAiBxB,EAAEwB,EAAExB,OAAO,GAAGmD,MAAMA,KAAKyb,KAAKpd,EAAE2B,KAAKyb,SAAS,CAAC,KAAK5e,GAAGA,EAAE6e,eAAe7e,EAAE6e,cAAcD,MAAM5e,EAAE8e,gBAAgB,MAAMjV,MAAMzI,GAAE,IAAG,IAAKI,EAAExB,EAAE6e,cAAcD,KAAK5e,EAAE8e,gBAAgB,CAAC,IAAIhf,EAAEif,GAAG1b,OAAO8X,SAASyD,MAAM3e,EAAE8e,GAAGvd,GAAG,IAAIA,EAAEwd,QAAQ,KAAK3b,OAAO8X,SAAS8D,KAAKhf,EAAEgf,KAAKnf,EAAEof,OAAOjf,EAAEif,MAAMjf,EAAEif,KAAK7b,OAAO8X,SAASyD,KAAKpd,EAAEvB,EAAEkf,WAAWrf,EAAEqf,UAAUlf,EAAEmf,SAAStf,EAAEsf,OAAO/b,OAAO8X,SAAS8D,KAAKhf,EAAEgf,KAAK5b,OAAOgc,QAAQC,UAAU,KAAK,KAAK9d,EAAE,CAAC,SAAS+d,GAAGvf,GAAG,IAAIwB,EAAE2B,KAAK,GAAGnD,EAAE,CAAC,IAAIF,EAAEE,EAAE,GAAGqa,KAAKsE,GAAGK,QAAQlf,IAAI,GAAG0e,GAAE1e,GAAG6B,SAAQ,SAAU7B,GAAG,IAAIA,EAAEgE,MAAMtC,EAAExB,EAAE,CAAC,MAAMA,GAAG4a,YAAW,WAAY,MAAM5a,CAAE,GAAE,CAAE,GAAE,CAAC,CAAC,SAASwf,KAAKC,GAAG,GAAG7b,UAAU,CAAC,SAAS8b,GAAG1f,EAAEwB,GAAG,OAAO,WAAW,IAAI1B,EAAEuD,OAAO8X,SAASyD,KAAK3e,EAAED,EAAE8D,MAAMX,KAAKS,WAAW1D,EAAEmD,OAAO8X,SAASyD,KAAK,OAAON,IAAGxe,IAAII,IAAIyf,KAAKtc,OAAOiZ,cAAqD,SAAYtc,EAAEwB,GAAG,IAAI1B,EAAE,IAAIA,EAAE,IAAI8f,cAAc,WAAW,CAACjT,MAAM3M,GAAG,CAAC,MAAMwB,IAAI1B,EAAEwa,SAASC,YAAY,kBAAkBsF,kBAAkB,YAAW,GAAG,EAAG7f,EAAE,CAAC,OAAOF,EAAE2d,WAAU,EAAG3d,EAAEggB,iBAAiBte,EAAE1B,CAAC,CAAjPigB,CAAG1c,OAAOgc,QAAQ1S,MAAMnL,IAAIie,GAAG,KAAKxf,CAAC,CAAC,CAA4M,GAAGse,GAAE,CAAClb,OAAO2c,iBAAiB,aAAaR,IAAInc,OAAO2c,iBAAiB,WAAWR,IAAI,IAAIS,GAAG5c,OAAO2c,iBAAiBE,GAAG7c,OAAO8c,oBAAoB9c,OAAO2c,iBAAiB,SAAShgB,EAAEwB,GAAG,KAAK,mBAAmBA,GAAGmd,GAAGK,QAAQhf,IAAI,IAAIub,GAAEiD,GAAExe,IAAG,SAAUA,GAAG,OAAOA,IAAIwB,CAAE,IAAG,OAAOye,GAAGnc,MAAMX,KAAKS,WAAW4a,GAAExe,GAAGyE,KAAKjD,EAAE,EAAE6B,OAAO8c,oBAAoB,SAASngB,EAAEwB,GAAG,KAAK,mBAAmBA,GAAGmd,GAAGK,QAAQhf,IAAI,GAAG,OAAOkgB,GAAGpc,MAAMX,KAAKS,WAAW4a,GAAExe,GAAGwe,GAAExe,GAAGwO,QAAO,SAAUxO,GAAG,OAAOA,IAAIwB,CAAE,GAAE,EAAE6B,OAAOgc,QAAQC,UAAUI,GAAGrc,OAAOgc,QAAQC,UAAU,aAAajc,OAAOgc,QAAQe,aAAaV,GAAGrc,OAAOgc,QAAQe,aAAa,gBAAgB/c,OAAOgd,kBAAkBne,QAAQC,KAAKf,GAAE,IAAG,IAAKiC,OAAOgd,kBAAkB9H,EAAE,CAAC,SAASwG,GAAG/e,GAAG,IAAIwB,EAAE8Y,SAASgG,cAAc,KAAK,OAAO9e,EAAEod,KAAK5e,EAAEwB,CAAC,CAAC,IAAI+e,IAAG,EAAG,SAAS1J,KAAK,IAAI7W,EAAE4D,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAGP,OAAOmd,OAAO,GAAGxgB,GAAGqD,OAAO6Z,GAAG7Z,OAAO6Z,EAAExZ,IAAIL,OAAO6Z,EAAExZ,GAAG+c,SAASzgB,EAAEqD,OAAO6Z,GAAGld,IAAIugB,GAAG,CAAC,IAAI/e,EAAExB,EAAE0D,GAAGgd,GAAG5gB,EAAEE,EAAE0D,GAAGid,IAAI3gB,EAAE0D,GAAGgd,GAAG,SAAS1gB,EAAEF,GAAG,OAAO8gB,GAAGngB,KAAK0C,KAAK3B,EAAE6B,OAAO2c,iBAAiBhgB,EAAEF,EAAE8D,UAAU,EAAE5D,EAAE0D,GAAGid,IAAI,SAAS3gB,EAAEwB,GAAG,OAAOof,GAAGngB,KAAK0C,KAAKrD,EAAEuD,OAAO8c,oBAAoBngB,EAAEwB,EAAEoC,UAAU,EAAE2c,IAAG,CAAE,CAAC,CAAC,SAASK,GAAG5gB,EAAEwB,EAAE1B,EAAEG,EAAEC,GAAG,MAAM,iBAAiBJ,EAAEE,EAAE8D,MAAMX,KAAKjD,IAAIJ,EAAE+S,MAAM,OAAOlR,SAAQ,SAAU3B,GAAG2e,GAAGK,QAAQhf,IAAI,IAAIwB,EAAExB,EAAEC,GAAGH,EAAEA,EAAE+gB,QAAQ7gB,EAAE,IAAK,IAAG,KAAKF,EAAEghB,OAAO3d,KAAKnD,EAAE8D,MAAMX,KAAKjD,GAAG,CAAC,IAAI6gB,GAAG,CAAC,EAAE,SAASC,GAAGhhB,GAAG,OAAO8R,QAAQC,UAAU2J,MAAK,WAAY,IAAIla,EAAEuf,GAAGjG,GAAE9a,IAAI,IAAIwB,EAAE,OAAOxB,EAAE,GAAGA,EAAE+a,SAAS7S,GAAE,OAAO+Y,GAAGjhB,EAAEwB,GAAGxB,EAAE,GAAG,cAAcA,EAAE+a,OAAO,OAAOvZ,EAAE0f,QAAQxF,MAAK,WAAY,OAAO1b,CAAE,IAAG,GAAGA,EAAE+a,SAASzB,IAAGtZ,EAAE+a,SAASrB,GAAE,OAAO1Z,EAAE,IAAIF,EAAEE,EAAE+a,SAASrB,GAAE5H,QAAQC,UAAUiK,GAAEhc,EAAE,UAAU,OAAOA,EAAE+a,OAAO,YAAYjb,EAAE4b,MAAK,WAAY,OAAOuF,GAAGjhB,EAAEwB,GAAGxB,CAAE,IAAG6b,OAAM,SAAU/b,GAAG,OAAO,SAASE,EAAEwB,EAAE1B,UAAUihB,GAAGjG,GAAE9a,WAAWA,EAAE+b,iBAAiB/b,EAAE8c,aAAa9c,EAAE+c,eAAe/c,EAAE+d,OAAO7c,GAAEpB,EAAEE,EAAEga,IAAGxY,EAAEoa,OAAO9b,EAAE,CAAvH,CAAyHE,EAAEwB,EAAE1B,GAAGE,CAAE,GAAG,GAAE,CAAC,SAASihB,GAAGjhB,EAAEwB,UAAUuf,GAAGjG,GAAE9a,WAAWA,EAAE+b,iBAAiB/b,EAAE8c,aAAa9c,EAAE+c,eAAe/c,EAAE+d,OAAO/d,EAAE+a,OAAO7S,GAAE1G,EAAEuQ,SAAS,CAAC,SAASoP,GAAGnhB,EAAEwB,EAAE1B,EAAEG,GAAG8gB,GAAGjG,GAAE9a,IAAI,CAACohB,IAAIphB,EAAE+R,QAAQjS,EAAE8b,OAAO3b,GAAGE,OAAOC,eAAe2gB,GAAGjG,GAAE9a,IAAI,UAAU,CAACM,IAAIkB,GAAG,CAAC,SAAS6f,GAAGrhB,GAAG,OAAO+gB,GAAG/gB,EAAE,CAAC,IAAIshB,GAAG,GAAG,SAASC,KAAK,IAAIvhB,EAAE,GAAGwB,EAAE,GAAG1B,EAAE,GAAGG,EAAE,GAAGC,GAAE,IAAKiJ,MAAMkV,UAAU,OAAOiD,GAAG3f,SAAQ,SAAUL,GAAG,IAAIJ,EAAEI,EAAEyZ,SAASf,IAAG/V,GAAE3C,GAAG,OAAOA,EAAEyZ,QAAQ,KAAKrB,GAAExY,GAAGhB,EAAEoB,EAAE4c,eAAe,KAAKpe,EAAE2E,KAAKnD,GAAG,MAAM,KAAK4G,GAAE,KAAK8Q,GAAE9X,GAAGpB,EAAE2E,KAAKnD,GAAG,MAAM,KAAK4X,GAAE,KAAKI,IAAGpY,GAAGmgB,GAAGvG,GAAExZ,IAAItB,EAAEyE,KAAKnD,GAAGJ,GAAGjB,EAAEwE,KAAKnD,GAAG,MAAM,KAAKsY,GAAE1Y,GAAGM,EAAEiD,KAAKnD,GAAI,IAAG,CAACkgB,aAAaxhB,EAAEyhB,cAAcjgB,EAAEkgB,WAAW5hB,EAAE6hB,YAAY1hB,EAAE,CAAC,SAAS0X,KAAK,OAAO2J,GAAG9S,OAAOyM,IAAG5K,IAAIyK,GAAE,CAAC,SAAS3C,KAAK,OAAOmJ,GAAGjR,IAAIyK,GAAE,CAAC,SAASjD,GAAG7X,GAAG,IAAIwB,EAAE+Z,GAAE+F,IAAG,SAAU9f,GAAG,OAAOsZ,GAAEtZ,KAAKxB,CAAE,IAAG,OAAOwB,EAAEA,EAAEuZ,OAAO,IAAI,CAAC,SAASxD,GAAGvX,EAAEF,EAAEG,EAAEC,GAAG,IAAIoB,EAAE,SAAStB,EAAEF,EAAEG,EAAEC,GAAG,IAAIoB,EAAEJ,EAAE,CAAC4F,KAAK,KAAKmX,QAAQ,KAAK/C,WAAW,KAAK0B,YAAY,MAAM,MAAM,WAAWpb,GAAExB,IAAI,SAASA,GAAG,GAAGsJ,MAAMC,QAAQvJ,IAAI,OAAOA,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAK,IAAItB,EAAE,CAAC,OAAO,MAAM,aAAa,eAAeG,EAAEE,OAAOqF,KAAKxF,GAAGsL,QAAO,SAAUtL,EAAEwB,GAAG,OAAO1B,EAAEkf,QAAQxd,IAAI,EAAExB,EAAEA,EAAEwH,OAAOhG,EAAG,GAAE,IAAI,GAAG,IAAIvB,EAAE4D,OAAO,MAAMgG,MAAMzI,GAAE,IAAG,EAAGtB,EAAEgU,KAAK,MAAM7T,EAAE6T,KAAK,QAAQ,GAAG,iBAAiB9T,EAAE8G,MAAM,IAAI9G,EAAE8G,KAAKjD,OAAO,MAAMgG,MAAMzI,GAAE,IAAG,IAAK,GAAG,WAAWI,GAAExB,EAAEohB,MAAM,mBAAmBphB,EAAEohB,IAAI,MAAMvX,MAAMzI,GAAE,IAAG,IAAK,IAAIlB,EAAE,SAASF,GAAG,MAAM,iBAAiBA,GAAG,mBAAmBA,CAAC,EAAE,KAAKE,EAAEF,EAAEkb,aAAa5R,MAAMC,QAAQvJ,EAAEkb,aAAalb,EAAEkb,WAAWnH,MAAM7T,IAAI,MAAM2J,MAAMzI,GAAE,IAAG,IAAK,IAAIwgB,GAAG5hB,EAAE4c,aAAa,MAAM/S,MAAMzI,GAAE,IAAG,GAAI,CAA1lB,CAA4lBpB,GAAGkB,EAAE4F,KAAK9G,EAAE8G,KAAK5F,EAAE+c,QAAQje,EAAEohB,IAAIlgB,EAAEga,WAAWlb,EAAEkb,WAAWha,EAAE0b,YAAY5c,EAAE4c,cAAc,SAAS5c,EAAEwB,EAAE1B,EAAEG,GAAG,GAAG,iBAAiBD,GAAG,IAAIA,EAAE6D,OAAO,MAAMgG,MAAMzI,GAAE,IAAG,IAAK,IAAII,EAAE,MAAMqI,MAAMzI,GAAE,IAAG,IAAK,GAAG,mBAAmBtB,EAAE,MAAM+J,MAAMzI,GAAE,IAAG,IAAK,IAAIwgB,GAAG3hB,GAAG,MAAM4J,MAAMzI,GAAE,IAAG,GAAI,CAArL,CAAuLpB,EAAEF,EAAEG,EAAEC,GAAGgB,EAAE4F,KAAK9G,EAAEkB,EAAE+c,QAAQne,EAAEoB,EAAEga,WAAWjb,EAAEiB,EAAE0b,YAAY1c,GAAGgB,EAAE+c,QAAQ,mBAAmB3c,EAAEJ,EAAE+c,SAAS,WAAW,OAAOnM,QAAQC,QAAQzQ,EAAE,EAAEA,EAAEJ,EAAE0b,YAAY,SAAS5c,GAAG,OAAOA,GAAG,CAAC,CAAC,CAAxB,CAA0BkB,EAAE0b,aAAa1b,EAAEga,WAAW,SAASlb,GAAG,IAAIwB,EAAE8H,MAAMC,QAAQvJ,GAAGA,EAAE,CAACA,GAAG,OAAOwB,EAAEA,EAAE6O,KAAI,SAAUrQ,GAAG,MAAM,mBAAmBA,EAAEA,EAAEqY,GAAGrY,EAAG,IAAG,SAASA,GAAG,OAAOwB,EAAEqgB,MAAK,SAAUrgB,GAAG,OAAOA,EAAExB,EAAG,GAAE,CAAC,CAAjK,CAAmKkB,EAAEga,YAAYha,CAAC,CAA71C,CAA+1ClB,EAAEF,EAAEG,EAAEC,GAAG,IAAI,IAAIiY,KAAK6G,QAAQ1d,EAAEwF,MAAM,MAAM+C,MAAMzI,GAAE,IAAG,EAAGE,EAAEwF,OAAOwa,GAAG7c,KAAK6W,GAAE,CAAC4C,cAAc,KAAKnD,OAAO7S,GAAEgU,QAAQ,CAAC,EAAEiC,SAAS,CAACC,SAAS,CAAC0D,QAAQ,CAAC,EAAEC,UAAU,MAAMzgB,IAAIid,KAAI1H,KAAK4I,KAAK,CAAC,SAASxH,KAAK,IAAIjY,EAAE4D,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAGP,OAAO8X,SAAS,OAAOmG,GAAG9S,QAAO,SAAUhN,GAAG,OAAOA,EAAE0Z,WAAWlb,EAAG,IAAGqQ,IAAIyK,GAAE,CAAC,SAASrD,GAAGzX,GAAG,GAAG,IAAIshB,GAAG9S,QAAO,SAAUhN,GAAG,OAAOsZ,GAAEtZ,KAAKxB,CAAE,IAAG6D,OAAO,MAAMgG,MAAMzI,GAAE,IAAG,EAAGpB,IAAI,OAAO+X,GAAG/X,GAAG0b,MAAK,WAAY,IAAIla,EAAE8f,GAAGjR,IAAIyK,IAAGkE,QAAQhf,GAAGshB,GAAGU,OAAOxgB,EAAE,EAAG,GAAE,CAAC,SAASuW,GAAG/X,GAAG,IAAIwB,EAAEoC,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,CAACqe,gBAAe,GAAI,GAAG,iBAAiBjiB,EAAE,MAAM6J,MAAMzI,GAAE,IAAG,IAAK,IAAItB,EAAEyb,GAAE+F,IAAG,SAAU9f,GAAG,OAAOsZ,GAAEtZ,KAAKxB,CAAE,IAAG,IAAIF,EAAE,MAAM+J,MAAMzI,GAAE,IAAG,EAAGpB,IAAI,IAAIC,EAAEC,EAAEmhB,GAAGvG,GAAEhb,IAAI,GAAG0B,GAAGA,EAAEygB,eAAe,CAAC,GAAG/hB,EAAE,OAAOA,EAAEghB,QAAQ,IAAI5f,EAAE,IAAIwQ,SAAQ,SAAU9R,EAAEwB,GAAG2f,GAAGrhB,GAAE,WAAY,OAAOwB,CAAE,GAAEtB,EAAEwB,EAAG,IAAG,OAAOF,CAAC,CAAC,OAAOpB,GAAGD,EAAEC,EAAEghB,QAAQgB,GAAGpiB,EAAEI,EAAE6R,QAAQ7R,EAAE0b,SAAS3b,EAAE,IAAI6R,SAAQ,SAAU9R,EAAEwB,GAAG2f,GAAGrhB,GAAE,WAAY,OAAOG,CAAE,GAAED,EAAEwB,GAAG0gB,GAAGpiB,EAAEE,EAAEwB,EAAG,IAAGvB,CAAC,CAAC,SAASiiB,GAAGliB,EAAEwB,EAAE1B,GAAGmc,GAAEjc,GAAG0b,KAAKsF,IAAItF,MAAK,WAAYla,IAAIoZ,YAAW,WAAY6E,IAAK,GAAG,IAAG5D,MAAM/b,EAAE,CAAC,SAAS8hB,GAAG5hB,GAAG,OAAOA,GAAG,mBAAmBA,GAAG,WAAWwB,GAAExB,IAAI,OAAOA,IAAIsJ,MAAMC,QAAQvJ,EAAE,CAAC,SAASqY,GAAGrY,EAAEwB,GAAG,IAAI1B,EAAE,SAASE,EAAEwB,GAAG,IAAI1B,EAAE,EAAEG,GAAE,EAAGC,EAAE,IAAI,MAAMF,EAAE,KAAKA,EAAE,IAAIA,GAAG,IAAI,IAAIsB,EAAE,EAAEA,EAAEtB,EAAE6D,OAAOvC,IAAI,CAAC,IAAIJ,EAAElB,EAAEsB,KAAKrB,GAAG,MAAMiB,GAAGjB,GAAG,MAAMiB,IAAIF,EAAEM,EAAE,CAAC,OAAON,EAAEhB,EAAE6D,QAAQ,IAAIuF,OAAOlJ,EAAE,KAAK,SAASc,EAAEM,GAAG,IAAIJ,EAAElB,EAAE6F,MAAM/F,EAAEwB,GAAGuf,QAAQ,sBAAsB,QAAQ,GAAG3gB,GAAGD,EAAE,UAAUiB,EAAEI,IAAItB,EAAE6D,OAAO,GAAG5D,EAAEuB,IAAItB,GAAG,SAAS,CAAC,IAAIc,EAAEQ,EAAE,GAAG,KAAKtB,EAAE,MAAMA,EAAEiiB,OAAOjiB,EAAE2D,OAAO,GAAG,GAAG2D,OAAOtH,GAAGsH,OAAOxG,EAAE,KAAK,GAAGwG,OAAOtH,EAAE,MAAMsH,OAAOxG,EAAE,YAAY,CAACf,GAAGA,EAAEH,EAAEwB,CAAC,CAAC,CAA1Z,CAA4ZtB,EAAEwB,GAAG,OAAO,SAASxB,GAAG,IAAIwB,EAAExB,EAAEoiB,OAAO5gB,IAAIA,EAAE,GAAGgG,OAAOxH,EAAEqiB,SAAS,MAAM7a,OAAOxH,EAAEkf,OAAO,IAAIjf,EAAED,EAAE4e,KAAKiC,QAAQrf,EAAE,IAAIqf,QAAQ7gB,EAAEof,OAAO,IAAIvM,MAAM,KAAK,GAAG,OAAO/S,EAAEkM,KAAK/L,EAAE,CAAC,CAAC,IAAIqiB,IAAG,EAAGC,GAAG,GAAGC,GAAGjE,IAAGlb,OAAO8X,SAASyD,KAAK,SAASnG,KAAK,OAAOgH,IAAI,CAAC,SAASA,KAAK,IAAIzf,EAAE4D,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,GAAGpC,EAAEoC,UAAUC,OAAO,EAAED,UAAU,QAAG,EAAO,GAAG0e,GAAG,OAAO,IAAIxQ,SAAQ,SAAU9R,EAAEF,GAAGyiB,GAAG9d,KAAK,CAACsN,QAAQ/R,EAAE4b,OAAO9b,EAAE2iB,eAAejhB,GAAI,IAAG,IAAIvB,EAAEqB,EAAEigB,KAAKrgB,EAAEI,EAAEkgB,aAAaxgB,EAAEM,EAAEmgB,cAAc3gB,EAAEQ,EAAEogB,WAAWtgB,EAAEE,EAAEqgB,YAAYlb,GAAE,EAAGuS,EAAEwJ,GAAGtJ,EAAEsJ,GAAGnf,OAAO8X,SAASyD,KAAK,OAAOe,MAAM2C,IAAG,EAAGriB,EAAEiB,EAAEsG,OAAO1G,EAAEE,EAAEI,GAA8N0Q,QAAQC,UAAU2J,MAAK,WAAY,GAAGrY,OAAOiZ,cAAc,IAAIpc,GAAE,IAAID,EAAE4D,OAAO,kCAAkC,+BAA+BoX,GAAE,KAAM5X,OAAOiZ,cAAc,IAAIpc,GAAE,kCAAkC+a,GAAE,EAAG,CAACyH,iBAAiBtJ,MAAM3S,EAAE,OAAOpD,OAAOiZ,cAAc,IAAIpc,GAAE,wCAAwC+a,GAAE,KAAMnB,SAASvB,GAAGS,GAAG,IAAIxX,EAAEN,EAAEmP,IAAI2Q,IAAIlhB,EAAEkB,EAAEqP,IAAI4L,IAAG5L,KAAI,SAAUrQ,GAAG,OAAOA,EAAE0b,KAAKsF,GAAI,IAAGxZ,OAAOhG,GAAGF,EAAEwQ,QAAQqK,IAAIrc,GAAGwB,EAAEoa,MAAK,WAAYrY,OAAOiZ,cAAc,IAAIpc,GAAE,wCAAwC+a,GAAE,IAAM,IAAG,IAAI/S,EAAEpH,EAAEuP,KAAI,SAAUrQ,GAAG,OAAOge,GAAEhe,GAAG0b,MAAK,SAAU1b,GAAG,OAAO2iB,GAAG3iB,EAAEsB,EAAG,GAAG,IAAG4X,EAAE9X,EAAEoN,QAAO,SAAUxO,GAAG,OAAOc,EAAEke,QAAQhf,GAAG,CAAE,IAAGqQ,KAAI,SAAUrQ,GAAG,OAAO2iB,GAAG3iB,EAAEsB,EAAG,IAAG,OAAOA,EAAEua,OAAM,SAAU7b,GAAG,MAAM0Z,IAAI1Z,CAAE,IAAG0b,MAAK,WAAY,OAAOhC,IAAI5H,QAAQqK,IAAIjU,EAAEV,OAAO0R,IAAI2C,OAAM,SAAUra,GAAG,MAAMxB,EAAE2B,SAAQ,SAAU3B,GAAG,OAAOA,EAAE4b,OAAOpa,EAAG,IAAGA,CAAE,IAAGka,KAAK5B,EAAG,GAAG,MAA5jC7Z,EAAEa,EAA6CgR,QAAQC,UAAU2J,MAAK,WAAY,IAAI1b,EAAEc,EAAEuP,IAAI2N,IAAG,OAAOlM,QAAQqK,IAAInc,GAAG0b,KAAKhC,GAAGgC,MAAK,WAAY,MAAM,EAAG,IAAGG,OAAM,SAAU7b,GAAG,MAAM0Z,IAAI1Z,CAAE,GAAG,KAArL,SAASoZ,IAAI3S,GAAE,CAAE,CAAqiC,SAASqT,IAAI,IAAItY,EAAEmW,KAAK3X,EAAE2B,SAAQ,SAAU3B,GAAG,OAAOA,EAAE+R,QAAQvQ,EAAG,IAAG,IAAI,IAAI1B,EAAE,IAAIG,EAAE4D,OAAO,2BAA2B,wBAAwBR,OAAOiZ,cAAc,IAAIpc,GAAEJ,EAAEmb,MAAM5X,OAAOiZ,cAAc,IAAIpc,GAAE,2BAA2B+a,KAAK,CAAC,MAAMjb,GAAG4a,YAAW,WAAY,MAAM5a,CAAE,GAAE,CAAC,GAAGsiB,IAAG,EAAGC,GAAG1e,OAAO,EAAE,CAAC,IAAIvC,EAAEihB,GAAGA,GAAG,GAAG9C,GAAGne,EAAE,CAAC,OAAOE,CAAC,CAAC,SAASkY,IAAI1Z,EAAE2B,SAAQ,SAAU3B,GAAGuf,GAAGvf,EAAEyiB,eAAgB,IAAGlD,GAAG/d,EAAE,CAAC,SAASyZ,IAAI,IAAIjb,EAAEE,EAAE0D,UAAUC,OAAO,QAAG,IAASD,UAAU,IAAIA,UAAU,GAAGtC,EAAEsC,UAAUC,OAAO,EAAED,UAAU,QAAG,EAAOwV,EAAE,CAAC,EAAErZ,GAAGD,GAAEE,EAAE,CAAC,EAAE4Z,GAAE,IAAI9Z,GAAEE,EAAEsZ,GAAE,IAAIxZ,GAAEE,EAAEkI,GAAE,IAAIpI,GAAEE,EAAEga,GAAE,IAAIha,GAAGE,GAAGY,EAAE0G,OAAOpG,GAAGO,SAAQ,SAAU3B,EAAEwB,GAAGsY,EAAE9Z,EAAE4Z,GAAG,IAAG1Y,EAAES,SAAQ,SAAU3B,GAAG8Z,EAAE9Z,EAAEkI,GAAG,IAAGlH,EAAEW,SAAQ,SAAU3B,GAAG8Z,EAAE9Z,EAAEsZ,GAAG,KAAIrZ,EAAE0B,SAAQ,SAAU3B,GAAG8Z,EAAE9Z,EAAG,IAAG,IAAIiD,EAAE,CAACkX,OAAO,CAACyI,eAAexJ,EAAEyJ,gBAAgB9iB,EAAE+iB,gBAAgB7iB,EAAE4D,OAAOkf,cAAc,MAAMvhB,OAAE,EAAOA,EAAE,GAAGwhB,OAAOhK,EAAEiK,OAAO/J,EAAEgK,qBAAqBzc,IAAI,OAAOnF,GAAGga,GAAErY,EAAEkX,OAAO7Y,GAAG2B,EAAE,SAAS6W,EAAE9Z,EAAEwB,GAAG,IAAI1B,EAAEgb,GAAE9a,GAAGwB,EAAEA,GAAGqW,GAAG/X,GAAGsZ,EAAEtZ,GAAG0B,GAAGzB,EAAEyB,GAAGzB,EAAEyB,IAAI,IAAIiD,KAAK3E,EAAE,CAAC,CAAC,CAAC,SAAS6iB,GAAG3iB,EAAEwB,GAAG,OAAOyC,GAAEjE,GAAG8b,GAAE9b,GAAG0b,MAAK,SAAU1b,GAAG,OAAOwB,EAAEka,MAAK,WAAY,OAAOzX,GAAEjE,GAAG4E,GAAE5E,GAAGA,CAAE,GAAG,IAAGwB,EAAEka,MAAK,WAAY,OAAO1b,CAAE,GAAE,CAAC,IAAImjB,IAAG,EAAG,SAASxM,GAAG3W,GAAG,IAAIwB,EAAE2hB,IAAG,EAAGnjB,GAAGA,EAAEojB,iBAAiB5hB,EAAExB,EAAEojB,eAAe9E,GAAE9c,GAAG+c,IAAGkB,IAAI,CAAC,SAASE,KAAK,OAAOwD,EAAE,CAAC5E,IAAG3D,YAAW,WAAYuI,IAAIjhB,QAAQC,KAAKf,GAAE,GAAE,GAAK,GAAE,KAAK,IAAIiiB,GAAG,CAACC,cAAc,WAAW,MAAM,GAAG9b,OAAO8Z,GAAG,EAAEiC,QAAQ9D,GAAG3G,WAAW5Q,GAAEsb,cAAcxF,GAAEyF,mBAAmB3H,GAAEtE,sBAAsBC,ICDzvmB,SAAS,GAAiBnU,EAAKN,EAAKpC,GAWpE,OAVIoC,KAAOM,EACPnD,OAAOC,eAAekD,EAAKN,EAAK,CAC5BpC,MAAOA,EACPP,YAAY,EACZ6N,cAAc,EACdC,UAAU,IAGd7K,EAAIN,GAAOpC,EAER0C,CACX,CA+CW,SAASogB,GAAeC,EAAUC,GACzC,MAAMC,EAAmCxgB,OAAOygB,oBA/BrCjD,QAAQ,MAAO,IAgC1B,OAAOkD,GAAkBJ,EAhD7B,SAAwBtV,GACpB,IAAI,IAAI/M,EAAI,EAAGA,EAAIsC,UAAUC,OAAQvC,IAAI,CACrC,IAAI0F,EAAyB,MAAhBpD,UAAUtC,GAAasC,UAAUtC,GAAK,CAAC,EAChDgN,EAAUnO,OAAOqF,KAAKwB,GACkB,mBAAjC7G,OAAOoO,wBACdD,EAAUA,EAAQ9G,OAAOrH,OAAOoO,sBAAsBvH,GAAQwH,QAAO,SAASC,GAC1E,OAAOtO,OAAOuO,yBAAyB1H,EAAQyH,GAAKpO,UACxD,MAEJiO,EAAQ3M,SAAQ,SAASqB,GACrB,GAAiBqL,EAAQrL,EAAKgE,EAAOhE,GACzC,GACJ,CACA,OAAOqL,CACX,CAkCuC,CAAe,CAC9C2V,YAAa3gB,OAAO2gB,YACpBH,eAAgBA,GACjBD,IAAmB/C,QAAQ,QAAS,IAC3C,CAeW,SAASkD,GAAkBJ,EAAUM,GAE5C,OADc9jB,OAAOqF,KAAKye,GACb3Y,QAAO,CAAC4Y,EAAMC,IAAOD,EAAKrR,MAAM,KAAOsR,EAAO,KAAKrQ,KAAKmQ,EAAOE,KAAQR,EACxF,CClDW,SAAS,IAAS,GAAES,EAAG,eAAEC,IAChC,MAAMR,EAAmCxgB,OAAOygB,oBA/BrCjD,QAAQ,MAAO,IAgCpBxS,EAASqV,GAAeU,EAAIC,GAChBhW,EAAO+F,WAAWyP,GAEhC,GAAcxV,GAEdhL,OAAO8X,SAASzZ,OAAO2M,EAE/B,CFzCiymBkQ,IAAGlb,OAAOihB,0BAA0BjhB,OAAOihB,wBAAwBC,eAAelB,IGKx2mB,MAAMmB,GAAU,CAACC,EAAKC,IACtBjZ,GAAW7F,GAAM6e,GAAO7e,GAAOA,GAAO8e,GAAK,mBAAmBD,SAAWC,KAQnEC,GAA+BC,IAC5C,MAAMC,EAAgBD,EAA0Bpd,OAAO,CACnD,cACA,mBAEJ,OAAOiE,GAAW7F,IACd,IAAKA,GAAqB,iBAAPA,EACf,OAAO,EAEX,MAAMkf,EAAK,aACX,IAAIpe,EAAQoe,EAAGC,KAAKnf,GACpB,KAAMc,GAAM,CACR,IAAKme,EAAchR,SAASnN,EAAM,IAC9B,OAAO,EAEXA,EAAQoe,EAAGC,KAAKnf,EACpB,CACA,OAAO,CAAI,GACZ,gEAAkEif,EAAcxU,KAAK2I,GAAI,KAAOA,EAAI,MAAKlF,KAAK,MAAM,EAM1GkR,GAAQL,GAA4B,IAIpCM,GAASC,GACfzZ,GAAW7F,GAAMsf,EAAcrR,SAASjO,IAAM,kCAAkCsf,EAAcpR,KAAK,aAEjGgC,GAAa,CACtB0O,WACAQ,SACAL,+BACAM,S","sources":["webpack://_openmrs_esm_config/../esm-state/dist/openmrs-esm-state.js","webpack://_openmrs_esm_config/webpack/bootstrap","webpack://_openmrs_esm_config/webpack/runtime/define property getters","webpack://_openmrs_esm_config/webpack/runtime/global","webpack://_openmrs_esm_config/webpack/runtime/hasOwnProperty shorthand","webpack://_openmrs_esm_config/webpack/runtime/make namespace object","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isPlaceholder.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_curry1.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_curry2.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_includesWith.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_has.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_objectIs.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isArguments.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/keys.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/type.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_equals.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_functionName.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/equals.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_curry3.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isObject.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/mergeWithKey.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/mergeDeepWithKey.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/mergeDeepRight.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/omit.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_clone.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_cloneRegExp.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/clone.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isArray.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isArrayLike.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_isString.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_xwrap.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/bind.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_arity.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/internal/_reduce.js","webpack://_openmrs_esm_config/../../../node_modules/ramda/es/reduce.js","webpack://_openmrs_esm_config/./src/types.ts","webpack://_openmrs_esm_config/./src/validators/validator.ts","webpack://_openmrs_esm_config/./src/validators/type-validators.ts","webpack://_openmrs_esm_config/./src/module-config/state.ts","webpack://_openmrs_esm_config/./src/module-config/module-config.ts","webpack://_openmrs_esm_config/../../../node_modules/single-spa/lib/esm/single-spa.min.js","webpack://_openmrs_esm_config/./src/navigation/interpolate-string.ts","webpack://_openmrs_esm_config/./src/navigation/navigate.ts","webpack://_openmrs_esm_config/./src/validators/validators.ts"],"sourcesContent":["var _openmrs_esm_state;\n(()=>{\n \"use strict\";\n var e = {\n d: (t, r)=>{\n for(var o in r)e.o(r, o) && !e.o(t, o) && Object.defineProperty(t, o, {\n enumerable: !0,\n get: r[o]\n });\n },\n o: (e, t)=>Object.prototype.hasOwnProperty.call(e, t),\n r: (e)=>{\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }\n }, t = {};\n e.r(t), e.d(t, {\n createAppState: ()=>c,\n createGlobalStore: ()=>a,\n getAppState: ()=>u,\n getGlobalStore: ()=>s,\n subscribeTo: ()=>i\n });\n const r = (e)=>{\n let t;\n const r = new Set, o = (e, o)=>{\n const n = \"function\" == typeof e ? e(t) : e;\n if (!Object.is(n, t)) {\n const e = t;\n t = (null != o ? o : \"object\" != typeof n) ? n : Object.assign({}, t, n), r.forEach((r)=>r(t, e));\n }\n }, n = ()=>t, a = {\n setState: o,\n getState: n,\n subscribe: (e)=>(r.add(e), ()=>r.delete(e)),\n destroy: ()=>{\n console.warn(\"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"), r.clear();\n }\n };\n return t = e(o, n, a), a;\n }, o = (e)=>e ? r(e) : r, n = {};\n function a(e, t) {\n const r = n[e];\n if (r) return r.active ? console.error(\"Cannot override an existing store. Make sure that stores are only created once.\") : r.value.setState(t, !0), r.active = !0, r.value;\n {\n const r = o()(()=>t);\n return n[e] = {\n value: r,\n active: !0\n }, r;\n }\n }\n function s(e, t) {\n const r = n[e];\n if (!r) {\n const r = o()(()=>null != t ? t : {});\n return n[e] = {\n value: r,\n active: !1\n }, r;\n }\n return r.value;\n }\n function c(e) {\n return a(\"app\", e);\n }\n function u() {\n return s(\"app\", {});\n }\n function i(e, t, r) {\n let o = t(e.getState());\n return e.subscribe((e)=>{\n const n = t(e);\n n !== o && (o = n, r(n));\n });\n }\n _openmrs_esm_state = t;\n})(); //# sourceMappingURL=openmrs-esm-state.js.map\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","// 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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\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};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import _curry1 from './_curry1.js';\nimport _curry2 from './_curry2.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry3 from './internal/_curry3.js';\nimport _has from './internal/_has.js';\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nexport default mergeWithKey;","import _curry3 from './internal/_curry3.js';\nimport _isObject from './internal/_isObject.js';\nimport mergeWithKey from './mergeWithKey.js';\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nexport default mergeDeepWithKey;","import _curry2 from './internal/_curry2.js';\nimport mergeDeepWithKey from './mergeDeepWithKey.js';\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _cloneRegExp from './_cloneRegExp.js';\nimport type from '../type.js';\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _clone from './internal/_clone.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nexport default clone;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _curry1 from './_curry1.js';\nimport _isArray from './_isArray.js';\nimport _isString from './_isString.js';\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _isArrayLike from './_isArrayLike.js';\nimport _xwrap from './_xwrap.js';\nimport bind from '../bind.js';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry3 from './internal/_curry3.js';\nimport _reduce from './internal/_reduce.js';\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nexport default reduce;","export var Type;\n(function(Type) {\n Type[\"Array\"] = \"Array\";\n Type[\"Boolean\"] = \"Boolean\";\n Type[\"ConceptUuid\"] = \"ConceptUuid\";\n Type[\"Number\"] = \"Number\";\n Type[\"Object\"] = \"Object\";\n Type[\"String\"] = \"String\";\n Type[\"UUID\"] = \"UUID\";\n Type[\"PersonAttributeTypeUuid\"] = \"PersonAttributeTypeUuid\";\n Type[\"PatientIdentifierTypeUuid\"] = \"PatientIdentifierTypeUuid\";\n})(Type || (Type = {}));\n","/** @module @category Config Validation */ /**\n * Constructs a custom validator.\n *\n * ### Example\n *\n * ```typescript\n * {\n * foo: {\n * _default: 0,\n * _validators: [\n * validator(val => val >= 0, \"Must not be negative.\")\n * ]\n * }\n * }\n * ```\n * @param validationFunction Takes the configured value as input. Returns true\n * if it is valid, false otherwise.\n * @param message A string message that explains why the value is invalid. Can\n * also be a function that takes the value as input and returns a string.\n * @returns A validator ready for use in a config schema\n */ export function validator(validationFunction, message) {\n return (value)=>{\n if (!validationFunction(value)) {\n if (typeof message === \"function\") {\n return message(value);\n } else {\n return message;\n }\n }\n };\n}\n","import { validator } from \"./validator\";\nexport const isArray = validator((val)=>Array.isArray(val), \"must be an array\");\nexport const isBoolean = validator((val)=>typeof val === \"boolean\", \"must be a boolean\");\nexport const isNumber = validator((val)=>typeof val === \"number\", \"must be a number\");\nexport const isString = validator((val)=>typeof val === \"string\", \"must be a string\");\nexport const isObject = validator((val)=>typeof val === \"object\" && !Array.isArray(val) && val !== null, \"must be an object (not an array or null)\");\nexport const isUuid = validator((val)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val) || /^[0-9a-f]{36}$/i.test(val), \"must be a valid UUID or a 36-character hexadecimal string\");\n","/** @module @category Config */ import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport { omit } from \"ramda\";\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n schemas: {}\n};\n/**\n * @internal\n */ export const configInternalStore = createGlobalStore(\"config-internal\", configInternalStoreInitialValue);\n/** @internal */ export const temporaryConfigStore = createGlobalStore(\"temporary-config\", {\n config: getTemporaryConfig()\n});\ntemporaryConfigStore.subscribe((state)=>{\n setTemporaryConfig(state.config);\n});\nfunction setTemporaryConfig(value) {\n localStorage.setItem(\"openmrs:temporaryConfig\", JSON.stringify(value));\n}\nfunction getTemporaryConfig() {\n try {\n return JSON.parse(localStorage.getItem(\"openmrs:temporaryConfig\") || \"{}\");\n } catch (e) {\n return {};\n }\n}\n/** @internal */ export const configExtensionStore = createGlobalStore(\"config-store-of-extension-state\", {\n mountedExtensions: []\n});\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false\n };\n}\n/** @internal */ export function getConfigStore(moduleName) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore(`config-module-${moduleName}`, initializeConfigStore());\n}\n/** @internal */ export function getExtensionSlotsConfigStore() {\n return getGlobalStore(`config-extension-slots`, {\n slots: {}\n });\n}\n/** @internal */ export function getExtensionSlotConfig(slotName) {\n return getExtensionSlotConfigFromStore(getExtensionSlotsConfigStore().getState(), slotName);\n}\n/** @internal */ export function getExtensionSlotConfigFromStore(state, slotName) {\n const slotConfig = state.slots[slotName];\n return slotConfig !== null && slotConfig !== void 0 ? slotConfig : {\n loaded: false,\n config: {}\n };\n}\n/**\n * One store for all the extensions\n * @internal\n */ export function getExtensionsConfigStore() {\n return getGlobalStore(`config-extensions`, {\n configs: {}\n });\n}\n/** @internal */ export function getExtensionConfig(slotName, extensionId) {\n const extensionConfig = Object.assign({}, getExtensionConfigFromStore(getExtensionsConfigStore().getState(), slotName, extensionId));\n extensionConfig.config = omit([\n \"Display conditions\",\n \"Translation overrides\"\n ], extensionConfig.config);\n return extensionConfig;\n}\n/** @internal */ export function getExtensionConfigFromStore(state, slotName, extensionId) {\n var _state_configs_slotName;\n const extensionConfig = (_state_configs_slotName = state.configs[slotName]) === null || _state_configs_slotName === void 0 ? void 0 : _state_configs_slotName[extensionId];\n return extensionConfig !== null && extensionConfig !== void 0 ? extensionConfig : {\n loaded: false,\n config: null\n };\n}\n/** @internal */ export const implementerToolsConfigStore = createGlobalStore(\"config-implementer-tools\", {\n config: {}\n});\n","/** @module @category Config */ function _define_property(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 return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { clone, reduce, mergeDeepRight, equals, omit } from \"ramda\";\nimport { Type } from \"../types\";\nimport { isArray, isBoolean, isUuid, isNumber, isObject, isString } from \"../validators/type-validators\";\nimport { configInternalStore, configExtensionStore, getConfigStore, getExtensionsConfigStore, implementerToolsConfigStore, temporaryConfigStore, getExtensionSlotsConfigStore } from \"./state\";\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * All `compute...` functions except `computeExtensionConfigs` are pure\n * (or are supposed to be), other than the fact that they all `setState`\n * store values at the end. `computeExtensionConfigs` calls `getGlobalStore`,\n * which creates stores.\n */ computeModuleConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeModuleConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeModuleConfig(configInternalStore.getState(), tempConfigState));\ncomputeImplementerToolsConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeImplementerToolsConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeImplementerToolsConfig(configInternalStore.getState(), tempConfigState));\ncomputeExtensionSlotConfigs(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeExtensionSlotConfigs(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeExtensionSlotConfigs(configInternalStore.getState(), tempConfigState));\ncomputeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>{\n computeExtensionConfigs(configState, configExtensionStore.getState(), temporaryConfigStore.getState());\n});\nconfigExtensionStore.subscribe((extensionState)=>{\n computeExtensionConfigs(configInternalStore.getState(), extensionState, temporaryConfigStore.getState());\n});\ntemporaryConfigStore.subscribe((tempConfigState)=>{\n computeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), tempConfigState);\n});\nfunction computeModuleConfig(state, tempState) {\n for (let moduleName of Object.keys(state.schemas)){\n const config = getConfigForModule(moduleName, state, tempState);\n const moduleStore = getConfigStore(moduleName);\n moduleStore.setState({\n loaded: true,\n config\n });\n }\n}\nfunction computeExtensionSlotConfigs(state, tempState) {\n const slotConfigs = getExtensionSlotConfigs(state, tempState);\n const newSlotStoreEntries = Object.fromEntries(Object.entries(slotConfigs).map(([slotName, config])=>[\n slotName,\n {\n loaded: true,\n config\n }\n ]));\n const slotStore = getExtensionSlotsConfigStore();\n const oldState = slotStore.getState();\n const newState = {\n slots: _object_spread({}, oldState.slots, newSlotStoreEntries)\n };\n if (!equals(oldState, newState)) {\n slotStore.setState(newState);\n }\n}\nfunction computeImplementerToolsConfig(state, tempConfigState) {\n const config = getImplementerToolsConfig(state, tempConfigState);\n implementerToolsConfigStore.setState({\n config\n });\n}\nfunction computeExtensionConfigs(configState, extensionState, tempConfigState) {\n const configs = {};\n for (let extension of extensionState.mountedExtensions){\n const config = computeExtensionConfig(extension.slotModuleName, extension.extensionModuleName, extension.slotName, extension.extensionId, configState, tempConfigState);\n configs[extension.slotName] = _object_spread_props(_object_spread({}, configs[extension.slotName]), {\n [extension.extensionId]: {\n config,\n loaded: true\n }\n });\n }\n getExtensionsConfigStore().setState({\n configs\n });\n}\n/*\n * API\n *\n */ /**\n * This defines a configuration schema for a module. The schema tells the\n * configuration system how the module can be configured. It specifies\n * what makes configuration valid or invalid.\n *\n * See [Configuration System](http://o3-dev.docs.openmrs.org/#/main/config)\n * for more information about defining a config schema.\n *\n * @param moduleName Name of the module the schema is being defined for. Generally\n * should be the one in which the `defineConfigSchema` call takes place.\n * @param schema The config schema for the module\n */ export function defineConfigSchema(moduleName, schema) {\n validateConfigSchema(moduleName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n configInternalStore.setState({\n schemas: _object_spread_props(_object_spread({}, state.schemas), {\n [moduleName]: enhancedSchema\n })\n });\n}\n/**\n * This defines a configuration schema for an extension. When a schema is defined\n * for an extension, that extension will receive the configuration corresponding\n * to that schema, rather than the configuration corresponding to the module\n * in which it is defined.\n *\n * The schema tells the configuration system how the module can be configured.\n * It specifies what makes configuration valid or invalid.\n *\n * See [Configuration System](http://o3-dev.docs.openmrs.org/#/main/config)\n * for more information about defining a config schema.\n *\n * @param extensionName Name of the extension the schema is being defined for.\n * Should match the `name` of one of the `extensions` entries being returned\n * by `setupOpenMRS`.\n * @param schema The config schema for the extension\n */ export function defineExtensionConfigSchema(extensionName, schema) {\n validateConfigSchema(extensionName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n if (state.schemas[extensionName]) {\n console.warn(`Config schema for extension ${extensionName} already exists. If there are multiple extensions with this same name, one will probably crash.`);\n }\n configInternalStore.setState({\n schemas: _object_spread_props(_object_spread({}, state.schemas), {\n [extensionName]: enhancedSchema\n })\n });\n}\nexport function provide(config, sourceName = \"provided\") {\n const state = configInternalStore.getState();\n configInternalStore.setState({\n providedConfigs: [\n ...state.providedConfigs,\n {\n source: sourceName,\n config\n }\n ]\n });\n}\n/**\n * A promise-based way to access the config as soon as it is fully loaded.\n * If it is already loaded, resolves the config in its present state.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */ export function getConfig(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = omit([\n \"Display conditions\",\n \"Translation overrides\"\n ], state.config);\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/** @internal */ export function getConfigInternal(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = state.config;\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n * @internal\n */ export function processConfig(schema, providedConfig, keyPathContext) {\n validateStructure(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n runAllValidatorsInConfigTree(schema, config, keyPathContext);\n return config;\n}\n/*\n * Helper functions\n *\n */ /**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the extension schema. If no extension\n * schema has been provided, the schema used is the schema of the module in\n * which the extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */ function computeExtensionConfig(slotModuleName, extensionModuleName, slotName, extensionId, configState, tempConfigState) {\n var _slotModuleConfig_extensionSlots, _slotModuleConfig_extensionSlots_slotName, _slotModuleConfig_extensionSlots_slotName_configure;\n const extensionName = getExtensionNameFromId(extensionId);\n const extensionConfigSchema = configState.schemas[extensionName];\n const nameOfSchemaSource = extensionConfigSchema ? extensionName : extensionModuleName;\n const providedConfigs = getProvidedConfigs(configState, tempConfigState);\n const slotModuleConfig = mergeConfigsFor(slotModuleName, providedConfigs);\n var _slotModuleConfig_extensionSlots_slotName_configure_extensionId;\n const configOverride = (_slotModuleConfig_extensionSlots_slotName_configure_extensionId = slotModuleConfig === null || slotModuleConfig === void 0 ? void 0 : (_slotModuleConfig_extensionSlots = slotModuleConfig.extensionSlots) === null || _slotModuleConfig_extensionSlots === void 0 ? void 0 : (_slotModuleConfig_extensionSlots_slotName = _slotModuleConfig_extensionSlots[slotName]) === null || _slotModuleConfig_extensionSlots_slotName === void 0 ? void 0 : (_slotModuleConfig_extensionSlots_slotName_configure = _slotModuleConfig_extensionSlots_slotName.configure) === null || _slotModuleConfig_extensionSlots_slotName_configure === void 0 ? void 0 : _slotModuleConfig_extensionSlots_slotName_configure[extensionId]) !== null && _slotModuleConfig_extensionSlots_slotName_configure_extensionId !== void 0 ? _slotModuleConfig_extensionSlots_slotName_configure_extensionId : {};\n const extensionConfig = mergeConfigsFor(nameOfSchemaSource, providedConfigs);\n const combinedConfig = mergeConfigs([\n extensionConfig,\n configOverride\n ]);\n // TODO: validate that a schema exists for the module\n const schema = extensionConfigSchema !== null && extensionConfigSchema !== void 0 ? extensionConfigSchema : configState.schemas[extensionModuleName];\n validateStructure(schema, combinedConfig, nameOfSchemaSource);\n const config = setDefaults(schema, combinedConfig);\n runAllValidatorsInConfigTree(schema, config, nameOfSchemaSource);\n delete config.extensionSlots;\n return config;\n}\nfunction getImplementerToolsConfig(configState, tempConfigState) {\n let result = getSchemaWithValuesAndSources(clone(configState.schemas));\n const configsAndSources = [\n ...configState.providedConfigs.map((c)=>[\n c.config,\n c.source\n ]),\n [\n tempConfigState.config,\n \"temporary config\"\n ]\n ];\n for (let [config, source] of configsAndSources){\n result = mergeConfigs([\n result,\n createValuesAndSourcesTree(config, source)\n ]);\n }\n return result;\n}\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty(\"_default\")) {\n return _object_spread_props(_object_spread({}, schema), {\n _value: schema._default,\n _source: \"default\"\n });\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key)=>{\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // at this point, the schema is bad and an error will have been logged during schema validation\n return {};\n }\n}\nfunction createValuesAndSourcesTree(config, source) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key)=>{\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return {\n _value: config,\n _source: source\n };\n }\n}\nfunction getExtensionSlotConfigs(configState, tempConfigState) {\n const allConfigs = mergeConfigs(getProvidedConfigs(configState, tempConfigState));\n const slotConfigPerModule = Object.keys(allConfigs).reduce((obj, key)=>{\n var _allConfigs_key;\n if ((_allConfigs_key = allConfigs[key]) === null || _allConfigs_key === void 0 ? void 0 : _allConfigs_key.extensionSlots) {\n var _allConfigs_key1;\n obj[key] = (_allConfigs_key1 = allConfigs[key]) === null || _allConfigs_key1 === void 0 ? void 0 : _allConfigs_key1.extensionSlots;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n const slotConfigs = Object.keys(slotConfigPerModule).reduce((obj, key)=>{\n obj = _object_spread({}, obj, slotConfigPerModule[key]);\n return obj;\n }, {});\n return slotConfigs;\n}\nfunction validateAllExtensionSlotConfigs(slotConfigPerModule) {\n for (let [moduleName, configBySlotName] of Object.entries(slotConfigPerModule)){\n for (let [slotName, config] of Object.entries(configBySlotName)){\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\nfunction validateExtensionSlotConfig(config, moduleName, slotName) {\n const errorPrefix = `Extension slot config '${moduleName}.extensionSlots.${slotName}`;\n const invalidKeys = Object.keys(config).filter((k)=>![\n \"add\",\n \"remove\",\n \"order\",\n \"configure\"\n ].includes(k));\n if (invalidKeys.length) {\n console.error(errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`);\n }\n if (config.add) {\n if (!Array.isArray(config.add) || !config.add.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.add' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.remove) {\n if (!Array.isArray(config.remove) || !config.remove.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.remove' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.order) {\n if (!Array.isArray(config.order) || !config.order.every((n)=>typeof n === \"string\")) {\n console.error(errorPrefix + `.order' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n console.error(errorPrefix + `.configure' is invalid. Must be an object with extension IDs for keys`);\n }\n }\n}\nfunction getProvidedConfigs(configState, tempConfigState) {\n return [\n ...configState.providedConfigs.map((c)=>c.config),\n tempConfigState.config\n ];\n}\nfunction validateConfigSchema(moduleName, schema, keyPath = \"\") {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n for (const key of Object.keys(schema).filter((k)=>!k.startsWith(\"_\"))){\n const thisKeyPath = keyPath + (keyPath && \".\") + key;\n const schemaPart = schema[key];\n if (thisKeyPath === \"Display conditions\") {\n console.error(`${moduleName} declares a configuration option called \"Display conditions\"; the \"Display conditions\" option is a reserved name. ${updateMessage}`);\n }\n if (thisKeyPath === \"Translation overrides\") {\n console.error(`${moduleName} declares a configuration option called \"Translation overrides\"; the \"Translation overrides\" option is a reserved name. ${updateMessage}`);\n }\n if (!isOrdinaryObject(schemaPart)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`);\n continue;\n }\n if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + \"._elements\");\n }\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators){\n if (typeof validator !== \"function\") {\n console.error(`${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: validators must be functions that return either ` + `undefined or an error string. Received ${validator}.`);\n }\n }\n }\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(`${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(Type).join(\", \")}. ` + `Received '${valueType}'`);\n }\n if (Object.keys(schemaPart).every((k)=>[\n \"_description\",\n \"_validators\",\n \"_elements\",\n \"_type\"\n ].includes(k)) && !keyPath.includes(\"._elements\")) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: all config elements must have a default. ` + `Received ${JSON.stringify(schemaPart)}`);\n }\n if (elements && valueType && ![\n Type.Array,\n Type.Object\n ].includes(valueType)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` + `Received ${JSON.stringify(valueType)}`);\n }\n }\n}\nfunction getConfigForModule(moduleName, configState, tempConfigState) {\n if (!configState.schemas.hasOwnProperty(moduleName)) {\n throw Error(\"No config schema has been defined for \" + moduleName);\n }\n const schema = configState.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n validateStructure(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n runAllValidatorsInConfigTree(schema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction mergeConfigsFor(moduleName, allConfigs) {\n const allConfigsForModule = allConfigs.map(({ [moduleName]: c })=>c).filter((c)=>!!c);\n return mergeConfigs(allConfigsForModule);\n}\nfunction mergeConfigs(configs) {\n const mergeDeepAll = reduce(mergeDeepRight);\n return mergeDeepAll({}, configs);\n}\n/**\n * Recursively check the provided config tree to make sure that all\n * of the provided properties exist in the schema, and that types are\n * correct. Does not run validators yet, since those will be run on\n * the config with the defaults filled in.\n */ function validateStructure(schema, config, keyPath = \"\") {\n // validate each constituent element\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key];\n if (!schema.hasOwnProperty(key)) {\n if (!(key === \"extensionSlots\" && keyPath !== \"\")) {\n console.error(`Unknown config key '${thisKeyPath}' provided. Ignoring.`);\n }\n continue;\n }\n validateBranchStructure(schemaPart, value, thisKeyPath);\n }\n}\nfunction validateBranchStructure(schemaPart, value, keyPath) {\n checkType(keyPath, schemaPart._type, value);\n if (isOrdinaryObject(value)) {\n // structurally validate only if there's elements specified\n // or there's no `_default` value (which would indicate a freeform object)\n if (schemaPart._type === Type.Object) {\n validateDictionaryStructure(schemaPart, value, keyPath);\n } else if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse to validate nested object structure\n validateStructure(schemaPart, value, keyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArrayStructure(schemaPart, value, keyPath);\n }\n }\n}\nfunction validateDictionaryStructure(dictionarySchema, config, keyPath) {\n if (dictionarySchema._elements) {\n for (const key of Object.keys(config)){\n const value = config[key];\n validateStructure(dictionarySchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\nfunction validateArrayStructure(arraySchema, value, keyPath) {\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for(let i = 0; i < value.length; i++){\n validateBranchStructure(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n for(let i = 0; i < value.length; i++){\n var _arraySchema__elements;\n checkType(`${keyPath}[${i}]`, (_arraySchema__elements = arraySchema._elements) === null || _arraySchema__elements === void 0 ? void 0 : _arraySchema__elements._type, value[i]);\n }\n}\n/**\n * Run all the validators in the config tree. This should be run\n * on the config object after it has been filled in with all the defaults, since\n * higher-level validators may refer to default values.\n */ function runAllValidatorsInConfigTree(schema, config, keyPath = \"\") {\n // If `!schema`, there should have been a structural validation error printed already.\n if (schema) {\n if (config !== schema._default) {\n runValidators(keyPath, schema._validators, config);\n }\n if (isOrdinaryObject(config)) {\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key];\n if (schema._type === Type.Object && schema._elements) {\n runAllValidatorsInConfigTree(schema._elements, value, thisKeyPath);\n } else {\n runAllValidatorsInConfigTree(schemaPart, value, thisKeyPath);\n }\n }\n } else if (Array.isArray(config) && schema._elements) {\n for(let i = 0; i < config.length; i++){\n runAllValidatorsInConfigTree(schema._elements, config[i], `${keyPath}[${i}]`);\n }\n }\n }\n}\nfunction checkType(keyPath, _type, value) {\n if (_type) {\n const validator = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n PersonAttributeTypeUuid: isUuid,\n PatientIdentifierTypeUuid: isUuid\n };\n runValidators(keyPath, [\n validator[_type]\n ], value);\n }\n}\nfunction runValidators(keyPath, validators, value) {\n if (validators) {\n try {\n for (let validator of validators){\n const validatorResult = validator(value);\n if (typeof validatorResult === \"string\") {\n if (typeof value === \"object\") {\n console.error(`Invalid configuration for ${keyPath}: ${validatorResult}`);\n } else {\n console.error(`Invalid configuration value ${value} for ${keyPath}: ${validatorResult}`);\n }\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\". Encountered error\\n\\t${e}`);\n }\n }\n}\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema, inputConfig)=>{\n const config = clone(inputConfig);\n if (!schema) {\n return config;\n }\n for (const key of Object.keys(schema)){\n const configPart = config[key];\n const schemaPart = schema[key];\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && schemaPart.hasOwnProperty(\"_default\")) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_default`.\n if (!config.hasOwnProperty(key)) {\n config[key] = schemaPart[\"_default\"];\n }\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array && Array.isArray(configPart)) {\n const configWithDefaults = configPart.map((conf)=>setDefaults(elements, conf));\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)){\n configPart[objectKey] = setDefaults(elements, configPart[objectKey]);\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_default\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = config.hasOwnProperty(key) ? configPart : {};\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n return config;\n};\nfunction hasObjectSchema(elementsSchema) {\n return !!elementsSchema && Object.keys(elementsSchema).filter((e)=>![\n \"_default\",\n \"_validators\"\n ].includes(e)).length > 0;\n}\nfunction isOrdinaryObject(value) {\n return typeof value === \"object\" && !Array.isArray(value) && value !== null;\n}\n/**\n * Copied over from esm-extensions. It rightly belongs to that module, but esm-config\n * cannot depend on esm-extensions.\n */ function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split(\"#\");\n return extensionName;\n}\n/**\n * The implicitConfigSchema is implicitly included in every configuration schema\n */ const implicitConfigSchema = {\n \"Display conditions\": {\n privileges: {\n _description: \"The privilege(s) the user must have to use this extension\",\n _type: Type.Array,\n _default: []\n }\n },\n \"Translation overrides\": {\n _description: \"Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value\",\n _type: Type.Object,\n _default: {}\n }\n};\n","/* single-spa@5.9.4 - ESM - prod */\nvar t=Object.freeze({__proto__:null,get start(){return xt},get ensureJQuerySupport(){return ft},get setBootstrapMaxTime(){return F},get setMountMaxTime(){return J},get setUnmountMaxTime(){return H},get setUnloadMaxTime(){return Q},get registerApplication(){return Ot},get unregisterApplication(){return Tt},get getMountedApps(){return Et},get getAppStatus(){return Pt},get unloadApplication(){return At},get checkActivityFunctions(){return bt},get getAppNames(){return yt},get pathToActiveWhen(){return _t},get navigateToUrl(){return nt},get triggerAppChange(){return Mt},get addErrorHandler(){return a},get removeErrorHandler(){return c},get mountRootParcel(){return C},get NOT_LOADED(){return l},get LOADING_SOURCE_CODE(){return p},get NOT_BOOTSTRAPPED(){return h},get BOOTSTRAPPING(){return m},get NOT_MOUNTED(){return v},get MOUNTING(){return d},get UPDATING(){return g},get LOAD_ERROR(){return y},get MOUNTED(){return w},get UNMOUNTING(){return E},get SKIP_BECAUSE_BROKEN(){return P}});function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function e(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var r=(\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{}).CustomEvent,o=function(){try{var t=new r(\"cat\",{detail:{foo:\"bar\"}});return\"cat\"===t.type&&\"bar\"===t.detail.foo}catch(t){}return!1}()?r:\"undefined\"!=typeof document&&\"function\"==typeof document.createEvent?function(t,n){var e=document.createEvent(\"CustomEvent\");return n?e.initCustomEvent(t,n.bubbles,n.cancelable,n.detail):e.initCustomEvent(t,!1,!1,void 0),e}:function(t,n){var e=document.createEventObject();return e.type=t,n?(e.bubbles=Boolean(n.bubbles),e.cancelable=Boolean(n.cancelable),e.detail=n.detail):(e.bubbles=!1,e.cancelable=!1,e.detail=void 0),e},i=[];function u(t,n,e){var r=f(t,n,e);i.length?i.forEach((function(t){return t(r)})):setTimeout((function(){throw r}))}function a(t){if(\"function\"!=typeof t)throw Error(s(28,!1));i.push(t)}function c(t){if(\"function\"!=typeof t)throw Error(s(29,!1));var n=!1;return i=i.filter((function(e){var r=e===t;return n=n||r,!r})),n}function s(t,n){for(var e=arguments.length,r=new Array(e>2?e-2:0),o=2;o<e;o++)r[o-2]=arguments[o];return\"single-spa minified message #\".concat(t,\": \").concat(n?n+\" \":\"\",\"See https://single-spa.js.org/error/?code=\").concat(t).concat(r.length?\"&arg=\".concat(r.join(\"&arg=\")):\"\")}function f(t,n,e){var r,o=\"\".concat(N(n),\" '\").concat(T(n),\"' died in status \").concat(n.status,\": \");if(t instanceof Error){try{t.message=o+t.message}catch(t){}r=t}else{console.warn(s(30,!1,n.status,T(n)));try{r=Error(o+JSON.stringify(t))}catch(n){r=t}}return r.appOrParcelName=T(n),n.status=e,r}var l=\"NOT_LOADED\",p=\"LOADING_SOURCE_CODE\",h=\"NOT_BOOTSTRAPPED\",m=\"BOOTSTRAPPING\",v=\"NOT_MOUNTED\",d=\"MOUNTING\",w=\"MOUNTED\",g=\"UPDATING\",E=\"UNMOUNTING\",y=\"LOAD_ERROR\",P=\"SKIP_BECAUSE_BROKEN\";function O(t){return t.status===w}function b(t){try{return t.activeWhen(window.location)}catch(n){return u(n,t,P),!1}}function T(t){return t.name}function A(t){return Boolean(t.unmountThisParcel)}function N(t){return A(t)?\"parcel\":\"application\"}function S(){for(var t=arguments.length-1;t>0;t--)for(var n in arguments[t])\"__proto__\"!==n&&(arguments[t-1][n]=arguments[t][n]);return arguments[0]}function _(t,n){for(var e=0;e<t.length;e++)if(n(t[e]))return t[e];return null}function D(t){return t&&(\"function\"==typeof t||(n=t,Array.isArray(n)&&!_(n,(function(t){return\"function\"!=typeof t}))));var n}function U(t,n){var e=t[n]||[];0===(e=Array.isArray(e)?e:[e]).length&&(e=[function(){return Promise.resolve()}]);var r=N(t),o=T(t);return function(t){return e.reduce((function(e,i,u){return e.then((function(){var e=i(t);return j(e)?e:Promise.reject(s(15,!1,r,o,n,u))}))}),Promise.resolve())}}function j(t){return t&&\"function\"==typeof t.then&&\"function\"==typeof t.catch}function M(t,n){return Promise.resolve().then((function(){return t.status!==h?t:(t.status=m,t.bootstrap?V(t,\"bootstrap\").then(e).catch((function(e){if(n)throw f(e,t,P);return u(e,t,P),t})):Promise.resolve().then(e))}));function e(){return t.status=v,t}}function L(t,n){return Promise.resolve().then((function(){if(t.status!==w)return t;t.status=E;var e=Object.keys(t.parcels).map((function(n){return t.parcels[n].unmountThisParcel()}));return Promise.all(e).then(r,(function(e){return r().then((function(){var r=Error(e.message);if(n)throw f(r,t,P);u(r,t,P)}))})).then((function(){return t}));function r(){return V(t,\"unmount\").then((function(){t.status=v})).catch((function(e){if(n)throw f(e,t,P);u(e,t,P)}))}}))}var R=!1,I=!1;function x(t,n){return Promise.resolve().then((function(){return t.status!==v?t:(R||(window.dispatchEvent(new o(\"single-spa:before-first-mount\")),R=!0),V(t,\"mount\").then((function(){return t.status=w,I||(window.dispatchEvent(new o(\"single-spa:first-mount\")),I=!0),t})).catch((function(e){return t.status=w,L(t,!0).then(r,r);function r(){if(n)throw f(e,t,P);return u(e,t,P),t}})))}))}var B=0,G={parcels:{}};function C(){return W.apply(G,arguments)}function W(t,e){var r=this;if(!t||\"object\"!==n(t)&&\"function\"!=typeof t)throw Error(s(2,!1));if(t.name&&\"string\"!=typeof t.name)throw Error(s(3,!1,n(t.name)));if(\"object\"!==n(e))throw Error(s(4,!1,name,n(e)));if(!e.domElement)throw Error(s(5,!1,name));var o,i=B++,u=\"function\"==typeof t,a=u?t:function(){return Promise.resolve(t)},c={id:i,parcels:{},status:u?p:h,customProps:e,parentName:T(r),unmountThisParcel:function(){return y.then((function(){if(c.status!==w)throw Error(s(6,!1,name,c.status));return L(c,!0)})).then((function(t){return c.parentName&&delete r.parcels[c.id],t})).then((function(t){return m(t),t})).catch((function(t){throw c.status=P,d(t),t}))}};r.parcels[i]=c;var l=a();if(!l||\"function\"!=typeof l.then)throw Error(s(7,!1));var m,d,E=(l=l.then((function(t){if(!t)throw Error(s(8,!1));var n=t.name||\"parcel-\".concat(i);if(Object.prototype.hasOwnProperty.call(t,\"bootstrap\")&&!D(t.bootstrap))throw Error(s(9,!1,n));if(!D(t.mount))throw Error(s(10,!1,n));if(!D(t.unmount))throw Error(s(11,!1,n));if(t.update&&!D(t.update))throw Error(s(12,!1,n));var e=U(t,\"bootstrap\"),r=U(t,\"mount\"),u=U(t,\"unmount\");c.status=h,c.name=n,c.bootstrap=e,c.mount=r,c.unmount=u,c.timeouts=q(t.timeouts),t.update&&(c.update=U(t,\"update\"),o.update=function(t){return c.customProps=t,$(function(t){return Promise.resolve().then((function(){if(t.status!==w)throw Error(s(32,!1,T(t)));return t.status=g,V(t,\"update\").then((function(){return t.status=w,t})).catch((function(n){throw f(n,t,P)}))}))}(c))})}))).then((function(){return M(c,!0)})),y=E.then((function(){return x(c,!0)})),O=new Promise((function(t,n){m=t,d=n}));return o={mount:function(){return $(Promise.resolve().then((function(){if(c.status!==v)throw Error(s(13,!1,name,c.status));return r.parcels[i]=c,x(c)})))},unmount:function(){return $(c.unmountThisParcel())},getStatus:function(){return c.status},loadPromise:$(l),bootstrapPromise:$(E),mountPromise:$(y),unmountPromise:$(O)}}function $(t){return t.then((function(){return null}))}function k(e){var r=T(e),o=\"function\"==typeof e.customProps?e.customProps(r,window.location):e.customProps;(\"object\"!==n(o)||null===o||Array.isArray(o))&&(o={},console.warn(s(40,!1),r,o));var i=S({},o,{name:r,mountParcel:W.bind(e),singleSpa:t});return A(e)&&(i.unmountSelf=e.unmountThisParcel),i}var K={bootstrap:{millis:4e3,dieOnTimeout:!1,warningMillis:1e3},mount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unmount:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},unload:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3},update:{millis:3e3,dieOnTimeout:!1,warningMillis:1e3}};function F(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(16,!1));K.bootstrap={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function J(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(17,!1));K.mount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function H(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(18,!1));K.unmount={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function Q(t,n,e){if(\"number\"!=typeof t||t<=0)throw Error(s(19,!1));K.unload={millis:t,dieOnTimeout:n,warningMillis:e||1e3}}function V(t,n){var e=t.timeouts[n],r=e.warningMillis,o=N(t);return new Promise((function(i,u){var a=!1,c=!1;t[n](k(t)).then((function(t){a=!0,i(t)})).catch((function(t){a=!0,u(t)})),setTimeout((function(){return l(1)}),r),setTimeout((function(){return l(!0)}),e.millis);var f=s(31,!1,n,o,T(t),e.millis);function l(t){if(!a)if(!0===t)c=!0,e.dieOnTimeout?u(Error(f)):console.error(f);else if(!c){var n=t,o=n*r;console.warn(f),o+r<e.millis&&setTimeout((function(){return l(n+1)}),r)}}}))}function q(t){var n={};for(var e in K)n[e]=S({},K[e],t&&t[e]||{});return n}function z(t){return Promise.resolve().then((function(){return t.loadPromise?t.loadPromise:t.status!==l&&t.status!==y?t:(t.status=p,t.loadPromise=Promise.resolve().then((function(){var o=t.loadApp(k(t));if(!j(o))throw r=!0,Error(s(33,!1,T(t)));return o.then((function(r){var o;t.loadErrorTime=null,\"object\"!==n(e=r)&&(o=34),Object.prototype.hasOwnProperty.call(e,\"bootstrap\")&&!D(e.bootstrap)&&(o=35),D(e.mount)||(o=36),D(e.unmount)||(o=37);var i=N(e);if(o){var a;try{a=JSON.stringify(e)}catch(t){}return console.error(s(o,!1,i,T(t),a),e),u(void 0,t,P),t}return e.devtools&&e.devtools.overlays&&(t.devtools.overlays=S({},t.devtools.overlays,e.devtools.overlays)),t.status=h,t.bootstrap=U(e,\"bootstrap\"),t.mount=U(e,\"mount\"),t.unmount=U(e,\"unmount\"),t.unload=U(e,\"unload\"),t.timeouts=q(e.timeouts),delete t.loadPromise,t}))})).catch((function(n){var e;return delete t.loadPromise,r?e=P:(e=y,t.loadErrorTime=(new Date).getTime()),u(n,t,e),t})));var e,r}))}var X,Y=\"undefined\"!=typeof window,Z={hashchange:[],popstate:[]},tt=[\"hashchange\",\"popstate\"];function nt(t){var n;if(\"string\"==typeof t)n=t;else if(this&&this.href)n=this.href;else{if(!(t&&t.currentTarget&&t.currentTarget.href&&t.preventDefault))throw Error(s(14,!1));n=t.currentTarget.href,t.preventDefault()}var e=ct(window.location.href),r=ct(n);0===n.indexOf(\"#\")?window.location.hash=r.hash:e.host!==r.host&&r.host?window.location.href=n:r.pathname===e.pathname&&r.search===e.search?window.location.hash=r.hash:window.history.pushState(null,null,n)}function et(t){var n=this;if(t){var e=t[0].type;tt.indexOf(e)>=0&&Z[e].forEach((function(e){try{e.apply(n,t)}catch(t){setTimeout((function(){throw t}))}}))}}function rt(){Lt([],arguments)}function ot(t,n){return function(){var e=window.location.href,r=t.apply(this,arguments),o=window.location.href;return X&&e===o||(Bt()?window.dispatchEvent(it(window.history.state,n)):Lt([])),r}}function it(t,n){var e;try{e=new PopStateEvent(\"popstate\",{state:t})}catch(n){(e=document.createEvent(\"PopStateEvent\")).initPopStateEvent(\"popstate\",!1,!1,t)}return e.singleSpa=!0,e.singleSpaTrigger=n,e}if(Y){window.addEventListener(\"hashchange\",rt),window.addEventListener(\"popstate\",rt);var ut=window.addEventListener,at=window.removeEventListener;window.addEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0)||_(Z[t],(function(t){return t===n})))return ut.apply(this,arguments);Z[t].push(n)},window.removeEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0))return at.apply(this,arguments);Z[t]=Z[t].filter((function(t){return t!==n}))},window.history.pushState=ot(window.history.pushState,\"pushState\"),window.history.replaceState=ot(window.history.replaceState,\"replaceState\"),window.singleSpaNavigate?console.warn(s(41,!1)):window.singleSpaNavigate=nt}function ct(t){var n=document.createElement(\"a\");return n.href=t,n}var st=!1;function ft(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(t||window.$&&window.$.fn&&window.$.fn.jquery&&(t=window.$),t&&!st){var n=t.fn.on,e=t.fn.off;t.fn.on=function(t,e){return lt.call(this,n,window.addEventListener,t,e,arguments)},t.fn.off=function(t,n){return lt.call(this,e,window.removeEventListener,t,n,arguments)},st=!0}}function lt(t,n,e,r,o){return\"string\"!=typeof e?t.apply(this,o):(e.split(/\\s+/).forEach((function(t){tt.indexOf(t)>=0&&(n(t,r),e=e.replace(t,\"\"))})),\"\"===e.trim()?this:t.apply(this,o))}var pt={};function ht(t){return Promise.resolve().then((function(){var n=pt[T(t)];if(!n)return t;if(t.status===l)return mt(t,n),t;if(\"UNLOADING\"===t.status)return n.promise.then((function(){return t}));if(t.status!==v&&t.status!==y)return t;var e=t.status===y?Promise.resolve():V(t,\"unload\");return t.status=\"UNLOADING\",e.then((function(){return mt(t,n),t})).catch((function(e){return function(t,n,e){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,u(e,t,P),n.reject(e)}(t,n,e),t}))}))}function mt(t,n){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,t.status=l,n.resolve()}function vt(t,n,e,r){pt[T(t)]={app:t,resolve:e,reject:r},Object.defineProperty(pt[T(t)],\"promise\",{get:n})}function dt(t){return pt[t]}var wt=[];function gt(){var t=[],n=[],e=[],r=[],o=(new Date).getTime();return wt.forEach((function(i){var u=i.status!==P&&b(i);switch(i.status){case y:u&&o-i.loadErrorTime>=200&&e.push(i);break;case l:case p:u&&e.push(i);break;case h:case v:!u&&dt(T(i))?t.push(i):u&&r.push(i);break;case w:u||n.push(i)}})),{appsToUnload:t,appsToUnmount:n,appsToLoad:e,appsToMount:r}}function Et(){return wt.filter(O).map(T)}function yt(){return wt.map(T)}function Pt(t){var n=_(wt,(function(n){return T(n)===t}));return n?n.status:null}function Ot(t,e,r,o){var i=function(t,e,r,o){var i,u={name:null,loadApp:null,activeWhen:null,customProps:null};return\"object\"===n(t)?(function(t){if(Array.isArray(t)||null===t)throw Error(s(39,!1));var e=[\"name\",\"app\",\"activeWhen\",\"customProps\"],r=Object.keys(t).reduce((function(t,n){return e.indexOf(n)>=0?t:t.concat(n)}),[]);if(0!==r.length)throw Error(s(38,!1,e.join(\", \"),r.join(\", \")));if(\"string\"!=typeof t.name||0===t.name.length)throw Error(s(20,!1));if(\"object\"!==n(t.app)&&\"function\"!=typeof t.app)throw Error(s(20,!1));var o=function(t){return\"string\"==typeof t||\"function\"==typeof t};if(!(o(t.activeWhen)||Array.isArray(t.activeWhen)&&t.activeWhen.every(o)))throw Error(s(24,!1));if(!St(t.customProps))throw Error(s(22,!1))}(t),u.name=t.name,u.loadApp=t.app,u.activeWhen=t.activeWhen,u.customProps=t.customProps):(function(t,n,e,r){if(\"string\"!=typeof t||0===t.length)throw Error(s(20,!1));if(!n)throw Error(s(23,!1));if(\"function\"!=typeof e)throw Error(s(24,!1));if(!St(r))throw Error(s(22,!1))}(t,e,r,o),u.name=t,u.loadApp=e,u.activeWhen=r,u.customProps=o),u.loadApp=\"function\"!=typeof(i=u.loadApp)?function(){return Promise.resolve(i)}:i,u.customProps=function(t){return t||{}}(u.customProps),u.activeWhen=function(t){var n=Array.isArray(t)?t:[t];return n=n.map((function(t){return\"function\"==typeof t?t:_t(t)})),function(t){return n.some((function(n){return n(t)}))}}(u.activeWhen),u}(t,e,r,o);if(-1!==yt().indexOf(i.name))throw Error(s(21,!1,i.name));wt.push(S({loadErrorTime:null,status:l,parcels:{},devtools:{overlays:{options:{},selectors:[]}}},i)),Y&&(ft(),Lt())}function bt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return wt.filter((function(n){return n.activeWhen(t)})).map(T)}function Tt(t){if(0===wt.filter((function(n){return T(n)===t})).length)throw Error(s(25,!1,t));return At(t).then((function(){var n=wt.map(T).indexOf(t);wt.splice(n,1)}))}function At(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if(\"string\"!=typeof t)throw Error(s(26,!1));var e=_(wt,(function(n){return T(n)===t}));if(!e)throw Error(s(27,!1,t));var r,o=dt(T(e));if(n&&n.waitForUnmount){if(o)return o.promise;var i=new Promise((function(t,n){vt(e,(function(){return i}),t,n)}));return i}return o?(r=o.promise,Nt(e,o.resolve,o.reject)):r=new Promise((function(t,n){vt(e,(function(){return r}),t,n),Nt(e,t,n)})),r}function Nt(t,n,e){L(t).then(ht).then((function(){n(),setTimeout((function(){Lt()}))})).catch(e)}function St(t){return!t||\"function\"==typeof t||\"object\"===n(t)&&null!==t&&!Array.isArray(t)}function _t(t,n){var e=function(t,n){var e=0,r=!1,o=\"^\";\"/\"!==t[0]&&(t=\"/\"+t);for(var i=0;i<t.length;i++){var u=t[i];(!r&&\":\"===u||r&&\"/\"===u)&&a(i)}return a(t.length),new RegExp(o,\"i\");function a(i){var u=t.slice(e,i).replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\");if(o+=r?\"[^/]+/?\":u,i===t.length)if(r)n&&(o+=\"$\");else{var a=n?\"\":\".*\";o=\"/\"===o.charAt(o.length-1)?\"\".concat(o).concat(a,\"$\"):\"\".concat(o,\"(/\").concat(a,\")?(#.*)?$\")}r=!r,e=i}}(t,n);return function(t){var n=t.origin;n||(n=\"\".concat(t.protocol,\"//\").concat(t.host));var r=t.href.replace(n,\"\").replace(t.search,\"\").split(\"?\")[0];return e.test(r)}}var Dt=!1,Ut=[],jt=Y&&window.location.href;function Mt(){return Lt()}function Lt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if(Dt)return new Promise((function(t,e){Ut.push({resolve:t,reject:e,eventArguments:n})}));var r,i=gt(),u=i.appsToUnload,a=i.appsToUnmount,c=i.appsToLoad,s=i.appsToMount,f=!1,p=jt,h=jt=window.location.href;return Bt()?(Dt=!0,r=u.concat(c,a,s),g()):(r=c,d());function m(){f=!0}function d(){return Promise.resolve().then((function(){var t=c.map(z);return Promise.all(t).then(y).then((function(){return[]})).catch((function(t){throw y(),t}))}))}function g(){return Promise.resolve().then((function(){if(window.dispatchEvent(new o(0===r.length?\"single-spa:before-no-app-change\":\"single-spa:before-app-change\",O(!0))),window.dispatchEvent(new o(\"single-spa:before-routing-event\",O(!0,{cancelNavigation:m}))),f)return window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",O(!0))),E(),void nt(p);var n=u.map(ht),e=a.map(L).map((function(t){return t.then(ht)})).concat(n),i=Promise.all(e);i.then((function(){window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",O(!0)))}));var l=c.map((function(t){return z(t).then((function(t){return Rt(t,i)}))})),h=s.filter((function(t){return c.indexOf(t)<0})).map((function(t){return Rt(t,i)}));return i.catch((function(t){throw y(),t})).then((function(){return y(),Promise.all(l.concat(h)).catch((function(n){throw t.forEach((function(t){return t.reject(n)})),n})).then(E)}))}))}function E(){var n=Et();t.forEach((function(t){return t.resolve(n)}));try{var e=0===r.length?\"single-spa:no-app-change\":\"single-spa:app-change\";window.dispatchEvent(new o(e,O())),window.dispatchEvent(new o(\"single-spa:routing-event\",O()))}catch(t){setTimeout((function(){throw t}))}if(Dt=!1,Ut.length>0){var i=Ut;Ut=[],Lt(i)}return n}function y(){t.forEach((function(t){et(t.eventArguments)})),et(n)}function O(){var t,o=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1?arguments[1]:void 0,m={},d=(e(t={},w,[]),e(t,v,[]),e(t,l,[]),e(t,P,[]),t);o?(c.concat(s).forEach((function(t,n){E(t,w)})),u.forEach((function(t){E(t,l)})),a.forEach((function(t){E(t,v)}))):r.forEach((function(t){E(t)}));var g={detail:{newAppStatuses:m,appsByNewStatus:d,totalAppChanges:r.length,originalEvent:null==n?void 0:n[0],oldUrl:p,newUrl:h,navigationIsCanceled:f}};return i&&S(g.detail,i),g;function E(t,n){var e=T(t);n=n||Pt(e),m[e]=n,(d[n]=d[n]||[]).push(e)}}}function Rt(t,n){return b(t)?M(t).then((function(t){return n.then((function(){return b(t)?x(t):t}))})):n.then((function(){return t}))}var It=!1;function xt(t){var n;It=!0,t&&t.urlRerouteOnly&&(n=t.urlRerouteOnly,X=n),Y&&Lt()}function Bt(){return It}Y&&setTimeout((function(){It||console.warn(s(1,!1))}),5e3);var Gt={getRawAppData:function(){return[].concat(wt)},reroute:Lt,NOT_LOADED:l,toLoadPromise:z,toBootstrapPromise:M,unregisterApplication:Tt};Y&&window.__SINGLE_SPA_DEVTOOLS__&&(window.__SINGLE_SPA_DEVTOOLS__.exposedMethods=Gt);export{m as BOOTSTRAPPING,p as LOADING_SOURCE_CODE,y as LOAD_ERROR,w as MOUNTED,d as MOUNTING,h as NOT_BOOTSTRAPPED,l as NOT_LOADED,v as NOT_MOUNTED,P as SKIP_BECAUSE_BROKEN,E as UNMOUNTING,g as UPDATING,a as addErrorHandler,bt as checkActivityFunctions,ft as ensureJQuerySupport,yt as getAppNames,Pt as getAppStatus,Et as getMountedApps,C as mountRootParcel,nt as navigateToUrl,_t as pathToActiveWhen,Ot as registerApplication,c as removeErrorHandler,F as setBootstrapMaxTime,J as setMountMaxTime,Q as setUnloadMaxTime,H as setUnmountMaxTime,xt as start,Mt as triggerAppChange,At as unloadApplication,Tt as unregisterApplication};\n//# sourceMappingURL=single-spa.min.js.map\n","/** @module @category Navigation */ function _define_property(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 return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction trimTrailingSlash(str) {\n return str.replace(/\\/$/, \"\");\n}\n/**\n * Interpolates a string with openmrsBase and openmrsSpaBase.\n *\n * Useful for accepting `${openmrsBase}` or `${openmrsSpaBase}`plus additional template\n * parameters in configurable URLs.\n *\n * Example usage:\n * ```js\n * interpolateUrl(\"test ${openmrsBase} ${openmrsSpaBase} ok\");\n * // will return \"test /openmrs /openmrs/spa ok\"\n *\n * interpolateUrl(\"${openmrsSpaBase}/patient/${patientUuid}\", {\n * patientUuid: \"4fcb7185-c6c9-450f-8828-ccae9436bd82\",\n * }); // will return \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * This can be used in conjunction with the `navigate` function like so\n * ```js\n * navigate({\n * to: interpolateUrl(\n * \"${openmrsSpaBase}/patient/${patientUuid}\",\n * { patientUuid: patient.uuid }\n * )\n * }); // will navigate to \"/openmrs/spa/patient/4fcb7185-c6c9-450f-8828-ccae9436bd82\"\n * ```\n *\n * @param template A string to interpolate\n * @param additionalParams Additional values to interpolate into the string template\n */ export function interpolateUrl(template, additionalParams) {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n return interpolateString(template, _object_spread({\n openmrsBase: window.openmrsBase,\n openmrsSpaBase: openmrsSpaBase\n }, additionalParams)).replace(/^\\/\\//, \"/\"); // remove extra initial slash if present\n}\n/**\n * Interpolates values of `params` into the `template` string.\n *\n * Example usage:\n * ```js\n * interpolateString(\"test ${one} ${two} 3\", {\n * one: \"1\",\n * two: \"2\",\n * }); // will return \"test 1 2 3\"\n * interpolateString(\"test ok\", { one: \"1\", two: \"2\" }) // will return \"test ok\"\n * ```\n *\n * @param template With optional params wrapped in `${ }`\n * @param params Values to interpolate into the string template\n */ export function interpolateString(template, params) {\n const names = Object.keys(params);\n return names.reduce((prev, curr)=>prev.split(\"${\" + curr + \"}\").join(params[curr]), template);\n}\n","/** @module @category Navigation */ import { navigateToUrl } from \"single-spa\";\nimport { interpolateUrl } from \"./interpolate-string\";\nfunction trimTrailingSlash(str) {\n return str.replace(/\\/$/, \"\");\n}\n/**\n * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths\n *\n * #### Example usage:\n * ```js\n * @example\n * const config = useConfig();\n * const submitHandler = () => {\n * navigate({ to: config.links.submitSuccess });\n * };\n * ```\n * #### Example return values:\n * ```js\n * @example\n * navigate({ to: \"/some/path\" }); // => window.location.assign(\"/some/path\")\n * navigate({ to: \"https://single-spa.js.org/\" }); // => window.location.assign(\"https://single-spa.js.org/\")\n * navigate({ to: \"${openmrsBase}/some/path\" }); // => window.location.assign(\"/openmrs/some/path\")\n * navigate({ to: \"/openmrs/spa/foo/page\" }); // => navigateToUrl(\"/openmrs/spa/foo/page\")\n * navigate({ to: \"${openmrsSpaBase}/bar/page\" }); // => navigateToUrl(\"/openmrs/spa/bar/page\")\n * navigate({ to: \"/${openmrsSpaBase}/baz/page\" }) // => navigateToUrl(\"/openmrs/spa/baz/page\")\n * ```\n *\n * @param to The target path or URL. Supports templating with 'openmrsBase', 'openmrsSpaBase',\n * and any additional template parameters defined in `templateParams`.\n * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`\n * for implementations using the standard OpenMRS and SPA base paths.\n * If `templateParams` contains `{ foo: \"bar\" }`, then the URL `${openmrsBase}/${foo}`\n * will become `/openmrs/bar`.\n */ export function navigate({ to , templateParams }) {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n const target = interpolateUrl(to, templateParams);\n const isSpaPath = target.startsWith(openmrsSpaBase);\n if (isSpaPath) {\n navigateToUrl(target);\n } else {\n window.location.assign(target);\n }\n}\n","/** @module @category Config Validation */ import { validator } from \"./validator\";\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */ export const inRange = (min, max)=>{\n return validator((val)=>min <= val && val <= max, `must be between ${min} and ${max}`);\n};\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */ export const isUrlWithTemplateParameters = (allowedTemplateParameters)=>{\n const allowedParams = allowedTemplateParameters.concat([\n \"openmrsBase\",\n \"openmrsSpaBase\"\n ]);\n return validator((val)=>{\n if (!val || typeof val != \"string\") {\n return false;\n }\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n while(match){\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n match = rx.exec(val);\n }\n return true;\n }, \"Should be a URL or path. The allowed template parameters are \" + allowedParams.map((p)=>\"${\" + p + \"}\").join(\", \"));\n};\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */ export const isUrl = isUrlWithTemplateParameters([]);\n/**\n * Verifies that the value is one of the allowed options.\n * @param allowedValues The list of allowable values\n */ export const oneOf = (allowedValues)=>{\n return validator((val)=>allowedValues.includes(val), `Must be one of the following: '${allowedValues.join(\"', '\")}'.`);\n};\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n oneOf\n};\n"],"names":["e","d","t","r","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","createAppState","c","createGlobalStore","a","getAppState","u","getGlobalStore","s","subscribeTo","i","Set","n","is","assign","forEach","setState","getState","subscribe","add","delete","destroy","console","warn","clear","active","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","definition","key","g","globalThis","this","Function","window","obj","prop","_isPlaceholder","_curry1","fn","f1","arguments","length","apply","_curry2","f2","b","_b","_a","_arrayFromIterator","iter","next","list","done","push","_includesWith","pred","x","idx","len","_has","toString","_isArguments","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","val","slice","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","equals","constructor","f","match","String","_functionName","valueOf","name","message","source","global","ignoreCase","multiline","sticky","unicode","size","entries","concat","values","keysA","extendedStackA","extendedStackB","_curry3","f3","_c","_isObject","mergeWithKey","l","k","result","mergeDeepWithKey","lObj","rObj","lVal","rVal","names","index","_clone","refFrom","refTo","deep","pattern","copy","copiedValue","Date","RegExp","clone","Array","isArray","_isArrayLike","_isArray","_isString","nodeType","XWrap","Error","acc","bind","thisObj","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_arity","_iterableReduce","xf","step","_methodReduce","methodName","symIterator","iterator","_reduce","_xwrap","_arrayReduce","reduce","TypeError","Type","validator","validationFunction","isBoolean","isNumber","isString","isObject","isUuid","test","configInternalStore","providedConfigs","schemas","temporaryConfigStore","config","JSON","parse","localStorage","getItem","getTemporaryConfig","state","setItem","stringify","configExtensionStore","mountedExtensions","getConfigStore","moduleName","loaded","getExtensionSlotsConfigStore","slots","getExtensionSlotConfig","slotName","getExtensionSlotConfigFromStore","slotConfig","getExtensionsConfigStore","configs","getExtensionConfig","extensionId","extensionConfig","getExtensionConfigFromStore","_state_configs_slotName","implementerToolsConfigStore","_define_property","configurable","writable","_object_spread","target","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","_object_spread_props","getOwnPropertyDescriptors","defineProperties","object","enumerableOnly","symbols","computeModuleConfig","tempState","getConfigForModule","computeExtensionSlotConfigs","slotConfigs","configState","tempConfigState","allConfigs","mergeConfigs","getProvidedConfigs","slotConfigPerModule","_allConfigs_key","_allConfigs_key1","extensionSlots","configBySlotName","validateExtensionSlotConfig","validateAllExtensionSlotConfigs","getExtensionSlotConfigs","newSlotStoreEntries","fromEntries","map","slotStore","oldState","newState","computeImplementerToolsConfig","getSchemaWithValuesAndSources","configsAndSources","createValuesAndSourcesTree","getImplementerToolsConfig","computeExtensionConfigs","extensionState","extension","computeExtensionConfig","slotModuleName","extensionModuleName","defineConfigSchema","schema","validateConfigSchema","enhancedSchema","implicitConfigSchema","defineExtensionConfigSchema","extensionName","provide","sourceName","getConfig","Promise","resolve","store","update","unsubscribe","getConfigInternal","processConfig","providedConfig","keyPathContext","validateStructure","setDefaults","runAllValidatorsInConfigTree","_slotModuleConfig_extensionSlots","_slotModuleConfig_extensionSlots_slotName","_slotModuleConfig_extensionSlots_slotName_configure","split","getExtensionNameFromId","extensionConfigSchema","nameOfSchemaSource","slotModuleConfig","mergeConfigsFor","_slotModuleConfig_extensionSlots_slotName_configure_extensionId","configOverride","configure","combinedConfig","_value","_default","_source","isOrdinaryObject","errorPrefix","invalidKeys","includes","join","every","remove","order","keyPath","updateMessage","startsWith","thisKeyPath","schemaPart","elements","_elements","hasObjectSchema","_validators","valueType","_type","inputConfig","allConfigsForModule","mergeDeepAll","validateBranchStructure","checkType","dictionarySchema","validateDictionaryStructure","arraySchema","_arraySchema__elements","validateArrayStructure","runValidators","Boolean","ConceptUuid","Number","UUID","PersonAttributeTypeUuid","PatientIdentifierTypeUuid","validators","validatorResult","configPart","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","privileges","_description","freeze","__proto__","start","xt","ensureJQuerySupport","ft","setBootstrapMaxTime","F","setMountMaxTime","J","setUnmountMaxTime","H","setUnloadMaxTime","Q","registerApplication","Ot","unregisterApplication","Tt","getMountedApps","Et","getAppStatus","Pt","unloadApplication","At","checkActivityFunctions","bt","getAppNames","yt","pathToActiveWhen","_t","navigateToUrl","nt","triggerAppChange","Mt","addErrorHandler","removeErrorHandler","mountRootParcel","C","NOT_LOADED","LOADING_SOURCE_CODE","p","NOT_BOOTSTRAPPED","h","BOOTSTRAPPING","m","NOT_MOUNTED","v","MOUNTING","UPDATING","LOAD_ERROR","y","MOUNTED","w","UNMOUNTING","E","SKIP_BECAUSE_BROKEN","P","self","CustomEvent","detail","foo","type","document","createEvent","initCustomEvent","bubbles","cancelable","createEventObject","setTimeout","N","T","status","appOrParcelName","O","activeWhen","location","A","unmountThisParcel","S","_","D","U","then","j","reject","catch","M","bootstrap","V","L","parcels","all","R","I","dispatchEvent","B","G","W","domElement","id","customProps","parentName","mount","unmount","timeouts","q","$","getStatus","loadPromise","bootstrapPromise","mountPromise","unmountPromise","mountParcel","singleSpa","unmountSelf","K","millis","dieOnTimeout","warningMillis","unload","z","loadApp","loadErrorTime","devtools","overlays","getTime","X","Y","Z","hashchange","popstate","tt","href","currentTarget","preventDefault","ct","indexOf","hash","host","pathname","search","history","pushState","et","rt","Lt","ot","Bt","PopStateEvent","initPopStateEvent","singleSpaTrigger","it","addEventListener","ut","at","removeEventListener","replaceState","singleSpaNavigate","createElement","st","jQuery","jquery","on","off","lt","replace","trim","pt","ht","mt","promise","vt","app","dt","wt","gt","appsToUnload","appsToUnmount","appsToLoad","appsToMount","St","some","options","selectors","splice","waitForUnmount","Nt","charAt","origin","protocol","Dt","Ut","jt","eventArguments","cancelNavigation","Rt","newAppStatuses","appsByNewStatus","totalAppChanges","originalEvent","oldUrl","newUrl","navigationIsCanceled","It","urlRerouteOnly","Gt","getRawAppData","reroute","toLoadPromise","toBootstrapPromise","interpolateUrl","template","additionalParams","openmrsSpaBase","getOpenmrsSpaBase","interpolateString","openmrsBase","params","prev","curr","to","templateParams","__SINGLE_SPA_DEVTOOLS__","exposedMethods","inRange","min","max","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","exec","isUrl","oneOf","allowedValues"],"sourceRoot":""}