settings-vue-settings-personal-webauthn.js 40 KB

123
  1. /*! For license information please see settings-vue-settings-personal-webauthn.js.LICENSE.txt */
  2. (()=>{var e,n={77099:(e,n,r)=>{"use strict";var i=r(20144),a=r(43554),o=r(7820),s=r(50323),l=(r(65509),r(66415)),c=r.n(l),u=r(54572);const d=(0,r(17499).IY)().setApp("settings").detectUser().build();var p=r(93664),h=r(79753),f=r(25108);const g=t=>e=>(d.debug(t),e),v=Object.freeze({READY:1,REGISTRATION:2,NAMING:3,PERSIST:4}),y={name:"AddDevice",components:{NcButton:u.Z},props:{httpWarning:Boolean,isHttps:{type:Boolean,default:!1},isLocalhost:{type:Boolean,default:!1}},data:()=>({name:"",credential:{},RegistrationSteps:v,step:v.READY}),methods:{arrayToBase64String:t=>btoa(String.fromCharCode(...t)),start(){return this.step=v.REGISTRATION,f.debug("Starting WebAuthn registration"),(0,o.Z)().then(this.getRegistrationData).then(this.register.bind(this)).then((()=>{this.step=v.NAMING})).catch((t=>{f.error(t.name,t.message),this.step=v.READY}))},getRegistrationData:()=>(f.debug("Fetching webauthn registration data"),async function(){const t=(0,h.generateUrl)("/settings/api/personal/webauthn/registration");return(await p.Z.get(t)).data}().then((t=>(f.debug(t),t.challenge=Uint8Array.from(function(t){const e=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(e){if(1===e)throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding");t+=new Array(5-e).join("=")}return window.atob(t)}(t.challenge),(t=>t.charCodeAt(0))),t.user.id=Uint8Array.from(t.user.id,(t=>t.charCodeAt(0))),t))).catch((e=>{throw f.error("Error getting webauthn registration data from server",e),new Error(t("settings","Server error while trying to add WebAuthn device"))}))),register(t){return f.debug("starting webauthn registration"),navigator.credentials.create({publicKey:t}).then((t=>{this.credential={id:t.id,type:t.type,rawId:this.arrayToBase64String(new Uint8Array(t.rawId)),response:{clientDataJSON:this.arrayToBase64String(new Uint8Array(t.response.clientDataJSON)),attestationObject:this.arrayToBase64String(new Uint8Array(t.response.attestationObject))}}}))},submit(){return this.step=v.PERSIST,(0,o.Z)().then(g("confirmed password")).then(this.saveRegistrationData).then(g("registration data saved")).then((()=>this.reset())).then(g("app reset")).catch(f.error.bind(this))},async saveRegistrationData(){try{const t=await async function(t,e){const n=(0,h.generateUrl)("/settings/api/personal/webauthn/registration");return(await p.Z.post(n,{name:t,data:e})).data}(this.name,JSON.stringify(this.credential));d.info("new device added",{device:t}),this.$emit("added",t)}catch(e){throw d.error("Error persisting webauthn registration",{error:e}),new Error(t("settings","Server error while trying to complete WebAuthn device registration"))}},reset(){this.name="",this.registrationData={},this.step=v.READY}}};var m=r(93379),A=r.n(m),b=r(7795),w=r.n(b),x=r(90569),_=r.n(x),R=r(3565),I=r.n(R),W=r(19216),S=r.n(W),C=r(44589),O=r.n(C),E=r(37311),B={};B.styleTagTransform=O(),B.setAttributes=I(),B.insert=_().bind(null,"head"),B.domAPI=w(),B.insertStyleElement=S(),A()(E.Z,B),E.Z&&E.Z.locals&&E.Z.locals;var N=r(51900);const k=(0,N.Z)(y,(function(){var t=this,e=t._self._c;return t.isHttps||t.isLocalhost?e("div",[t.step===t.RegistrationSteps.READY?e("div",[e("NcButton",{attrs:{type:"primary"},on:{click:t.start}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add WebAuthn device"))+"\n\t\t")])],1):t.step===t.RegistrationSteps.REGISTRATION?e("div",{staticClass:"new-webauthn-device"},[e("span",{staticClass:"icon-loading-small webauthn-loading"}),t._v("\n\t\t"+t._s(t.t("settings","Please authorize your WebAuthn device."))+"\n\t")]):t.step===t.RegistrationSteps.NAMING?e("div",{staticClass:"new-webauthn-device"},[e("span",{staticClass:"icon-loading-small webauthn-loading"}),t._v(" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.name,expression:"name"}],attrs:{type:"text",placeholder:t.t("settings","Name your device")},domProps:{value:t.name},on:{":keyup":function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.submit.apply(null,arguments)},input:function(e){e.target.composing||(t.name=e.target.value)}}}),t._v(" "),e("NcButton",{attrs:{type:"primary"},on:{click:t.submit}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add"))+"\n\t\t")])],1):t.step===t.RegistrationSteps.PERSIST?e("div",{staticClass:"new-webauthn-device"},[e("span",{staticClass:"icon-loading-small webauthn-loading"}),t._v("\n\t\t"+t._s(t.t("settings","Adding your device …"))+"\n\t")]):e("div",[t._v("\n\t\tInvalid registration step. This should not have happened.\n\t")])]):e("div",[t._v("\n\t"+t._s(t.t("settings","Passwordless authentication requires a secure connection."))+"\n")])}),[],!1,null,"14a3490a",null).exports;var T=r(61057);const D={name:"Device",components:{NcActionButton:r(43589).Z,NcActions:T.Z},props:{name:{type:String,required:!0}}};var P=r(68256),j={};j.styleTagTransform=O(),j.setAttributes=I(),j.insert=_().bind(null,"head"),j.domAPI=w(),j.insertStyleElement=S(),A()(P.Z,j),P.Z&&P.Z.locals&&P.Z.locals;const L=(0,N.Z)(D,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"webauthn-device"},[e("span",{staticClass:"icon-webauthn-device"}),t._v("\n\t"+t._s(t.name||t.t("settings","Unnamed device"))+"\n\t"),e("NcActions",{attrs:{"force-menu":!0}},[e("NcActionButton",{attrs:{icon:"icon-delete"},on:{click:function(e){return t.$emit("delete")}}},[t._v("\n\t\t\t"+t._s(t.t("settings","Delete"))+"\n\t\t")])],1)],1)}),[],!1,null,"46d7f170",null).exports,F=c()("name"),M={components:{AddDevice:k,Device:L,NcNoteCard:s.Z},props:{initialDevices:{type:Array,required:!0},isHttps:{type:Boolean,default:!1},isLocalhost:{type:Boolean,default:!1},hasPublicKeyCredential:{type:Boolean,default:!1}},data(){return{devices:this.initialDevices}},computed:{sortedDevices(){return F(this.devices)}},methods:{deviceAdded(t){d.debug(`adding new device to the list ${t.id}`),this.devices.push(t)},async deleteDevice(t){d.info(`deleting webauthn device ${t}`),await(0,o.Z)(),await async function(t){const e=(0,h.generateUrl)(`/settings/api/personal/webauthn/registration/${t}`);await p.Z.delete(e)}(t),this.devices=this.devices.filter((e=>e.id!==t)),d.info(`webauthn device ${t} removed successfully`)}}},U=(0,N.Z)(M,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"section",attrs:{id:"security-webauthn"}},[e("h2",[t._v(t._s(t.t("settings","Passwordless Authentication")))]),t._v(" "),e("p",{staticClass:"settings-hint hidden-when-empty"},[t._v("\n\t\t"+t._s(t.t("settings","Set up your account for passwordless authentication following the FIDO2 standard."))+"\n\t")]),t._v(" "),0===t.devices.length?e("NcNoteCard",{attrs:{type:"info"}},[t._v("\n\t\t"+t._s(t.t("settings","No devices configured."))+"\n\t")]):e("h3",[t._v("\n\t\t"+t._s(t.t("settings","The following devices are configured for your account:"))+"\n\t")]),t._v(" "),t._l(t.sortedDevices,(function(n){return e("Device",{key:n.id,attrs:{name:n.name},on:{delete:function(e){return t.deleteDevice(n.id)}}})})),t._v(" "),t.hasPublicKeyCredential?t._e():e("NcNoteCard",{attrs:{type:"warning"}},[t._v("\n\t\t"+t._s(t.t("settings","Your browser does not support WebAuthn."))+"\n\t")]),t._v(" "),t.hasPublicKeyCredential?e("AddDevice",{attrs:{"is-https":t.isHttps,"is-localhost":t.isLocalhost},on:{added:t.deviceAdded}}):t._e()],2)}),[],!1,null,"71aa9ded",null).exports;r.nc=btoa(OC.requestToken),i.ZP.prototype.t=t,new(i.ZP.extend(U))({propsData:{initialDevices:(0,a.j)("settings","webauthn-devices"),isHttps:"https:"===window.location.protocol,isLocalhost:"localhost"===window.location.hostname,hasPublicKeyCredential:void 0!==window.PublicKeyCredential}}).$mount("#security-webauthn")},37311:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(87537),i=n.n(r),a=n(23645),o=n.n(a)()(i());o.push([t.id,"\n.webauthn-loading[data-v-14a3490a] {\n\tdisplay: inline-block;\n\tvertical-align: sub;\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n.new-webauthn-device[data-v-14a3490a] {\n\tline-height: 300%;\n}\n","",{version:3,sources:["webpack://./apps/settings/src/components/WebAuthn/AddDevice.vue"],names:[],mappings:";AAmOA;CACA,qBAAA;CACA,mBAAA;CACA,gBAAA;CACA,iBAAA;AACA;AAEA;CACA,iBAAA;AACA",sourcesContent:["\x3c!--\n - @copyright 2020, Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @author Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n --\x3e\n\n<template>\n\t<div v-if=\"!isHttps && !isLocalhost\">\n\t\t{{ t('settings', 'Passwordless authentication requires a secure connection.') }}\n\t</div>\n\t<div v-else>\n\t\t<div v-if=\"step === RegistrationSteps.READY\">\n\t\t\t<NcButton @click=\"start\" type=\"primary\">\n\t\t\t\t{{ t('settings', 'Add WebAuthn device') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<div v-else-if=\"step === RegistrationSteps.REGISTRATION\"\n\t\t\tclass=\"new-webauthn-device\">\n\t\t\t<span class=\"icon-loading-small webauthn-loading\" />\n\t\t\t{{ t('settings', 'Please authorize your WebAuthn device.') }}\n\t\t</div>\n\n\t\t<div v-else-if=\"step === RegistrationSteps.NAMING\"\n\t\t\tclass=\"new-webauthn-device\">\n\t\t\t<span class=\"icon-loading-small webauthn-loading\" />\n\t\t\t<input v-model=\"name\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:placeholder=\"t('settings', 'Name your device')\"\n\t\t\t\t@:keyup.enter=\"submit\">\n\t\t\t<NcButton @click=\"submit\" type=\"primary\">\n\t\t\t\t{{ t('settings', 'Add') }}\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<div v-else-if=\"step === RegistrationSteps.PERSIST\"\n\t\t\tclass=\"new-webauthn-device\">\n\t\t\t<span class=\"icon-loading-small webauthn-loading\" />\n\t\t\t{{ t('settings', 'Adding your device …') }}\n\t\t</div>\n\n\t\t<div v-else>\n\t\t\tInvalid registration step. This should not have happened.\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport logger from '../../logger.js'\nimport {\n\tstartRegistration,\n\tfinishRegistration,\n} from '../../service/WebAuthnRegistrationSerice.js'\n\nconst logAndPass = (text) => (data) => {\n\tlogger.debug(text)\n\treturn data\n}\n\nconst RegistrationSteps = Object.freeze({\n\tREADY: 1,\n\tREGISTRATION: 2,\n\tNAMING: 3,\n\tPERSIST: 4,\n})\n\nexport default {\n\tname: 'AddDevice',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\thttpWarning: Boolean,\n\t\tisHttps: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisLocalhost: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tname: '',\n\t\t\tcredential: {},\n\t\t\tRegistrationSteps,\n\t\t\tstep: RegistrationSteps.READY,\n\t\t}\n\t},\n\tmethods: {\n\t\tarrayToBase64String(a) {\n\t\t\treturn btoa(String.fromCharCode(...a))\n\t\t},\n\t\tstart() {\n\t\t\tthis.step = RegistrationSteps.REGISTRATION\n\t\t\tconsole.debug('Starting WebAuthn registration')\n\n\t\t\treturn confirmPassword()\n\t\t\t\t.then(this.getRegistrationData)\n\t\t\t\t.then(this.register.bind(this))\n\t\t\t\t.then(() => { this.step = RegistrationSteps.NAMING })\n\t\t\t\t.catch(err => {\n\t\t\t\t\tconsole.error(err.name, err.message)\n\t\t\t\t\tthis.step = RegistrationSteps.READY\n\t\t\t\t})\n\t\t},\n\n\t\tgetRegistrationData() {\n\t\t\tconsole.debug('Fetching webauthn registration data')\n\n\t\t\tconst base64urlDecode = function(input) {\n\t\t\t\t// Replace non-url compatible chars with base64 standard chars\n\t\t\t\tinput = input\n\t\t\t\t\t.replace(/-/g, '+')\n\t\t\t\t\t.replace(/_/g, '/')\n\n\t\t\t\t// Pad out with standard base64 required padding characters\n\t\t\t\tconst pad = input.length % 4\n\t\t\t\tif (pad) {\n\t\t\t\t\tif (pad === 1) {\n\t\t\t\t\t\tthrow new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding')\n\t\t\t\t\t}\n\t\t\t\t\tinput += new Array(5 - pad).join('=')\n\t\t\t\t}\n\n\t\t\t\treturn window.atob(input)\n\t\t\t}\n\n\t\t\treturn startRegistration()\n\t\t\t\t.then(publicKey => {\n\t\t\t\t\tconsole.debug(publicKey)\n\t\t\t\t\tpublicKey.challenge = Uint8Array.from(base64urlDecode(publicKey.challenge), c => c.charCodeAt(0))\n\t\t\t\t\tpublicKey.user.id = Uint8Array.from(publicKey.user.id, c => c.charCodeAt(0))\n\t\t\t\t\treturn publicKey\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tconsole.error('Error getting webauthn registration data from server', err)\n\t\t\t\t\tthrow new Error(t('settings', 'Server error while trying to add WebAuthn device'))\n\t\t\t\t})\n\t\t},\n\n\t\tregister(publicKey) {\n\t\t\tconsole.debug('starting webauthn registration')\n\n\t\t\treturn navigator.credentials.create({ publicKey })\n\t\t\t\t.then(data => {\n\t\t\t\t\tthis.credential = {\n\t\t\t\t\t\tid: data.id,\n\t\t\t\t\t\ttype: data.type,\n\t\t\t\t\t\trawId: this.arrayToBase64String(new Uint8Array(data.rawId)),\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tclientDataJSON: this.arrayToBase64String(new Uint8Array(data.response.clientDataJSON)),\n\t\t\t\t\t\t\tattestationObject: this.arrayToBase64String(new Uint8Array(data.response.attestationObject)),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t},\n\n\t\tsubmit() {\n\t\t\tthis.step = RegistrationSteps.PERSIST\n\n\t\t\treturn confirmPassword()\n\t\t\t\t.then(logAndPass('confirmed password'))\n\t\t\t\t.then(this.saveRegistrationData)\n\t\t\t\t.then(logAndPass('registration data saved'))\n\t\t\t\t.then(() => this.reset())\n\t\t\t\t.then(logAndPass('app reset'))\n\t\t\t\t.catch(console.error.bind(this))\n\t\t},\n\n\t\tasync saveRegistrationData() {\n\t\t\ttry {\n\t\t\t\tconst device = await finishRegistration(this.name, JSON.stringify(this.credential))\n\n\t\t\t\tlogger.info('new device added', { device })\n\n\t\t\t\tthis.$emit('added', device)\n\t\t\t} catch (err) {\n\t\t\t\tlogger.error('Error persisting webauthn registration', { error: err })\n\t\t\t\tthrow new Error(t('settings', 'Server error while trying to complete WebAuthn device registration'))\n\t\t\t}\n\t\t},\n\n\t\treset() {\n\t\t\tthis.name = ''\n\t\t\tthis.registrationData = {}\n\t\t\tthis.step = RegistrationSteps.READY\n\t\t},\n\t},\n}\n<\/script>\n\n<style scoped>\n\t.webauthn-loading {\n\t\tdisplay: inline-block;\n\t\tvertical-align: sub;\n\t\tmargin-left: 2px;\n\t\tmargin-right: 2px;\n\t}\n\n\t.new-webauthn-device {\n\t\tline-height: 300%;\n\t}\n</style>\n"],sourceRoot:""}]);const s=o},68256:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(87537),i=n.n(r),a=n(23645),o=n.n(a)()(i());o.push([t.id,"\n.webauthn-device[data-v-46d7f170] {\n\tline-height: 300%;\n\tdisplay: flex;\n}\n.icon-webauthn-device[data-v-46d7f170] {\n\tdisplay: inline-block;\n\tbackground-size: 100%;\n\tpadding: 3px;\n\tmargin: 3px;\n}\n","",{version:3,sources:["webpack://./apps/settings/src/components/WebAuthn/Device.vue"],names:[],mappings:";AAkEA;CACA,iBAAA;CACA,aAAA;AACA;AAEA;CACA,qBAAA;CACA,qBAAA;CACA,YAAA;CACA,WAAA;AACA",sourcesContent:["\x3c!--\n - @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n --\x3e\n\n<template>\n\t<div class=\"webauthn-device\">\n\t\t<span class=\"icon-webauthn-device\" />\n\t\t{{ name || t('settings', 'Unnamed device') }}\n\t\t<NcActions :force-menu=\"true\">\n\t\t\t<NcActionButton icon=\"icon-delete\" @click=\"$emit('delete')\">\n\t\t\t\t{{ t('settings', 'Delete') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\n\nexport default {\n\tname: 'Device',\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActions,\n\t},\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n}\n<\/script>\n\n<style scoped>\n\t.webauthn-device {\n\t\tline-height: 300%;\n\t\tdisplay: flex;\n\t}\n\n\t.icon-webauthn-device {\n\t\tdisplay: inline-block;\n\t\tbackground-size: 100%;\n\t\tpadding: 3px;\n\t\tmargin: 3px;\n\t}\n</style>\n"],sourceRoot:""}]);const s=o},96425:(t,e,n)=>{var r=n(3118),i=n(9435);function a(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},7548:(t,e,n)=>{var r=n(3118),i=n(9435);function a(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}a.prototype=r(i.prototype),a.prototype.constructor=a,t.exports=a},89881:(t,e,n)=>{var r=n(47816),i=n(99291)(r);t.exports=i},21078:(t,e,n)=>{var r=n(62488),i=n(37285);t.exports=function t(e,n,a,o,s){var l=-1,c=e.length;for(a||(a=i),s||(s=[]);++l<c;){var u=e[l];n>0&&a(u)?n>1?t(u,n-1,a,o,s):r(s,u):o||(s[s.length]=u)}return s}},47816:(t,e,n)=>{var r=n(28483),i=n(3674);t.exports=function(t,e){return t&&r(t,e,i)}},9435:t=>{t.exports=function(){}},69199:(t,e,n)=>{var r=n(89881),i=n(98612);t.exports=function(t,e){var n=-1,a=i(t)?Array(t.length):[];return r(t,(function(t,r,i){a[++n]=e(t,r,i)})),a}},82689:(t,e,n)=>{var r=n(29932),i=n(97786),a=n(67206),o=n(69199),s=n(71131),l=n(51717),c=n(85022),u=n(6557),d=n(1469);t.exports=function(t,e,n){e=e.length?r(e,(function(t){return d(t)?function(e){return i(e,1===t.length?t[0]:t)}:t})):[u];var p=-1;e=r(e,l(a));var h=o(t,(function(t,n,i){return{criteria:r(e,(function(e){return e(t)})),index:++p,value:t}}));return s(h,(function(t,e){return c(t,e,n)}))}},28045:(t,e,n)=>{var r=n(6557),i=n(89250),a=i?function(t,e){return i.set(t,e),t}:r;t.exports=a},71131:t=>{t.exports=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}},26393:(t,e,n)=>{var r=n(33448);t.exports=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,o=r(t),s=void 0!==e,l=null===e,c=e==e,u=r(e);if(!l&&!u&&!o&&t>e||o&&s&&c&&!l&&!u||i&&s&&c||!n&&c||!a)return 1;if(!i&&!o&&!u&&t<e||u&&n&&a&&!i&&!o||l&&n&&a||!s&&a||!c)return-1}return 0}},85022:(t,e,n)=>{var r=n(26393);t.exports=function(t,e,n){for(var i=-1,a=t.criteria,o=e.criteria,s=a.length,l=n.length;++i<s;){var c=r(a[i],o[i]);if(c)return i>=l?c:c*("desc"==n[i]?-1:1)}return t.index-e.index}},52157:t=>{var e=Math.max;t.exports=function(t,n,r,i){for(var a=-1,o=t.length,s=r.length,l=-1,c=n.length,u=e(o-s,0),d=Array(c+u),p=!i;++l<c;)d[l]=n[l];for(;++a<s;)(p||a<o)&&(d[r[a]]=t[a]);for(;u--;)d[l++]=t[a++];return d}},14054:t=>{var e=Math.max;t.exports=function(t,n,r,i){for(var a=-1,o=t.length,s=-1,l=r.length,c=-1,u=n.length,d=e(o-l,0),p=Array(d+u),h=!i;++a<d;)p[a]=t[a];for(var f=a;++c<u;)p[f+c]=n[c];for(;++s<l;)(h||a<o)&&(p[f+r[s]]=t[a++]);return p}},97991:t=>{t.exports=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}},99291:(t,e,n)=>{var r=n(98612);t.exports=function(t,e){return function(n,i){if(null==n)return n;if(!r(n))return t(n,i);for(var a=n.length,o=e?a:-1,s=Object(n);(e?o--:++o<a)&&!1!==i(s[o],o,s););return n}}},22402:(t,e,n)=>{var r=n(71774),i=n(55639);t.exports=function(t,e,n){var a=1&e,o=r(t);return function e(){return(this&&this!==i&&this instanceof e?o:t).apply(a?n:this,arguments)}}},71774:(t,e,n)=>{var r=n(3118),i=n(13218);t.exports=function(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=r(t.prototype),a=t.apply(n,e);return i(a)?a:n}}},46347:(t,e,n)=>{var r=n(96874),i=n(71774),a=n(86935),o=n(94487),s=n(20893),l=n(46460),c=n(55639);t.exports=function(t,e,n){var u=i(t);return function i(){for(var d=arguments.length,p=Array(d),h=d,f=s(i);h--;)p[h]=arguments[h];var g=d<3&&p[0]!==f&&p[d-1]!==f?[]:l(p,f);return(d-=g.length)<n?o(t,e,a,i.placeholder,void 0,p,g,void 0,void 0,n-d):r(this&&this!==c&&this instanceof i?u:t,this,p)}}},86935:(t,e,n)=>{var r=n(52157),i=n(14054),a=n(97991),o=n(71774),s=n(94487),l=n(20893),c=n(90451),u=n(46460),d=n(55639);t.exports=function t(e,n,p,h,f,g,v,y,m,A){var b=128&n,w=1&n,x=2&n,_=24&n,R=512&n,I=x?void 0:o(e);return function W(){for(var S=arguments.length,C=Array(S),O=S;O--;)C[O]=arguments[O];if(_)var E=l(W),B=a(C,E);if(h&&(C=r(C,h,f,_)),g&&(C=i(C,g,v,_)),S-=B,_&&S<A){var N=u(C,E);return s(e,n,t,W.placeholder,p,C,N,y,m,A-S)}var k=w?p:this,T=x?k[e]:e;return S=C.length,y?C=c(C,y):R&&S>1&&C.reverse(),b&&m<S&&(C.length=m),this&&this!==d&&this instanceof W&&(T=I||o(T)),T.apply(k,C)}}},84375:(t,e,n)=>{var r=n(96874),i=n(71774),a=n(55639);t.exports=function(t,e,n,o){var s=1&e,l=i(t);return function e(){for(var i=-1,c=arguments.length,u=-1,d=o.length,p=Array(d+c),h=this&&this!==a&&this instanceof e?l:t;++u<d;)p[u]=o[u];for(;c--;)p[u++]=arguments[++i];return r(h,s?n:this,p)}}},94487:(t,e,n)=>{var r=n(86528),i=n(258),a=n(69255);t.exports=function(t,e,n,o,s,l,c,u,d,p){var h=8&e;e|=h?32:64,4&(e&=~(h?64:32))||(e&=-4);var f=[t,e,s,h?l:void 0,h?c:void 0,h?void 0:l,h?void 0:c,u,d,p],g=n.apply(void 0,f);return r(t)&&i(g,f),g.placeholder=o,a(g,t,e)}},97727:(t,e,n)=>{var r=n(28045),i=n(22402),a=n(46347),o=n(86935),s=n(84375),l=n(66833),c=n(63833),u=n(258),d=n(69255),p=n(40554),h=Math.max;t.exports=function(t,e,n,f,g,v,y,m){var A=2&e;if(!A&&"function"!=typeof t)throw new TypeError("Expected a function");var b=f?f.length:0;if(b||(e&=-97,f=g=void 0),y=void 0===y?y:h(p(y),0),m=void 0===m?m:p(m),b-=g?g.length:0,64&e){var w=f,x=g;f=g=void 0}var _=A?void 0:l(t),R=[t,e,n,f,g,w,x,v,y,m];if(_&&c(R,_),t=R[0],e=R[1],n=R[2],f=R[3],g=R[4],!(m=R[9]=void 0===R[9]?A?0:t.length:h(R[9]-b,0))&&24&e&&(e&=-25),e&&1!=e)I=8==e||16==e?a(t,e,m):32!=e&&33!=e||g.length?o.apply(void 0,R):s(t,e,n,f);else var I=i(t,e,n);return d((_?r:u)(I,R),t,e)}},99021:(t,e,n)=>{var r=n(85564),i=n(45357),a=n(30061);t.exports=function(t){return a(i(t,void 0,r),t+"")}},66833:(t,e,n)=>{var r=n(89250),i=n(50308),a=r?function(t){return r.get(t)}:i;t.exports=a},97658:(t,e,n)=>{var r=n(52060),i=Object.prototype.hasOwnProperty;t.exports=function(t){for(var e=t.name+"",n=r[e],a=i.call(r,e)?n.length:0;a--;){var o=n[a],s=o.func;if(null==s||s==t)return o.name}return e}},20893:t=>{t.exports=function(t){return t.placeholder}},58775:t=>{var e=/\{\n\/\* \[wrapped with (.+)\] \*/,n=/,? & /;t.exports=function(t){var r=t.match(e);return r?r[1].split(n):[]}},83112:t=>{var e=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;t.exports=function(t,n){var r=n.length;if(!r)return t;var i=r-1;return n[i]=(r>1?"& ":"")+n[i],n=n.join(r>2?", ":" "),t.replace(e,"{\n/* [wrapped with "+n+"] */\n")}},37285:(t,e,n)=>{var r=n(62705),i=n(35694),a=n(1469),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},86528:(t,e,n)=>{var r=n(96425),i=n(66833),a=n(97658),o=n(8111);t.exports=function(t){var e=a(t),n=o[e];if("function"!=typeof n||!(e in r.prototype))return!1;if(t===n)return!0;var s=i(n);return!!s&&t===s[0]}},63833:(t,e,n)=>{var r=n(52157),i=n(14054),a=n(46460),o="__lodash_placeholder__",s=Math.min;t.exports=function(t,e){var n=t[1],l=e[1],c=n|l,u=c<131,d=128==l&&8==n||128==l&&256==n&&t[7].length<=e[8]||384==l&&e[7].length<=e[8]&&8==n;if(!u&&!d)return t;1&l&&(t[2]=e[2],c|=1&n?0:4);var p=e[3];if(p){var h=t[3];t[3]=h?r(h,p,e[4]):p,t[4]=h?a(t[3],o):e[4]}return(p=e[5])&&(h=t[5],t[5]=h?i(h,p,e[6]):p,t[6]=h?a(t[5],o):e[6]),(p=e[7])&&(t[7]=p),128&l&&(t[8]=null==t[8]?e[8]:s(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=c,t}},89250:(t,e,n)=>{var r=n(70577),i=r&&new r;t.exports=i},52060:t=>{t.exports={}},90451:(t,e,n)=>{var r=n(278),i=n(65776),a=Math.min;t.exports=function(t,e){for(var n=t.length,o=a(e.length,n),s=r(t);o--;){var l=e[o];t[o]=i(l,n)?s[l]:void 0}return t}},46460:t=>{var e="__lodash_placeholder__";t.exports=function(t,n){for(var r=-1,i=t.length,a=0,o=[];++r<i;){var s=t[r];s!==n&&s!==e||(t[r]=e,o[a++]=r)}return o}},258:(t,e,n)=>{var r=n(28045),i=n(21275)(r);t.exports=i},69255:(t,e,n)=>{var r=n(58775),i=n(83112),a=n(30061),o=n(87241);t.exports=function(t,e,n){var s=e+"";return a(t,i(s,o(r(s),n)))}},87241:(t,e,n)=>{var r=n(77412),i=n(47443),a=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];t.exports=function(t,e){return r(a,(function(n){var r="_."+n[0];e&n[1]&&!i(t,r)&&t.push(r)})),t.sort()}},21913:(t,e,n)=>{var r=n(96425),i=n(7548),a=n(278);t.exports=function(t){if(t instanceof r)return t.clone();var e=new i(t.__wrapped__,t.__chain__);return e.__actions__=a(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}},39514:(t,e,n)=>{var r=n(97727);t.exports=function(t,e,n){return e=n?void 0:e,e=t&&null==e?t.length:e,r(t,128,void 0,void 0,void 0,void 0,e)}},40087:(t,e,n)=>{var r=n(97727);function i(t,e,n){var a=r(t,8,void 0,void 0,void 0,void 0,void 0,e=n?void 0:e);return a.placeholder=i.placeholder,a}i.placeholder={},t.exports=i},85564:(t,e,n)=>{var r=n(21078);t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},84599:(t,e,n)=>{var r=n(68836),i=n(69306),a=Array.prototype.push;function o(t,e){return 2==e?function(e,n){return t(e,n)}:function(e){return t(e)}}function s(t){for(var e=t?t.length:0,n=Array(e);e--;)n[e]=t[e];return n}function l(t,e){return function(){var n=arguments.length;if(n){for(var r=Array(n);n--;)r[n]=arguments[n];var i=r[0]=e.apply(void 0,r);return t.apply(void 0,r),i}}}t.exports=function t(e,n,c,u){var d="function"==typeof n,p=n===Object(n);if(p&&(u=c,c=n,n=void 0),null==c)throw new TypeError;u||(u={});var h={cap:!("cap"in u)||u.cap,curry:!("curry"in u)||u.curry,fixed:!("fixed"in u)||u.fixed,immutable:!("immutable"in u)||u.immutable,rearg:!("rearg"in u)||u.rearg},f=d?c:i,g="curry"in u&&u.curry,v="fixed"in u&&u.fixed,y="rearg"in u&&u.rearg,m=d?c.runInContext():void 0,A=d?c:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},b=A.ary,w=A.assign,x=A.clone,_=A.curry,R=A.forEach,I=A.isArray,W=A.isError,S=A.isFunction,C=A.isWeakMap,O=A.keys,E=A.rearg,B=A.toInteger,N=A.toPath,k=O(r.aryMethod),T={castArray:function(t){return function(){var e=arguments[0];return I(e)?t(s(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[1],n=t(arguments[0],e),r=n.length;return h.cap&&"number"==typeof e?(e=e>2?e-2:1,r&&r<=e?n:o(n,e)):n}},mixin:function(t){return function(e){var n=this;if(!S(n))return t(n,Object(e));var r=[];return R(O(e),(function(t){S(e[t])&&r.push([t,n.prototype[t]])})),t(n,Object(e)),R(r,(function(t){var e=t[1];S(e)?n.prototype[t[0]]=e:delete n.prototype[t[0]]})),n}},nthArg:function(t){return function(e){var n=e<0?1:B(e)+1;return _(t(e),n)}},rearg:function(t){return function(e,n){var r=n?n.length:0;return _(t(e,n),r)}},runInContext:function(n){return function(r){return t(e,n(r),u)}}};function D(t,e,n){if(h.fixed&&(v||!r.skipFixed[t])){var i=r.methodSpread[t],o=i&&i.start;return void 0===o?b(e,n):function(t,e){return function(){for(var n=arguments.length,r=n-1,i=Array(n);n--;)i[n]=arguments[n];var o=i[e],s=i.slice(0,e);return o&&a.apply(s,o),e!=r&&a.apply(s,i.slice(e+1)),t.apply(this,s)}}(e,o)}return e}function P(t,e,n){return h.rearg&&n>1&&(y||!r.skipRearg[t])?E(e,r.methodRearg[t]||r.aryRearg[n]):e}function j(t,e){for(var n=-1,r=(e=N(e)).length,i=r-1,a=x(Object(t)),o=a;null!=o&&++n<r;){var s=e[n],l=o[s];null==l||S(l)||W(l)||C(l)||(o[s]=x(n==i?l:Object(l))),o=o[s]}return a}function L(e,n){var i=r.aliasToReal[e]||e,a=r.remap[i]||i,o=u;return function(e){var r=d?m:A,s=d?m[a]:n,l=w(w({},o),e);return t(r,i,s,l)}}function F(t,e){return function(){var n=arguments.length;if(!n)return t();for(var r=Array(n);n--;)r[n]=arguments[n];var i=h.rearg?0:n-1;return r[i]=e(r[i]),t.apply(void 0,r)}}function M(t,e,n){var i,a=r.aliasToReal[t]||t,c=e,u=T[a];return u?c=u(e):h.immutable&&(r.mutate.array[a]?c=l(e,s):r.mutate.object[a]?c=l(e,function(t){return function(e){return t({},e)}}(e)):r.mutate.set[a]&&(c=l(e,j))),R(k,(function(t){return R(r.aryMethod[t],(function(e){if(a==e){var n=r.methodSpread[a],s=n&&n.afterRearg;return i=s?D(a,P(a,c,t),t):P(a,D(a,c,t),t),i=function(t,e,n){return g||h.curry&&n>1?_(e,n):e}(0,i=function(t,e){if(h.cap){var n=r.iterateeRearg[t];if(n)return function(t,e){return F(t,(function(t){var n=e.length;return function(t,e){return 2==e?function(e,n){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}}(E(o(t,n),e),n)}))}(e,n);var i=!d&&r.iterateeAry[t];if(i)return function(t,e){return F(t,(function(t){return"function"==typeof t?o(t,e):t}))}(e,i)}return e}(a,i),t),!1}})),!i})),i||(i=c),i==e&&(i=g?_(i,1):function(){return e.apply(this,arguments)}),i.convert=L(a,e),i.placeholder=e.placeholder=n,i}if(!p)return M(n,c,f);var U=c,G=[];return R(k,(function(t){R(r.aryMethod[t],(function(t){var e=U[r.remap[t]||t];e&&G.push([t,M(t,e,U)])}))})),R(O(U),(function(t){var e=U[t];if("function"==typeof e){for(var n=G.length;n--;)if(G[n][0]==t)return;e.convert=L(t,e),G.push([t,e])}})),R(G,(function(t){U[t[0]]=t[1]})),U.convert=function(t){return U.runInContext.convert(t)(void 0)},U.placeholder=U,R(O(U),(function(t){R(r.realToAlias[t]||[],(function(e){U[e]=U[t]}))})),U}},68836:(t,e)=>{e.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},e.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},e.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},e.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,n=e.aliasToReal,r={};for(var i in n){var a=n[i];t.call(r,a)?r[a].push(i):r[a]=[i]}return r}(),e.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},4269:(t,e,n)=>{t.exports={ary:n(39514),assign:n(44037),clone:n(66678),curry:n(40087),forEach:n(77412),isArray:n(1469),isError:n(64647),isFunction:n(23560),isWeakMap:n(81018),iteratee:n(72594),keys:n(280),rearg:n(4963),toInteger:n(40554),toPath:n(30084)}},92822:(t,e,n)=>{var r=n(84599),i=n(4269);t.exports=function(t,e,n){return r(i,t,e,n)}},69306:t=>{t.exports={}},66415:(t,e,n)=>{var r=n(92822)("sortBy",n(89734));r.placeholder=n(69306),t.exports=r},64647:(t,e,n)=>{var r=n(44239),i=n(37005),a=n(68630);t.exports=function(t){if(!i(t))return!1;var e=r(t);return"[object Error]"==e||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!a(t)}},81018:(t,e,n)=>{var r=n(64160),i=n(37005);t.exports=function(t){return i(t)&&"[object WeakMap]"==r(t)}},72594:(t,e,n)=>{var r=n(85990),i=n(67206);t.exports=function(t){return i("function"==typeof t?t:r(t,1))}},4963:(t,e,n)=>{var r=n(97727),i=n(99021)((function(t,e){return r(t,256,void 0,void 0,void 0,e)}));t.exports=i},89734:(t,e,n)=>{var r=n(21078),i=n(82689),a=n(5976),o=n(16612),s=a((function(t,e){if(null==t)return[];var n=e.length;return n>1&&o(t,e[0],e[1])?e=[]:n>2&&o(e[0],e[1],e[2])&&(e=[e[0]]),i(t,r(e,1),[])}));t.exports=s},18601:(t,e,n)=>{var r=n(14841);t.exports=function(t){return t?Infinity===(t=r(t))||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},40554:(t,e,n)=>{var r=n(18601);t.exports=function(t){var e=r(t),n=e%1;return e==e?n?e-n:e:0}},30084:(t,e,n)=>{var r=n(29932),i=n(278),a=n(1469),o=n(33448),s=n(55514),l=n(40327),c=n(79833);t.exports=function(t){return a(t)?r(t,l):o(t)?[t]:i(s(c(t)))}},8111:(t,e,n)=>{var r=n(96425),i=n(7548),a=n(9435),o=n(1469),s=n(37005),l=n(21913),c=Object.prototype.hasOwnProperty;function u(t){if(s(t)&&!o(t)&&!(t instanceof r)){if(t instanceof i)return t;if(c.call(t,"__wrapped__"))return l(t)}return new i(t)}u.prototype=a.prototype,u.prototype.constructor=u,t.exports=u}},r={};function i(t){var e=r[t];if(void 0!==e)return e.exports;var a=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(a.exports,a,a.exports,i),a.loaded=!0,a.exports}i.m=n,e=[],i.O=(t,n,r,a)=>{if(!n){var o=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],a=e[u][2];for(var s=!0,l=0;l<n.length;l++)(!1&a||o>=a)&&Object.keys(i.O).every((t=>i.O[t](n[l])))?n.splice(l--,1):(s=!1,a<o&&(o=a));if(s){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[n,r,a]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.e=()=>Promise.resolve(),i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=1602,(()=>{i.b=document.baseURI||self.location.href;var t={1602:0};i.O.j=e=>0===t[e];var e=(e,n)=>{var r,a,o=n[0],s=n[1],l=n[2],c=0;if(o.some((e=>0!==t[e]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);if(l)var u=l(i)}for(e&&e(n);c<o.length;c++)a=o[c],i.o(t,a)&&t[a]&&t[a][0](),t[a]=0;return i.O(u)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),i.nc=void 0;var a=i.O(void 0,[7874],(()=>i(77099)));a=i.O(a)})();
  3. //# sourceMappingURL=settings-vue-settings-personal-webauthn.js.map?v=eb8bbbb3ae567011c641